본문 바로가기
Computer Science/운영체제

[운영체제] ep10) I/O Management and Disk Scheduling

by 클레어몬트 2024. 7. 4.

I/O를 다루는 OS 설계의 목적 2가지

1. 속도 이슈

2. 통일된 방식으로 모든 I/O 기기를 다루는 것

 

속도 이슈에서 중요한 것은 Seek time(탐색시간)이다

Seek time(탐색시간) - 시간

Rotational delay(회전지연)

Transfer Time(전송시간)

 

(참고) 탐색시간, 회전지연, 전송시간 

https://claremont.tistory.com/entry/%EC%BB%B4%ED%93%A8%ED%84%B0-%EA%B5%AC%EC%A1%B0-ep7-%EB%B3%B4%EC%A1%B0%EA%B8%B0%EC%96%B5%EC%9E%A5%EC%B9%98

 

[컴퓨터 구조] ep7) 보조기억장치

하드디스크와 플래시메모리같은 보조기억장치들은 개인 컴퓨터부터 서버구성 및 관리까지 다방면으로 사용되는 부품이기 때문에 잘 알아놔야 한다   ㅇ하드디스크 (HDD: Hard Disk Drive)하드디스

claremont.tistory.com

 

우리는 이 탐색시간을 줄이기 위해 디스크 스케줄링RAID에 대해 공부할 거다

 

 

앞으로의 상황 가정)

200개의 트랙이 있는 디스크라 가정

헤드 디스크의 초기위치는 100

 

ㅇ디스크 스케줄링(Disk Scheduling): 이 request들을 어떤 순서대로 처리할 것인가?

1. FIFO(First-In, First-Out)

 

seek time 多 / 공정성 ↑, 예측가능성 ↑

 

 

2. SSTF(Shortest Service Time First): 현재 트랙에서 가장 가까운 request를 처리

가장 optimal한 방법이지만 starvation(기아) 문제 때문에 실제로 사용하지는 않는다

 

seek time best / starvation O, 예측가능성 ↓

 

 

3. SCAN: 디스크 암을 한 방향으로 request를 처리

가장 많이 사용하는 방식이다

 

seek time 평타 / starvation 평타, 예측가능성 평타

 

 

3가지의 SCAN 방식이 더 있다

3-1. C-SCAN: 오직 한 방향으로만 request를 처리

 

 

3-2. N-Step-SCAN: N개씩 끊어서 큐에 저장

N: 큐의 길이

starvation 가능성이 아예 X

성능: N값에 따라 천차만별이다

 

 

3-3. FSCAN: 큐를 딱 2개 사용

메인 큐 + 임시저장 큐 느낌이다

starvation 가능성이 아예 X

 

추가)

4. 우선순위 스케줄링(Priority Scheduling): request를 보낸 task에 따라 우선순위를 부여

5. LIFO(Last-In-First-Out)

둘 다 많이 사용은 안 한다

 

 

 

ㅇRAID(Redundant Array of Disks)

RAID는 [컴퓨터 구조] ep7) 보조기억장치에서 자세히 다루므로 생략하고 넘어가겠다

https://claremont.tistory.com/entry/%EC%BB%B4%ED%93%A8%ED%84%B0-%EA%B5%AC%EC%A1%B0-ep7-%EB%B3%B4%EC%A1%B0%EA%B8%B0%EC%96%B5%EC%9E%A5%EC%B9%98

 

[컴퓨터 구조] ep7) 보조기억장치

하드디스크와 플래시메모리같은 보조기억장치들은 개인 컴퓨터부터 서버구성 및 관리까지 다방면으로 사용되는 부품이기 때문에 잘 알아놔야 한다   ㅇ하드디스크 (HDD: Hard Disk Drive)하드디스

claremont.tistory.com

 

 

 

ㅇ디스크 캐시(Disk Cache): m.m. 안의 버퍼

캐시 관리 방법으로 3가지가 있다

1. LRU(Least Recently Used): 최근에 사용하지 않은 block 큐를 버린다

 

2. LFU(Least Frequently Used): 자주 사용하지 않은 block 큐를 버린다

각각의 디스크 블록마다 카운터를 두고 블록에 액세스 할 때마다 카운터값을 증가시킨다

 

3. Frequency-based Replacement: LRU와 LFU의 절충안

가장 많이 사용하는 방법이다

 

 

 

 

 

 

 

 

참고 및 출처: Operating Systems: Internals and Design Principles(William Stalling), Operating System Concepts(Silberschatz, Abraham)