본문 바로가기
학교 강의/운영체제

파일 시스템

by hoshi03 2024. 7. 28.

• 파일

보조장치에 의미 있고 관련 있는 정보를 모아둔 논리적 단위

파일은 이름, 파일 실행 정보, 메타데이터(속성)로 이루어진다

 

• 파일 속성

파일 시스템은 파일별로 아래와 같은 속성을 유지하고 관리한다

-유형 (확장자로 구분되는 파일 유형)

-크기

-보호

-생성 날짜

-마지막 접근 날짜

-마지막 수정 날짜

-생성자

-소유자

-위치

 

파일 연산은 운영체제에 의해 시스템 호출이 되서 아루어진다

 

• 디렉터리

 

디렉터리 = 폴더 파일을 관리하기 위해서 사용

옛날옛적에는 OS에 하나의 디렉터리만 존재하는 1단계 디렉터리 구조였고

1단계 디렉터리로는 파일을 관리하기 어려워서 트리 구조 디렉터리가 되었다

 

• 절대 경로

같은 디렉터리에는 동일한 이름의 파일이 존재할 수 없지만, 서로 다른 디렉터리에서는 있을 수 있다

루트 디렉터리부터 자기까지 오는 경로가 각 파일마다 다르기 때문에 이름이 같아도 공존하는 것이 가능하다

각 파일은 루트에서 자기 자신가지 이르는 고유한 절대 경로를 가지고 있다.

 

• 상대 경로

현재 디렉터리부터 시작하는 경로

 

• 디렉터리 엔트리

파일과 디렉터리는 다른 유형이 아닌 동일한 유형이다

디렉터리는 일반 파일보다 조금 더 정보가 담긴 파일이다, 디렉터리는 담겨 있는 대상들에 대한 정보를 담고 있는 파일이다

디렉터리의 정보는 테이블 형태로 구성되어서 보조기억장치에 저장된다

엔트리에는 디렉터리에 포함된 대상의 이름과, 대상의 위치를 유추할 수 있는 정보가 담긴다

 

• 파티셔닝 : 보조기억장치를 논리적인 단위로 나누는 것

•포매팅 : 어떤 파일 시스템을 사용할지 결정하고 새로운 데이터를 쓸 준비를 하는 작업

 

• 파일 할당 방법

OS는 파일과 디렉터리를 블록 단위로 읽고 쓴다

가장 작은 저장장치 단위는 섹터이지만, OS는 하나 이상의 섹터를 블록이라는 단위로 묶은 뒤 블록 단위로 파일과 디렉터리를 관리한다

 

• 연속 할당 

보조기억장치 내 연속적인 블록에 파일을 할당한다

파일의 첫 블록의 주소와 블록 단위의 길이를 알면 할당할 수 있기에

디렉터리 엔트리에 파일 이름, 첫 블록 주소, 블록 단위 길이가 들어간다

 

연속 할당 단점 : 연속 할당은 구현이 간단하지만 외부 단편화가 생기는 문제점이 있다

 

• 연결 할당

연속 할당의 외부 단편화 문제를 해결하기 위해 연결 리스트로 데이터를 관리하는 방법이다

연결 할당은 각 블록의 일부에 다음 블록의 주소를 저장해서 각 블록이 다음 블록을 가리키게 한다.

 

연결 할당 단점 : 반드시 첫 블록 부터 차례대로 읽고, 특정 블록에서 문제가 발생하면 그 블록 이후에는 접근할 수 없다

 

• FAT 파일 시스템

연결 할당의 단점을 보완한 파일 시스템, USB, SD카드 등의 저용량 저장 장치에서 사용된다

 

각 블록의 포함된 다음 블록의 주소를 모아서 테이블 형태로 관리, 이 테이블을 FAT라고 부른다

디렉터리 엔트리에는 파일 이름과 첫 블록 주소가 들어간다

FAT는 파티션의 앞 부분에 만들어진다

 

