์šด์˜์ฒด์ œ

CH11-1 I/O Management and Disk Scheduling

meteorqz6 2025. 6. 14. 01:14

Operating System Design Objectives

1. ํšจ์œจ์„ฑ

I/O ์žฅ์น˜์˜ ์†๋„๋Š” CPU์™€ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์— ๋น„ํ•ด ๋„ˆ๋ฌด ๋А๋ฆฌ๋‹ค. ๋”ฐ๋ผ์„œ ์‹œ์Šคํ…œ ์ž์›์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•ด์•ผ ํ•œ๋‹ค.

I/O์˜ ์†๋„๋ฅผ ๋น ๋ฅด๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.

 

2. ๋ฒ”์šฉ์„ฑ

๋‹ค์–‘ํ•œ I/O ์žฅ์น˜๋ฅผ ์ผ๊ด€๋œ ๋ฐฉ์‹์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋žŒ์งํ•˜๋‹ค. 

- ์ฝ๊ธฐ read

- ์“ฐ๊ธฐ write

 

Disk Performance Parameters

Access Time: ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ธฐ ์œ„ํ•ด ๋””์Šคํฌ๊ฐ€ ์ค€๋น„ํ•˜๋Š” ๋ฐ ๊ฑธ๋ฆฌ๋Š” ์ด ์‹œ๊ฐ„ (Seek Time + Rotational Delay or Latency)

- Seek Time: ๋””์Šคํฌ ํ—ค๋“œ๊ฐ€ ์›ํ•˜๋Š” ํŠธ๋ž™์œผ๋กœ ์ด๋™ํ•˜๋Š” ๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„ (์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ ค์„œ ์ด ์‹œ๊ฐ„์„ ์ค„์ด๋Š” ๊ฒƒ์ด ์ค‘์š”)

- Rotational Delay or Latency: ์›ํ•˜๋Š” ์„นํ„ฐ์˜ ์‹œ์ž‘ ์ง€์ ์ด ๋””์Šคํฌ ํ—ค๋“œ ์•„๋ž˜๋กœ ์˜ฌ ๋•Œ๊นŒ์ง€ ๋””์Šคํฌ๊ฐ€ ํšŒ์ „ํ•˜๋Š” ๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„

 

Transfer Time: ๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์ œ๋กœ ์ฝ๊ฑฐ๋‚˜ ์“ฐ๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„

 

Disk Scheduling Policies

์˜ˆ์‹œ ์ƒํ™ฉ: 200๊ฐœ์˜ ํŠธ๋ž™, ํ˜„์žฌ ๋””์Šคํฌ ํ—ค๋“œ์˜ ์œ„์น˜๋Š” ํŠธ๋ž™ 100

55, 58, 39, 18, 90, 160, 150, 38, 184 ์ˆœ์„œ๋กœ ํ์— ๋„์ฐฉํ–ˆ๋‹ค.

 

First-in, first-out (FIFO)

ํ์— ๋“ค์–ด์˜จ ์ˆœ์„œ๋Œ€๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹

 

- starvation ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ์ด ์—†๋‹ค.

- ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋“ค์— ๋™๋“ฑํ•˜๋‹ค.

- ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ ค์„œ ์„ฑ๋Šฅ์€ ์ข‹์ง€ ์•Š๋‹ค.

 

 

Shortest Service Time First

ํ˜„์žฌ ํ—ค๋“œ ์œ„์น˜์—์„œ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๊ฑฐ๋ฆฌ์˜ ํŠธ๋ž™์œผ๋กœ ์ด๋™ํ•˜๋Š” ๋ฐฉ์‹

- ์„ฑ๋Šฅ์ ์œผ๋กœ ๊ฐ€์žฅ optimalํ•˜์ง€๋งŒ starvation ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ์ด ๋งค์šฐ ๋†’์•„์„œ ์‹ค์ œ๋กœ๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.

* Windows - starvation ๊ฐ€๋Šฅ์„ฑ ์žˆ์ง€๋งŒ ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. CPU์˜ ๊ฒฝ์šฐ์—๋Š” ์†๋„๊ฐ€ ์—„์ฒญ ๋นจ๋ผ์„œ ์‚ฌ์‹ค starvation์€ ์ž์ฃผ ์ผ์–ด๋‚˜์ง€ ์•Š๋Š”๋‹ค.

