๐Ÿ–ฅ 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 ํ”„๋กœ์„ธ์„œ, ๊ธฐ์–ต์žฅ์น˜, ์ž…์ถœ๋ ฅ ์žฅ์น˜ ๋“ฑ์˜ ํšจ์œจ์ ์ธ ๊ด€๋ฆฌ ์‚ฌ์šฉ์ž ๊ฐ„์˜ ํ˜•ํ‰์„ฑ ์žˆ๋Š” ์ž์› ๋ถ„๋ฐฐ ์ฃผ์–ด์ง„ ์ž์›์œผ๋กœ ์ตœ๋Œ€ํ•œ์˜ ..