파일시스템이란 컴퓨터 사용자의 응용프로그램을 실행함으로써 생성하는 정보를 파일이라는 단위로 저장, 관리하는 운영체제의 서브시스템을 말한다.
즉 사용자와 보조기억장치간의 인터페이스를 제공하는 시스템이다.
파일 시스템의 파일작업은 크게 파일단위 작업과 레코드단위 작업으로 나뉜다.
파일을 관리하기 위한 metadata를 보관하는 파일제어 블록을 말하며,
보조기억장치에 존재하다가 파일이 오픈되면 주기억장치로 이동한다.
파일시스템이 관리하며 사용자가 직접 참조 불가하다는 특징이 있다.
파일마다 독립적으로 가지며 시스템마다 다른 내용을 가진다.
파일 디스크립터의 정보
파일 시스템 내부에 있으며 디스크에 존재하는 파일에 대한 정보를 가지고 잇는 테이블을 말한다.
각 파일의 위치, 크기, 할당방식, 형태, 소유자 등의 정보를 가진다.
모든 파일이 같은 디렉터리에서 관리되는 가장 간단한 구조
모든 파일이 유일한 이름 가져야하며 다수의 사용자가 사용하거나 파일의 수가 증가하면 관리가 어렵다는 단점이 있다.
중앙에 마스터 파일 디렉터리(Master File Directory: MFD)가 있고 그 아래에 각 사용자에게 할당하는 디렉터리가 있는 구조
각 사용자에게 서로 다른 디렉토리를 할당하며 각 사용자는 각자의 디렉터리를 가지므로 다른 사용자와 같은 이름의 파일 소지가 가능하다.
사용자 이름과 파일 이름으로 특정 파일을 명시해야해서 파일 이름이 길다.
각 사용자명 디렉토리가 독립적이므로 파일 공유가 불가능하다.
하나의 루트 디렉터리와 다수의 서브 디렉터리로 구성된다.
서로 다른 디렉터리 내에서는 동일한 이름의 파일이나 디렉터리 생성이 가능하다.
파일 및 디렉터리 탐색은 절대경로, 상대경로를 이용한다.
(절대 경로: 루트 디렉터리를 기준으로 해당 파일이나 종속디렉터리에 이르는 경로)
(상대경로: 현재 디렉터리기준)
디렉터리 생성 및 삭제가 용이하며, Window, unix, dos운영체제에서 사용하는 구조이다.
하위 파일이나 디렉터리의 공유를 허용한다.
단순 트리구조보다 복잡하며 공유된 하나의 파일을 탐색할 경우 다른 경로로 두번이상 찾아갈 수 있어서 시스템 성능 저하될 수 있다.
공유된 파일을 삭제할 경우 파일은 삭제되었지만 포인터는 남아있는 고아포인터가 발생할 수 있다.
트리 구조에 링크를 첨가한 구조이다.
파일이나 디렉터리 공유가 가능하며 그래프 탐색 알고리즘이 간단해서 디렉터리 접근 용이하다.
불필요한 파일제거를 위한 카운터가 필요하며 제거된 파일의 디스크 공간 확보를 위해 쓰레기 수집이 필요하다.
파일에 접근하려면 파일 시스템이 프로세서들에 의해 미리 장착(mount)되어야한다.
사용하고싶은 파일을 소유한 파일 시스템을 특정 디렉터리에 mount하면 그때부터 파일을 사용할 수 있다. 이때 특정한 디렉터리를 mount point라고함.
하나의 디스크에 여러 파일이 저장되며 디스크에서 파일을 배치하는 방법은 다음과 같다.
파일들을 디스크 내의 연속적으로 인접된 공간에 할당
장점
단점
파일을 디스크 블록의 연결 리스트 모양으로 할당
장점
단점