1. Disk์ DRAM์ ์ฐจ์ด์ ์ 3๊ฐ์ง ์ด์ ๊ธฐ์ ํ์์ค.
2. 30 ํ์ด์ง์์ ๋
ผ์๋ ํธ๋ฉ๊ณผ ์ธํฐ๋ฝํธ์ ์ฐจ์ด์ ์ ๊ธฐ์ ํ์์ค.
์ ์ถํ ๋ต์:
1.
Disk ์ DRAM ์ ์ฐจ์ด์
Volatility | Capacity | Capacity | Interface | |
DRAM | Volatile | Faster than Disk | Smaller than Disk | Byte-unit interface |
Disk | Non-vilatile | Slower than DRAM | Bigger than DRAM | Sector-unit interface |
DRAM ๊ณผ Disk ์ ์ฐจ์ด์ ์ ์ดํด๋ณด๋ฉด ์ด๋ฌํ๋ค.
DRAM ์ ํ๋ฐ์ฑ์ด๊ณ Disk ๋ ๋นํ๋ฐ์ฑ์ด๋ค.
๋ฉ๋ชจ๋ฆฌ ๊ณ์ธต๊ตฌ์กฐ๋ฅผ ๋ณด๋ฉด Disk๋ ์๋์ชฝ์ ์๊ณ DRAM ์ ์์ชฝ์ ์๋ค.
๊ทธ๋์ ์๋ ๋ฉด์์ DRAM ์ด Disk ๋ณด๋ค ๋น ๋ฅด๊ณ ์ฉ๋์ DRAM ์ด ์๊ณ Disk ๋ ์ฉ๋์ด ํฐ ํธ์ด๋ค.
CPU ๋ Byte๋จ์๋ก ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค. ๋ฐ๋ผ์ DRAM์ ๋ฐ์ดํฐ๋ ์ง์ ์ ๊ทผ์ด ๊ฐ๋ฅํ์ง๋ง Disk๋ ์ง์ ์ ๊ทผ์ด ๋ถ๊ฐ๋ฅํ๋ค. CPU๊ฐ Disk ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ ๊ทผํ๊ธฐ ์ํด์๋ DRAM ์ผ๋ก ์ฌ๋ฆฐํ์ CPU๋ก ์ฌ๋ผ๊ฐ์ผ ํ๋ค. ๊ทธ ์ด์ ๋ Disk ๋ Sector๋จ์์ด๊ณ DRAM์ Byte ๋จ์์ด๊ธฐ ๋๋ฌธ์ด๋ค. ์ด๋ ๊ฒ ์ ๊ทผ ๋จ์๊ฐ ๋ค๋ฆ์ผ๋ก์จ ๋ก๋ฉ์ด๋ผ๋ ๊ฒ์ด ํ์ํ๋ค.
2.
์ธํฐ๋ฝํธ์ ํธ๋ฉ์ ์ฐจ์ด์
ํธ๋ฉ(trap)์ ํ๋ก๊ทธ๋จ ๋ด์์ ๋ฐ์ํ๋ ๊ฒ์ด๊ณ ๋ด๋ถ ์ธํฐ๋ฝํธ๋ ์ํํธ์จ์ด ์ธํฐ๋ฝํธ๋ผ๊ณ ํ๋ฉฐ CPU๋ก๋ถํฐ ์คํํ๋ ์ด์์ค๋ฅ ๋ฑ์ ํฌํจํ๋ค. ํธ๋ฉ์ ๋ฐ์ํ๋ ์์ ์ด ํ๋ก๊ทธ๋จ์ ์ผ์ ํ ์ง์ ์ด๋ผ๋ ์ ์์ ๋๊ธฐ์ ์ด๋ค. ํ๋ง๋๋ก ๊ณ ์ ๋ ์์ญ์์ ์ผ์ด๋๋ค.
์ธํฐ๋ฝํธ(interrupt)๋ ์ธ๋ถ ์ธํฐ๋ฝํธ๋ ํ๋์จ์ด ์ธํฐ๋ฝํธ๋ผ๊ณ ๋ถ๋ฆฌ๋ฉฐ ์ผ๋ฐ์ ์ผ๋ก ์ธํฐ๋ฝํธ๋ผ ํ๋ฉด ํ๋์จ์ด ์ธํฐ๋ฝํธ๋ฅผ ์๋ฏธํ๋ค. ์ธํฐ๋ฝํธ๋ ํ๋ก๊ทธ๋จ ์ธ๋ถ์ํฉ์ ๋ฐ๋ผ์ ๋ฐ์ ์์ ์ด ์ผ์ ํ์ง ์๊ธฐ ๋๋ฌธ์ ๋น๋๊ธฐ์ ์ด๋ค. ํ๋์จ์ด ์ธํฐ๋ฝํธ๋ค์ CPU์ธ์ ๋ค๋ฅธ ์ฅ์น๋ค์์ ๋ฐ์ํ๋ค. ํค๋ณด๋, ๋์คํฌ ๋๋ผ์ด๋ธ, CD-ROM, ์ฌ์ด๋ ์นด๋, ๋ง์ฐ์ค์ ๊ฐ์ ์ฅ์น๋ค์ด ์ด์ ํฌํจ๋๋ค.
๊ฐ๋จํ ๋งํ์๋ฉด ํธ๋ฉ์ ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ ๋ช ๋ น์ ์ํด ์์ฑ๋๊ณ ์ธํฐ๋ฝํธ๋ ํ๋์จ์ด ์ฅ์น์ ์ํด ์์ฑ๋๋ค.
์ธํฐ๋ฝํธ์ ํธ๋ฉ์ ์ฐจ์ด์ ์ ์์๋ณด๋ฉด์ ์ธํฐ๋ฝํธ์ ๋์์๋ฆฌ๋ ์ฐพ์๋ณด์๋ค.
์ธํฐ๋ฝํธ ์์ฒญ์ ๋ฐ์ ์ปดํจํฐ๋ CPU์์ ์คํ์ค์ธ ํ๋ก๊ทธ๋จ์ ์ค๋จ ํ PCB์ ์ ์ฅํ๋ค. ๊ทธ ๋ค์ ์ธํฐ๋ฝํธ๊ฐ ์ด๋ค ์ข ๋ฅ์ธ์ง ๊ตฌ๋ณํ๊ธฐ ์ํด Interrupt Handler ๋ผ๋ ๋ ์์ ์ฌ์ฉํ๊ฒ ๋๋ค. ์ธํฐ๋ฝํธ๋ฅผ ํ์ธํ๊ณ ์ธํฐ๋ฝํธ์ ๋ง๋ ์ฒ๋ฆฌ ๋ฃจํด์ ๊ฐ์ ธ์ค๋๋ฐ ์ด๋ ์ฒ๋ฆฌ ๋ฃจํด์ ์ฃผ์๊ฐ ์๋ ‘์ธํฐ๋ฝํธ ๋ฒกํฐ ํ ์ด๋ธ’์ ์ฐธ์กฐํ๊ฒ ๋๋ค. ์ธํฐ๋ฝํธ๋ฅผ ์ฒ๋ฆฌํ ํ์ ๋๋๊ฒ ๋๋ฉด CPU์ ์ ์ฅํด๋จ๋ process๋ฅผ ๋ถ๋ฌ์ ์คํ์ํจ๋ค.
1. ๊ดํธ ๋ฃ๊ธฐ: OS๋ CPU๋ฅผ ๊ฐ์ํํ๊ธฐ ์ํ์ฌ ( )๋ผ๋ ๊ธฐ๋ฒ๊ณผ ( )๋ผ๋ ์ ์ฑ
์ ์ฌ์ฉํ๋ค. (1์ )
2. ๊ทธ๋ฆผ 5.2์ 10 ๋ผ์ธ์ด ์ํ๋ ํ ๋ถ๋ชจ์ ์์์ ์ํ๋ ๊ฐ๊ฐ ์ด๋ป๊ฒ ๋ฉ๋๊น? 15๋ผ์ธ์ด ์ํ๋ ํ ๋ถ๋ชจ์ ์์์ ์ํ๋? 18๋ผ์ธ์ด ์ํ๋ ํ ๋ถ๋ชจ์ ์์์ ์ํ๋? (1.5์ )
์ ์ถํ ๋ต์:
1.
OS๋ CPU๋ฅผ ๊ฐ์ํํ๊ธฐ ์ํ์ฌ ( context switch(๋ฌธ๋งฅ๊ตํ) )๋ผ๋ ๊ธฐ๋ฒ๊ณผ ( Scheduling(์ค์ผ์ค๋ง) )๋ผ๋ ์ ์ฑ ์ ์ฌ์ฉํ๋ค.
2.
์ผ๋จ p2.c ๊ฐ ์คํ๋๋ฉด ํ๋ก์ธ์ค๊ฐ running์ค์ธ ๊ฒ์ด๋ค. ๋ฐ๋ผ์ ๋ถ๋ชจ ํ๋ก์ธ์ค๊ฐ running ์ค์ด๋ค.
10๋ฒ์งธ ๋ผ์ธ์ด ์ํ ๋ ํ์๋ fork()๋ก ์ธํ์ฌ ์์ ํ๋ก์ธ์ค๊ฐ ์์ฑ๋๋ค. ์ฌ๊ธฐ์ ๋ถ๋ชจ ํ๋ก์ธ์ค๊ฐ ๋จผ์ ์คํ๋๋ค๊ณ ๊ฐ์ ํ์.
๊ทธ๋ฌ๋ฉด ๋ถ๋ชจ ํ๋ก์ธ์ค๋ running ์ค์ด๊ณ ์์ ํ๋ก์ธ์ค๋ ์์ฑ๊ณผ ๋์์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ถฉ๋ถํ๋ค๋ฉด ready ์ํ์ผ ๊ฒ์ด๋ค.
๊ทธ๋ฌ๋ฉด 16๋ฒ์งธ ๋ผ์ธ์ else๋ก ๊ฐ์ 17๋ฒ์งธ์ int wc = wait(NULL); ์ ์คํํ๊ฒ ๋ ๊ฒ์ด๋ค. ์ด ๋ ์์ ํ๋ก์ธ์ค๊ฐ ์ด์๋๋ฉด์ ๋ถ๋ชจ ํ๋ก์ธ์ค๋ waiting ์ํ๊ฐ ๋๊ณ ์์์ running ์ํ๊ฐ ๋๋ค.
๊ทธ๋ฌ๋ฉด 15๋ฒ์งธ ๋ผ์ธ์ด ์ํ ๋ ํ ์์ ํ๋ก์ธ์ค๋ ์ข ๋ฃํด์ terminated ์ํ๊ฐ ๋๊ณ 18๋ฒ์งธ ๋ผ์ธ์ด ์คํ๋๋ฉด ๋ถ๋ชจ ํ๋ก์ธ์ค๋ ๋ค์ runningํ๊ณ ์ข ๋ฃํ๊ฒ ๋๋ค.
์ ๋ฆฌํด๋ณด๋ฉด
10๋ฒ์งธ ๋ผ์ธ : ๋ถ๋ชจ ํ๋ก์ธ์ค - Running, ์์ ํ๋ก์ธ์ค - Ready
15๋ฒ์งธ ๋ผ์ธ : ๋ถ๋ชจ ํ๋ก์ธ์ค - Waiting, ์์ ํ๋ก์ธ์ค - Running
18๋ฒ์งธ ๋ผ์ธ : ๋ถ๋ชจ ํ๋ก์ธ์ค - Running, ์์ ํ๋ก์ธ์ค - Terminated
๋ฐ๋๋ก p2.c ๊ฐ ์คํ ๋ ๋ ์์ ํ๋ก์ธ์ค๊ฐ ๋จผ์ ์คํ๋๋ค๊ณ ๊ฐ์ ํด๋ณด์.
10๋ฒ์งธ ๋ผ์ธ์ด ์ํ ๋ ํ์ ๋ถ๋ชจ ํ๋ก์ธ์ค๋ ready ์ํ๊ฐ ๋ ๊ฒ์ด๊ณ ์์ ํ๋ก์ธ์ค๋ running์ํ๊ฐ ๋ ๊ฒ์ด๋ค.
์์ ํ๋ก์ธ์ค๊ฐ ์คํ ์ค์ด๊ธฐ ๋๋ฌธ์ 15๋ฒ์งธ ๋ผ์ธ์์ ๊ทธ๋๋ก ์์ ํ๋ก์ธ์ค๋ running ์ํ ์ด๊ณ ๋ถ๋ชจ ํ๋ก์ธ์ค๋ ready ์ํ์ด๋ค.
๊ทธ๋ฆฌ๊ณ ์์ ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋๊ณ ๋ถ๋ชจ ํ๋ก์ธ์ค๊ฐ ์ด์๋๋ค. ์ด ๋ else ๋ฌธ์ ๋ค์ด๊ฐ๊ฒ ๋์ wait๋ฅผ ๋ง๋์ง๋ง ์ด๋ฏธ ์์ ํ๋ก์ธ์ค๋ ์ข ๋ฃ๊ฐ ๋์๊ธฐ ๋๋ฌธ์ ๊ทธ๋ฆฌ๊ณ 18๋ฒ์งธ ๋ผ์ธ์ ๊ฐ๋ฉด ๋ถ๋ชจ ํ๋ก์ธ์ค๋ running ์ํ์ด๊ณ ์์ ํ๋ก์ธ์ค๋ terminated ์ด๋ค.
์ ๋ฆฌํด๋ณด๋ฉด
10๋ฒ์งธ ๋ผ์ธ : ๋ถ๋ชจ ํ๋ก์ธ์ค - Ready, ์์ ํ๋ก์ธ์ค - Running
15๋ฒ์งธ ๋ผ์ธ : ๋ถ๋ชจ ํ๋ก์ธ์ค - Ready, ์์ ํ๋ก์ธ์ค - Running
18๋ฒ์งธ ๋ผ์ธ : ๋ถ๋ชจ ํ๋ก์ธ์ค - Running, ์์ ํ๋ก์ธ์ค - Terminated
'๐ CS [ComputerScience] > ๐ง ์ด์์ฒด์ [OS]' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐ [CS๋ฉด์ ] ์ด์์ฒด์ (OS)๋ ? (0) | 2023.12.26 |
---|---|
[4์ฃผ์ฐจ] Quiz (0) | 2021.03.25 |
[3์ฃผ์ฐจ] Quiz (0) | 2021.03.16 |
[1์ฃผ์ฐจ] Quiz (0) | 2021.03.10 |