• 40. 디스크 파일 할당

    2021. 9. 23.

    by. ahntree

    728x90

    1. 연속 할당과 불연속 할당

    파일 시스템은 메인 메모리 시스템과 유사하다. 전체 디스크 공간을 동일한 크기(블록)로 나누고 각 공간에 주소를 붙여 파일 테이블을 통해 관리한다.

     

    일반적으로 하나의 파일은 여러 개의 블록으로 구성되어 있다. 연속적인 주소로 구성하는 것을 연속 할당이라고 하고, 반대의 경우를 불연속 할당이라고 한다. 불연속 할당에는 연결 리스트와 인덱스를 활용하는 방법이 있다.

     

     

    1-1. 연결 할당

    연결 리스트로 관리하는 방식이다. 노드 간의 관계는 테이블로 나타내는데 2개의 테이블을 사용한다. 하나는 시작 노드의 주소를 기록한 파일 제어 테이블, 다른 하나는 모든 블록에 대한 연결 리스트 정보를 담고 있는 파일 할당 테이블이다.

     

    이 방식의 단점은 테이블에 모든 블록에 대한 정보를 담아야 하기 때문에 하나의 파티션의 최대 크기는 테이블의 주소 크기와 동일해야 한다는 것이다.

     

     

    1-2. 인덱스 할당

    연결 할당의 단점을 보완한 방식이다. 파일 블록의 위치를 나타내는 인덱스 블록을 통해 위치를 파악한다. 파일 제어 테이블에는 이러한 인덱스 블록들의 위치가 담긴 블록 포인터가 있으며, 하나의 블록 안에 모든 파일 주소를 담지 못할 경우에는 1개 이상의 인덱스 블록을 연결해 해결한다.

     

     

     

    2. 디스크의 빈 공간 관리

    디스크에 파일을 저장할 때마다 빈 공간을 일일이 찾는 것은 비효율적이다. 그래서 파일 시스템은 빈 블록의 정보를 모아놓은 빈 공간 리스트(free block list)를 사용한다. 빈 공간 리스트는 큐 형태를 하고 있다.

     

    파일을 삭제한다고 해서 파일이 있던 블록의 내용을 바로 지우지는 않는다. 대신 파일 테이블의 헤더만 삭제하고 빈 공간 리스트에 추가한다. 나중에 다른 파일로 덮어씌워질 때까지 블록의 내용이 보존되기 때문에 복구할 수 있다는 장점도 있다.

     

    728x90

    '운영체제' 카테고리의 다른 글

    41. 유닉스 파일의 특징  (0) 2021.09.23
    39. 디렉터리의 구조  (0) 2021.09.23
    38. 파일과 파일 시스템  (0) 2021.09.23
    37. RAID  (0) 2021.09.23
    36. 디스크 스케줄링  (0) 2021.09.23

    댓글