๐ ๊ณต๋ฃก์ฑ ๊ธฐ๋ฐ์ผ๋ก ํ๊ต์์ ์์ ํ๋ ์ด์์ฒด์ ๋ฅผ ์ ๋ฆฌํฉ๋๋ค.
What Operating Systems Do?
- ์ด์์ฒด์ = ์ปดํจํฐ์ ์ฌ์ฉ์์ ํ๋์จ์ด ์ฌ์ด ์ค๊ฐ ์ญํ

- OS๋ ํ๋์จ์ด์ ํน์ฑ์ ์ด์ฉํด์ ํ๋ก๊ทธ๋จ์ ํธํ๊ณ ํจ์จ์ ์ผ๋ก ์คํ์์ผ์ฃผ๋๋ก ํ๋ค.
- convenience(ํธ๋ฆฌ์ฑ) : GUI๋ฅผ ํ์ฉํด์ ํ๋ก๊ทธ๋จ์ ์คํ, ์ข ๋ฃ ๋ฑ๋ฑ ํธํ๊ฒ
- efficiency (ํจ์จ์ฑ) : ์ ํ๋ ์์, ๋ญ๋น X
0๏ธโฃ Computer Architecture 101
(1) von Neumann Architecture

- ์ปดํจํฐ = ์ฃผ์ด์ง ํ
์คํฌ๋ฅผ ์ํ
- Central Processing Unit
- arithmetic logic unit : ๊ณ์ฐ(+-/*)
- process register : ์ ์ฅ
- ๋ฉ๋ชจ๋ฆฌ : ๋ฐ์ดํฐ์ instruction์ “๊ฐ์ด” ๊ฐ๊ณ ์๋ค.
- Central Processing Unit
(2) Storage Hierarchy
- Speed(์๋), Cost(๋น์ฉ), Volatility(ํ๋ฐ์ฑ, ๋ณ๋์ฑ)
- ๋ฉ๋ชจ๋ฆฌ ์ข
๋ฅ → ํธ๋ฆฌ ํํ์ ๊ตฌ์กฐ
- ์ ๊ทผ ์๋, ๋ง๋๋ ๋ฐ ๋๋ ๋น์ฉ, ์๊ตฌ์ /๋ฐ์๊ตฌ์ ๋ณด์กด(RAM, Cache, …)
- ์์ ๊ฐ์ ํน์ฑ์ ๋ฐ๋ผ์ ์ด๋ค ์ข ๋ฅ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆด์ง OS๊ฐ ๊ฒฐ์ (์ต๋ ์ฉ๋์ด ์ ํด์ ธ ์์)

- ์์ : cache๋ก ๋ถ๋ฌ๋ค์ธ instruction์ OS๊ฐ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ๋๊ฐ

1๏ธโฃ Process Management
- user : ํ๋ก๊ทธ๋จ์ ๋๋ฆฌ๊ณ ์ถ์ ์ฌ๋
- computer(HW) : ์ ํ๋ ์์ ๊ฐ์ง๊ณ ํจ์จ์ ์ผ๋ก
→ ๋ ์๊ตฌ์ฌํญ์ ๋ง์ถ๊ธฐ ์ํด์ OS๋ Process Management & Process Synchronization ๋ฅผ ์ํํ๋ค.
(1) Process : ์ผ์ ๋จ์
๊ทธ๋ ๋ค๋ฉด ํ๋ก์ธ์ค๋ ๋ฌด์์ผ๊น?
- Process vs Program
- ์คํํ ์ ์๋ ์คํ ํ์ผ์ ํ๋ก๊ทธ๋จ(program)
- ํ๋ก์ธ์ค(process)๋ ์คํ ์ค์ธ ํ๋ก๊ทธ๋จ
- ํ๋ก๊ทธ๋จ์ ์คํํ๋ฉด ํ๋ก์ธ์ค ๋จ์
- ์ฆ, ํ๋ก์ธ์ค๋ ์ผ์ ๋จ์!
- ๋ง์ ํ๋ก์ธ์ค๊ฐ ์์คํ
์ ์์ ๋, ํ๋ก์ธ์ค์ ๋ผ์ดํํ์์ ๊ด๋ฆฌํด์ค์ผ ํ๋ค.
- PCB : ํ๋ก๊ทธ๋จ์ ์ ๊ด๋ฆฌํ๊ธฐ ์ํ data structure(๊ตฌ์กฐ์ฒด)
- ์ฌ์ฉ์ ์ ์ฅ์์๋ ๋ชฐ๋ผ๋ ๊ด์ฐฎ์ง๋ง, OS ์ ์ฅ์์๋ ์ด๋ฅผ ํ์ฉํด์ ํ๋ก๊ทธ๋จ์ ๊ด๋ฆฌํ๋ค.
- PCB : ํ๋ก๊ทธ๋จ์ ์ ๊ด๋ฆฌํ๊ธฐ ์ํ data structure(๊ตฌ์กฐ์ฒด)

(2) Thread : ํ ํ๋ก์ธ์ค ์ฝ์ด์ ์คํ๋ ์ ์๋ ๋จ์
- ์ด ํ๋ก์ธ์ค์๋, ์ฝ์ด(core)๊ฐ ์กด์ฌํ๋ค.
- ์ฐ๋ ๋๋ ํ ํ๋ก์ธ์ค ์ฝ์ด์ ์คํ๋ ์ ์๋ ๋จ์๋ฅผ ๋งํ๋ค.
- ๊ธฐ๋ณธ์ ์ผ๋ก๋ 1ํ๋ก์ธ์ค 1์ฐ๋ ๋์ธ๋ฐ, 1ํ๋ก์ธ์ค n์ฐ๋ ๋(=multithread) ๊ฐ๋ฅ
- ์: ํฌ๋กฌ(ํ๋ก์ธ์ค) - ์๋(thread 1), ์นํ์ด์ง(thread 2) , … ์ฌ๋ฌ ํ ์คํฌ!

(3) Process Scheduling
- ์ฌ๋ฌ๊ฐ์ ํ๋ก์ธ์ค, ํ๋์ ์ฝ์ด
- ์ด๋ค ํ๋ก์ธ์ค๋ฅผ ์ด๋ค ์๊ฐ์ ์ฌ์ฉํ๋์ง์ ๋ฐ๋ผ์ ์ฑ๋ฅ์ด ๋ง์ด ๋ฌ๋ผ์ง๋ค.
- ์๊ฐ๋๋ฅผ ์ ๋๋ ์ ์ฝ์ด๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.
- ์) Round-Robin ; 1๋ฒ 10์ด, 2๋ฒ 10์ด, 3๋ฒ 10์ด … → ๊ฐ๊ฐ ๋์๊ฐ๋ฉด์ ๊ณตํํ๊ฒ
- etc) First-Come, First Served Shortest-Job-First Multi-level-Queue Priority
2๏ธโฃ Process Synchronization
- ํ๋ก์ธ์ค๊ฐ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ ๋ ์ ๊ด๋ฆฌํ๊ธฐ ์ํ ๋๊ธฐํ → synchronization
- ๊ณต์ ๋ณ์, ์์์ ๋ํ ๊ด๋ฆฌ → critical section

3๏ธโฃ Memory Management
: ํ์ ์ ๋ฉ๋ชจ๋ฆฌ์ ์ด๋ป๊ฒ ํ๋ก๊ทธ๋จ์ ๋๋ฆด์ง
- ์ค์ ๋ก ๋์ํ๋ ค๋ฉด ๋ฉ๋ชจ๋ฆฌ ์ด๋๊ฐ์ ์ฌ๋ผ๊ฐ ์์ด์ผ ํ๋ค.
- ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ณดํต array๋ก ํํ๋๋๋ฐ, ํ๋ก์ธ์ค์ ์ฒซ๋ถ๋ถ์ low, ๋๋ถ๋ถ์ high
- ํ ๋ฒ ์ฐ์ด๊ณ , ๋ค์ ์ ์ฐ์ธ๋ค๋ฉด.. ๋ค๋ฅธ ์ ๋ค์ด ์ฐ๋๋ก ๊ณต๊ฐ์ ํ ๋นํด์ค ์ ์๋ค (๋์ค์ ๋ ์์ธํ)
- ๊ฐ๋จํ ๋ฐฉ๋ฒ = ๊ณ ์ ์ ์ผ๋ก ์ฐ์๋ ๊ณต๊ฐ
- ๋ฌธ์ ? ํ๋ก์ธ์ค์ ๋ฐ๋ผ ์ธ ์ฉ๋์ด ๋ฌ๋ผ์ง๋๋ฐ ๋จ๋ ๊ณต๊ฐ์ด ์๊ธฐ๊ฒ ๋๋ค(๋ญ๋น, ๋นํจ์จ์ )→ ์ชผ๊ฐ์ ์ ํ์ฉ

4๏ธโฃ Storage Management
: ํ๋์จ์ด์ ๋ฌผ๋ฆฌ์ ์ธ ํน์ฑ์ ๊ณ ๋ คํด์ ์ด์์ฒด์ ๊ฐ ์๊ณ ๋ฆฌ์ฆ์ ์ ๊ณตํด์ผ ํ๋ค.
→ ๋ค์ด์จ ์์๋๋ก ํ๋ ๊ฒ ์๋๋ผ, ์ต์ํ์ ์์ง์์ ์ต๋ํ ๋นจ๋ฆฌ!!
- ํ๋ ๋์คํฌ : ๋ฐ์ดํฐ ์ฝ์ผ๋ ค๋ฉด ๋์คํฌ๋ฅผ ํ์ ์์ผ์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ฃผ๋ arm์ด ์์ง์ด๋ฉด์ ๋์คํฌ๋ฅผ ๋๋ฆฌ๊ณ ๋ฐ์ดํฐ์ ์ ๊ทผํ๋ค.
- ๋ฌผ๋ฆฌ์ ์ธ ์๊ฐ์ด ๋ฐ์ดํฐ๋ฅผ ์ ๊ทผํ ๋ ๋ ๋ค → ์ ์ค์ผ์ค๋ง์ ํด์ผ ์ต์ํ์ ์์ง์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด๋ผ ์ ์๋ค.
- SSD : ๋๋ค ์์ธ์ค๊ฐ ๊ฐ๋ฅํ์ง๋ง, ๋ฎ์ด์ฐ๊ธฐ๋ฅผ ๋ชป ํ๋ค. ํ ๋ธ๋ญ์ ์ ๋ถ ์ง์์ผ ํ๋ค๋ ๋ฌผ๋ฆฌ์ ํน์ฑ์ด ์๋ค.
5๏ธโฃ File Management
ํด๋์ ๋ค์ด๊ฐ์ ๋ ๋ฐ์ดํฐ๋ฅผ ๋นจ๋ฆฌ ์ฃผ๋ ค๋ฉด ๋์คํฌ์์ ์ฝ์ด์ ์ ๊ณตํ๋ค
→ ํด๋๋ฅผ ๋ฏธ๋ฆฌ ์ฝ์ด์์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ ค๋์ ๋นจ๋ฆฌ ์ ๊ณตํ๋ ํ ํฌ๋ ๊ฐ์ ํ์ผ ์์คํ ์ ํจ์จ์ ๊ด๋ฆฌ๊ฐ ํ์ํ๋ค!

Summary
- ์ด๋ค ํ๋ก๊ทธ๋จ์ด๋ ํ์ผ, ๋ฐ์ดํฐ๋ฅผ ์ ์ด์ฉํ ์ ์๋ ๋ ผ๋ฆฌ์ ๊ตฌ์กฐ๋ฅผ ์ ๊ณต(ํ๋ก์ธ์ค ๋จ์๋ก ๊ด๋ฆฌ, 0101๋ก ์ด๋ค์ง๊ฑธ ๊ด๋ฆฌํ๊ธฐ ํธํ๊ฒ)
- ํธ์์ฑ์ ์ ๊ณตํ๋ฉด์ ํ๋์จ์ด๋ฅผ ์ utilize (์ ํ๋ ์ฝ์ด์ ์ ์ค์ผ์ฅด๋งํด์ ๊ฒฐ๊ณผ๊ฐ์ ์ ์ ๊ณตํ ๊ฒ์ธ์ง, ํ๋๋์คํฌ์ ํน์ฑ์ ๋ฐ์ํด์ ์ผ๋ง๋ ๋นจ๋ฆฌ ์ ์ ์๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํ ๊ฒ์ธ์ง)
'๐ฑ CS > ์ด์์ฒด์ (OS)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [์ด์์ฒด์ ๊ณต๋ฃก์ฑ ] Ch4. Threads & Concurrency (0) | 2024.05.12 |
|---|---|
| [์ด์์ฒด์ ๊ณต๋ฃก์ฑ ] Ch 3. Processes (1) | 2024.04.26 |
| [์ด์์ฒด์ ๊ณต๋ฃก์ฑ ] Ch 2. Operating-System Structures (1) | 2024.04.26 |