Open dianestar opened 2 years ago
์ฃผ์๋ณํ ํ๊ณ ์ ํ๋ ํ์ด์ง๊ฐ Invalid ์ํ์ผ ๋ MMU๊ฐ ๋ฐ์์ํค๋ Page Fault๋ ์ผ์ข ์ ์ํํธ์จ์ด ์ธํฐ๋ฝํธ๋ก CPU์ ์ ์ด๊ถ์ด ์ด์์ฒด์ ๋ก ๋์ด๊ฐ ์ปค๋๋ชจ๋์ ์ง์ ํ๊ฒ ๋ฉ๋๋ค. ์ด์ ๋ฐ๋ผ ์ด์์ฒด์ ๋ Page Fault Handler๋ฅผ ๋ฐ์์ํค๋๋ฐ, ์ด๋ ๋จผ์ ํด๋น ์ ๊ทผ์ด ๋ถ๋ฒ์ ์ธ ์ ๊ทผ์ผ ๊ฒฝ์ฐ์๋ abort ์ํต๋๋ค. ํฉ๋ฒ์ ์ธ ์ ๊ทผ์ธ ๊ฒฝ์ฐ์๋, ๋น ํ๋ ์์ด ์์ ๊ฒฝ์ฐ์๋ ํด๋น ํ๋ ์์ ํ ๋นํ๊ณ , ๋น ํ๋ ์์ด ์์ ๊ฒฝ์ฐ์๋ ํน์ ํ๊ฒ ํ์ด์ง๋ฅผ ์ ํ์ฌ ๋ด์ซ์๋ธ ๋ค ํด๋น ํ๋ ์์ ํ ๋นํฉ๋๋ค. ์ดํ์๋ ํ์ด์ง๋ฅผ disk์์ ์ฝ์ด์ค๋ ์์ ์ ํ๊ฒ ๋๋๋ฐ I/O ์์ ์ ๊ฒฝ์ฐ ๋๋ฆฌ๊ธฐ ๋๋ฌธ์ CPU๋ ์ ์ ๋นํ๋ฉฐ, ํด๋น I/O ์์ ์ด ๋๋ ํ์๋ ์ด์์ฒด์ ๊ฐ Page Table Entry์ Valid bit์ ๊ธฐ๋กํฉ๋๋ค. ์ด์ ํ๋ก์ธ์ค๋ ๋ค์ ready queue์ ๋ค์ด๊ฐ๊ฒ ๋๊ณ , ์ดํ dispatch ๋๋ฉด ๋ฉ์ท๋ ๋ถ๋ถ๋ถํฐ instruction์ ์ฌ๊ฐํ ์ ์๊ฒ ๋ฉ๋๋ค,
์ฃผ์๋ณํ ํ๊ณ ์ ํ๋ ํ์ด์ง๊ฐ Invalid ์ํ์ผ ๋ MMU๊ฐ ๋ฐ์์ํค๋ Page Fault๋ ์ผ์ข ์ ์ํํธ์จ์ด ์ธํฐ๋ฝํธ๋ก CPU์ ์ ์ด๊ถ์ด ์ด์์ฒด์ ๋ก ๋์ด๊ฐ ์ปค๋๋ชจ๋์ ์ง์ ํ๊ฒ ๋ฉ๋๋ค. ์ด์ ๋ฐ๋ผ ์ด์์ฒด์ ๋ Page Fault Handler๋ฅผ ๋ฐ์์ํค๋๋ฐ, ์ด๋ ๋จผ์ ํด๋น ์ ๊ทผ์ด ๋ถ๋ฒ์ ์ธ ์ ๊ทผ์ผ ๊ฒฝ์ฐ์๋ abort ์ํต๋๋ค. ํฉ๋ฒ์ ์ธ ์ ๊ทผ์ธ ๊ฒฝ์ฐ์๋, ๋น ํ๋ ์์ด ์์ ๊ฒฝ์ฐ์๋ ํด๋น ํ๋ ์์ ํ ๋นํ๊ณ , ๋น ํ๋ ์์ด ์์ ๊ฒฝ์ฐ์๋ ํน์ ํ๊ฒ ํ์ด์ง๋ฅผ ์ ํ์ฌ ๋ด์ซ์๋ธ ๋ค ํด๋น ํ๋ ์์ ํ ๋นํฉ๋๋ค. ์ดํ์๋ ํ์ด์ง๋ฅผ disk์์ ์ฝ์ด์ค๋ ์์ ์ ํ๊ฒ ๋๋๋ฐ I/O ์์ ์ ๊ฒฝ์ฐ ๋๋ฆฌ๊ธฐ ๋๋ฌธ์ CPU๋ ์ ์ ๋นํ๋ฉฐ, ํด๋น I/O ์์ ์ด ๋๋ ํ์๋ ์ด์์ฒด์ ๊ฐ Page Table Entry์ Valid bit์ ๊ธฐ๋กํฉ๋๋ค. ์ด์ ํ๋ก์ธ์ค๋ ๋ค์ ready queue์ ๋ค์ด๊ฐ๊ฒ ๋๊ณ , ์ดํ dispatch ๋๋ฉด ๋ฉ์ท๋ ๋ถ๋ถ๋ถํฐ instruction์ ์ฌ๊ฐํ ์ ์๊ฒ ๋ฉ๋๋ค,