File
- 보조 기억 장치에 연관된 정보들의 집합
- 보조 기억 장치 할당의 최소 단위
- sequence of bytes
- 프로그램 파일, 데이터 파일
- text 파일, binary 파일
- 파일 속성 : name, identifier, type, location, size, protection, user identification, time 등등
- 파일 연산 : create, write, reposition, read, delete 등등 수행
⇒ OS는 파일 연산들에 대한 system call을 제공해야 함
파일 접근 방법
- Sequential access : file을 record 단위로 순서대로 접근 (fgetc())
- Directed access : 원하는 block을 직접 접근 (lseek(), seek())
- Indexed access : index를 참조하여, 원하는 block을 찾은 후 데이터에 접근
File System Organization
Partitions
Disk(물리)를 논리적으로 나눈 개념 → mini disk, virtual disk 라고도 함
여러 개의 디스크를 하나로 묶을 수 있음
Directory
파일 분류, 보관하기 위한 개념
마찬가지로 OS에서 연산을 위한 system call을 지원해야 함
Flat Directory Structure
FS 내에 하나의 directory만 존재
⚠️ file name 충돌, 덮어씌워지는 문제, 분류 문제, 다중 사용자 환경에서 문제가 더욱 커짐
2-Level Directory Structure
사용자 마다 하나의 directory 배정
Master Directory, User Directory 두 개의 층
⚠️ 아직도 sub-directory 생성 불가능 → file name 충돌,
⚠️ 사용자 간 파일 공유 불가능 → 공유하고 싶으면 내 directory를 전체를 공개해야 함
Hierarchical/Tree Directory Structure
레벨이 두 개니까 관리하기 힘드네 그럼 늘리면 되지!
Tree 형태의 계층적 directory
사용자가 하부 디렉토리 생성 관리 가능 → system call이 제공되어야 함, *이하 Terminologies 개념 등장
대부분의 OS가 사용
⚠️ 서브디렉토리가 많아지면 복잡해짐, 유저는 루트 디렉토리 데이터를 변경 못함
*Terminologies
Home Directory, Current Directory, Absolute pathname, Relative pathname 등장
Acyclic Graph Directory Structure
Hierarchical 구조의 확장
디렉토리 안에 shared directory, shared file을 담을 수 있다. 유연성, 탐색 쉬움
리눅스의 link 개념을 사용 (바로가기)
사이클이 만들어지는 것을 허용하지 않기 때문에 acyclic
⚠️ 구조가 복잡함, 구현 어려움, 링크를 고려하면서 수정 삭제 해야 함
- hard link
- soft link
General Graph Directory Structure
사이클을 허용~!
⚠️ 파일 탐색 시 무한 루프를 고려해야 함
'컴퓨터공학 > 운영체제' 카테고리의 다른 글
[운영체제] 파일 시스템은 어떻게 구현되어 있는가? (0) | 2023.09.08 |
---|---|
[운영체제] 파일 시스템 보호 (0) | 2023.09.07 |
[운영체제] 페이징 교체 알고리즘 (0) | 2023.05.25 |
[운영체제] 페이징과 외부 단편화, 내부 단편화 (2) | 2023.05.02 |
[운영체제] 교착상태와 은행원 알고리즘 (0) | 2023.05.01 |