์คํ๋ง (SPOOLing) ์ด๋
- Simultaneous Peripheral Operation OnLine ์ ์ฝ์. (์ง์ญ: ๋์ ์ฃผ๋ณ ์ฅ์น ์์ ์จ๋ผ์ธ)
- ์ฃผ๋ณ์ฅ์น(I/O) ๊ฐ ์จ๋ผ์ธ ์ํ์์ ๋์ ์์ ์ ์ํํ๋ ๋ฐฉ์์ ์๋ฏธํ๋ค.
- ๋์คํฌ(๋ณด์กฐ ๊ธฐ์ต ์ฅ์น) ๋ฅผ ๋งค์ฐ ํฐ ๋ฒํผ์ฒ๋ผ ์ฌ์ฉํ์ฌ ์ ์ถ๋ ฅ(I/O) ์์ ์ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ๋ ๊ธฐ๋ฒ
- ๋ค์ค ํ๋ก๊ทธ๋๋ฐ ํ๊ฒฝ์์ ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ๋์์ ์ ์ถ๋ ฅ์ ์ํํ ์ ์๋๋ก ๊ฐ์ ์ ์ถ๋ ฅ ์ฅ์น (virtual I/O) ๋ฅผ ์ ๊ณตํ๋ค.
- ์ ์ถ๋ ฅ ์์ฒญ ๋ฐ์ดํฐ๋ฅผ "๋์คํฌ"์ ๋จผ์ ์ ์ฅํด๋๊ณ , CPU ๊ฐ ๋ค๋ฅธ ์์ ์ ์ํํ๋ ๋์ ์ ์ถ๋ ฅ ์ฅ์น๊ฐ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ๊ฐ๋๋ก ํ๋ค.
ํต์ฌ ๊ฐ๋
- ๊ฐ์ ์ฅ์น (Virtual Device): ์ค์ ์ ์ถ๋ ฅ ์ฅ์น์ฒ๋ผ ๋์ํ๋ ๋ ผ๋ฆฌ์ ๊ฐ๋ → CPU๊ฐ ์ง์ ์ ์ถ๋ ฅ ์ฅ์น๋ฅผ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ , ๋์คํฌ๋ฅผ ํตํด ๊ฐ์ ์ ์ผ๋ก ์ ์ถ๋ ฅ ์ํ
- POOL ์๋ฃ ๊ตฌ์กฐ: ์ ์ถ๋ ฅ ์์ ์ ์ ์ฅํ๋ ๊ณต๊ฐ(ํ ํํ) → ์ ์ถ๋ ฅ ์ฅ์น๊ฐ ์ค๋น๋๋ฉด ์์ฐจ์ ์ผ๋ก ๋ฐ์ดํฐ ๊ฐ์ ธ๊ฐ
- ์ง์ ์ ๊ทผ (Direct Access): ๋์คํฌ๋ฅผ ํ์ฉํ์ฌ ๋น ๋ฅด๊ฒ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ์ธ ์ ์์ (๋๋ค ์ก์ธ์ค)
๋ํ์ ์ธ ์์
- ํ๋ฆฐํฐ ์คํ๋ง: ์ฌ๋ฌ ๊ฐ์ ์ธ์ ์์ฒญ์ ๋์คํฌ์ ์ ์ฅํด๋๊ณ , ํ๋ฆฐํฐ๊ฐ ํ๋์ฉ ๊ฐ์ ธ๊ฐ์ ์ถ๋ ฅ
- ์ ์ถ๋ ฅ ๋ฒํผ๋ง: ๋์ฉ๋ ํ์ผ ์ ์ก ์ ๋์คํฌ๋ฅผ ๊ฑฐ์ณ ์์ฐจ์ ์ผ๋ก ์ฒ๋ฆฌ
๐ก ์ฆ, ์คํ๋ง์ "๋์คํฌ๋ฅผ ์ค๊ฐ ๋ฒํผ๋ก ํ์ฉํ์ฌ ์ ์ถ๋ ฅ ์ฅ์น ์๋ ์ฐจ์ด๋ฅผ ๊ทน๋ณตํ๋ ๊ธฐ๋ฒ
*๋ฒํผ (Buffer) ๋? ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋ ์๋ ์ฐจ์ด๋ฅผ ์กฐ์ ํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ/ ๋ฐ์ดํฐ๋ฅผ ์ ์ ๋ณด๊ดํ๋ ์์ ์ ์ฅ ๊ณต๊ฐ/ ๋น ๋ฅธ ์ฅ์น(CPU)์ ๋๋ฆฐ ์ฅ์น(I/O) ๊ฐ์ ์ํํ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ฅผ ์ํด ํ์
*ํ (Queue) ํํ ? FIFO(First In, First Out, ์ ์ ์ ์ถ) ๋ฐฉ์์ผ๋ก ๋์ํ๋ ์๋ฃ๊ตฌ์กฐ / ๋จผ์ ๋ค์ด์จ ๋ฐ์ดํฐ๊ฐ ๋จผ์ ๋๊ฐ๋ ๊ตฌ์กฐ
cpu ์ ๋นํด io ์ฅ์น๊ฐ ๋งค์ฐ ๋๋ฆฌ๊ธฐ ๋๋ฌธ์ ๋์คํฌ๋ฅผ ๋ฒํผ์ฒ๋ผ ์ทจ๊ธํ์ฌ ์ฌ์ฉํ๋๊ตฌ๋. ์ ๊ธฐํ๋ค.
POOL ์๋ฃ ๊ตฌ์กฐ, ์ง์ ์ ๊ทผ, ๊ฐ์ ์ฅ์น ๊ฐ๋ ์ด ์์ง ๋์๊ฒ ์ถ์์ ์ผ๋ก ๋ค๊ฐ์ค์ง๋ง
๋๋ฒ์งธ ์ฝ์ ๋, ํน์ ๋ท ๋ถ๋ถ ์ง๋ ๋๊ฐ ๋ ๋ค์ ๋ณด์ ~
์ธํฐ๋ฝํธ( Interrupt )๋?
- CPU ๊ฐ ํ์ฌ ์คํ ์ค์ธ ์์ ์ ์ค๋จํ๊ณ , ์ฆ์ ์ค์ํ ์์ ์ ์ฒ๋ฆฌํ๋๋ก ํ๋ ๋งค์ปค๋์ฆ.
- ๋ผ์ด๋ค๊ธฐ !
- ์์คํ ์ ์๊ธฐ์น ์์ ์ํฉ์ด ๋ฐ์ํ์์ ๋, ๊ทธ๊ฒ์ ์ด์์ฒด์ ์ ์๋ฆฌ๊ธฐ ์ํ ๋งค์ปค๋์ฆ์ด๋ค.
IBM ๊ณ์ด ๊ธฐ๊ณ ๊ธฐ์ค 6๊ฐ์ง ์ธํฐ๋ฝํธ
์ ์ถ๋ ฅ ์ธํฐ๋ฝํธ (I/O Interrupt) ์ ์ถ๋ ฅ ํ๋์จ์ด๊ฐ ์์ ์๋ฃ ํ์ ๋, ํน์ ์ค๋ฅ ๋ฐ์ํ์ ๋. ex) ํค๋ณด๋ ์ ๋ ฅ, ํ๋ฆฐํฐ ์๋ฃ ๋ฑ I/O ์ฅ์น ์ ํธ ๋ฑ
์ธ๋ถ ์ธํฐ๋ฝํธ (External Interrupt) ์์คํ ํ์ด๋จธ(timer)์์ ์ผ์ ์๊ฐ์ด ๋ง๋ฃ๋ ๊ฒฝ์ฐ, ์คํผ๋ ์ดํฐ๊ฐ ์ฝ์ ์์ ์ธํฐ๋ฝํธ ํค๋ฅผ ์ ๋ ฅํ ๊ฒฝ์ฐ , ๋ค์ค ์ฒ๋ฆฌ ์์คํ ์์ ๋ค๋ฅธ ์ฒ๋ฆฌ๊ธฐ๋ก๋ถํฐ ์ ํธ๊ฐ ์จ ๊ฒฝ์ฐ ex) ์ ์ ๋ฒํผ, ๋คํธ์ํฌ ์ ํธ, ํ์ด๋จธ ์ธํฐ๋ฝํธ ํฌํจ
SVC ์ธํฐ๋ฝํธ (Supervisor Call, ์์คํ ํธ์ถ) ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ด ์ด์์ฒด์ ์๋น์ค ์์ฒญ, ์ฆ ๊ธฐ์ต ์ฅ์น ํ ๋น, ์ ์ถ๋ ฅ ์ํ ๋ฑ (ํ์ผ ์ด๊ธฐ ๋ฑ)
๊ธฐ๊ณ ๊ฒ์ฌ ์ธํฐ๋ฝํธ (Machine Check Interrupt) ํ๋์จ์ด ์ค๋ฅ, ์ปดํจํฐ ์์ฒด์ ์ธ ๋ฌธ์ (์ ์ ๋ฌธ์ , ๋ฉ๋ชจ๋ฆฌ ๊ณ ์ฅ ๋ฑ)
ํ๋ก๊ทธ๋จ ์๋ฌ ์ธํฐ๋ฝํธ (Program Error Interrupt) 0์ผ๋ก ๋๋๊ธฐ, ์๋ชป๋ ๋ช ๋ น์ด ์คํ ๋ฑ ํ๋ก๊ทธ๋จ ์ค๋ฅ, ์ฆ ํ๋ก๊ทธ๋จ์ ์คํ ์ค๋ฅ ex) ๋ณดํธ ๋์ด ์๋ ๊ธฐ์ต ์ฅ์์ ์ ๊ทผ, ํ์ฉ๋์ง ์๋ ๋ช ๋ น์ด ์ํ, ์คํ์ ์ค๋ฒ ํ๋ก ๋ฑ
์ฌ์์ ์ธํฐ๋ฝํธ (Restart Interrupt) ์์คํ ์ฌ๋ถํ ๊ด๋ จ ์ธํฐ๋ฝํธ, ์คํผ๋ ์ดํฐ๊ฐ ์ฝ์ ์์ ์ฌ์์ ํค๋ฅผ ๋๋ฅผ ๊ฒฝ์ฐ.
๐ PSW (Program Status Word) ๊ฐ๋
- ์ธํฐ๋ฝํธ ๋ฐ์ ์, CPU์ ์คํ ์ํ(PC, ๋ ์ง์คํฐ ๋ฑ)๋ฅผ ์ ์ฅํ๋ ์์ญ
- ์ธํฐ๋ฝํธ๊ฐ ์ฒ๋ฆฌ๋ ํ, ์๋ ์คํํ๋ ์์ ์ผ๋ก ๋ณต๊ทํ ๋ PSW๋ฅผ ์ฌ์ฉํ์ฌ ์ํ ๋ณต๊ตฌ
๐ก ์ฆ, ์ธํฐ๋ฝํธ๋ CPU๊ฐ ์ค์ํ ์์ ์ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ๊ธฐ ์ํ ์ค๋จ ๋ฉ์ปค๋์ฆ์ด๋ฉฐ, PSW๋ ์ด๋ฅผ ๊ด๋ฆฌํ๋ ์ ๋ณด ์ ์ฅ ์์ญ
KOCW ์ ์๋ ๋ฐํจ๊ฒฝ ๊ต์๋์ ์ด์์ฒด์ ๊ฐ์์์ ๋ดค๋ ๊ฐ๋ .
๊ต์๋์ ์ฝ๊ฒ ์ค๋ช ํด์ฃผ์ จ๋๋ฐ ์ฑ ์ด ๊ฐ์ด๋ ต๋ค. ์์ด๋ ๊ฒ ์ด๋ ต๊ฒ ์จ๋จ๋์ง ๋ชจ๋ฅด๊ฒ ๋ค.
์๋ฆผ: *๊ฐ์ธ ๊ณต๋ถ ๋ชฉ์ ์ผ๋ก ์ ๋ฆฌํ ๊ธ์ ๋๋ค*
์ฐธ๊ณ ํ ์ฑ : ์ด์์ฒด์ (๋ฐ๊ท์, ๊น์ฐฝ์, ๋ฐฐ์ธํ, ์ด์ค์ฐ, ๋ฐํ์ง ์ง์) - ์๋ฅ์ถํ