<운영체제> File System 2
본 게시물은 영남대학교 곽종욱 교수님의 강의를 기반으로 작성되었습니다.
<File-System Structure>
- File system resides on secondary storage(disks)
- File system의 두가지 역할 = storage management + naming namagement
- storage management => 어디에 파일을 저장하는 기능
- naming management => 이름으로 파일을 찾는 기능
- Input : file name, output : file data
- File system example
- Windows : FAT(file-allocation-table),FAT32,NTFS
- Linux : ext..
- 아래 그림을 보면 MM이 처리속도가 FS보다 느린것을 알 수 있다.
- MM : non-continuos allocation
- FS : continous allcation
- File control block
- storage structure consisting of meta-infomation about a file => 파일 자체에 대한 정보
- Manage meta data of file : File creation time, access time, owner...etc
<File system implementation - FCB>
- Boot Block,Super Block,i-node,Data block
- PCB와 마찬가지로 FCB도 용량이 커서 디스크에서 메모리로 모든 정보를 전송할 경우, 메모리 공간의 overhead가 발생함
- 또한 데이터 수정 시 수정된 사항을 항상 broadcast하는 것도 비효율적
- 그래서 process별로 따로 복사해야할 데이터(자주 숭정되는 부분)와 그렇지 않은 데이터(자주 수정되지 않는 부분)로 나눠 FCB 관리
- We also Split FCB Metadata
- "inode" table : 전체적으로 메모리상에서 하나의 copy가 있는 파일에 대한 대부분의 데이터들(용량과 broadcasting의 문제로 인해)
- "system file table" : 각각의 process들이 개별적으로 지니고 있는 private data(대표적으로 offset)
정리하면 FCB도 두 가지 종류의 Table에 의해서 나눠진 상태로 data들을 process에 전달!
-> 현재 FCB의 구조를 그림으로
-> Kernel이 process에 file을 접근시킬때 동작하는 그림
- 동일한 파일에 다른 Offset값을 가진 경우도 존재(같은 파일에 여려개의 process가 접근)
- Reference counter는 현재 inode, 즉 해당 inode를 가지는 파일에 몇개의 process가 접근하는지를 알려주는 값