SCAN

์ผ๋‹จ ํ•œ ๋ฐฉํ–ฅ์œผ๋กœ ๋๊นŒ์ง€ ๋Œ๊ณ  ๋‚œ ํ›„์— ๋‹ค๋ฅธ ๋ฐฉํ•ญ์œผ๋กœ ๋„๋Š” ๋ฐฉ์‹

- starvation ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ์ด ๋‚ฎ์œผ๋‚˜ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

ex. ํŠน์ • track์— request๊ฐ€ ๊ณ„์†ํ•ด์„œ ๋“ค์–ด์˜ค๋ฉด ๋””์Šคํฌ ํ—ค๋“œ๊ฐ€ ๊ทธ ์œ„์น˜์—๋งŒ ์žˆ๋‹ค.

- ์–ด๋А ํŠธ๋ž™์— ์œ„์น˜ํ•˜๋А๋ƒ์— ๋”ฐ๋ผ ๋Œ€๊ธฐ์‹œ๊ฐ„์ด ๋‹ฌ๋ผ์ ธ์„œ ๊ณต์ •ํ•˜์ง€ ์•Š๋‹ค.

 

C-SCAN

SCAN์˜ ๊ณต์ •ํ•˜์ง€ ์•Š์€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ ๋ฐฉ์‹์œผ๋กœ ํ•œ ์ชฝ ๋ฐฉํ–ฅ์œผ๋กœ๋งŒ ์„œ๋น„์Šค๋ฅผ ํ•œ๋‹ค.

100 → 150 → 160 → 184 → (0๊นŒ์ง€ ๊ฐˆ ๋™์•ˆ์€ ์„œ๋น„์Šค ํ•˜์ง€ ์•Š๋Š”๋‹ค.) → 18 → 38 → 39 → 55 → 58 → 90

์„ฑ๋Šฅ์ด ์ข‹์ง€ ์•Š๋‹ค.

 

N-step-SCAN

SCAN์˜ starvation ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ์„ ์—†์•ค ๋ฐฉ์‹

ํ์˜ ๊ธธ์ด๊ฐ€ N (ํ์˜ ๊ฐœ์ˆ˜ X) ๊ฐ๊ฐ์˜ ํ๋ฅผ SCAN ๋ฐฉ์‹์œผ๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค.

 

N = 1 ์ด๋ฉด FIFO๋ž‘ ๋˜‘๊ฐ™์€ ๊ฒƒ์ด๊ณ  N์˜ ๊ฐ’์— ๋”ฐ๋ผ์„œ ์„ฑ๋Šฅ์ด ๋ณ€ํ•œ๋‹ค.

๊ฐ™์€ ํŠธ๋ž™์— request๊ฐ€ ๊ณ„์† ์˜จ๋‹ค๊ณ  ํ•ด๋„ ํ•˜๋‚˜์˜ ํ์— ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋Š” request์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ •ํ•ด์ ธ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ƒˆ๋กœ ๋„์ฐฉํ•˜๋Š” request๋“ค์€ ๋‹ค๋ฅธ ํ์— ์œ„์น˜ํ•˜๊ฒŒ ๋ผ์„œ starvation ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ์ด 0์ด๋‹ค. ๋จผ์ € ๋„์ฐฉํ•œ request๊ฐ€ ๋จผ์ € ์ฒ˜๋ฆฌ๋œ๋‹ค.

 

N๊ฐ’์— ๋”ฐ๋ผ์„œ ์„ฑ๋Šฅ์ด FIFO๋ž‘ SCAN ์„ฑ๋Šฅ ์‚ฌ์ด๋ฅผ ์™”๋‹ค๊ฐ”๋‹ค ํ•œ๋‹ค.

 

FSCAN

SCAN์˜ starvation ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ์„ ์—†์•ค ๋ฐฉ์‹(N๊ฐ’์„ ๊ณ ๋ฏผํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค.)

