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. ์ด์ 1 2 ๋ค์