Notice
Recent Posts
Recent Comments
Link
어떻게 하면 잘 정리했다고 소문이 날까...
[OS 9-1편] File System 본문
OS 9편은 두 개로 나누어 정리합니다.
1. File and File System
2. Directory and Logical Disk(=Partition)
3. File Open
4. File Protection
5. File Access Method
6. Allocation of File in Disk
7. Structure of File System
8. Free-Space Management
9. Directory Implementation
10. VFS and NFS
11. Page Cache and Buffer Cache
OS 9-1편에서는 11개의 내용 중 1부터 6까지 정리하고 나머지는 OS 9-2편에 정리하도록 하겠습니다.
✔️ File and File System
- File
- a named collection of related information.
- 일반적으로 비휘발성 보조기억장치에 저장.
- OS는 다양한 저장장치를 파일이라는 논리적 단위로 불 수 있게 함.
- Operation: read, write, open, close, seek, delete, create
- Metadata
- 파일 자체의 내용이 아니라 파일을 관리하기 위한 각종 정보들.
- 파일 이름, 유형, 저장 위치, 파일 사이즈.
- 접근 권한(파일 읽기, 쓰기, 실행), 시간 (생성, 변경, 사용), 소유자
- File System
- 운영체제에서 SW적으로 파일을 관리하는 부분.
- 파일 및 파일의 메타 데이터, 디렉토리 정보 등을 관리.
- 파일 저장 방법 결정.
- 파일 보호 등.
✔️ Directory and Logical Disk (= Partition)
- Directory
- 파일의 메타 데이터 중 일부를 보관하고 있는 일종의 특별한 파일.
- 해당 디렉토리 하위에 있는 파일의 이름 및 메타 데이터 정보를 가짐.
- Operation: search, create, delete, list, rename, traverse
- Partition (= Logical Disk)
- 하나의 물리적 디스크 안에 여러 개의 파티션을 두는 게 일반적이다.
- 여러 개의 물리 디스크로 하나의 파티션을 구성하기도 함.
- 물리적 디스크를 파티션으로 구성한 뒤, 각각 파티션에 (1) 파일 시스템 설치 혹은 (2) Swapping Area 등 다른 용도로 사용 가능.
- OS가 바라보는 것은 논리적인 디스크인 파티션.
✔️ File Open
- 디스크로부터 파일 C의 메타데이터를 메모리로 가지고 옴.
- Directory Path Search
- 1. root 디렉토리로 부터 파일 A의 위치 획득.
- 2. 파일 A를 오픈하고 파일 B의 위치 획득.
- 3. 파일 B를 오픈하고 파일 C의 위치 획득.
- 4. 파일 C 오픈.
- Directory Path Search에 많은 시간이 소요.
- open을 read/write와 별개로 두는 이유.
- 한번 open한 파일은 read/write 시에 디렉토리 search 불필요.
- Open File Table
- 현재 open된 파일들의 메타데이터 보관소. (In memory)
- 디스크의 메타 데이터보다 몇 가지 정보 추가.
- open한 프로세스의 수
- file offest: 파일의 어느 위치에 접근 중인지 표시.
- File Descriptor
- 프로세스 별 open file table에 대한 위치 정보.
- 프로세스에서 특정 파일에 접근할 때 사용하는 추상적인 값.
✔️ File Protection
- 각 파일에 대해 누구에게 어떤 접근을 허용할 것인가?
- Access Control
- Access Control Matrix
- ACL(Access Control List): 파일 기준으로 누구에게 어떤 권한이 있는 지 표시.
- Capacity: 사용자 기준으로 접근 권한을 가진 파일 및 해당 권한 표시.
- Grouping (실제 OS가 사용하는 방법)
- 전체 user를 owner, group, public의 그룹을 구분.
- 각 파일에 대해 3그룹들의 접근 권한을 3비트로 표현. (rwx)
- Password
- 파일마다 password를 두는 방법. (디렉토리도 가능)
- 모든 접근 권한에 대해 하나의 password: all or nothing
- 접근 권한 별 password 암기 및 관리 문제.
- Access Control Matrix
✔️ File Access Method
- 시스템이 제공하는 파일 접근 방식.
- 순차 접근 (Sequential Access)
- 카세트 테이프와 같이 접근.
- 읽거나 쓰면 offset이 자동적으로 증가.
- 직접 접근 (Direct, Random Access)
- LP 레코드 판과 같이 접근.
- 파일을 구성하는 레코드를 임의 순서로 접근 할 수 있음.
- (1) read(id, &buf, from, rwbytes) 방식과 (2) read(id, &buf, rwbytes) 방식
- (1) from을 받아서 해당 위치에서부터 데이터 접근. 즉, offset의 위치를 매개변수로 받음.
- (2) 눈에 보이지 않는 offset이 파일마다 존재해 해당 offset부터 접근.
✔️ Allocation of File Data in Disk
- 디스크에 파일 저장하는 방법.
- 직접 접근(Direct Access)이더라도 관리 방식에 따라 순차 접근이 가능.
- 연속 할당, 연결 할당, 인덱스 할당.
- Contiguous Allocation
- 장점
- Fast I/O
- 한 번의 Seek/Rotation으로 많은 바이트 Transfer.
- Realtime 파일 용/ 이미 실행 중인 프로세스의 Swapping Area 용.
- Direct Access 가능.
- 단점
- external fragmentation
- file grow가 어려움. (파일 크기 키우는 것이 제약)
- Linked Allocation
- 파일의 시작 위치만 저장하고 해당 위치에 가면 다음 블록의 포인터가 존재함.
- 장점
- External Fragmentation이 없음.
- 단점
- No Random Access.
- Reliability 문제.
- 한 섹터가 고장나서 포인터가 유실되면 많은 부분을 잃어버림.
- Pointer를 저장하기 위한 공간이 Block의 일부 공간이므로 효율성이 떨어짐.
- 변형
- FAT(File Allocation TAble) File System
- 포인터를 별도 위치에 두어 Reliability와 공간 효율성 문제 해결.
- FAT(File Allocation TAble) File System
- Indexed Allocation
- 하나의 블록(=index block)에 인덱스 저장해두기.
- 장점
- External Fragmentation이 없음.
- Random Access 가능.
- 단점
- small file의 경우, 공간 낭비(실제로 많은 파일이 small)
- Too Large file의 경우, 하나의 블록으로는 해결이 안됨.
'CS 지식 > OS(운영체제)' 카테고리의 다른 글
[OS 10편] Disk Management (0) | 2023.08.01 |
---|---|
[OS 9-2편] File System (0) | 2023.07.25 |
[OS 8편] Virtual Memory (0) | 2023.07.13 |
[OS 7편] Memory Management (0) | 2023.07.07 |
[OS 6-2편] Process Synchronization (0) | 2023.06.02 |