CS지식/운영체제

TIL 정리_109(Disk Management and Scheduling )

ran4 2022. 6. 16. 13:47

http://www.kocw.net/home/m/search/kemView.do?kemId=1046323

운영체제 강의를 듣고 정리한 내용입니다.


Disk Structure

logical block

디스크의 외부에서 보는 디스크의 단위 정보 저장 공간들을 말한다

주소를 가진 1차원 배열처럼 취급한다

정보를 전송하는 최소 단위이다

 

Sector

디스크를 관리하는 최소 단위이다. 디스크 내부에서 관리한다

Logical block이 물리적인 디스크에 매핑된 위치를 말한다

Sector 0은 최외곽 실린더의 첫 트랙에 있는 첫 번째 섹터이다

 

**0번 섹터는 부팅과 관련되어 있다

 

 

Disk Scheduling

- 디스크 접근 시간 Access time의 구성

Seek time

헤드를 해당 실린더로 움직이는데 걸리는 시간

 

Rotational latency

헤드가 원하는 섹터에 도달하기까지 걸리는 회전 지연시간

 

Transfer time

실제 데이터의 전송 시간

오래 걸릴 것 같지만 시간이 조금 걸린다

 

 

디스크의 성능 Disk bandwidth

단위 시간 당 전송된 바이트의 수

디스크가 효율적으로 동작하려면, Seek time을 줄이는 것이 좋다

 

Disk Scheduling

seek time을 최소화 하는 것이 목표이다

Seek time = seek distance

요청이 들어온 순서부터 처리하면 비효율적이다

 

 

Disk Management

physical formatting (Low-level formatting)

디스크를 컨트롤러가 읽고 쓸 수 있도록 섹터들로 나누는 과정이다

각 섹터는 header + 실제 데이터(보통 512 bytes) + trailer로 구성된다

headertrailersector number, ECC(Error-Correcting Code) 등의 정보가 저장되며 controller가 직접 접근 및 운영한다

* 축약된 데이터 코드 = ECC

 

Partitioning

디스크를 하나 이상의 실린더 그룹으로 나누는 과정이다

OS는 이것을 독립된 disk로 취급한다(locigal disk)

 

Logical formatting

파일 시스템을 만드는 것이다

FAT, inode, free space등의 구조가 포함된다

 

Booting

  • CPU는 메모리만 접근할 수 있지만, 맨 처음에는 메모리가 비어있다
  • ->메모리 영역중에서 전원이 나가도 내용이 유지되는 소량의 메모리인 ROM의 주소를 가리킨다
  • ROM에 있는 “small bootstrap loader”의 실행을 의미한다
  • sector 0(boot block)을 로드하여 실행한다
  • sector 0은 “full Bootstrap loader program”
  • OS를 디스크에서 로드하여 실행한다

Disk Scheduling Algorithm

큐에 다음과 같은 실린더 위치의 요청이 존재하는 경우

디스크 헤드 53번에서 시작한 각 알고리즘의 수행 결과를 구하는 알고리즘 (실린더 위치는 0-199)

98, 183, 37, 122, 14, 124, 65, 67

  • FCFS
  • SSTF
  • SCAN
  • C-SCAN
  • N-SCAN
  • LOOK
  • C-LOOK

-> 위의 알고리즘은 디스크 내부가 아닌 운영체제쪽에서 구현된다

 

 

FCFS (First Come First Service)

들어온 순서대로 처리한다

head의 이동 : cylinders

비효율적이다

 

SSTF(Shortest Seek Time First)

현재 head 위치에서 제일 가까운 요청을 먼저 수행한다

head의 이동 : 236 cylinders

단점 : starvation 문제가 생긴다

 

 

*SCAN*

  • 가장 간단하면서도 효과적인 스케줄링 방법이다
  • elevator scheduling이라고도 불린다
  • disk arm이 디스크의 한쪽 끝에서 다른쪽 끝으로 이동하며 가는 길목에 있는 모든 요청을 처리한다
  • 다른 한쪽 끝에 도달하면 역방향으로 이동하며 오는 길목에 있는 모든 요청을 처리하며 다시 반대쪽 끝으로 이동한다 -> 디스크 head의 이동시간이 짧아진다
  • 문제점 : 실린더 위치에 따라 대기 시간이 다르다

 

C-SCAN

  • 디스크 헤드가 한쪽 끝에서 다른쪽 끝으로 이동하며 가는 길목에 있는 모든 요청을 처리한다
  • 다른쪽 끝에 도달해으면 요청을 처리하지 않고 곧바로 출발점으로 다시 이동한다
  • SCAN보다 균일한 대기 시간을 제공한다

 

정리 : 기본적으로 SCAN에 기반한 알고리즘을 사용하고 있다

 

 

Other Algorithmns

N-SCAN

-> C-SCAN의 변형 알고리즘이다

일단 arm이 한 방향으로 움직이기 시작하면 그 시점 이후에 도착한 job은 되돌아올 때 서비스된다

 

LOOK and C-LOOK

SCAN이나 C-SCAN은 헤드가 디스크 끝에서 끝으로 이동한다

LOOKC-LOOK은 헤드가 진행중이다가 그 방향에 더 이상 기다리는 요청이 없으면 헤드의 이동방향을 즉시 반대로 이동한다

 

 

Disk-Scheduling Algorithm의 결정

  • SCAN, C-SCAN 및 응용 알고리즘은 LOOK, C-LOOK 등이 일반적으로 디스크 입출력이 많은 시스템에서 효율적인 것으로 알려져 있다
  • File의 할당 방법에 따라 디스크 요청이 영향을 받는다
  • 디스크 스케줄링 알고리즘은 필요한 경우 다른 알고리즘으로 쉽게 교체할 수 있도록 OS와 별도의 모듈로 작성되는 것이 바람직하다

 

Swap-Space Management

Disk를 사용하는 두 가지 이유

memoryvolatile한 특성 -> file system

프로그램 실행을 위한 메모리 공간이 부족할 때 -> swap space(swap area)

 

Swap-space

  • 가상 메모리 시스템에서는 디스크를 메모리의 연장 공간으로 사용한다
  • 파일 시스템 내부에 둘 수도 있으나 별도 파티션 사용이 일반적이다
  • 공간 효율성보다도 속도 효율성이 우선된다
  • 일반 파일보다 훨씬 짧은 시간만 존재하고 자주 참고된다
  • 따라서 block의 크기 및 저장 방식이 일반 파일 시스템과 다르다

 

RAID (Redundant Array of Independent Disks)

여러 개의 디스크를 묶어서 사용한다

 

RAID의 사용 목적

1. 디스크처리 속도 향상

- 여러 디스크에 block의 내용을 분산저장한다

- 병렬적으로 읽어온다 (interleaving. striping)

 

2. 신뢰성 (reliability) 향상

동일 정보를 여러 디스크에 중복 저장한다

하나의 디스크가 고장날 때 다른 디스크에서 읽어온다 (Mirroring, shadowing)

단순한 중복 저장이 아니라 일부 디스크에 parity를 저장하여 공간의 효율성을 높일 수 있다