[OS] 파일 시스템
USB 포매팅 예시,
파일 시스템은 포매팅할 때 결정된다.
< 하드 디스크(보조기억장치) 예시 >
네모박스 하나하나는 "블록"을 의미한다.
블록 안에 적힌 번호는 블록의 위치를 식별하는 "주소"이다.
파일을 저장할 때 파일의 크기가 작다면 적은 수의 블록에 걸쳐서 저장된다. 크기가 크다면 여러개의 블록에 걸쳐서 저장된다.
단점1 설명)
임의의 위치에서부터 파일을 읽고 싶을 때 읽어들이는 속도가 상대적으로 느릴 수가 있다.
예를들면 파일 a의 중간부터 읽고싶어도 반드시 첫번째 블록인 10번 블록부터 모든 과정을 차례로 읽어야한다.
파일a의 길이는 4이지만, 길이가 큰 파일의 경우 처음부터 모든 과정을 순차적으로 읽는다면 속도가 더욱 느려져 성능면에서 비효율적이다.
단점2 설명)
하드웨어 고장이나 오류가 발생하면 어떤 해당 블록 이후부터의 블록은 접근할 수 가 없다. 모든 파일들이 빨랫줄처럼 연결리스트 형태로 이루어져있다보니 하나의 블록만 고장이 나도 다음 블록이 어디 있는지를 알 수가 없기 때문에 어디로 접근해야하는지 알 길이 없다.
기존의 연결할당 방식의 단점을 FAT 각 블록이 포함된 다음 블록주소를 한대 모은 표로서 관리함으로써 이러한 단점들을 상당 부분 보완한 오늘날까지도 많이 사용되는 파일 시스템이 FAT 파일 시스템이다.
옛날 마이크로소프트 운영체제인 MS-DOS에서 사용되었고 최근까지도 각종 USB메모리나 SD카드처럼 저장장치용 파일 시스템으로 많이 사용되고 있다. 버전에 따라 FAT-12, FAT-16, FAT-32 이런 식로 버전이 달라지게 된다. 12,16,32 라는 숫자는 블록을 표현하는 비트수를 의미한다.
FAT 파일 시스템에서는 이 FAT 데이터 자체가 메모리에 캐시될 수가 있기 때문에 FAT가 만약 보조기억장치가 아니라 메모리에 일부 있을 수 있다면 당연히 FAT를 확인하기 위해서 굳이 보조기억장치까지 뒤적거릴 필요가 없다. 그렇기 때문에 이 FAT 자체가 메모리에 캐시될 경우에는 "임의 접근 속도" 또한 개선이 될 수 있다.