๐ฅ 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..
[๋คํธ์ํฌ] Network Layer - Application Layer(1) | HTTP
Application Layer HTTP Transport Layer TCP/UDP Network Layer IP Link Layer WIFI, LTE, Ethernet Physical Layer ๋ผ์ฐํฐ๋ ๋คํธ์ํฌ Layer๊น์ง๋ง ์กด์ฌ (Network, Link, Physical) Process์ Socket์ ์ด์ฉํ์ฌ ๋ค๋ฅธ ์ปดํจํฐ๋ผ๋ฆฌ ํต์ IP์ฃผ์, Port๋ฒํธ ์ฌ์ฉ HTTP Hyper Text transfer protocol = Hypertext๋ฅผ ์ ๋ฌํ๋ ํ๋กํ ์ฝ Application Layer์ ํ๋กํ ์ฝ ์ค ํ๋ HTTP ํน์ง ์ฒ์์ TCP๊ฐ Connection์ ๋งบ์ผ๋ฉด ์ดํ HTTP ๋ฉ์์ง๊ฐ ๊ตํ ์ ๋ขฐ์ฑ ์๋ ํต์ ๊ฐ๋ฅ ๋ฉ์์ง ๊ตํ ์ TCP Connection ์์ฑ ํ์ stateless ์๋..
[์ด์์ฒด์ ] ํ๋ก์ธ์ค (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์ ํ๋ก๊ทธ๋จ ์คํ ~ ์ข ๋ฃ
[๋คํธ์ํฌ] Introduction
The network edge host: ๋คํธ์ํฌ์์ ์ฌ์ฉ๋๋ ์ปดํจํฐ client: ์๋ฒ์๊ฒ ์ ๋ณด๋ฅผ ์์ฒญํ๊ฑฐ๋ ๋ฐ๋ ์ปดํจํฐ server: ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ๋ฐ์ ์์ฒญ์ ๋ฐ๋ผ ์ ๋ณด๋ฅผ ๋ณด๋ด์ฃผ๋ ์ปดํจํฐ Network edge: ๋ฐ์ดํฐ ์ ๋ฌ ๋ฐฉ์ TCP reliable ๋ฐ์ดํฐ๊ฐ ์ ์ค๋์ง ์์ ๋ฐ์ดํฐ์ transfer ์์๊ฐ ๋ฐ๋์ง ์์ ์์๊ฐ ๋ณด์ฅ๋จ flow control receiver์ ๋ง์ถฐ ์๋ ์กฐ์ congestion control ๋คํธ์ํฌ์ ๋ฅ๋ ฅ์ ๋ง์ถ์ด ์๋ ์กฐ์ resource high UDP reliableํ์ง ์์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณด์ฅํ์ง ์์๋ ๋๋ ๊ฒฝ์ฐ์ ์ฌ์ฉ ex. real-time voice What’s a protocol? ํ๋กํ ์ฝ์ ๋ ์ด์์ ํต์ ๊ฐ์ฒด ๊ฐ ๊ตํ๋๋ ๋ฉ์์ง ํฌ๋งท๊ณผ ์์๋ฟ ..
[์ด์์ฒด์ ] System Structure
์ปดํจํฐ ์์คํ ๊ตฌ์กฐ CPU ๋ ์ง์คํฐ CPU๋ ํ๋ก๊ทธ๋จ ์นด์ดํฐ(์ํํด์ผ ํ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ๋ด๊ณ ์๋ ๋ ์ง์คํฐ)๊ฐ ๊ฐ๋ฆฌํค๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๋ช ๋ น์ ์ฒ๋ฆฌํ๊ฒ ๋๋ค. ์ธํฐ๋ฝํธ ๋ผ์ธ ์ธํฐ๋ฝํธ๋ฅผ ๋ฐ์์ํค๊ธฐ ์ํด ์ฃผ๋ณ ์ฅ์น๋ ์ธํฐ๋ฝํธ ๋ผ์ธ์ ์ธํ ํ๊ณ CPU๋ ๋งค๋ฒ ๋ช ๋ น์ ์ํํ ํ ์ธํฐ๋ฝํธ ๋ผ์ธ์ ์ฒดํฌํด ์๋น์ค ์์ฒญ์ด ์๋์ง ํ์ธํ๋ค. ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ ์๋ชป๋ ์ํ์ผ๋ก ๋ค๋ฅธ ํ๋ก๊ทธ๋จ ๋ฐ ์ด์์ฒด์ ์ ํผํด๊ฐ ๊ฐ์ง ์๋๋ก ํ๊ธฐ ์ํ ๋ณดํธ ์ ์ฐจ ๋ชจ๋๋น์ด 0์ผ๋ (๋ชจ๋ํฐ ๋ชจ๋ = ์ปค๋ ๋ชจ๋ = ์์คํ ๋ชจ๋) ์ด์์ฒด์ ๊ฐ cpu์์ ์คํ ์ค ๋ฌด์จ์ผ์ธ์ง ๋ค ํ ์์์ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ i/o device ์ ๊ทผ ๋ชจ๋๋น์ด 1์ผ ๋ (์ฌ์ฉ์ ๋ชจ๋) ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ด cpu๊ฐ๊ณ ์์ ๋ณด์์ ์ํด ์ ํ๋(ํ์ ๋) instruction๋ง ์คํํ ์ ์..
[์ด์์ฒด์ ] Introduction to Operating System
์ด์์ฒด์ ๋ ๋ฌด์์ธ๊ฐ? ์ด์์ฒด์ ๋? ์ปดํจํฐ ํ๋์จ์ด ๋ฐ๋ก ์์ ์ค์น๋์ด ์ฌ์ฉ์ ์ปดํจํฐ& ๋ค๋ฅธ ๋ชจ๋ ์ํํธ์จ์ด์ ํ๋์จ์ด ์ฌ์ด๋ฅผ ์ฐ๊ฒฐํ๋ ์ธํฐํ์ด์ค ์ข์ ์๋ฏธ์ ์ด์์ฒด์ (์ปค๋) ์ด์์ฒด์ ์ ํต์ฌ ๋ถ๋ถ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ์ ์์ฃผํ๋ ๋ถ๋ถ ๋์ ์๋ฏธ์ ์ด์์ฒด์ ์ปค๋ ๋ฟ ์๋๋ผ ๊ฐ์ข ์ฃผ๋ณ ์์คํ ์ ํธ๋ฆฌํฐ๋ฅผ ํฌํจํ ๊ฐ๋ ์ด์์ฒด์ ์ ๋ชฉ์ ์ปดํจํฐ ์์คํ ์ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ ์ ์๋ ํ๊ฒฝ์ ์ ๊ณต ์ด์์ฒด์ ๋ ๋์ ์ฌ์ฉ์ / ํ๋ก๊ทธ๋จ๋ค์ด ๊ฐ์ ๋ ์์ ์ปดํจํฐ์์ ์ํ๋๋ ๊ฒ ๊ฐ์ ํ์์ ์ ๊ณต ํ๋์จ์ด๋ฅผ ์ง์ ๋ค๋ฃจ๋ ๋ณต์กํ ๋ถ๋ถ์ ์ด์์ฒด์ ๊ฐ ๋ํ ์ปดํจํฐ ์์คํ ์ ์์์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌ - A resource allocator ํ๋ก์ธ์, ๊ธฐ์ต์ฅ์น, ์ ์ถ๋ ฅ ์ฅ์น ๋ฑ์ ํจ์จ์ ์ธ ๊ด๋ฆฌ ์ฌ์ฉ์ ๊ฐ์ ํํ์ฑ ์๋ ์์ ๋ถ๋ฐฐ ์ฃผ์ด์ง ์์์ผ๋ก ์ต๋ํ์ ..