본문 바로가기
프로그래밍/CS

운영체제(10/11) - File Systems

by 숙님 2023. 2. 3.
728x90

file 

-  운영체제는 다양한 저장 장치를 file이라는 논리적 단위로 나눔 

- 일반적으로 비휘발성의 보조기억장치에 저장 

- 연산: create, read, write, reposition, delete, open, close 등

 

file system 

- 운영체제에서 파일 관리하는 부분 

- 파일 및 파일의 메타데이터, 디렉토리 정보 등을 관리

 

Directory 

- 파일의 메타데이터 중 일부를 보관하고 있는 특별한 파일 

 

file protection 

- 각 파일에 대해 누구에게 어떤 유형의 접근을 허락할 것인가 고민 

- access control 방법(3가지)

- 일반적으로는 grouping을 사용 

 

access methods 

- 시스템이 제공하는 파일 정보의 접근 방식 

- 순차 접근: 카세트 테이프를 사용하는 방식처럼 접근, 다시 들으려면 되감아야 함 

- 직접 접근: lp레코드판 같이 접근, 임의의 순서로 직접 접근 가능 

 

Allocation of file data in disk 

- contiguous allocation(연속할당)

장점: 빠른 i/o가능(많은 양의 데이터를 받아올 수 있음), 직접 접근이 가능 

단점: file grow가 어려움, external fragmentation 발생 

- linked allocation(연결 할당): 시작 위치만 갖고 나머지는 기록함 

장점: external fragmentation 발생 안함

단점: 직접 접근이 안됨(순차 접근만 가능), 한 섹터가 고장나 포인터가 유실되면 공간 효율성 떨어짐 

- indexed allocation(색인 할당)

장점: external fragmentation 발생 안함, 직접 접근 가능 

단점: 파일이 작으면 공간 낭비(실제로 많은 file들이 작음)

 

uix 파일시스템의 구조 

- inode가 핵심임 

 

fat file system 

- linked allocation의 단점을 모두 극복한 개선안 

 

free-space management

- bit map or bit vector: 부가적인 공간을 필요로 함, 연속적인 n개의 free block을 찾는데 효과적 

- linked list: 모든 free block을 링크로 연결, 공간의 낭비가 없음 

- grouping:  liked list 방법의 변형, 첫번째 free block이 n개의 pointer를 가짐  

- counting: 프로그램들이 종종 여러 개의 연속적인 block을 할당하고 반납한다는 성질에 착안 

 

directory implementation 

- linear list: <file name, file의 메타데이터>의 list, 구현이 간단 

- hash table: linear list+hashing, serch time을 없앰 

 

vfs and nfs 

- virtual file system: 서로 다른 파일 시스템에 대해 동일 시스템 콜 인터페이스로 접근할 수 있게 해주는 os의 layer 

- network file system: 분산 시스템에서는 네트워크를 통해 파일이 공유 가능 

 

댓글