๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ’ป CS/์šด์˜์ฒด์ œ13

[์šด์˜์ฒด์ œ] 4. Process Management ํ”„๋กœ์„ธ์Šค ์ƒ์„ฑ Process Creation ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž์‹ ํ”„๋กœ์„ธ์Šค ์ƒ์„ฑ ๋ณต์ œ ์ƒ์„ฑ : process context - code, data, stack / CPU context - PCB์„ ๋ชจ๋‘ ๋ณต์‚ฌ ํ”„๋กœ์„ธ์Šค์˜ ํŠธ๋ฆฌ(๊ณ„์ธต ๊ตฌ์กฐ) ํ˜•์„ฑ ํ”„๋กœ์„ธ์Šค๋Š” ์ž์›์„ ํ•„์š”๋กœ ํ•จ : ์šด์˜์ฒด์ œ๋กœ๋ถ€ํ„ฐ ๋ฐ›๊ฑฐ๋‚˜ ๋ถ€๋ชจ์™€ ๊ณต์œ  ์ž์›์˜ ๊ณต์œ  ๋ถ€๋ชจ์™€ ์ž์‹์ด ๋ชจ๋“  ์ž์›์„ ๊ณต์œ ํ•˜๋Š” ๋ชจ๋ธ : Copy-on-write(COW) copy ์ž์ฒด๋Š” ๋น„ํšจ์œจ์ ์ด๊ณ  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋‚ญ๋น„ํ•˜๋Š” ํ–‰์œ„ ๋ฆฌ๋ˆ…์Šค ๋“ฑ ํšจ์œจ์ ์ธ OS์—์„œ๋Š” ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ๊ณต์œ ํ•˜๊ณ  ๋‹ฌ๋ผ์ง€๋Š” ๊ฒƒ๋งŒ ์ผ๋ถ€ copy(write) ์ผ๋ถ€๋ฅผ ๊ณต์œ ํ•˜๋Š” ๋ชจ๋ธ ์ „ํ˜€ ๊ณต์œ ํ•˜์ง€ ์•Š๋Š” ๋ชจ๋ธ(์ผ๋ฐ˜์  : ๋ณ„๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ถ€๋ชจ-์ž์‹ ๊ฒฝ์Ÿ) ์ˆ˜ํ–‰ Execution ๋ถ€๋ชจ์™€ ์ž์‹์ด ๊ณต์กดํ•˜๋ฉฐ ์ˆ˜ํ–‰๋˜๋Š” ๋ชจ.. 2022. 11. 27.
[์šด์˜์ฒด์ œ] 3. Process ํ”„๋กœ์„ธ์Šค์˜ ๊ฐœ๋… a program in execution ํ”„๋กœ์„ธ์Šค์˜ ๋ฌธ๋งฅ(context) ํŠน์ • ์‹œ์ ์—์„œ ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค๊ฐ€ ์–ด๋””๊นŒ์ง€ ์‹คํ–‰์„ ํ–ˆ๋Š”์ง€ ๊ทœ๋ช…ํ•˜๋Š” ์š”์†Œ 1) CPU ์ˆ˜ํ–‰ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํ•˜๋“œ์›จ์–ด ๋ฌธ๋งฅ : Program Counter, ๊ฐ์ข… register register๊ฐ€ ํ˜„์žฌ ์–ด๋–ค ๊ฐ’์„ ๊ฐ€์ง€๋Š”๊ฐ€ 2) ํ”„๋กœ์„ธ์Šค์˜ ์ฃผ์†Œ ๊ณต๊ฐ„ : code, data, stack code : ํ˜„์žฌ ์–ด๋””๊นŒ์ง€ ์ˆ˜ํ–‰ํ–ˆ๋Š”๊ฐ€ data : ํ˜„์žฌ ๋ณ€์ˆ˜์˜ ๊ฐ’์ด ๋ฌด์—‡์ธ๊ฐ€ stack : ๋ฌด์Šจ ๋‚ด์šฉ์„ ์–ด๋””๊นŒ์ง€ ์ €์žฅํ–ˆ๋Š”๊ฐ€ 3) ํ”„๋กœ์„ธ์Šค ๊ด€๋ จ ์ปค๋„ ์ž๋ฃŒ ๊ตฌ์กฐ : PCB(Process Control Block), Kernel stack process ์ƒ์„ฑ๋  ๋•Œ๋งˆ๋‹ค pcb๋ฅผ ๋‘์–ด ๊ด€๋ฆฌ kernel stack : system call ์‹œ kerne.. 2022. 11. 20.
[์šด์˜์ฒด์ œ] 2. System Structure & Program Execution 2 ๋™๊ธฐ์‹ ์ž…์ถœ๋ ฅ๊ณผ ๋น„๋™๊ธฐ์‹ ์ž…์ถœ๋ ฅ 1) ๋™๊ธฐ์‹ ์ž…์ถœ๋ ฅ synchronous I/O I/O ์š”์ฒญ ํ›„ ์ž…์ถœ๋ ฅ ์ž‘์—…์ด ์™„๋ฃŒ๋œ ํ›„์—์•ผ ์ œ์–ด๊ฐ€ ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์— ๋„˜์–ด๊ฐ. ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž…์ถœ๋ ฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋™์•ˆ ๊ธฐ๋‹ค๋ฆฌ๊ธฐ / ์ž…์ถœ๋ ฅ์ด ๋๋‚  ๋•Œ๊นŒ์ง€ ์•„๋ฌด๊ฒƒ๋„ ํ•˜์ง€ ์•Š๊ณ  ๊ธฐ๋‹ค๋ ค์•ผ ํ•จ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•1 : ์ผ์„ ๋ชปํ•˜๋Š” ๋™์•ˆ CPU๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ I/O๊ฐ€ ๋๋‚  ๋•Œ๊นŒ์ง€ CPU๋ฅผ ๋‚ญ๋น„์‹œํ‚ด ๋งค์‹œ์  ํ•˜๋‚˜์˜ I/O๋งŒ ์ผ์–ด๋‚  ์ˆ˜ ์žˆ์Œ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•2 : ์ผ์„ ๋ชปํ•˜๋Š” ๋™์•ˆ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์—๊ฒŒ CPU๋ฅผ ๋„˜๊ฒจ์คŒ I/O๊ฐ€ ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์—๊ฒŒ์„œ CPU๋ฅผ ๋นผ์•—์Œ I/O ์ฒ˜๋ฆฌ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ค„์— ๊ทธ ํ”„๋กœ๊ทธ๋žจ์„ ์ค„ ์„ธ์›€ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์— CPU๋ฅผ ์คŒ -> ํ˜„์žฌ ์ž‘์—… ๋๋‚˜๋ฉด interrupt ๊ฑธ์–ด์„œ CPU ๋‹ค์‹œ ๊ฐ€์ ธ์˜ด 2) ๋น„๋™๊ธฐ์‹ ์ž…์ถœ๋ ฅ asynchronous .. 2022. 11. 20.
[์šด์˜์ฒด์ œ] 2. System Structure & Program Execution 1 ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ ๊ตฌ์กฐ 1. Memory CPU์˜ ์ž‘์—…๊ณต๊ฐ„. CPU๊ฐ€ ์ง์ ‘ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๋‚ด๋ถ€ ๊ธฐ์–ต์žฅ์น˜๋กœ, ํŠน์ • ํ”„๋กœ๊ทธ๋žจ์ด CPU์—์„œ ์‹คํ–‰๋˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ•ด๋‹น ๋ถ€๋ถ„์ด ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์™€ ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์ปดํ“จํ„ฐ ๋ถ€ํŒ… ์‹œ, OS๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ€๊ฒŒ ๋จ -> ๋ฉ”๋ชจ๋ฆฌ์— ์ƒ์ฃผํ•˜๋Š” CPU์˜ ์ž‘์—… ๊ณต๊ฐ„์„ main memory๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค 2. I/O Device 1) Device Controller I/O ์žฅ์น˜๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์ผ์ข…์˜ ์ž‘์€ CPU๋กœ, I/O๊ฐ€ ๋๋‚ฌ์„ ๊ฒฝ์šฐ interrupt๋กœ CPU์—๊ฒŒ ํ•ด๋‹น ์‚ฌ์‹ค์„ ์•Œ๋ฆฌ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค CPU์™€ I/O device์˜ ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— device๋งˆ๋‹ค controller๋ฅผ ๋‘์–ด ๊ด€๋ฆฌํ•œ๋‹ค. ์ œ์–ด ์ •๋ณด๋ฅผ ์œ„ํ•ด control register, status register / local.. 2022. 11. 20.