3 min read

<운영체제> File System 2

<운영체제> 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
MainMemory-System vs FileSystem

<File system implementation - FCB>

  • Boot Block,Super Block,i-node,Data block
Kernel Data Structure for File
  • PCB와 마찬가지로 FCB도 용량이 커서 디스크에서 메모리로 모든 정보를 전송할 경우, 메모리 공간의 overhead가 발생함
  • 또한 데이터 수정 시 수정된 사항을 항상 broadcast하는 것도 비효율적
  • 그래서 process별로 따로 복사해야할 데이터(자주 숭정되는 부분)와 그렇지 않은 데이터(자주 수정되지 않는 부분)로 나눠 FCB 관리
    fcb1
    fcb2
    fcb3
    fcb4
    fcb5
    fcb6
  • We also Split FCB Metadata
    • "inode" table : 전체적으로 메모리상에서 하나의 copy가 있는 파일에 대한 대부분의 데이터들(용량과 broadcasting의 문제로 인해)
    • "system file table" : 각각의 process들이 개별적으로 지니고 있는 private data(대표적으로 offset)
I-Node table and System file table

정리하면  FCB도 두 가지 종류의 Table에 의해서 나눠진 상태로 data들을  process에 전달!

Fcb-------
-> 현재 FCB의 구조를 그림으로
kernel-file-access
-> Kernel이 process에 file을 접근시킬때 동작하는 그림

  • 동일한 파일에 다른 Offset값을 가진 경우도 존재(같은 파일에 여려개의 process가 접근)
  • Reference counter는 현재 inode, 즉 해당 inode를 가지는 파일에 몇개의 process가 접근하는지를 알려주는 값