- 2๊ฐœ์˜ ํ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ํ•˜๋‚˜๋Š” ํ˜„์žฌ ์ฒ˜๋ฆฌํ•  ์š”์ฒญ๋“ค์„ ๋‹ด๋Š” ํ, ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ์Šค์บ”์ด ์ง„ํ–‰๋˜๋Š” ๋™์•ˆ ์ƒˆ๋กœ ๋„์ฐฉํ•˜๋Š” ์š”์ฒญ๋“ค์„ ๋‹ด๋Š” ํ์ด๋‹ค.

- ๋””์Šคํฌ ํ—ค๋“œ๊ฐ€ ์Šค์บ”์„ ์‹œ์ž‘ํ•  ๋•Œ ๋ชจ๋“  ์ฒ˜๋ฆฌํ•  ์š”์ฒญ๋“ค์€ ํ•˜๋‚˜์˜ ํ์— ๋ชจ์—ฌ ์žˆ๋‹ค. ์ด๋•Œ ๋‹ค๋ฅธ ํ๋Š” ๋น„์–ด์žˆ๋Š” ์ƒํƒœ์ด๋‹ค.

- ์Šค์บ”์ด ์ง„ํ–‰๋˜๋Š” ๋™์•ˆ ์ƒˆ๋กญ๊ฒŒ ๋„์ฐฉํ•˜๋Š” ๋ชจ๋“  ์š”์ฒญ๋“ค์€ ๋‹ค๋ฅธ ํ์— ๋„ฃ์–ด์ง„๋‹ค. 

- ์‹ค์ œ๋กœ ์‹œ์Šคํ…œ์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ์‹

 

๊ทธ ๋ฐ–์˜ Disk Scheduling Policies

(1) Priority scheduling

request๋ฅผ ๋ณด๋‚ธ ํ”„๋กœ์„ธ์Šค๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ, ํ”„๋กœ์„ธ์Šค์˜ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€ request๋ฅผ ๋จผ์ € ์ฒ˜๋ฆฌํ•œ๋‹ค. 

๋น ๋ฅด๊ฒŒ ์™„๋ฃŒ๋˜์–ด์•ผ ํ•˜๋Š” ์งง์€ ์ž‘์—…์— ๋†’์€ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋ถ€์—ฌํ•˜๊ณ , ์‚ฌ์šฉ์ž์—๊ฒŒ ์ฆ‰๊ฐ์ ์ธ ์‘๋‹ต์ด ํ•„์š”ํ•œ ์ž‘์—…์— ๋†’์€ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋ถ€์—ฌํ•œ๋‹ค.

๋ฐ˜๋Œ€๋กœ ์˜ค๋žœ ๊ณ„์‚ฐ ์‹œ๊ฐ„์„ ์š”๊ตฌํ•˜๋Š” ์ž‘์—…์€ ๋‚ฎ์€ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฐ€์ง„๋‹ค.

์ฆ‰, ํ”„๋กœ์„ธ์Šค์— ๋”ฐ๋ผ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋งž์ถฐ์„œ ์ฒ˜๋ฆฌํ•œ๋‹ค.

 

(2) Last-In-First-Out

๊ฐ€์žฅ ์ตœ๊ทผ์— ๋””์Šคํฌ ํ์— ๋“ค์–ด์˜จ ์š”์ฒญ์„ ๊ฐ€์žฅ ๋จผ์ € ์ฒ˜๋ฆฌํ•œ๋‹ค. ์ตœ๊ทผ์— ๋„์ฐฉํ•œ ์š”์ฒญ์„ ๋จผ์ € ์ฒ˜๋ฆฌํ•จ์œผ๋กœ์จ locality๋ฅผ ํ™œ์šฉํ•ด ์ฒ˜๋ฆฌ๋Ÿ‰์„ ํ–ฅ์ƒ์‹œํ‚จ๋‹ค.

ํ•˜์ง€๋งŒ starvation ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ์ด ๋งค์šฐ ๋†’๋‹ค.

'์šด์˜์ฒด์ œ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

CH6-1 Concurrency : Deadlock and Starvation  (0) 2025.06.15
CH11-2 I/O Management and Disk Scheduling  (0) 2025.06.15
CH10-2 Multiprocessor and Real-Time Scheduling  (0) 2025.06.13
CH10-1 Multiprocessor and Real-Time Scheduling  (1) 2025.06.09
CH9-2 Uniprocessor Scheduling  (0) 2025.06.08