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

HYU/์šด์˜์ฒด์ œ(OS)16

5. Process Synchronization (1) Process Synchronization (ํ”„๋กœ์„ธ์Šค ๋™๊ธฐํ™”) ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๋“ค ๋˜๋Š” ์Šค๋ ˆ๋“œ๋“ค์ด ๋™์‹œ์— ๋™์ž‘ํ•  ๋•Œ, ๊ทธ๋“ค์ด ๊ณต์œ ํ•˜๋Š” ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด์„œ ์•ˆ์ „ํ•˜๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ ํ”„๋กœ์„ธ์Šค ๋™๊ธฐํ™”๊ฐ€ ์™œ ํ•„์š”ํ• ๊นŒ? ๋งŒ์•ฝ ๊ณต์œ ํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋”๋ผ๋„ ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๋“ค์ด ๊ทธ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ์ˆœ์ฐจ์ ์œผ๋กœ ์ ‘๊ทผํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š์ง€๋งŒ, ๋™์‹œ์— ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜์—ฌ ๊ฐ’์„ ๋ฐ”๊พธ๋ ค๊ณ  ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. Race Condition ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™์‹œ์— ์ ‘๊ทผํ•ด์„œ ๊ฐ’์„ ๋ฐ”๊พธ๋ ค๊ณ ํ•˜๋Š” ์ƒํ™ฉ => ์ •์ƒ์ ์ธ ์‚ฐ์ˆ ์˜ ๊ฒฐ๊ณผ๊ฐ€ ์•„๋‹Œ ์ œ์ผ ๋งˆ์ง€๋ง‰์— ์“ด ๊ฐ’์œผ๋กœ ๊ฐ’์ด ๊ฒฐ์ •๋˜์–ด ๋ฒ„๋ฆฌ๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. => ์˜๋„์น˜ ์•Š๊ฒŒ ์ตœ์ข…์ ์ธ ๋ฐ์ดํ„ฐ์˜ ๊ฐ’์ด ์ž˜๋ชป๋œ ๊ฐ’์œผ๋กœ ๊ฒฐ์ • Q. ๊ทธ๋ ‡๋‹ค๋ฉด ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๋Š” Write๋ฅผ ํ•˜๋ ค๊ณ  ํ•˜๊ณ , ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” Read๋งŒ ํ•œ.. 2023. 3. 30.
4. CPU Scheduling ์ง€๋‚œ ๋ฒˆ์— ํ”„๋กœ์„ธ์Šค๋“ค์˜ ์ƒํƒœ๋ฅผ ๋ณ€ํ™”์‹œ์ผœ ํ๊ฐ„์˜ ์ด๋™์„ ์‹œ์ผœ์ฃผ๋Š” ๊ฒƒ์ด ํ”„๋กœ์„ธ์Šค ์Šค์ผ€์ค„๋ง์ด๋ผ๊ณ  ํ–ˆ๋‹ค.CPU ์Šค์ผ€์ค„๋ง์€ ์ด ํ”„๋กœ์„ธ์Šค ์Šค์ผ€์ค„๋ง๊ณผ๋Š” ๊ตฌ๋ถ„๋œ๋‹ค.ํ”„๋กœ์„ธ์Šค ์Šค์ผ€์ค„๋ง ์•ˆ์—์„œ๋„ ๋ฐœ์ƒ ๋นˆ๋„์— ๋”ฐ๋ผ Long-term, Short-term, Medium-term ์Šค์ผ€์ค„๋ง์œผ๋กœ ๋‚˜๋‰˜๋Š”๋ฐ ๊ทธ ์ค‘์— Short-term Scheduling์ด CPU Scheduling์— ํ•ด๋‹นํ•œ๋‹ค. Histogram of CPU-burst TimesI/O bound job์€ ์นด์นด์˜คํ†ก๊ณผ ๊ฐ™์€ ๋ฉ”์‹ ์ €๋‚˜, hwp ํ”„๋กœ๊ทธ๋žจ ๊ฐ™์ด ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅ์„ ํ•ด์•ผ๋งŒ ์ผ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ๋“ค์„ ๋งํ•œ๋‹ค. ๊ทธ๋ ‡๊ธฐ์— I/O๊ฐ€ ๋งค์šฐ ๋นˆ๋ฒˆํ•˜๊ฒŒ ๋ฐœ์ƒํ•œ๋‹ค. ํ‚ค๋ณด๋“œ ์ž…๋ ฅ์ด ๋“ค์–ด์˜ค๋ฉด ์ž…๋ ฅ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ๋˜ ๋‹ค์Œ ์ž…๋ ฅ์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋™์ž‘์ด ๊ณ„์† ๋ฐ˜๋ณต๋œ๋‹ค. ๋•Œ๋ฌธ์— ํ•œ ๋ฒˆ CPU๋ฅผ ์žก์•˜.. 2023. 3. 24.
3. Processes and Threads Process ํ”„๋กœ์„ธ์Šค์˜ ๋…ผ๋ฆฌ์  ์ •์˜๋Š” "์‹คํ–‰์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ" ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ ์‹ค์ฒด๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๊ธฐ ์œ„ํ•ด์„œ ํ•„์š”ํ•œ ๋ชจ๋“  ์ •๋ณด๋“ค์„ ๋‹ด๊ณ  ์žˆ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋‹ค. Branch๋‚˜ Jump์— ์˜ํ•ด์„œ ํ”„๋กœ๊ทธ๋žจ์ด sequentialํ•˜๊ฒŒ ์ˆ˜ํ–‰๋˜๋Š” ํŒจํ„ด์ด ๋ฐ”๋€” ์ˆ˜๋Š” ์žˆ์ง€๋งŒ, ๋ธŒ๋žœ์น˜๋‚˜ ์ ํ”„๊ฐ€ ์—†๋‹ค๋ฉด ํ”„๋กœ๊ทธ๋žจ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ˆœ์ฐจ์ ์œผ๋กœ ์ˆ˜ํ–‰๋œ๋‹ค. ํ”„๋กœ์„ธ์Šค ์•ˆ์—๋Š” ์–ด๋–ค ๋‚ด์šฉ๋“ค์ด ๋‹ด๊ฒจ ์žˆ์„๊นŒ? Text Section: ํ”„๋กœ๊ทธ๋žจ์˜ ์ฝ”๋“œ๊ฐ€ ๋‹ด๊ฒจ ์žˆ๋Š” ์˜์—ญ Stack Section: Function Call๊ณผ Context Switch๋ฅผ ์œ„ํ•œ ์ •๋ณด๊ฐ€ ์ €์žฅ๋˜๋Š” ์˜์—ญ - Function Call: ํ•จ์ˆ˜๊ฐ€ ์ค‘์ฒฉ๋˜์–ด ํ˜ธ์ถœ๋˜๊ฒŒ ๋œ๋‹ค๋ฉด, Aํ•จ์ˆ˜์—์„œ B๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  Bํ•จ์ˆ˜์—์„œ Cํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค๊ณ  ํ•ด๋ณด์ž. return ์ฃผ์†Œ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์ƒ๊ฐํ•ด๋ณด๋ฉด, Cํ•จ.. 2023. 3. 23.
2. Operating System Overview (2) Operating System "Service" ๋ฆฌ๋ˆ…์Šค์—์„œ ๋กœ๊ทธ์ธ์„ ํ•œ ๋‹ค์Œ์— ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•œ๋‹ค๋ฉด? ์˜ˆ๋ฅผ ๋“ค์–ด, ls๋ผ๋Š” ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ์—”ํ„ฐ๋ฅผ ์ณค๋‹ค. ls๋ผ๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ทธ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋งŒ๋“ค์–ด์ ธ์•ผ ํ•˜๊ณ , ๊ทธ ํ”„๋กœ๊ทธ๋žจ์„ ํ”„๋กœ์„ธ์Šค์— ๋‹ด์•„์„œ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ ค์•ผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ls๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ์—”ํ„ฐ๋ฅผ ์น˜๋ฉด ์ด ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋งŒ๋“ค์–ด์ ธ์•ผ ํ•˜๋Š”๋ฐ, ๋ˆ„๊ฐ€ ๋งŒ๋“œ๋Š” ๊ฒƒ์ผ๊นŒ. ์‚ฌ๋žŒ์ด ์‹คํ–‰์‹œํ‚จ ๊ฒƒ์€ ๋งž์ง€๋งŒ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‚ฌ๋žŒ์ด ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ls๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ์—”ํ„ฐ๋ฅผ ์น˜๋ฉด ์–ด๋–ค ์ผ์ด ๋ฒŒ์–ด์งˆ๊นŒ. ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งŒ๋“œ๋Š” ์„œ๋น„์Šค๋ฅผ OS๊ฐ€ ์ œ๊ณตํ•˜๋Š”๋ฐ, ํ•ด๋‹น ์„œ๋น„์Šค๋Š” System Call์„ ํ†ตํ•ด ์ œ๊ณต์ด ๋œ๋‹ค. ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งŒ๋“œ๋Š” ์„œ๋น„์Šค๋Š” fork()๋ผ๋Š” System Call์„ ํ†ตํ•ด ์‚ฌ์šฉ.. 2023. 3. 23.
2. Operating System Overview (1) ์ง€๋‚œ ์‹œ๊ฐ„๊นŒ์ง€ ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์ด ๋™์ž‘ํ•˜๋Š” ๋ฐฉ์‹์— ๋Œ€ํ•ด ๊ฐ„๋žตํ•˜๊ฒŒ ๋ฐฐ์› ๊ณ , ์˜ค๋Š˜์€ OS์— ๋Œ€ํ•œ ๊ฐœ๊ด„์ ์ธ ๋‚ด์šฉ์„ ๋‹ค๋ฃฐ ๊ฒƒ์ด๋‹ค. Operating System Structure์šด์˜์ฒด์ œ์˜ ๊ตฌ์กฐ Multiprogramming needed for efficiencyCPU๊ฐ€ ๋ถˆํ•„์š”ํ•œ ๋Œ€๊ธฐ๋ฅผ ํ•˜์ง€ ์•Š๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด์„œ OS๊ฐ€ ๋ฉ€ํ‹ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๋„๋ก ๊ด€๋ฆฌ๋ฅผ ํ•ด์•ผํ•œ๋‹ค.ํ•˜๋‚˜์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋งŒ์œผ๋กœ๋Š” CPU๊ฐ€ ํ•ญ์ƒ ๋ฐ”์˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜๋Š” ์—†๋‹ค.=> I/O๋กœ ์ธํ•ด ์–ด์ฉ” ์ˆ˜ ์—†์ด ๋Œ€๊ธฐํ•˜๋Š” ์‹œ๊ฐ„์ด ๋ฐœ์ƒํ•จ.๋ฉ€ํ‹ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์œ„ํ•ด์„œ๋Š” ๋ชจ๋“  ํ”„๋กœ๊ทธ๋žจ์ด ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์™€์•ผ ํ•˜๋Š”๋ฐ, ๊ทธ๋Ÿฌ๊ธฐ์—๋Š” ๋ฉ”๋ชจ๋ฆฌ์˜ ์šฉ๋Ÿ‰์ด ๋ถ€์กฑํ•˜๋‹ค.๊ทธ๋ž˜์„œ ๋ฉ€ํ‹ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์œ„ํ•ด์„œ๋Š” Virtual memory๊ธฐ๋Šฅ์ด ์ง€์›๋˜์–ด์•ผ ํ•œ๋‹ค.ํ”„๋กœ์„ธ์„œ Management ์ž…์žฅ์—์„œ๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ”„.. 2023. 3. 22.
1. Computer System Overview (2) Memory Hierarchy์ปดํ“จํ„ฐ ์•ˆ์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„์˜ ๊ณ„์ธต๊ตฌ์กฐ์ปดํ“จํ„ฐ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์ €์žฅ๊ณต๊ฐ„์€ ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ์ด๋ฃจ๊ณ  ์žˆ๋‹ค.์œ„๋กœ ์˜ฌ๋ผ๊ฐˆ์ˆ˜๋ก ์†๋„๋Š” ๋น ๋ฅด์ง€๋งŒ ์šฉ๋Ÿ‰์€ ์ค„์–ด๋“ค๊ณ  ๋น„ํŠธ๋‹น ๊ฐ€๊ฒฉ์€ ๋น„์‹ธ์ง„๋‹ค.=> ์ ‘๊ทผ ํšŸ์ˆ˜๊ฐ€ ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅธ ์ €์žฅ ์žฅ์น˜์— ์ €์žฅํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ์ด๋Ÿฌํ•œ ๊ณ„์ธต ๊ตฌ์กฐ๊ฐ€ ์–ด๋–ป๊ฒŒ ํšจ๊ณผ๋ฅผ ๋ฐœํœ˜ํ• ๊นŒ?CPU๊ฐ€ ์ผ์„ ํ•  ๋•Œ ์ ‘๊ทผํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋ฉด ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๊ท ์ผํ•˜๊ฒŒ ์ ‘๊ทผํ•˜์ง€ ์•Š๊ณ  ๋˜๋Š” ๋ชจ๋“  ๋ช…๋ น์–ด๋ฅผ ๊ท ์ผํ•˜๊ฒŒ ์ ‘๊ทผํ•˜์ง€ ์•Š๊ณ  ํŠน์ • ๋ฐ์ดํ„ฐ๋‚˜ ํŠน์ • ๋ช…๋ น์–ด๋“ค์ด ๋” ๋นˆ๋ฒˆํ•˜๊ฒŒ ์ ‘๊ทผ์ด ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.์ด๊ฑธ ์ฐธ์กฐ ์ง€์—ญ์„ฑ(Locality of reference) ์ด๋ผ๊ณ  ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, Loop๋ฌธ ์•ˆ์— ์žˆ๋Š” ๋ช…๋ น์–ด๋“ค์€ ์ˆ˜ํ–‰์ด ๋ฐ˜๋ณต์ ์œผ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค. ๊ทธ๋Ÿฐ๋ฐ Loop๊ฐ€ ์•„๋‹Œ ๋ช…๋ น์–ด๋Š” ํ•œ ๋ฒˆ ์ˆ˜ํ–‰๋˜๊ณ  .. 2023. 3. 20.
1. Computer System Overview (1) ์šด์˜ ์ฒด์ œ๋ฅผ ๋ฐฐ์šฐ๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋จผ์ € ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์ด ๋™์ž‘ํ•˜๋Š” ๋ฐฉ์‹์„ ์ดํ•ดํ•ด์•ผ ํ•œ๋‹ค. ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์˜ ๊ธฐ๋ณธ Components๋“ค Processor(CPU) Main Memory => ํœ˜๋ฐœ์„ฑ ๋ฉ”๋ชจ๋ฆฌ์ด์ง€๋งŒ ๋น ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์ฃผ ๊ธฐ์–ต์žฅ์น˜๋กœ ์‚ฌ์šฉ๋œ๋‹ค. System bus => CPU, ๋ฉ”๋ชจ๋ฆฌ, I/O ๋ชจ๋“ˆ๋“ค์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ํ†ต๋กœ ์—ญํ• ์„ ํ•œ๋‹ค. I/O modules => ์ž…์ถœ๋ ฅ ์žฅ์น˜ Register (๋ ˆ์ง€์Šคํ„ฐ) ํ”„๋กœ์„ธ์„œ(CPU)์•ˆ์—๋Š” ๋ ˆ์ง€์Šคํ„ฐ๋ผ๋Š” ๋งค์šฐ ์ž‘๊ณ  ๋น ๋ฅธ ์ €์žฅ์žฅ์น˜๊ฐ€ ์žˆ๋‹ค. ๋ ˆ์ง€์Šคํ„ฐ์˜ ์ข…๋ฅ˜๋Š” ํฌ๊ฒŒ 3๊ฐ€์ง€๋กœ ๋‚˜๋‰œ๋‹ค. 1. Register for 'data' I/O ( ๋ฐ์ดํ„ฐ ์ž…์ถœ๋ ฅ์„ ์œ„ํ•œ ๋ ˆ์ง€์Šคํ„ฐ ) ๋”๋ณด๊ธฐ Memory address register(MAR) : CPU๊ฐ€ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์˜ฌ ๋•Œ ์–ด๋Š .. 2023. 3. 20.