본문 바로가기
  • 실행력이 모든걸 결정한다
OS 개념 정리

[OS] File System

by 김코더 김주역 2021. 6. 28.
반응형

1. Disk System

1) Disk Pack

(1) 역할 : 데이터를 영구 저장 (비휘발성)

(2) 구성

<1> Sector : 데이터 저장 혹은 판독의 물리적 단위(한 블록)

<2> Track : Platter 한 면에서, 중심으로부터 같은 거리에 있는 sector들의 집합

<3> Cylinder : 같은 반지름을 갖는 track의 집합

<4> Platter : 양면에 자성 물질을 입힌 원형 금속판으로, 데이터의 기록 및 판독이 가능한 기록매체

<5> Surface : Platter의 윗면과 아랫면

 

 

2) Disk Drive

(1) 역할 : Disk pack에 데이터를 기록 및 판독

(2) 구성

<1> Head : 디스크 표면에 데이터를 기록 및 판독

<2> Arm : Head를 고정 및 지탱

<3> Positioner(Boom) : Arm을 지탱하고, Head를 원하는 track으로 이동

<4> Spindle : Disk pack을 고정하는 회전축

※ RPM(Revolutions Per Minute) : 분당 회전 수

 

 

3) Disk Driver

(1) 역할 : 논리적 disk 주소를 물리적 disk 주소로 변환

(2) 동작 : 운영체제에게 block 번호를 받으면, 이를 물리적 주소로 변환하여 disk controller로 전달함

 

 

4) 시간 용어

(1) Seek time : head가 필요 track에 도착하는 시간

(2) Rotational delay time : 원판을 돌려서 필요 sector가 head 위치로 도착하는 시간

(3) Transfer time : 찾은 데이터를 disk로부터 사용자의 버퍼로 전송하는 시간

(4) Data access time : Seek time + Rotational delay time + Transfer time

 

 

 

2. File System의 구성

1) File

(1) 정의

- 보조 기억 장치에 할당되는 최소 단위

- 연관된 정보들의 집합

- Sequence of bytes

 

(2) 특징

- OS는 File 연산들을 위한 System call을 제공함

- 파일 접근 방식으로는 순차 접근법, 직접 접근법, 그리고 인덱스 참조 접근법이 있음

 

 

2) Directory

(1) 정의 : File 들을 분류, 보관하기 위한 개념

 

(2) 구조의 종류

<1> Flat(single-level) Directory Structure

- File system에 하나의 디렉토리만 존재하는 구조

- 파일 네이밍, 보안, 관리 문제가 생길 수 있음

<2> 2-Level Directory Structure

- 사용자마다 하나의 디렉토리가 있는 구조

- MFD(Master File Directory)와 UFD(User File Directory)로 구성되어있음

- 서브 디렉토리를 생성할 수 없음

- 파일을 공유하고 싶을 때 디렉토리 전체를 공유해야함

- 파일 네이밍, 보안 문제가 생길 수 있음

<3> Hierarchical Directory Structure

- Tree 형태의 계층적 디렉토리 구조

- 대부분이 OS가 사용하고 있음

- System call이 제공됨

<4> Acyclic Graph Directory Structure

- Hierarchical Directory Structure를 확장

- Link의 개념을 사용함 - 예) Window의 바로가기, Linux의 Link

- Cyclie을 허용하지 않음

<5> General Graph Directory Structure

- Cyclie을 허용하는 Graph Directory Structure

- File 탐색 시, 무한 루프 문제가 발생할 수 있음

 

 

3) Partition

물리적/논리적으로 디스크를 나누어 놓은 것으로, 대표적인 예로 C드라이브나 D드라이브가 있음

 

 

 

3. File Protection

1) 접근 제어 연산

- Read

- Write

- Execute

- Append

 

 

2) 파일 보호 기법

(1) Password 기법

- 사용자들이 파일 각각에 대한 Password를 기억해야 함

