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: 분산 시스템에서는 네트워크를 통해 파일이 공유 가능
'프로그래밍 > CS' 카테고리의 다른 글
프로세스 vs 스레드 차이 (0) | 2023.03.15 |
---|---|
운영체제(11/11) - Disk Management & Scheduling 1, 2 (2) | 2023.02.04 |
운영체제(9/11) - Virtual Memory 1,2 (0) | 2023.02.02 |
운영체제(8/11) - Memory Management 1~4 (2) | 2023.02.01 |
운영체제(7/11) - Deadlock 1,2 (0) | 2023.01.31 |
댓글