๐Ÿ–ฅ๏ธ ์ปดํ“จํ„ฐ๊ณตํ•™/Operating System

Address๋ฉ”๋ชจ๋ฆฌ์—๋Š” ์ฃผ์†Œ๊ฐ€ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ฃผ์†Œ์—๋Š” ๋‘๊ฐ€์ง€ ์ข…๋ฅ˜, ๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ์ฃผ์†Œ์™€ ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๊ฐ€ ์žˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๋ฉด ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋˜๋ฉฐ ๋…์ž์ ์ธ ์ฃผ์†Œ๊ณต๊ฐ„์ด ํ˜•์„ฑ๋œ๋‹ค. ์ด๋•Œ ํšจ์œจ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ์„ ์œ„ํ•ด CPU๋Š” ๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ(logical address, virtual address)๋ฅผ ์ฐธ์กฐํ•˜๊ณ  ๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ๋Š” ์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ(physical memory)๋ฅผ ์ฐธ์กฐํ•˜๊ฒŒ ๋œ๋‹ค. ์ด๋Ÿฌํ•œ ์—ฎ์—ฌ์žˆ์Œ์„ ์ฃผ์†Œ๋ฐ”์ธ๋”ฉ์ด๋ผ๊ณ  ํ•œ๋‹ค.  ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ๋กœ ์ฃผ์†Œ๋ณ€ํ™˜์ด ๋˜๋Š” ์ˆœ๊ฐ„์€ ํฌ๊ฒŒ 3๊ฐ€์ง€ ์‹œ์ ์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋ณผ ์ˆ˜ ์žˆ๋‹ค.  Compile time binding ์ปดํŒŒ์ผ ์‹œ์ ์— ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๊ฐ€ ๊ฒฐ์ •๋œ๋‹ค. ๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๊ฐ€ ์‚ฌ์‹ค์ƒ ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ. ์ปดํŒŒ์ผ ๋ฐ”์ธ๋”ฉ์— ์˜ํ•ด ๋งŒ๋“ค์–ด์ง„ ์ฝ”๋“œ๋ฅผ ์ ˆ๋Œ€์ฝ”๋“œ(absolute..
Deadlock๋ฐ๋“œ๋ฝ์€ 4๊ฐ€์ง€ ์กฐ๊ฑด์„ ๋งŒ์กฑ์‹œํ‚ฌ ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค. Mutual Exclusion(์ƒํ˜ธ๋ฐฐ์ œ)ํ•œ ํ”„๋กœ์„ธ์Šค ์ž์›์„ ์–ป์œผ๋ฉด ํ•ด๋‹น ์ž์›์„ ๋…์ ์ ์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. No preemption (๋น„์„ ์ )์ž์›์„ ๊ฐ€์ง€๋ฉด ๋นผ์•—๊ธฐ์ง€ ์•Š์Œ  Hold and wait๋‹ค๋ฅธ ์ž์›์„ ์ ์œ ํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ๋‹ค๋ฆด ๋•Œ๋Š” ๋‚ด๊ฐ€ ๋“ค๊ณ  ์žˆ๋Š” ์ž์›์„ ์ ์œ ํ•œ ์ƒํƒœ์—์„œ ๊ธฐ๋‹ค๋ฆฐ๋‹ค. Circular wait์ž์›์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ํ”„๋กœ์„ธ์Šค๋ผ๋ฆฌ ์ฐธ์กฐ์ˆœํ™˜์ด ๋˜์–ด์•ผ๋งŒํ•จ์‚ฌ๊ฐํ˜•R์€ ์ž์›, ๋™๊ทธ๋ผ๋ฏธP๋Š” ํ”„๋กœ์„ธ์Šค์ด๋‹ค. ์ž‘์€ ์ ์€ ์ž์›์˜ ์ธ์Šคํ„ด์Šค ๊ฐฏ์ˆ˜๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ํ™”์‚ดํ‘œ๋ฅผ ๋”ฐ๋ผ๊ฐ”์„ ๋•Œ ๋งŒ์•ฝ ์‚ฌ์ดํด์ด ํ˜•์„ฑ์ด ์•ˆ๋œ๋‹ค๋ฉด ๋ฐ๋“œ๋ฝ์ด ์•„๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์‚ฌ์ดํด์ด ์žˆ๊ณ , ์ž์›๋‹น ์ธ์Šคํ„ด์Šค๊ฐ€ ํ•˜๋‚˜๋งŒ ์žˆ์œผ๋ฉด ๋ฐ๋“œ๋ฝ, ์ž์›๋‹น ์ธ์Šคํ„ด์Šค๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ๋ผ๋ฉด ๋ฐ๋“œ๋ฝ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š” ์ƒํƒœ์ด๋‹ค.(๋งŒ์•ฝ ์ž์›๋‹น ์ธ์Šคํ„ด์Šค..
๋ณ‘ํ–‰์ œ์–ดMultiLevel Queue๋ž€ Ready queue๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ๋กœ ๋ถ„ํ• ํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. Multi level Queue์—์„œ๋Š” ํ์˜ ์ข…๋ฅ˜๋ฅผ ๋‘๊ฐ€์ง€๋กœ ๋‚˜๋ˆˆ๋‹ค. -> foreground / background. ํ๋ฅผ ๋‚˜๋ˆ„๋Š” ๊ธฐ์ค€์€ ์‚ฌ์šฉ์ž์™€ ineteract๋ฅผ ํ•˜๋Š”๊ฒฝ์šฐ์— foreground ํ์— ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ์— background ํ์— ๋‘”๋‹ค. forground๋Š” ์‚ฌ์šฉ์ž์™€ interactiveํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋” ๋งŽ์€ CPU time ์„ ์ค€๋‹ค. ๋ณดํ†ต Time slice๋กœ RR์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ 80%๋Š” foreground, 20%๋Š” FCFS ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ background์— ํ• ๋‹นํ•˜์—ฌ starvation์„ ๋ฐฉ์ง€ํ•œ๋‹ค. Multi level feedback queue ๋Š” ๊ธฐ์กด์˜ multilevel queue๋ณด๋‹ค ..
CPU & I/O Burstํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์€ ๊ฒฐ๊ตญ CPU๋กœ ์ž‘์—…ํ•˜๋Š” ๋‹จ๊ณ„์™€ I/O ์ž‘์—…์„ ํ•˜๋Š” ๋‹จ๊ณ„๋ฅผ ์—ฐ์†ํ•ด์„œ ์ง€๋‚˜๊ฐ€๋Š” ๊ณผ์ •์ด๋‹ค. ์—ฌ๊ธฐ์„œ CPU burst๋Š” CPU๊ฐ€ ๊ธฐ๊ณ„์–ด๋ฅผ ํ•ด์„ํ•˜๊ณ  ์žˆ๋Š” ๋‹จ๊ณ„, I/Oํ•˜๋Š” ๋‹จ๊ณ„๋ฅผ I/O burst๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ํ”„๋กœ๊ทธ๋žจ๋ณ„๋กœ burst์˜ ๊ฐ„๊ฒฉ์€ ๋‹ค๋ฅด๋‹ค. ์ฃผ๋กœ ์‚ฌ๋žŒ๊ณผ ineractํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์œ„์ฒ˜๋Ÿผ ๋ฒ„์ŠคํŠธ๊ฐ€ ๋ฒˆ๊ฐˆ์•„ ๋“ฑ์žฅํ•œ๋‹ค. ์—ฐ์‚ฐ๋Ÿ‰์„ ๋งŽ์ด ํ•„์š”๋กœํ•˜๋Š” ์ž‘์—…์€ CPU Burst์˜ ๊ฐ„๊ฒฉ์ด ๋„“์–ด์ง€๊ฒŒ๋œ๋‹ค. ๋งŒ์•ฝ I/O๋ฅผ ๊ธธ๊ฒŒ ์“ฐ๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์žˆ๋‹ค๋ฉด I/O bound job(process) ๋ผ ๋ถ€๋ฅด๊ณ  , CPU๋ฅผ ๊ธธ๊ฒŒ ์“ฐ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ CPU bound job(process)์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ์ด ๋•Œ Burst Time ์ข…๋ฅ˜์— ๋”ฐ๋ผ CPU ์šฐ์„ ๊ถŒ์ด ๋‹ค๋ฅด๊ฒŒ ์ฃผ์–ด์ง„๋‹ค. I/O bound jo..
ํ”„๋กœ์„ธ์Šค์˜ ์ƒ์„ฑํ”„๋กœ์„ธ์Šค๋Š” ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค์— ์˜ํ•ด ๋งŒ๋“ค์–ด์ ธ ์ž์‹ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋งŒ๋“ค์–ด์ง€๋Š” ๊ตฌ์กฐ์ด๋‹ค (์ตœ์ƒ๋‹จ ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค๋Š” init ํ”„๋กœ์„ธ์Šค๋กœ ๋ถ€ํŒ… ๊ณผ์ •์—์„œ ์ปค๋„์— ์˜ํ•ด ์ƒ์„ฑ๋˜๋Š” ์ฒซ ๋ฒˆ์งธ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„ ํ”„๋กœ์„ธ์Šค). ์ด๋ ‡๊ฒŒ ๋˜๋‹ค๋ณด๋‹ˆ ์ž์—ฐ์ ์œผ๋กœ ํ”„๋กœ์„ธ์Šค ํŠธ๋ฆฌ๊ฐ€ ํ˜•์„ฑ๋œ๋‹ค. ์ด๋•Œ ์ž์‹ ํ”„๋กœ์„ธ์Šค๋ผ๋ฆฌ๋Š” ์ž์›์„ ๊ณต์œ ํ•˜๊ธฐ๋„ ํ•˜์ง€๋งŒ ๋ณดํ†ต์€ ์„œ๋กœ ๋…๋ฆฝ์ ์ธ ํ”„๋กœ์„ธ์Šค๋กœ CPU๋ฅผ ๋‘๊ณ  ๊ฒฝ์Ÿํ•˜์ง€ ๊ธฐํƒ€ ์ž์› ๊ณต์œ ๋Š” ์ž˜ ํ•˜์ง€ ์•Š๋Š”๋‹ค.  ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ ์ž์‹ ํ”„๋กœ์„ธ์Šค๋Š” ๋ถ€๋ชจํ”„๋กœ์„ธ์Šค์˜ ๊ณต๊ฐ„์„ ๋ณต์‚ฌํ•˜๊ณ  ์ž์‹ ๋งŒ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์œ„์— ์˜ฌ๋ฆฌ๊ฒŒ๋œ๋‹ค. ์—ฌ๊ธฐ์„œ ๋ณต์ œ๋Š” fork() ๋ฉ”์„œ๋“œ์— ์˜ํ•ด, ๋ณต์ œํ•œ ๋ฐ์ดํ„ฐ ์œ„์— ์ž๊ธฐ ๋ฐ์ดํ„ฐ๋ฅผ ์˜ฌ๋ฆฌ๋Š”๊ฑด exec() ๋ฉ”์„œ๋“œ๋กœ ์‹œ์Šคํ…œ ์ฝœ์„ ํ•˜์—ฌ ์ƒˆ๋กœ์šด ํ”„๋กœ๊ทธ๋žจ์— ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์˜ฌ๋ฆฌ๊ฒŒ ๋œ๋‹ค.ํ”„๋กœ์„ธ์Šค์˜ ์ข…๋ฃŒ (Termination)..
Process ๋ž€?Process๋ž€ ์‹คํ–‰์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค. ํ•˜๋“œ๋””์Šคํฌ์—์„œ ๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ฑฐ์ณ ๋žจ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์˜จ ์ƒํƒœ๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. CPU์˜ PC(Program Counter)๋Š” ๋žจ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์˜จ ํ”„๋กœ์„ธ์Šค์˜ ์ฝ”๋“œ/๋ฐ์ดํ„ฐ/์Šคํƒ์ค‘ ์ฝ”๋“œ ํ•œ ๋ถ€๋ถ„์„ ํฌ์ธํŒ…์„ ํ•˜๊ณ  CPU๋Š” PC๊ฐ€ ํฌ์ธํŒ… ํ•ด์ฃผ๋Š” ๋ช…๋ น์–ด๋ฅผ ์ฝ์–ด๊ฐ€๋ฉฐ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•œ๋‹ค.  ์ด๋•Œ CPU์˜ PC๊ฐ€ ํ”„๋กœ์„ธ์Šค์˜ ์–ด๋Š๋ถ€๋ถ„์„ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๋Š”๊ฐ€, ๋‹ค์‹œ๋งํ•ด ํ”„๋กœ์„ธ์Šค ์ „์ฒด ์ž‘์—…์ค‘ ์–ด๋Š ๋ถ€๋ถ„์„ ์ง€๋‚˜๊ฐ€๊ณ  ์žˆ๋Š”๊ฐ€๋ฅผ ํ”„๋กœ์„ธ์Šค์˜ ๋ฌธ๋งฅ(context)์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ํ•ญ์ƒ ๋ฉ”๋ชจ๋ฆฌ์— ์ƒ์ฃผํ•ด์žˆ๋˜ ์ปค๋„์€ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ•˜๋‚˜์”ฉ ์˜ฌ๋ผ์˜ฌ ๋•Œ๋งˆ๋‹ค ์ปค๋„์˜ ์ฝ”๋“œ/๋ฐ์ดํ„ฐ/์Šคํƒ ์ค‘ ๋ฐ์ดํ„ฐ ๊ณต๊ฐ„์—์„œ PCB(Process Control Block)๋ฅผ ํ†ตํ•ด ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค. ๋˜ํ•œ ํŠน์ • ํ”„๋กœ์„ธ์Šค๊ฐ€ ์šด์ฒด์—๊ฒŒ ์‹œ์Šค..
์šด์˜์ฒด์ œ๋ž€?์šด์˜์ฒด์ œ๋ž€ ์ปดํ“จํ„ฐ ํ•˜๋“œ์›จ์–ด ๋ฐ”๋กœ์œ„์— ์„ค์น˜๋˜์–ด ์‚ฌ์šฉ์ž ๋ฐ ๋‹ค๋ฅธ ์†Œํ”„ํŠธ์›จ์–ด์™€ ํ•˜๋“œ์›จ์–ด๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๊ณ„์ธต์ด๋‹ค. ์ปดํ“จํ„ฐ ํ•˜๋“œ์›จ์–ด๋ฅผ ์ง์ ‘์ ์œผ๋กœ ๋‹ค๋ฃจ๋ฉด ๋งค์šฐ ์–ด๋ ต๊ณ  ๋ณต์žกํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์šด์˜์ฒด์ œ๋ผ๋Š” ์ค‘๊ฐ„๋‹ค๋ฆฌ๋ฅผ ๋งŒ๋“ฆ์œผ๋กœ์„œ ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์„ ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•œ๋‹ค. ๋˜ํ•œ ์šด์˜์ฒด์ œ๋Š” ์‹คํ–‰์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์„ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ์ ์ ˆํžˆ ๋ถ„๋ฐฐํ•จ์œผ๋กœ์„œ ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์˜ ์ž์›์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•œ๋‹ค. ์—„๋ฐ€ํžˆ ๋”ฐ์ง€์ž๋ฉด ์ข์€ ์˜๋ฏธ์˜ ์šด์˜์ฒด์ œ๋Š” "์ปค๋„"์ด๋ผ ๋ถ€๋ฅด๋ฉฐ ํ•ญ์ƒ ๋ฉ”๋ชจ๋ฆฌ์— ์ƒ์ฃผํ•˜๋Š” ๋ถ€๋ถ„์„ ์˜๋ฏธํ•œ๋‹ค. ๋„“์€ ์˜๋ฏธ์˜ ์šด์˜์ฒด์ œ๋Š” ์ปค๋„ ๋ฟ ์•„๋‹ˆ๋ผ ๋ฉ”๋ชจ๋ฆฌ ์ƒ์ฃผํ•˜์ง€ ์•Š๋Š” ์ฃผ๋ณ€ ์œ ํ‹ธ๋ฆฌํ‹ฐ ์‹œ์Šคํ…œ์„ ํฌํ•จํ•˜๋Š” ๊ฐœ๋…์ด๋‹ค. ์šด์˜์ฒด์ œ๋Š” ๋™์‹œ์ž‘์—… ๊ฐ€๋Šฅ ์—ฌ๋ถ€๋กœ๋„ ๋ถ„๋ฅ˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ์ž‘์—…๋งŒ ์ฒ˜๋ฆฌํ•˜๋Š” MS-DOS์™€ ๊ฐ™์€ ์šด์˜์ฒด์ œ์™€ ๋™์‹œ์— ..
suojae
'๐Ÿ–ฅ๏ธ ์ปดํ“จํ„ฐ๊ณตํ•™/Operating System' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก