CONCEPT/OS

[OS] 파일 시스템

1005 2025. 3. 20. 20:49

 

파티션: 구분된 영역 하나하나를 의미함.
윈도우 예시

 

 

 

USB 포매팅 예시,

파일 시스템은 포매팅할 때 결정된다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


하드 디스크의 가장 작은 저장 단위는 섹터이지만 보통 블록 단위로 읽고 쓴다.

 

 

 

 

< 하드 디스크(보조기억장치) 예시 >

 

네모박스 하나하나는 "블록"을 의미한다.

블록 안에 적힌 번호는 블록의 위치를 식별하는 "주소"이다.

 

파일을 저장할 때 파일의 크기가 작다면 적은 수의 블록에 걸쳐서 저장된다. 크기가 크다면 여러개의 블록에 걸쳐서 저장된다.

 

 

 

 

오늘날 사용되는 방식은 불연속 할당

 

 

 

연속할당은 외부 단편화 때문에 최근에 많이 사용하지 않는다.

 

단점1 설명)

임의의 위치에서부터 파일을 읽고 싶을 때 읽어들이는 속도가 상대적으로 느릴 수가 있다.

예를들면 파일 a의 중간부터 읽고싶어도 반드시 첫번째 블록인 10번 블록부터 모든 과정을 차례로 읽어야한다.

파일a의 길이는 4이지만, 길이가 큰 파일의 경우 처음부터 모든 과정을 순차적으로 읽는다면 속도가 더욱 느려져 성능면에서 비효율적이다.

 

단점2 설명)

하드웨어 고장이나 오류가 발생하면 어떤 해당 블록 이후부터의 블록은 접근할 수 가 없다. 모든 파일들이 빨랫줄처럼 연결리스트 형태로 이루어져있다보니 하나의 블록만 고장이 나도 다음 블록이 어디 있는지를 알 수가 없기 때문에 어디로 접근해야하는지 알 길이 없다. 

 


불연속 할당기법 중 연결 할당 기반의 파일 시스템임.

 

FAT 파일 시스템(FAT-12)의 파티션을 도식화한 예시: 하드 디스크의 어떤 파티션을 FAT 파일 시스템으로 포맷하면 위와 같은 형식으로 구성된다.

 

기존의 연결할당 방식의 단점을 FAT 각 블록이 포함된 다음 블록주소를 한대 모은 표로서 관리함으로써 이러한 단점들을 상당 부분 보완한 오늘날까지도 많이 사용되는 파일 시스템이 FAT 파일 시스템이다.

옛날 마이크로소프트 운영체제인 MS-DOS에서 사용되었고 최근까지도 각종 USB메모리나 SD카드처럼 저장장치용 파일 시스템으로 많이 사용되고 있다. 버전에 따라 FAT-12, FAT-16, FAT-32 이런 식로 버전이 달라지게 된다. 12,16,32 라는 숫자는 블록을 표현하는 비트수를 의미한다.

 

FAT 파일 시스템에서는 이 FAT 데이터 자체가 메모리에 캐시될 수가 있기 때문에 FAT가 만약 보조기억장치가 아니라 메모리에 일부 있을 수 있다면 당연히 FAT를 확인하기 위해서 굳이 보조기억장치까지 뒤적거릴 필요가 없다. 그렇기 때문에 이 FAT 자체가 메모리에 캐시될 경우에는 "임의 접근 속도" 또한 개선이 될 수 있다.

 

-1 : 더 이상 읽을 블록이 없다는 의미

 

삼중 간접 블록까지 가면 웬만한 크기의 데이터를 다 저장할 수 있음.

 

유닉스 파일 시스템에서는 inode만 알아도 이 파일의 속성, 이 파일이 저장된 위치들까지 전부 다 파일의 크기가 아무리 커도 알 수가 있다. 따라서 유닉스 파일 시스템에서는 inode가 파일 관리의 중추적인 핵심이 된다. 사실상 inode는 파일 이름 빼고 모든 것을 가지고 있다고 보면 된다.