๐ฅ CS/์ด์์ฒด์
[์ด์์ฒด์ ] Process Management | ์์คํ ์ฝ, CPU burst time
ํ๋ก์ธ์ค ์์ฑ ๋ถ๋ชจ ํ๋ก์ธ์ค๊ฐ ์์ ํ๋ก์ธ์ค๋ฅผ ์์ฑ → ๋ณต์ ์์ฑ ์ ์ฒด ํ๋ก์ธ์ค๋ ํธ๋ฆฌ ๊ณ์ธต๊ตฌ์กฐ ํ์ฑ ํ๋ก์ธ์ค๋ ์คํ์ ์ํด ์์์ ํ์๋ก ํจ ์ด์์ฒด์ ๋ก๋ถํฐ ๋ฐ๋๋ค. ์์์ ๊ณต์ ๋ถ๋ชจ์ ์์์ด ์์์ ๊ณต์ ํ ์ ์์ง๋ง ๋ ๋ฆฝ์ ์ธ ์์์ ๊ฐ๋ ๊ฒ์ด ์์น Copy-on-write(COW) write๊ฐ ๋ฐ์ํ์ ๋(๋ด์ฉ์ ๋ณํ๊ฐ ์์ ๋) ๋ถ๋ชจ์ code, data, stack ๋ฑ์ copy ํ๋ค. ์ํ (Execution) ๋ถ๋ชจ์ ์์ ์ ๊ณต์กดํ๋ฉฐ ์ํ๋๋ ๋ชจ๋ธ ์์์ด ์ข ๋ฃ(terminate)๋ ๋๊น์ง ๋ถ๋ชจ๊ฐ ๊ธฐ๋ค๋ฆฌ๋(wait - blocked) ๋ชจ๋ธ ์ฃผ์ ๊ณต๊ฐ(Address space) ์์์ ๋ถ๋ชจ์ ๊ณต๊ฐ์ ๋ณต์ฌํจ (binary and OS data) ์์์ ๊ทธ ๊ณต๊ฐ์ ์๋ก์ด ํ๋ก๊ทธ๋จ์ ์ฌ๋ฆผ fork() ์์ค..
[์ด์์ฒด์ ] ํ๋ก์ธ์ค (2) | ๋๊ธฐ/๋น๋๊ธฐ์ ์ ์ถ๋ ฅ, Thread
๋๊ธฐ์ ์ ์ถ๋ ฅ๊ณผ ๋น๋๊ธฐ์ ์ ์ถ๋ ฅ ๋๊ธฐ์ ์ ์ถ๋ ฅ(synchronous I/O) I/O ์์ฒญ ํ ์ ์ถ๋ ฅ ์์ ์ด ์๋ฃ๋ ํ์์ผ ์ ์ด๊ฐ ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ ๋์ด๊ฐ ๊ตฌํ ๋ฐฉ๋ฒ 1 I/O๊ฐ ๋๋ ๋๊น์ง CPU๋ฅผ ๋ญ๋น์ํด ๋งค์์ ํ๋์ I/O๋ง ์ผ์ด๋ ์ ์์ ๊ตฌํ ๋ฐฉ๋ฒ 2 (์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ) I/O๊ฐ ์๋ฃ๋ ๋๊น์ง ํด๋น ํ๋ก๊ทธ๋จ์๊ฒ์ CPU๋ฅผ ๋นผ์์ I/O ์ฒ๋ฆฌ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ์ค์ ๊ทธ ํ๋ก๊ทธ๋จ์ ์ค ์ธ์ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์๊ฒ CPU๋ฅผ ์ค ๋น๋๊ธฐ์ ์ ์ถ๋ ฅ (asynchronous I/O) I/O๊ฐ ์์๋ ํ ์ ์ถ๋ ฅ ์์ ์ด ๋๋๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ์ ์ด๊ฐ ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ ์ฆ์ ๋์ด๊ฐ ⇒ ๋ ๊ฒฝ์ฐ ๋ชจ๋ I/O์ ์๋ฃ๋ ์ธํฐ๋ฝํธ๋ก ์๋ ค์ค Thread A thread(or lightweight process) is a basic un..
[์ด์์ฒด์ ] ํ๋ก์ธ์ค (1) | Process State, Context Switch, Scheduler
ํ๋ก์ธ์ค์ ๊ฐ๋ ⇒ ์คํ ์ค์ธ ํ๋ก๊ทธ๋จ ํ๋ก์ธ์ค์ ๊ตฌ์ฑ : ํ๋ก๊ทธ๋จ ์ฝ๋(text section), ํ๋ก๊ทธ๋จ ์นด์ดํฐ, ํ๋ก์ธ์ ๋ ์ง์คํฐ Stack: ๋ฐ์ดํฐ๋ฅผ ์ผ์์ ์ผ๋ก ์ ์ฅํ๋ ์์ญ Data section: ํ๋ก๊ทธ๋จ์ ๊ฐ์ ์ฃผ์ ๊ณต๊ฐ Heap: ์ฝ๋ ์์ญ๊ณผ๋ ๋ณ๋๋ก ์ ์ง๋๋ ์์ ์์ญ Code: ์คํ ๋ช ๋ น์ ํฌํจํ๋ ๋ฉ๋ชจ๋ฆฌ์ด๊ฑฐ๋ ๋ชฉ์ ํ์ผ์ ์๋ ํ๋ก๊ทธ๋จ ์์ญ ํ๋ก์ธ์ค์ ๋ฌธ๋งฅ(context) CPU ์ํ ์ํ๋ฅผ ๋ํ๋ด๋ ํ๋์จ์ด ๋ฌธ๋งฅ Program Counter ๊ฐ์ข register ํ๋ก์ธ์ค์ ์ฃผ์ ๊ณต๊ฐ code, data, stack ํ๋ก์ธ์ค ๊ด๋ จ ์ปค๋ ์๋ฃ๊ตฌ์กฐ PCB Kernel stack ํ๋ก์ธ์ค์ ์ํ (Process State) ํ๋ก์ธ์ค๋ ์ํ(state)๊ฐ ๋ณ๊ฒฝ๋๋ฉฐ ์คํ๋๋ค. Running C..
[์ด์์ฒด์ ] Program Execution | ํ๋ก๊ทธ๋จ ์คํ
ํ๋ก๊ทธ๋จ์ ์คํ ๋ฉ๋ชจ๋ฆฌ์ฃผ์๋ฅผ ๋ฐ๊พผ๋ค = ์ ํํ๋ค virtual memory ์์์ ๋ค๋ฅธ ์์ญ์ผ๋ก ์ ํ ๋ถ๊ฐ ์ปค๋ ์ฃผ์ ๊ณต๊ฐ ์ปค๋ ์ฝ๋: ํจ์ ํํ๋ก ์ธํฐ๋ฝํธ๋ค์ ๋ํด ๋ฌด์จ ์ผ์ ํด์ผํ ์ง ๋ค์ด์์ data: ํ๋์จ์ด๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ ์๋ฃ๊ตฌ์กฐ๋ค์ด ๋ค์ด์์ ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ด ์ฌ์ฉํ๋ ํจ์ ํจ์(function) ์ฌ์ฉ์ ์ ์ ํจ์ 'code' - ์ฌ์ฉ์ ์ ์ ํจ์ / ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํจ์ ์์ ์ ํ๋ก๊ทธ๋จ์์ ์ ์ํ ํจ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํจ์ ์์ ์ ํ๋ก๊ทธ๋จ์์ ์ ์ํ์ง ์๊ณ ๊ฐ๋ค ์ด ํจ์ ์์ ์ ํ๋ก๊ทธ๋จ์ ์คํ ํ์ผ์ ํฌํจ๋์ด ์์ ์ปค๋ ํจ์ 'code' - ์ปค๋ ํจ์ ์ด์์ฒด์ ํ๋ก๊ทธ๋จ์ ํจ์ ์ปค๋ ํจ์์ ํธ์ถ = ์์คํ ์ฝ ํ๋ก๊ทธ๋จ์ ์คํ A์ ํ๋ก๊ทธ๋จ ์คํ ~ ์ข ๋ฃ
[์ด์์ฒด์ ] System Structure
์ปดํจํฐ ์์คํ ๊ตฌ์กฐ CPU ๋ ์ง์คํฐ CPU๋ ํ๋ก๊ทธ๋จ ์นด์ดํฐ(์ํํด์ผ ํ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ๋ด๊ณ ์๋ ๋ ์ง์คํฐ)๊ฐ ๊ฐ๋ฆฌํค๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๋ช ๋ น์ ์ฒ๋ฆฌํ๊ฒ ๋๋ค. ์ธํฐ๋ฝํธ ๋ผ์ธ ์ธํฐ๋ฝํธ๋ฅผ ๋ฐ์์ํค๊ธฐ ์ํด ์ฃผ๋ณ ์ฅ์น๋ ์ธํฐ๋ฝํธ ๋ผ์ธ์ ์ธํ ํ๊ณ CPU๋ ๋งค๋ฒ ๋ช ๋ น์ ์ํํ ํ ์ธํฐ๋ฝํธ ๋ผ์ธ์ ์ฒดํฌํด ์๋น์ค ์์ฒญ์ด ์๋์ง ํ์ธํ๋ค. ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ ์๋ชป๋ ์ํ์ผ๋ก ๋ค๋ฅธ ํ๋ก๊ทธ๋จ ๋ฐ ์ด์์ฒด์ ์ ํผํด๊ฐ ๊ฐ์ง ์๋๋ก ํ๊ธฐ ์ํ ๋ณดํธ ์ ์ฐจ ๋ชจ๋๋น์ด 0์ผ๋ (๋ชจ๋ํฐ ๋ชจ๋ = ์ปค๋ ๋ชจ๋ = ์์คํ ๋ชจ๋) ์ด์์ฒด์ ๊ฐ cpu์์ ์คํ ์ค ๋ฌด์จ์ผ์ธ์ง ๋ค ํ ์์์ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ i/o device ์ ๊ทผ ๋ชจ๋๋น์ด 1์ผ ๋ (์ฌ์ฉ์ ๋ชจ๋) ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ด cpu๊ฐ๊ณ ์์ ๋ณด์์ ์ํด ์ ํ๋(ํ์ ๋) instruction๋ง ์คํํ ์ ์..
[์ด์์ฒด์ ] Introduction to Operating System
์ด์์ฒด์ ๋ ๋ฌด์์ธ๊ฐ? ์ด์์ฒด์ ๋? ์ปดํจํฐ ํ๋์จ์ด ๋ฐ๋ก ์์ ์ค์น๋์ด ์ฌ์ฉ์ ์ปดํจํฐ& ๋ค๋ฅธ ๋ชจ๋ ์ํํธ์จ์ด์ ํ๋์จ์ด ์ฌ์ด๋ฅผ ์ฐ๊ฒฐํ๋ ์ธํฐํ์ด์ค ์ข์ ์๋ฏธ์ ์ด์์ฒด์ (์ปค๋) ์ด์์ฒด์ ์ ํต์ฌ ๋ถ๋ถ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ์ ์์ฃผํ๋ ๋ถ๋ถ ๋์ ์๋ฏธ์ ์ด์์ฒด์ ์ปค๋ ๋ฟ ์๋๋ผ ๊ฐ์ข ์ฃผ๋ณ ์์คํ ์ ํธ๋ฆฌํฐ๋ฅผ ํฌํจํ ๊ฐ๋ ์ด์์ฒด์ ์ ๋ชฉ์ ์ปดํจํฐ ์์คํ ์ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ ์ ์๋ ํ๊ฒฝ์ ์ ๊ณต ์ด์์ฒด์ ๋ ๋์ ์ฌ์ฉ์ / ํ๋ก๊ทธ๋จ๋ค์ด ๊ฐ์ ๋ ์์ ์ปดํจํฐ์์ ์ํ๋๋ ๊ฒ ๊ฐ์ ํ์์ ์ ๊ณต ํ๋์จ์ด๋ฅผ ์ง์ ๋ค๋ฃจ๋ ๋ณต์กํ ๋ถ๋ถ์ ์ด์์ฒด์ ๊ฐ ๋ํ ์ปดํจํฐ ์์คํ ์ ์์์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌ - A resource allocator ํ๋ก์ธ์, ๊ธฐ์ต์ฅ์น, ์ ์ถ๋ ฅ ์ฅ์น ๋ฑ์ ํจ์จ์ ์ธ ๊ด๋ฆฌ ์ฌ์ฉ์ ๊ฐ์ ํํ์ฑ ์๋ ์์ ๋ถ๋ฐฐ ์ฃผ์ด์ง ์์์ผ๋ก ์ต๋ํ์ ..