운영체제

12. 파일 시스템

jwKim96 2022. 4. 13. 20:45

Disk Scheduling

image

head 가 움직이는 시간이 가장 오래걸리기 때문에, head 의 이동거리를 줄이는게 Disk Scheduling 의 핵심이다.

Disk 의 구성요소

  • platter : 원판을 말함
  • track : platter 를 구성하는 원형 단위를 말함
  • cylinder : track 들의 세로 집합
  • sector : track 의 일부로 데이터가 저장하는 공간
    • header + 실제 데이터(512byte) + trailer 로 구성된다
    • header 와 trailer 는 관리용 데이터들이 들어감
      • ex) sector number, ECC(Error-Correcting Code) 등등
  • head : 데이터를 읽고, 쓰는 구성요소

Dist Management

image

  • physical formatting : 컨트롤러가 Disk 를 Sector 단위로 읽을 수 있도록 나누는 과정
  • partitioning : 논리적으로 Disk 를 분리하는 방법
  • logical formatting : 각 partition 에 File System 을 설치하는 것

Disk Scheduling Algorithm

FCFS

image

먼저 들어온 순서대로 처리하는 방식입니다.
선착순으로 처리하기 때문에, 비효율적인 것을 보실 수 있습니다.

SSTF(Shortes Seek Time First)

image

프로세스 스케줄링의 SJF 와 유사한 알고리즘입니다.
SJF 와 마찬가지로 Starvation 문제가 발생할 수 있습니다.

  • seek time 이 긴 요청의 경우 탐색되지 않을 가능성이 있음

Scan

image

엘레베이터 스케줄링도 기본적으로 Scan 방식으로 동작한다고 합니다.
head의 이동 거리가 일정하다는 장점이 있지만, 요청이 들어온 데이터가 어떤 cylinder 에 속해있는지에 따라
대기시간이 많이 늘어날 수 있다는 단점도 있습니다.

C-SCAN

image

위의 균일하지 않은 대기시간이 발생하는 SCAN 을 개선한 방법입니다.
하지만 이 방법 또한 head 의 이동거리가 길다는 단점이 있습니다.

Other Algorithms

image

SCAN 알고리즘들은 요청이 있든 없든 head끝에서 끝까지 탐색합니다.
반면에 LOOK 알고르즘들은 기다리는 요청이 없으면, 그 즉시 반대 방향을 탐색한다는 특징이 있습니다.

Swap-Space Management

image

Swap 영역을 관리할때의 주요 포인트는 속도 효율성입니다.
사실 Swap 영역은 운영체제의 Runtime에만 사용되는 영역이고, 전원이 꺼지면 사용되지 않습니다.
게다가 프로세스가 주로 사용하는 Main Memory 에 비해서는 속도가 현저히 떨어지기 때문에, 속도 효율성이 더 중요하다고 합니다.

RAID

image

여러개의 Disk를 묶어서 하나의 Disk처럼 사용하는 방식입니다.
이 방식은 데이터 저장시 신뢰성이 향상되는데요.
동일 정보를 RAID 로 묶여있는 여러 Disk 에 중복 저장을 해놓는데요.
만약 불량 섹터가 생겨서 해당 데이터를 읽을 수 없는 경우, 다른 디스크에 저장된 데이터를 읽으면 된다는 장점이 있습니다.
그리고 데이터를 읽을 때 여러 Disk 에서 병렬적으로 읽을 수 있어 처리 속도 향상이라는 장점도 있습니다.

UNIX 파일 시스템

image

이전에 파일 시스템 파트에서 알아봤던 UNIX 파일 시스템의 구조 입니다.
그러나 최근에는 Linux 계열 운영체제에서 가장 많이 쓰이는 파일 시스템은 ext4 입니다.
아래 파일 시스템의 변천사가 있는데, 여기서 ext4에 대해 알아보겠습니다.

image

파일 시스템은 발전해오며 처리 속도, 신뢰성을 향상시키고 대용량 파일들을 잘 관리할 수 있도록 발전해왔습니다.

EXT2 파일 시스템

indirect pointer 를 두어 큰 파일을 찾을 수 있도록 한 것이 특징입니다.
메모리 관리 부분의 multi level paging 과 비슷합니다.