HYU39 7. Deadlocks The Deadlock Problem ๊ธฐ๋ณธ์ ์ผ๋ก ํ๋ก์ธ์ค๊ฐ ์ผ์ ํ ๋๋ ํ๋ก์ธ์ค๊ฐ ์ผ์ ํ๊ธฐ ์ํด์ ํ์ํ ์์์ด ์์ด์ผ ํ๋ค. ๋ํ์ ์ผ๋ก CPU, ๋ฉ๋ชจ๋ฆฌ, ๋ฒ์ค ๋ฑ์ ํ๋์จ์ด ์์๋ ์๊ณ , ์ธ๋ง ํฌ์ด ๋๋ lock ๊ฐ์ ์ํํธ์จ์ด ์์๋ ์๋ค. => ๋ฝ์ ํ๋ณดํด์ผ ์ผ์ ํ ์ ์์ผ๋๊น. => ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ์ ์ ์ฅํ ๋๋ ๋ฉ๋ชจ๋ฆฌ ๋ฒ์ค๋ฅผ ํ๋ณดํด์ผ ํ๋ค. => CPU ์ค์ผ์ค๋ง๋ ๋ง์ฐฌ๊ฐ์ง, CPU๋ฅผ ํ๋ณด๋ฅผ ํด์ผ ํ๋ก์ธ์ค๊ฐ ๋์๋ ์ ์๋ค. ํ๋ก๊ทธ๋๋จธ๊ฐ ๋ช ์์ ์ผ๋ก ์์์ ์์ฒญํ์ง ์์๋, ์์คํ ๋ด์๋ ์์ฐ์ค๋ฝ๊ฒ ์์์ ํ๋ณดํ๊ณ ๋ฐ๋ฉํ๋ ๊ณผ์ ์ด ๋ฐ์ํ๊ณ ์๋ค. ๊ทผ๋ฐ ์ด๋ค ์ผ์ ํ๊ธฐ ์ํด ํ์ํ ๋ฆฌ์์ค๊ฐ ํ๋๊ฐ ์๋๋ค. ์ฌ๋ฌ ๊ฐ์ ๋ฆฌ์์ค๋ฅผ ํ๋ณดํด์ผ ์ง๋๋ฅผ ๋๊ฐ ์ ์๋๋ฐ, ์ด์ด ๋์๊ฒ ์ผ๋ถ ๋ฆฌ์์ค๋ง ํ๋ณดํ๊ณ ๋๋จธ.. 2023. 5. 18. 10. Virtual Memory (1) Virtual Memory๋ Physical Memory์ ๊ณต๊ฐ ์ฌ์ฉ ํจ์จ์ ๋์ด๊ธฐ ์ํด ๋ง๋ค์ด์ง ๊ธฐ์ ์ด๋ค. ์ง๊ธ๊น์ง ์ดํด๋ณธ memory management๋ virtual memory๊ฐ ์๋ค๋ ๊ฐ์ ํ์ ์ ๊ฐ๊ฐ ๋์๋ค. Virtual Memory ํฐ๋ ธ์๋ง ๋จธ์ ์ ๋ฐ๋ฅด๋ฉด ํ๋ก์ธ์ค์ ๋ชจ๋ address space๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์์ผ ํ๋ก๊ทธ๋จ์ด ์ํ๋ ์ ์๋ค๊ณ ํ๋ค. => ์ด๋ก ์ ์ผ๋ก๋ ๊ทธ๋ ๋ค. ๊ทธ๋ฌ๋ CPU ์ ์ฅ์์๋ ์๊ธฐ๊ฐ ํ์ฌ ์ํํด์ผ ํ Instruction๊ณผ Instruction์ด ์ ๊ทผํด์ผ ํ Data๋ง ์ฌ์ฉํ๋ฏ๋ก ์๋ค๋ง ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์ ์์ผ๋ฉด ์ค์ง์ ์ผ๋ก ํ๋ก๊ทธ๋จ ์ํ์ ์๋ฌด๋ฐ ๋ฌธ์ ๊ฐ ์๋ค. ์ด์ ๋ถํฐ ์ด๋ก ๊ณผ ์ค์ ๋ ๋ค๋ฅด๋ค. ์ค์ ๋ก CPU๊ฐ ์ ๊ทผํ๋ Instruction๊ณผ ๋ฐ์ดํฐ๋ง ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฌ์. .. 2023. 5. 12. 9. Memory Management (2) ํ์ด์ง ํ ์ด๋ธ์ ํํ์ ๋ฐ๋ผ์ ์ฐธ์กฐํ๋ ๋ฐฉ์์ด ๋ฌ๋ผ์ง๋ค. ํ์ด์ง ํ ์ด๋ธ์ ํํ๋ ํฌ๊ฒ 3๊ฐ์ง๊ฐ ์๋ค. Hierarchical Paging : Break up the logical address space into multiple page tables Hashing Page Tables : Using Hash to look up page table Inverted Page Tables Two-Level Page-Table Scheme(Hierarchical Paging) ์ ๋ด์ฉ์์ ๋งํ๋ฏ์ด ๊ฐ ํ๋ก์ธ์ค์ address space๋ ์ด์์ฒด์ ์ ์ต๋ bit์ ๋ง์ถฐ์ max ์ฃผ์๊ฐ ์ค์ ๋๊ฒ ๋๊ณ 32bit OS๋ผ๋ฉด max ์ฃผ์๊ฐ 2^32 - 1์ด ๋๋ค. => ๊ฐ ํ๋ก์ธ์ค๋ 32bit๋ฅผ ๋ชจ๋ ์ฌ์ฉํ๋ค 32bit.. 2023. 5. 7. 8. Memory Management (1) OS๊ฐ ํ๋ Memory Management์ ํต์ฌ ๊ธฐ๋ฅ์ CPU๊ฐ ํ๋ก๊ทธ๋จ์ ์ํํ ์ ์๋๋ก ๋ง๋ค์ด์ฃผ๋ ๊ฒ์ด๋ค.CPU๊ฐ ๋ฉ๋ชจ๋ฆฌ์์ data์ Instruction์ ๊ฐ์ ธ์ฌ ๋ ์ฃผ์๋ฅผ ๋ฐํ์ผ๋ก ๊ฐ์ ธ์จ๋ค. PC, MAR์ ๋ค์ด์๋ ์ฃผ์๋ฅผ ๋ณด๊ณ ๊ฐ์ ธ์ด.๊ทธ๋ฌ๊ธฐ ์ํด์, OS๊ฐ ๋ฉ๋ชจ๋ฆฌ ์ธก๋ฉด์์ ํ๋ ์ผ์ ํฌ๊ฒ 2๊ฐ์ง.1. ์ฃผ์๋ฅผ ์ด๋ป๊ฒ ๊ด๋ฆฌํ ๊ฒ์ธ๊ฐ. (๋ณธ์ง์ ๊ธฐ๋ฅ) 2. virtual memory - ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํจ์จ์ ์ฌ์ฉํ๋ก์ธ์ค๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์์๋ ๊ทธ ํ๋ก์ธ์ค์ ์ฝ๋๋ฅผ ์ํํ๋ ๊ณผ์ ์ ์์ ์ address space๋ฅผ ๋ฒ์ด๋ ์์ญ์ ์ ๊ทผํ๋ ค ํ๋ฉด ๋ง์์ฃผ๋ ๊ธฐ๋ฅ๋ ์ ๊ณตํด์ผ ํ๋ค.๋์ ์์ ์ ์์ญ์ด ์๋ ์ปค๋ ์์ญ์ ์ ๊ทผํ๋ ๊ฒ์ System call์ ํตํด์ ๊ฐ์ ์ ์ผ๋ก ์ ๊ทผํ ์ ์๋ค. Multiste.. 2023. 5. 2. 6. Process Syncronization (2) Classical Problems of Synchronization Synchronization Problem์ผ๋ก ๋ํ์ ์ธ ๋ฌธ์ ๋ ๋ค์์ 3๊ฐ์ง์ด๋ค. 1. Bounded-Buffer Problem 2. Readers and Writers Problem 3. Dining-Philosophers Problem Bounded-Buffer Problem ์ผ๋ช Producer & Consumer ๋ฌธ์ ๋ผ๊ณ ๋ ๋ถ๋ฆฌ๋ ์ด ๋ฌธ์ ๋ ํ๋ก๋์๊ฐ ๊ณต์ ๋ ๋ฒํผ์ ๋ฐ์ดํฐ๋ฅผ ์ฐ๋ฉด ์ปจ์๋จธ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด๊ฐ๋ ํํ์ด๋ค. ์ด๋ ๋ฒํผ์ ์ฌ์ด์ฆ๋ ๋ฌด์ ํ์ด ์๋๋ผ ํ์ ๋์ด ์๋ค. ๋ฒํผ๋ ํ๋ก๋์์ ์ปจ์๋จธ ์ฌ์ด์ ๊ณต์ ๋๋ ๊ณต๊ฐ์ด๋ฏ๋ก ํ๋ก๋์๊ฐ ๋ฒํผ์ ๊ฐ์ ์ฐ๋ ๋์ ์ปจ์๋จธ๊ฐ ๊ฐ์ ์ฝ์ด๊ฐ๋ ์ ๋๊ณ , ์ปจ์๋จธ๊ฐ ๊ฐ์ ์ฝ๊ณ ์๋ ๋์ค์ ํ๋ก๋์๊ฐ .. 2023. 4. 7. 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. ์ด์ 1 2 3 4 5 ๋ค์