- 접근 권한 별로 서로 다른 Password를 부여 해야 함

 

(2) Access Matrix 기법

- 접근 권한을 행렬로 명시하는 기법

- 접근 대상을 Object라고 하고, 접근 권한을 가지는 그룹을 Domain이라고 함

- 빈 공간을 줄이기 위해 Access list, Capability list, Lock-key를 도입할 수 있음

※ Access list : Object마다 저장해두는 권한 list로, 대표적으로 Linux에서 사용 된다. 예) rwxr--r--

※ Capability list : Domain마다 저장해두는 권한 list로, kernel 안에 저장되어 있다. 그리고, Capability를 가졌다는 것이 권한을 가졌다는 것이 된다.

※ Lock-key : Lock과 Key는 각각 Object와 Domain으로, Lock과 Key의 짝이 맞는 경우에만 접근을 허용한다.

 

(3) Global Table

- 접근 권한을 표로 명시하는 기법

- 테이블의 크기가 큰 편임

 

(4) 많은 OS에서 사용하는 기법★

많은 OS에서는 Access list와 Capability list 개념을 함께 사용한다.

먼저, Object에 첫 접근이 이루어지게 되면 Access list를 탐색한다. 접근에 성공하면 Capability를 생성하여 프로세스에 전달함으로써, 이후 접근 시에는 권한 검사를 하지 않아도 되도록 한다. 그리고 마지막 접근 후에는 Capability를 삭제하는 식으로 Overhead를 줄이는 기법을 이용하고 있다.

 

 

 

4. File System 구현

1) 디스크 공간 할당 방법

(1) Continuous Allocation

<1> 장점

- 순차적으로 접근하기 때문에 효율적임

<2> 단점

- 외부 단편화가 발생할 수 있음

- 파일이 커질 때도 있기 때문에 공간 크기 결정 및 공간 확보가 어려움

 

(2) Linked Allocation

<1> 특징

- 파일이 저장된 block들을 linked list로 연결

- 디렉토리는 각 파일의 첫 번째 block에 대한 포인터를 가짐

<2> 장점

- 간단함

- 외부 단편화가 발생하지 않음

<3> 단점

- 직접 접근에 비효율적임

- 포인터 저장을 위한 공간이 필요함

- link가 하나라도 끊어지면 문제가 발생할 수 있음

 

※ File Allocation Table (FAT) : 각 block의 시작 부분에 다음 블록의 번호를 기록하는 방법

 

(3) Indexed Allocation

<1> 특징

- 파일이 저장된 block의 포인터를 index block에 모아둠

- Unix에 사용됨

<2> 장점

- 직접 접근에 효율적

<3> 단점

- 순차 접근에 비효율적

- Index block을 유지하는 overhead 발생

- Index block 크기에 따라 파일의 최대 크기가 제한 됨

 

 

2) 빈 공간 관리 방법

(1) Bit vector

<1> 특징

- 빈 block과 할당 block을 0, 1로 표시

<2> 장점

- 간단하고 효율적임

<3> 단점

- Bit vector 전체를 메모리에 보관해야 하기 때문에 대형 시스템에 부적합함

 

(2) Linked List

<1> 특징

- 빈 block을 linked list로 연결

<2> 단점

- 비효율적임

 

(3) Grouping

<1> 특징

- n개의 빈 block을 그룹으로 묶고, 그룹 단위로 linked list로 연결

<2> 장점

- 연속된 빈 block을 쉽게 찾을 수 있음

 

(4) Counting

- 연속된 빈 block들 중 첫 번째 block의 주소와 연속된 block의 수를 table로 유지

- Continuous allocation에 유리함

 

5. Mounting

현재 파일 시스템에 다른 파일 시스템을 붙이는 것

 

 

이미지 출처 : 한빛 미디어 운영체제

참고 자료 : 김덕수 교수님 - www.youtube.com/playlist?list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN

반응형

댓글