File Systems
File and File System
File
- A named collection of related information
- 일반적으로 비휘발성 보조 기억장치(영구 기억 장치)에 저장
- OS는 다양한 저장 장치를 file이라는 동일한 논리적 단위로 볼 수 있ㄱ 해 줌
File attribute(metadata)
- 파일 자체의 내용이 아니라 파일을 관리하기 위한 각종 정보들
File system
- OS에서 파일을 관리하는 부분 - 파일, 파일의 메타데이터, 디렉토리 정보 등 관리
- 파일의 저장 방법 결정, 파일 보호
Directory
- 파일과 다른 디렉토리를 포함하는 특별한 종류의 파일
- 파일의 메타데이터 중 일부를 보관하고 있는 일종의 특별한 파일
Partition (Logical Disk)
- 하나의 (물리적) 디스크 안에 여러 파티션을 두는 게 일반적
- 여러 개의 물리적 디스크를 하나의 파티션으로 구성하기도 함 (RAID)
- 물리적 디스크를 파티션으로 구성한 뒤 각각의 파티션에 file system을 깔거나 swapping 등 다른 용도로 사용할 수 있음
open() 연산
open()
- retrieve metadata from disk to main memory
- searching directory path: 루트 디렉토리부터 시작
- 많은 시간 소요 -> open을 read/write와 별도의 명령어로 두는 이유
- 한 번 open한 파일은 read/write 작업 시 directory search 불필요
- Open file table: 현재 open된 파일들의 메타데이터 보관소 (in memory)
- 메타데이터 + open한 프로세스의 수, file offset(파일의 어떤 위치로 접근 중인지 표시)
- system-wide open file table
- File descriptor(file handle, file control block): Open file tabled에 대한 위치 정보(프로세스 별)
- per-process file descriptor table
File Protection
File Protection: Access Control
- Access control Matrix
- Access control list: 파일 별로 누구에게 어떤 접근 권한이 있는 지 표시
- Capability: 사용자 별로 자신이 접근 권한을 가진 파일 및 해당 권한 표시 (rwx)
- Grouping - Linux에서 사용하는 방식
- 전체 user를 owner, group, public 세 그룹으로 구분
- 각 파일에 대해 세 그룹의 접근 권한(rwx)을 각각 3 bit씩 표시
- ex. rwxr--r-- (owner/group/other)
- Password
- 파일마다 password를 두는 방법(디렉토리 파일에 두는 방법도 가능)
- 모든 접근 권한에 대해 하나의 password를 설정하면 -> all-or-nothing
- 암기 문제, 관리 문제
File System Mounting
다른 파티션에 설치되어 있는 파일 시스템을 접근할 때
- 루트 파일 시스템의 특정 디렉토리 이름에 또 다른 파티션에 있는 파일 시스템을 mounting
Access Methods
Sequential access(순차 접근)
- read, write 연산 수행하면 offset이 자동으로 증가 -> 시간이 오래 걸린다는 단점
Direct Access(직접 접근, random access)
- 파일을 구성하는 레코드를 임의의 순서로 접근 가능
- HDD, SSD, DRAM
'CS > 운영체제' 카테고리의 다른 글
11. Disk Management and Scheduling (0) | 2023.12.22 |
---|---|
10. File System Implementation (1) | 2023.12.19 |
08. Virtual Memory (1) | 2023.11.30 |
07. Memory Management (0) | 2023.11.25 |
06. Deadlocks (1) | 2023.11.21 |