조성호 님의 "쉽게 배우는 운영체제" 책을 정리한 포스팅 입니다
1. 파일
- 논리적인 데이터 집합
- 여러 개의 블록으로 구성됨
- 제 2 저장장치에 저장됨
종류
실행 파일
- 직접 실행될 수 있는 프로그램 코드가 포함된 파일
- 프로세스 생성 및 메모리 로드를 거쳐 실행됨
- 유닉스에서는 접근 권한으로 실행 파 여부가 결정됨 (확장자로 구분 X )
데이터 파일
- 실행 파일이 작업하는데 필요한 데이터를 모아놓은 파일
- 연결 프로그램
- 해당 파일을 실행하면 적절한 실행 파일을 통해 자동으로 실행됨
- 고유 헤더
- 해당 파일이 어떤 형식인지
- 어떤 프로그램으로 열어야 하는지
- 파일을 복구하는데 유용하게 사용됨
이진 파일
- 이진 형식으로 인코딩된 데이터
- 텍스트 뿐만 아니라 이미지, 오디오, 비디오 등의 다양한 데이터가 포함될 수 있음
- 컴퓨터가 데이터를 효율적으로 저장하고 처리하기 위해 사용됨
- 포맷 정보를 가질 수 있음 (글꼴, 스타일 등)
텍스트 파일
- 사람이 읽을 수 있는 문자로 구성된 파일
속성
파일 헤더
- 구성
- 첫 블록 주소
- 속성: name, type, size, time, location, accessibility, owner
- 파일 테이블에서 관리됨
구조
순차 파일 구조
- 기본 구조
- 저장 공간에 낭비되는 부분 X
- 수정 및 삽입 작업 시 비용이 많이 듬
- 특정 데이터로 이동 시 직접 접근 불가
인덱스 파일 구조
- 순차 파일 구조에 인덱스 테이블을 추가
- 플로피 디스크, CD-ROM, HDD
직접 파일 구조
- 데이터의 특정 값에 어떤 관계를 정의하여 물리주소로 바로 변환하는 파일 구조
- 접근이 매우 빠름
- 해시 함수
파일 디스크립터
파일 식별자
- 프로세스의 파일 접근에 사용됨
- 프로세스마다 파일 디스크립터 테이블을 가지고 있음
open()
- 시스템 콜을 호출하여 파일 디스크립터를 리턴받음
- 파일 관리자로부터 부여받음
2. 파일 시스템
- 파일을 어떻게 읽고, 쓰고, 관리할 지에 대한 규칙
- 파티션 당 하나씩 존재
목적
- 사용자로부터 파일 보호
- 공간을 효율적으로 사용
기능
- 구성: 파일 or 디렉토리
- 관리: 생성, 수정, 삭제,
- 접근: 접근 권한, 프록시 역할
- 무결성 보장: 파일 내용이 손상되지 않도록 보장
- 백업 및 복구
- 암호화
파일 테이블
- 해당 파일이 시작하는 블록 주소를 가짐
블록
- 일정한 크기의 데이터 단위
- 파일은 블록 단위로 나뉘어 저장됨
Unit
- Memory: byte
- HDD: Cluster
- File System: 4KB (ext4, NTFS)
파티션
클러스터 단위
- 연속된 섹터 묶음
- 섹터 번호를 기준으로 나뉨 (lba 기준)
독립적
- 디스크를 여러 파티션들로 나눌 수 있음
- 한 파티션당 하나의 파일 시스템만 사용 가능
- 사용자별 파티션 부여 가능
구성
- Boot Block: 부트스트랩 코드 보관 (OS를 부팅하거나 초기화하기 위한 코드)
- Super Block: 파일 시스템 정보 보관
- i-list (inode list)
- inode: 파일 or 디렉토리에 대한 메타데이터
- inode number, size, owner, mode, timestamp, hard link count
- data block pointers
- direct: 데이터 블록 포인터
- indirect: 데이터 블록 번호를 저장한 데이터 블록의 포인터들 (single, double, triple)
- inode: 파일 or 디렉토리에 대한 메타데이터
- directory blocks and data blocks
볼륨
- 여러 섹터나 클러스터들로 이루어진 집합
- 파티션과 달리, 물리적으로 연속되지 않아도 됨
- 논리적으로 하나의 단위처럼 동작
3. 디렉토리
- 관련있는 파일을 하나로 모은 것
헤더
- 디렉터리 이름, 만든 시간, 접근 권한, 블록 위치
구조
- 트리 구조
마운트
- 여러 개의 파티션을 하나의 파티션으로 통합하는 명령
mounting point
- 파티션끼리 연결된 지점
- 외부 저장장치도 파티션에 붙이고 해제할 수 있음
- /dev: 외부 저장장치가 마운트된 디렉토리
4. 디스크 파일 할당
연속 할당
- 블록을 물리적으로 연속적으로 배열하는 방식
- 실제로는 쓰이지 않음 (낭비 심함)
불연속 할당
- 비어있는 블록에 데이터를 분산하여 저장
- 파일 시스템이 블록의 할당을 관리함
연결 할당
- 파일에 속한 데이터를 연결 리스트로 관리
- FAT
- 파티션 전체 블록을 가진 테이블
- 하나의 파티션이 사용할 수 있는 디스크 용량이 테이블의 주소 크기로 제한됨
인덱스 할당
- 데이터의 인덱스를 담고 있는 인덱스 블록을 연결
- 테이블이 포화될 경우, 간접 인덱스 블록을 사용
빈 공간 관리
- 빈 블록의 정보만 모아놓는 빈 공간 리스트를 유지하여 관리
'OS' 카테고리의 다른 글
[쉽게 배우는 운영체제] 10. 입출력 시스템과 저장장치 (1) | 2024.12.13 |
---|---|
[쉽게 배우는 운영체제] 9. 가상 메모리 관리 (0) | 2024.12.13 |
[쉽게 배우는 운영체제] 8. 가상 메모리의 기초 (0) | 2024.12.12 |
[쉽게 배우는 운영체제] 7. 물리 메모리 관리 (0) | 2024.12.12 |
[쉽게 배우는 운영체제] 6. 교착상태 (1) | 2024.12.12 |