๋ณธ ๊ฒ์๊ธ์ PC๋ฒ์ ์ ์ต์ ํ ๋์ด ์์ต๋๋ค.
Operating Systems, Internals and Design Principles (9th Ed.), William Stallings, Pearson, 2017
1. Operating System
์ด์์ฒด์ ๋ ํ๋ก๊ทธ๋จ์ ์คํ์ ์ปจํธ๋กค(?) ํ๋ ์ํํธ์จ์ด์ด๋ค.
๋ ๋ฆฝ์ ์ธ ์คํ์ด ๋ถ๊ฐ๋ฅํ๋ฏ๋ก ํ๋ก๊ทธ๋จ์ด๋ผ๊ณ ๋ถ๋ฅด์ง ์๊ณ ์ํํธ์จ์ด๋ผ ๋ถ๋ฅธ๋ค.
ํ๋ก๊ทธ๋จ์ ๋ ๋ฆฝ์คํ์ด ๊ฐ๋ฅํด์ผํ๋ค.
๋ฐ๋ผ์ OS๋ ํ๋ก๊ทธ๋จ์ด ์๋๋ผ ์ํํธ์จ์ด๋ก ๋ณด๋ ๊ฒ ๋ง๊ณ , ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฐ๋ ์ผ๋ก ๋ณด๋ ๊ฒ ๋ง๋ค.
ํ๋ก๊ทธ๋จ๊ณผ ํ๋์จ์ด ์ฌ์ด์ ์ธํฐํ์ด์ค ์ญํ ์ ์ํํ๋ค. (์์ ๊ด๋ฆฌ)
์ด์์ฒด์ ์ ๋ชฉ์ ์ ํจ์จ์ฑ๊ณผ ํธ๋ฆฌ์ฑ์ด๋ค. (ํ๋์จ์ด๋ฅผ Efficiencyํ๊ฒ ํ๋ก๊ทธ๋จ์ Convenienceํ๊ฒ.)
1) ์ด์์ฒด์ ์ ์ํด ์ ๊ณต๋๋ ์๋น์ค
(์๋น์ค๋ ์๋ ๊ณ์ธต์ด ์ ๊ณ์ธต์๊ฒ ์ ๊ณตํ๋ ๊ธฐ๋ฅ)
1. ํ๋ก๊ทธ๋จ ์คํ
2. ์ปดํจํฐ ์์ ์ ๊ทผ (๋ฐ์ดํฐ ๋ฟ๋ง ์๋๋ผ ํ๋์จ์ด๋ ํฌํจ)
3. ์ค๋ฅ ํ์ง ๋ฐ ์๋ต
4. ์์ ์ฌ์ฉ๋ ์กฐํ
2) ์ปดํจํฐ ์๋ ๋ฐฉ์
๋ถํ -> ํ๋์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ ค๋์(๋ณต์ฌ) -> I/O -> ํ๋์ ๋ฐ์ดํฐ ์ ์ฅ
์ด ๊ณผ์ ์์ ์ด์์ฒด์ ๊ฐ ์ฌ์ฉ๋๋ค.
์ปค๋ = ์ด์์ฒด์ (๋ผ๊ณ ๋ด๋ ๋ฌด๋ฐฉํ๋ค. ์ด์์ฒด์ ์ ํต์ฌ ๊ธฐ๋ฅ์ด ์กด์ฌ)
2. Evolution of Operating Systems
1) ์ด์ฐฝ๊ธฐ ์ด์์ฒด์ : batch system
๋น์ทํ ํ๋ก๊ทธ๋จ์ผ๋ก ๊ตฌ์ฑ๋์ด ์์. (ํ๋ก๊ทธ๋จ ๋ฌถ์์ด๋ผ ์๊ฐํ๋ฉด ๋ ๋ฏ?)
Monitor์ ์ํด ํต์ ๋๋ฉฐ ํ๋ฒ์ ํ๋์ batch ํ๋ก๊ทธ๋จ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ ค์ ์คํํ๊ณ ์์ฐจ์ ์ผ๋ก ์งํ. (Uniprogramming)
2) Uni-Programming
ํ๋ฒ์ ํ๋์ ํ๋ก๊ทธ๋จ๋ง ์คํ ๊ฐ๋ฅ. ํ๋ก๊ทธ๋จ์ด ์คํ๋๊ณ I/O๊ฐ ์ข ๋ฃ๋๋ฉด ๋ค์ ํ๋ก๊ทธ๋จ์ ์งํ.
ํผํฌ๋จผ์ค๊ฐ ๋งค์ฐ ์์ข์ -> I/O๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ์ข ๋ฃ๋ ๋๊น์ง ๊ธฐ๋ค๋ ค์ผ ํ๋๋ฐ I/O ์์ฒด๊ฐ ์๋นํ ๋๋ฆผ.
3) Multi-Programming
ํ๋ก๊ทธ๋จ์ด ์คํ๋๊ณ I/O๋ก ๋์ด๊ฐ ๋๊ธฐ ์ค(Block)์ธ ๊ฒฝ์ฐ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์ ์คํ.
๋ฉํฐ ํ๋ก๊ทธ๋๋ฐ์์๋ ์คํ ์๊ฐ์ด ๋ค๋ฅผ ์๋ ์์ -> ํ๋ก๊ทธ๋จ๋ง๋ค ์คํ ์๊ฐ(executing time)์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ.
(์์ง ํ์์ฌ๋ผ์ด์ค๊ฐ ์ ์ฉ๋์ง ์์ ์๊ธฐ)
ํฐ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์๊ตฌํ๋ค. Why? ํ๋์ ํ๋ก๊ทธ๋จ์ ์คํํ๊ณ ์๋ ๋์ค์ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์ ์ถ๊ฐ๋ก ์คํํด์ผ ํ๋ฏ๋ก.
(ํ๋ก๊ทธ๋จ์ ์คํํ๋ ค๋ฉด ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ์์ด์ผํ๋ค. ์์ ์ปดํจํฐ ์๋๋ฐฉ์ ์ฐธ๊ณ .)
Q. 3๊ฐ ์ด์์ ํ๋ก๊ทธ๋จ์ด Mutil-Programming์ผ๋ก ์๋ํ ๋ ์ฐ์ ์์๋ ์ด๋ป๊ฒ ๋์ง?
A. Process Scheduling์ ์ํด ์ฐ์ ์์๊ฐ ์ ํด์ง๋ค. (์๋์์ ์ค๋ช )
4) Time Sharing System
์ผ์ ํ ์๊ฐ ๊ฐ๊ฒฉ(time slice)๋ง๋ค ํ๋ก๊ทธ๋จ์ด ๋์๊ฐ๋ฉด์ ์คํ.
์ฅ์ ? Response time์ ์ค์ฌ์ค๋ค. Response time์ด๋ ํ๋ก๊ทธ๋จ์ด ์คํ๋๊ธฐ๊น์ง์ ์๊ฐ์ด๋ค.
Multi-Programming๊ณผ ๋ค๋ฅด๊ฒ ์ด์ ํ๋ก๊ทธ๋จ์ด ์ข ๋ฃ๋์ง ์์๋ ์ผ์ ํ ์๊ฐ ๊ฐ๊ฒฉ์ ๋ฐ๋ผ ์ ํ๋๊ธฐ ๋๋ฌธ์ ํ๋ก๊ทธ๋จ์ด ๋ฐ๋ก ๋ฐ๋ก ์คํ๋๋ค.
But, ์ด๋ฐ ์ด์ ๋ก ํ๋ก๊ทธ๋จ์ด ์ข ๋ฃ๋๊ธฐ ๊น์ง๋ ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค. -> Throughput๊ฐ ๋ฎ๋ค.
5) Multi-Programming VS Time-Sharing
Multi-Programming
1. batch system ์ฌ์ฉ.
2. background processing์ ์ฌ์ฉ.
3. overhead๊ฐ ๋ฎ๋ค. Why? ์ฒ๋ฆฌํ๊ธฐ๊น์ง ์๊ฐ์ด ์งง์์,
4. ์ฆ, throughput์ด ์ข๋ค.
Time-Sharing
1. interactive processing ์ฌ์ฉ.
2. foreground processing์ ์ฌ์ฉ.
3. overhead๊ฐ ๋๋ค. Why? ์ฒ๋ฆฌํ๊ธฐ๊น์ง ์๊ฐ์ด ๊ธธ์ด์. (์ข ๋ฃํ์ง ์๊ณ ๋๊ธฐ๊ธฐ ๋๋ฌธ์)
4. ์ฆ, throughput์ด ๋์๋ค. ํ์ง๋ง response time์ ์ข๋ค.
6) Process Scheduling
์ด์์ฒด์ ์ ์ํด ์ํ๋๋ฉฐ ๋ค์ ์คํ๋ ํ๋ก๊ทธ๋จ(ํ๋ก์ธ์ค)๋ฅผ ์ ํด์ค๋ค.
CPU Scheduling์ด๋ผ๊ณ ๋ ๋ถ๋ฅด๋ฉฐ ํน์ Job Scheduling์ด๋ผ๊ณ ๋ ๋ถ๋ฆ.
Waiting time๊ณผ Priority์ ๊ธฐ๋ฐํ์ฌ ์์ ์ ์ํ.
(+ Waiting time์ด ๋ ๊ธธ๋ค๊ณ ๋ฌด์กฐ๊ฑด ์ฐ์ ์์๊ฐ ๋์ ๊ฒ์ ์๋! ๋ค์์ ์ค๋ช ํ๊ฒ ์.)
3. Major Components of OS
Process Management, Main Memory Management, File Management, I/O system Management,
Secondary Storage Management ... ์ผ๋ก ๊ตฌ์ฑ.
1) Command-Interpreter System
์ฌ์ฉ์ ๋๋ ํ๋ก์ธ์ค๊ฐ ์ด์์ฒด์ ์๊ฒ ๋ฌด์์ ํ ์ง ๋ช ๋ น์ ๋ด๋ฆฌ๋ ๊ฒ.
์ฌ์ฉ์๊ฐ ๋ช ๋ น์ ๋ด๋ฆฌ๊ธฐ ์ํด์๋ GUI๋ฅผ ์ฌ์ฉ.
ํ๋ก์ธ์ค๊ฐ ๋ช ๋ น์ ๋ด๋ฆฌ๋ ์ํด์๋ System Call ์ฌ์ฉ.
2) System Call
ํ๋ก๊ทธ๋จ(ํ๋ก์ธ์ค)๊ฐ ์ด์์ฒด์ ์๊ฒ ๋ช ๋ น์ ๋ด๋ฆฌ๋ ๊ฒ.
์คํ ์ค์ธ ํ๋ก๊ทธ๋จ(ํ๋ก์ธ์ค)์ ์ด์์ฒด์ ์์ Interface ์ญํ ์ ์ํ.
3) Modern Operating System
SMP : Symmetric multiprocessing
์ฌ๋ฌ ๊ฐ์ ํ๋ก์ธ์๋ก ๊ตฌ์ฑ๋๋ฉฐ ๋ชจ๋ ํ๋ก์ธ์๋ ๊ฐ์ ๋์(๊ธฐ๋ฅ)์ ์ํํ๋ค.
4) Multi-Programming Vs Multi-Processing
์ ๊ทธ๋ฆผ์ ๋ณด๋ฉด ํ๋ก์ธ์ค๊ฐ ์๊ฐ๋ฆฌ๊ฒ ์คํ๋๋ ๊ฒ์ ๋ณผ ์ ์๋๋ฐ One Processor์ด๊ธฐ ๋๋ฌธ์ด๋ค.
Concurrent Programming์ด๋ผ๊ณ ๋ ๋ถ๋ฅธ๋ค.
์๋ ๊ทธ๋ฆผ์ ๋์์ ๋ ๊ฐ์ ํ๋ก์ธ์ค๊ฐ ๊ฐ์ ์๊ฐ์ ์คํ๋๋ ๊ฒ์ ๋ณผ ์ ์๋๋ฐ ํ๋ก์ธ์๊ฐ ์ฌ๋ฌ ๊ฐ์ด๊ธฐ์ ๊ฐ๋ฅํ๋ค.
Parallel Programming์ด๋ผ๊ณ ๋ ๋ถ๋ฅธ๋ค.
4. Operating System Architecture
monolithic๊ณผ micro, ๋ ๊ฐ์ง ํํ๋ก ์กด์ฌ.
(2์ฃผ ์ ์ ๋ค๋ฅธ ๊ณผ๋ชฉ์์ monolithic service์ micro service์ ๋ฐฐ์ ๋๋ฐ ๋น์ทํ ๋๋์ด์๋ค.)
1) Monolithic
๊ทธ๋ฅ ๋ค ๊ฐ์ง๊ณ ์์ -> ๋น ๋ฆ
2) Micro
๋ด๋ถ์ ์ผ๋ก ์ต์ํ์ ๊ธฐ๋ฅ๋ง ๋ด๊ณ ์๋ค. -> Process Management, Basic Memory Management
์ธ๋ถ์ ์ผ๋ก(External Subsystem) ๋ค๋ฅธ ์์๋ค์ ๋ถ๋ฆฌ.
๋จ์ ? Mode change๋ฅผ ํตํด ๋ฐ๋ณต์ ์ผ๋ก ์ ๊ทผํด์ผํ๋ฏ๋ก ์คํ ์๊ฐ์ด ๊ธธ๋ค.
'๐ CS > Operating System' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[OS] 6. I/O Management and Disk Scheduling (0) | 2021.04.20 |
---|---|
[OS] 5. Concurrency : Deadlock and Starvation (0) | 2021.04.20 |
[OS] 4. Concurrency : Mutual Exlusion and Synchronization (0) | 2021.04.19 |
[OS] 3. Threads (0) | 2021.04.19 |
[OS] 2. Process Description and Control (0) | 2021.04.19 |