๋‚˜๋งŒ์˜ ์˜ค๋ž˜๋‹ฌ๋ฆฌ๊ธฐ๋ฅผ ํ•˜๋Š” ์‚ฌ๋žŒ

Become a ghost

Computer Science/Operating system ์šด์˜์ฒด์ œ

[250305] ์Šคํ’€๋ง (SPOOLing) / ์ธํ„ฐ๋ŸฝํŠธ(Interrupt) ๊ฐœ๋… ์ •๋ฆฌ

jennnnna 2025. 3. 7. 00:37

 

 

์Šคํ’€๋ง (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 ์— ์žˆ๋Š” ๋ฐ˜ํšจ๊ฒฝ ๊ต์ˆ˜๋‹˜์˜ ์šด์˜์ฒด์ œ ๊ฐ•์˜์—์„œ ๋ดค๋˜ ๊ฐœ๋…. 

๊ต์ˆ˜๋‹˜์€ ์‰ฝ๊ฒŒ ์„ค๋ช…ํ•ด์ฃผ์…จ๋Š”๋ฐ ์ฑ…์ด ๊ฐœ์–ด๋ ต๋‹ค. ์™œ์ด๋ ‡๊ฒŒ ์–ด๋ ต๊ฒŒ ์จ๋†จ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ๋„ค. 

 

 

 

์•Œ๋ฆผ: *๊ฐœ์ธ ๊ณต๋ถ€ ๋ชฉ์ ์œผ๋กœ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค* 

์ฐธ๊ณ ํ•œ ์ฑ…: ์šด์˜์ฒด์ œ (๋ฐ•๊ทœ์„, ๊น€์ฐฝ์ˆ˜, ๋ฐฐ์ธํ•œ, ์ด์ค€์—ฐ, ๋ฐ•ํ™์ง„ ์ง€์Œ) - ์ƒ๋Šฅ์ถœํŒ