File
운영체제에서는 데이터의 저장 목적으로만 사용하는 것이 아니라 다양한 저장 장치를 file이라는 논리적 단위로 본다.
create, read, write, reposition(lseek), delete, open, close 등의 동작을 수행할 수 있다.
파일의 메타데이터에는 파일 이름, 유형, 저장 위치, 크기, 접근 권한(읽기/쓰기/실행), 시간(생성/변경/사용), 소유자 등이 기록된다.
Directory And Logical Disk
Directory - 파일의 메타데이터 일부(파일 이름, 속성)를 보관하는 특별한 파일
파일 검색/생성/삭제, 디렉토리 목록 확인, 파일 이름 변경, 파일 시스템 탐색 등의 작업 수행
파티션(Partition, 논리 디스크) - 물리적 디스크를 논리적으로 나눈 부분
각 파티션에 파일 시스템을 설치하거나 스왑 공간 등으로 활용
File Protection
누가 어떤 접근(읽기/쓰기/실행)을 허용받을지 결정한다.
Access Control Matrix - 사용자별/파일별 권한 행렬
Access Control List - 파일별 허용 사용자 및 권한 목록
Capability - 사용자별 권한 보유 파일과 권한 표시
그룹화(Grouping) - 사용자(소유자, 그룹, 공용)를 3비트(rwx)로 권한 표현 (예: UNIX → rwx/r--/r--)
비밀번호(Password) - 파일 또는 디렉토리에 비밀번호 설정 (권한별 개별 PW는 관리 어려움)
Access Methods
시스템이 제공하는 파일 정보의 접근 방식을 구분한 것이다.
순차 접근(Sequential Access) - 순차적으로 파일 읽기/쓰기, 오프셋 자동 증가
직접 접근(Direct/Random Access) - 파일 레코드를 임의의 순서로 접근
파일 데이터의 디스크 할당 방식
Contiguous Allocation (연속 할당)
특징: 연속된 블록에 파일 저장
장점: 빠른 I/O, 단일 탐색으로 대량 전송, 직접 접근 가능
단점: 외부 단편화, 파일 크기 증가 어려움, 공간 낭비
Linked Allocation (연결 할당)
특징: 각 블록이 다음 블록 주소를 포함
장점: 외부 단편화 없음
단점: 직접 접근 불가, 포인터 손상 시 데이터 유실, 포인터 공간 차지
변형: FAT(File Allocation Table) — 포인터를 별도 위치에 보관해 신뢰성과 공간 효율 개선
Indexed Allocation (인덱스 할당)
특징: 인덱스 블록에 파일 블록 주소 저장
장점: 외부 단편화 없음, 직접 접근 가능
단점: 작은 파일의 공간 낭비, 큰 파일은 인덱스 블록 부족
해결 방안: Linked index, Multi-level index(계층화)
파일 시스템 구조
Unix File System (UFS)
Boot block: 부팅 정보
Super block: 파일 시스템의 전체 정보
Inode list: 파일 메타데이터(파일 이름 제외)
Data block: 실제 파일 데이터 저장
FAT (File Allocation Table)
구조: Linked Allocation 기반, 포인터는 별도 FAT 테이블에 저장
장점: 신뢰성(복사본 보관), 공간 효율 향상
Root directory: 파일 이름 + 첫 데이터 블록 주소 저장
여유 공간 관리 (Free-Space Management)
Bit Map/Vector
0/1 비트로 블록 상태 저장
장점: 연속된 빈 블록 찾기 쉬움
단점: 비트맵 자체가 공간 차지
Linked List
빈 블록끼리 링크
장점: 공간 낭비 없음
단점: 연속된 큰 공간 찾기 어려움
Grouping
링크 리스트 + 인덱스
첫 블록에 여러 빈 블록 주소 보관 → 마지막 주소는 다음 인덱스 블록
Counting
(첫 빈 블록 주소, 연속된 빈 블록 수)로 저장
연속 할당이 잦은 경우 효율적
디렉토리 구현 (Directory Implementation)
Linear List (선형 리스트)
파일 이름 + 메타데이터 배열
장점: 간단한 구현
단점: 선형 탐색으로 느림
Hash Table
파일 이름 → 해시값으로 빠른 검색
장점: 탐색 시간 단축
단점: 해시 충돌 발생 가능
Long File Name 처리
파일 이름이 고정 크기 초과 시, 추가 부분 포인터로 연결
가상/네트워크 파일 시스템
VFS (Virtual File System)
다양한 파일 시스템에 통합 인터페이스 제공
NFS (Network File System)
네트워크를 통해 원격 파일 공유
캐시 관리
Page Cache
가상 메모리의 페이지 프레임을 캐시처럼 사용
Memory-Mapped I/O: 파일의 일부분을 가상 메모리에 매핑해 I/O 수행
Buffer Cache
디스크 I/O 전후 데이터를 메모리 캐시에 저장
장점: 캐시된 데이터 재사용으로 성능 향상
단점: 캐시 교체 알고리즘 필요
Unified Buffer Cache
최신 OS는 페이지 캐시와 버퍼 캐시를 통합
'운영체제' 카테고리의 다른 글
[운영체제] Quiz (0) | 2025.02.23 |
---|---|
[운영체제] 5주차 Quiz (0) | 2025.02.09 |
[운영체제] Virtual Memory (0) | 2025.02.09 |
[운영체제] Deadlocks (0) | 2025.02.09 |
[운영체제] 3주차 Quiz (0) | 2025.01.26 |