앞에서 말했듯 연결 할당 방법의 변형으로 FAT를 활용하여 이번 과제를 진행한다.
Disk의 가장 앞 부분에는 Boot Sector를 위치시킨다.
그 뒤에 바로 FAT TABLE을 넣어준다.
그 뒤에 바로 Root Dir가 위치하고, 그 뒤부터는 진짜 Data들이 저장되는 Sector가 되는 것이다.
FAT Table에 있는 Cluster와 실제 Sector와의 관계를 잘 생각해봐야 한다. 같은 위치를 가르키게 되면 파일 정보가 자꾸 수정되고 날라가는 것을 경험하게 될 것이다.
이 FAT는 Chain형식(앞에서 설명한 연결)으로 구현이 되어있다. 3-6-8 섹터가 논리적인 순서대로 한 파일을 구성한다고 하면, fat[3]=6, fat[6]=8, fat[8]=EndOfChain 이 되는 것이다.
FAT와 관련하여 만들어야 하는 함수도 fat_get, fat_create_chain 등 꽤 많다..
이 전에는 파일 연장이 불가능한 코드였다. project4에서는 File growth가 가능하도록 짜줘야 한다. inode.c에서 코드들을 많이 수정해야 한다.
기존 project3까지와 다르게 "TO DO" 목록이 아예 없다는 것이 함정이다....