• 색인 할당

색인 할당은 파일의 모든 블록 주소를 색인 블록에 모아서 관리하고

파일에 접근하고 싶으면 색인 블록에 저장된 주소에 차례대로 접근하는 방식이다

파일의 I번째 데이터 블록의 접근하고 싶으면 색인의 I번째 항목에 접근하면 되서 임의의 위치에 접근하기 쉽다

 

색인 할당을 사용하는 파일 시스템에서는 디렉터리 엔트리에 파일 이름과 색인 블록 주소를 명시한다

UNIX 파일 시스템은 색인 할당은 기반으로 만들어졌다

 

• 유닉스 파일 시스템

색인 할당 기반의 파일 시스템

i-node라고 불리는 색인 블록을 기반으로 파일의 데이터 블록을 찾는 방식이다

유닉스 파일 시스템에서는 파일마다 i-node가 있고 아이노드가 파티션 내 특정 영역에 모여 있다

아이노드의 크기는 유한하기에 보통 15개의 블록을 가지는 파일까지 가리킬 수 있다

블록이 아이노드가 가르킬 수 있는 크기보다 크면 다른 방법을 찾아야 한다

 

• i-node가 가리킬 수 있는 블록보다 큰 블록으로 이루어진 파일을 가리키는 방법

 

1. i-node가 가리킬 수 있는 15개의 블록 중 처음 12개에는 파일 데이터가 저장된 블록을 직접 명시한다

2. 1번으로 충분하지 않으면 13번째 블록의 주소에 단일 간접 블록(파일 데이터를 저장한 블록)의 주소를 저장한다

3. 2번으로도 충분하지 않으면 14번째 블록 주소에 이중 간접 블록(단일 간접 브록들의 주소를 저장하는 블록)의 주소 저장

4. 3번으로 안되면 15번째에 삼중 간접 블록(이중 간접 블록들의 주소를 저장)

삼중 간접 블록 까지 이용하면 대부분의 파일은 모두 표현할 수 있다

 

유닉스 파일 시스템의 디렉터리 엔트리는 파일 이름과 i-node 번호로 구성된다

 

• 저널링 파일 시스템

 

파일 시스템을 변경하는 도중에 전원이 나가거나 컴퓨터가 강제로 종료되버리면 파일 시스템이 훼손될 수 있다

저널링 파일 시스템이 있기 이전에는 이런 상황이 발생하면 부팅 직후 파일 시스템을 검사/복구했지만 

이런 프로그램은 파일 시스템 내의 모든 블록에 대해 파일 시스템을 검사하기에 매우 오래 걸린다

 

저널링 파일 시스템은 저널링 기법을 사용해서 시스템 크래시를 빠르게 복구하는 방법이다

 

• 저널링 기법을 사용해서 파일 시스템 변경

1. 작업 직전 파티션에 로그 영역에 수행하는 작업에 대한 로그를 남긴다

2. 로그를 남긴 후 작업 수행

3. 작업 후 로그 삭제

 

이런 경우에는 작업 도중 크래시가 발생해서 다시 부팅을 할때 로그 영역을 읽어 어떤 작업을 실행중이였는지 알아내고

작업을 이어서 완료한다

 

• 마운트

 

한 저장 장치의 파일 시스템에서 다른 저장 장치의 파일 시스템에 접근 가능하게 파일 시스템을 편입하는 것

usb같은 장치를 마운트해서 접근할 수 있게 한다

mount 명령어를 통해 파일 시스템에 편입해서 접근한다

 

 

 

 

 

'학교 강의 > 운영체제' 카테고리의 다른 글

스래싱 & 프레임 할당  (0) 2024.07.21
요구 페이징 & 페이지 교체 알고리즘  (0) 2024.07.21
메모리 할당 & 페이징  (0) 2024.07.10
교착상태  (0) 2024.07.10
프로세스 동기화  (0) 2024.07.09