파일 시스템
- 파일시스템
- 대신 파일을 보관하고 관리하는 파일 관리자를 두어 저장장치의 전체 관리를 맡기는 시스템
- 파일 시스템에서 파일 관리자는 사용자의 요청에 따라 파일을 저장하거나 파일의 내용을 읽어온다.
- 파일 관리자
- 사용자가 직접 파일을 보관하거나 접근하지 못하도록 하고 대신해준다
- 파일 디스럽터
- 파일 접근 권한
파일 시스템의 기능
- 파일을 생성
- 디렉터리 구조를 제공
- 파일 이름과 확장자를 만들어 관리
블록과 파일 테이블
- 데이터는 운영체제와 저장장치 간에 블록 단위로 전송된다.
- 블록
- 저장장치에서 사용하는 가장 작은 단위
- 한 블록에 주소 하나가 할당
- 메모리는 바이트 단위로 저장
- 하드디스크의 물리적인 구조상 가장 작은 저장 단위는 섹터
- 섹터마다 주소를 부여하면 너무 많은 양의 주소가 필요하기에 섹터를 묶어 하나의 블록으로 만들고, 블록 하나에 주소 하나를 배정한다.
- 블록의 크기는 시스템마다 다르기 때문에 크기가 큰 파일을 많이 사용할 때는 블록 크기를 크게 잡는 것이 좋다.
파일 분류와 확장자
- 파일
- 논리적인 데이터의 집합
- 0과 1의 비트 패턴
- 운영체제 입장
- 실행 파일
- 운영체제가 메모리로 가져와 CPU를 이용하여 작업을 하는 파일
- 데이터 파일
- 실행 파일이 작업하는 데 필요한 데이터를 모아놓은 파일
- 실행 파일
- 파일을 구분하기 위해 모든 파일은 각각 고유한 헤더를 가지고 있고, 파일의 성격을 알기 위해 확장자를 붙인다.
파일 이름과 연결 프로그램
- 대부분의 파일 이름은 '파일 이름.확장자'의 형태로 구성된다.
- 확장자를 바꾼다고 해서 파일 내용이 바뀌지는 않는다.
파일 속성
- 파일 속성은 각 파일 헤더에 기록되며,
- 운영체제는 이러한 파일 헤더를 파일 테이블에서 관리한다.
- 파일 헤더
- 파일 테이블에서 관리하며 일반적인 내용이 담겨있다.
- 고유 헤더
- 파일의 버전 번호, 크기 등 응용 프로그램이 필요로 하는 정보가 담겨 있다.
파일 구조
순차 파일 구조
- 일반 파일은 기본적으로 순차 파일 구조
- 순차 파일 구조는 파일 내용이 하나의 긴 줄로 늘어선 형태
- 파일을 작업할 때, 앞에서부터 뒤까지 순차적인 접근만 가능하다.
- 장점
- 순서대로 기록되기 때문에, 공간 낭비가 없고 구조가 단순하다. 따라서 순서대로 읽거나 저장할 때 빠르다.
- 단점
- 새로운 데이터를 삽입하거나, 삭제할 때 시간이 많이 소요되고 특정 데이터로 직접 접근이 어렵다.
인덱스 파일 구조
- 순차 파일 구조의 단점을 해결한 파일 구조
- 순차 파일 구조에 인덱스 테이블을 추가하여 순차 접근과 직접 접근이 가능하다.
- 음악 CD가 대표적인 예이다.
직접 파일 구조
- 저장하려는 데이터의 특정 값에 어떤 관계를 정의하여 물리적인 주소로 바로 변환하는 파일 구조
- 해시 테이블이 대표적인 예이다.
- 데이터 접근이 매우 빠르지만 해시 함수의 선정이 매우 중요하다.
디렉터리
- 관련 있는 파일을 하나로 모아놓은 곳
- 디렉터리도 파일이다.
- 따라서 디렉터리도 일반 파일과 마찬가지로 헤더를 가진다.
경로
- 파일이 전체 디렉터리 중 어디에 있는지를 나타내는 정보
- 서로 다른 디렉터리에는 같은 이름의 파일이 존재할 수도 있다.
- 절대 경로
- 루트 디렉터리를 기준으로 파일의 위치를 나타내는 방식
- 상대 경로
- 현재 있는 위치를 기준으로 파일의 위치를 나타내는 방식
디렉터리 구조
- 1단계 디렉터리 구조
- 매우 단순하지만 파일이 많아지면 불편하다.
- 다단계 디렉터리 구조 = 트리 디렉터리 구조
- 디렉터리 속에 디렉터리가 존재하는 구조이다.
마운트
- 파티션은 논리적인 디스크 분할로, 하나 또는 여러 개의 디스크를 파티션으로 나누어 사용할 수 있다.
- 이러한 파티션이 여러 개 있을 때 통합하는 명령어가 바로 마운트이다.
디스크 파일 할당
- 연속 할당
- 파일을 구성하는 데이터를 디스크 상에 연속으로 배열하는 간단한 방식
- 그렇지만 디스크에 남은 공간 중 파일의 크기와 맞는 연속된 공간이 없을 때는 연속 할당이 불가능하다.
- 불연속 할당
- 비어 있는 블록에 데이터를 분산하여 저장하고 이에 관한 정보를 파일 시스템이 관리하는 방식
- 대표적인 불연속 할당 방식으로는 연결 리스트를 이용한 연결 할당과 인덱스를 이용한 인덱스 할당이 있다.
연결 할당
- 파일에 속한 데이터를 연결 리스트로 관리하는 방식으로 체인 할당이라고도 한다.
- 테이블 형태로 관리 (FAT)
- 파일 테이블에는 시작 블록에 대한 정보만 저장
인덱스 할당
- FAT의 최대 할당 크기 제한의 문제를 해결하기 위해 인덱스 할당 방식 사용
- 데이터의 인덱스를 담고 있는 인덱스 블록을 연결
- 인덱스 블록은 실제 데이터의 위치에 관한 정보를 순서대로 보관
디스크의 빈 공간 정리
- 디스크 블록의 크기에 따라 낭비되는 공간이 생길 수도 있다. 낭비되는 공간을 내부 단편화
- 내부 단편화 때문에 실제 전체 파일 크기보다 디스크에 할당된 파일의 크기가 더 커진다.
- 이러한 현상을 해결하기 위해 빈 블록의 정보만 모아놓은 빈 공간 리스트를 사용해 빈 공간을 최소화한다.
'CS > 운영체제' 카테고리의 다른 글
[운영체제] 분산 시스템 (0) | 2024.03.26 |
---|---|
[운영체제] 입출력 장치 / 디스크 / 스케줄링 / RAID (0) | 2024.03.26 |
[운영체제] 가상 메모리 관리 / 페이지 교체 알고리즘 / 스레싱 / 프레임 (0) | 2024.03.26 |
[운영체제] 가상 메모리 / 페이징 / 세그먼테이션 (0) | 2024.03.26 |
[운영체제] 물리 메모리 관리 (0) | 2024.03.26 |