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 |