๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿš— Major Study (Bachelor)/๐ŸŸง Operating System

[OS / ์šด์˜์ฒด์ œ] System View, Interrupt, Intel Processor Event-Vector Table, HardWare Process, Modern Computer System (cont'd)

by UKHYUN22 2022. 3. 3.
728x90

 

Kernel์€ ์šด์˜์ฒด์ œ ์ค‘ ํ•ญ์ƒ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ€ ์žˆ๋Š” ์šด์˜์ฒด์ œ์˜ ํ•ต์‹ฌ ๋ถ€๋ถ„์œผ๋กœ์จ Hardware์™€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์‚ฌ์ด์—์„œ Interface๋ฅผ ์ œ๊ณตํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์ปค๋„์€ ํ•ญ์ƒ ์ปดํ“จํ„ฐ ์ž์›๋“ค์„ ๋ณด๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— User์™€ ์ƒํ˜ธ์ž‘์šฉ์„ ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ ์‚ฌ์šฉ์ž์™€ ์ง์ ‘์ ์ธ ์ƒํ˜ธ์ž‘์šฉ์„ ์œ„ํ•ด ํ”„๋กœ๊ทธ๋žจ์„ ์ œ๊ณตํ•œ๋‹ค.   

 

 

Component of Computer System

 

Hardware๊ฐ€ ๋ฐ”๋‹ฅ์— ์กด์žฌํ•œ๋‹ค. ๊ทธ ์œ„์— ์šด์˜์ฒด์ œ๊ฐ€ ๋Œ์•„๊ฐ„๋‹ค. OS๋Š” ํ•˜๋“œ์›จ์–ด๋ฅผ ๋…์ ์ , ์ง์ ‘์ ์œผ๋กœ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋Š” ์†Œํ”„ํŠธ์›จ์–ด์ด๋‹ค. ํ•˜๋“œ์›จ์–ด๋ฅผ ๊ฑด๋“œ๋ฆด๋•Œ ํ•ญ์ƒ OS๋ฅผ ํ†ตํ•ด์„œ ์ ‘๊ทผํ•˜๊ฒŒ ๋œ๋‹ค. ํŠน๊ถŒ ๊ณ„์ธต์ด ์กด์žฌํ•œ๋‹ค. ๊ทธ ์œ„์—์„œ ๋„๋Š” ํ”„๋กœ๊ทธ๋žจ์€ ์‘์šฉํ”„๋กœ๊ทธ๋žจ,  ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœ๊ทธ๋žจ์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ์‹œ์Šคํ…œ ํ”„๋กœ๊ทธ๋žจ, ๊ทธ๋ƒฅ ์‘์šฉํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๋‚˜๋‰œ๋‹ค. ์‹œ์Šคํ…œ ํ”„๋กœ๊ทธ๋žจ์€ ์‘์šฉํ”„๋กœ๊ทธ๋žจ์—์„œ ์ œ๊ณตํ•ด์ฃผ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๊ทธ ์˜ˆ์ด๊ณ , ์ด๊ฒƒ์„ ํ†ตํ•ด์„œ ๊ฐœ๋ฐœ์„ ํ•  ์ˆ˜ ์žˆ๊ณ , ์‹œ์Šคํ…œ์„ ๋„์™€์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ์ธ๋ฐ ์ผ๋ฐ˜์ ์œผ๋กœ ์‹œ์Šคํ…œ ํ”„๋กœ๊ทธ๋žจ์ด๋ผ๊ณ  ๋งํ•œ๋‹ค. application์— ์†ํ•œ๋‹ค๊ณ  ๋งํ•  ์ˆ˜ ์žˆ๋‹ค. ์–ด๋–ค ํ…Œ์Šคํฌ๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ ๋„์™€์ฃผ๋Š” ๊ฒƒ์„ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœ๊ทธ๋žจ์— ์†ํ•œ๋‹ค. ์‚ฌ์šฉ์ž User๋Š” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ†ตํ•ด์„œ ์‚ฌ์šฉ์„ ํ•œ๋‹ค. ์‚ฌ๋žŒ์ผ์ˆ˜๋„ ์žˆ๊ณ  ๊ธฐ๊ณ„์ผ ์ˆ˜๋„ ์žˆ๋‹ค. 

 

 

What Operating System do

ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•ด์ค€๋‹ค. ์ด ๊ด€์ ์€ ์šด์˜์ฒด์ œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ดค์„ ๋•Œ ์œ„์—์„œ ์•„๋ž˜๋ฅผ ๋‚ด๋ ค๋‹ค๋ณด์•˜์„ ๋–„๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•œ๋‹ค. ๋ฐ‘์—์„œ ๋ณด๊ฒŒ ๋˜๋ฉด ํ•˜๋“œ์›จ์–ด ์ž…์žฅ์—์„œ ์šด์˜์ฒด์ œ๋Š” ํ•˜๋“œ์›จ์–ด์˜ ๊ด€๋ฆฌ์ž๊ฐ€ ๋œ๋‹ค. ํ•˜๋“œ์›จ์–ด๋ฅผ ์ง์ ‘ ๊ฑด๋“œ๋ฆด์ˆ˜์žˆ๋Š” ๊ฒƒ์€ ์šด์˜์ฒด์ œ๊ฐ€ ์œ ์ผํ•˜๋‹ค. ๋ชจ๋“  ํ•˜๋“œ์›จ์–ด๋ฅผ ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ๊ด€๋ฆฌ์ž ์—ญํ• ์ด๋‹ค.

 

 

User view

PC ํ™˜๊ฒฝ์—์„œ GUI ๊ฐ™์€ ์ฒด์ œ๊ฐ€ ์ค‘์š”ํ•˜๊ณ , Performance๋„ ์ค‘์š”ํ•˜๋‹ค. ์ด๋Ÿฐ ๊ฒƒ๋“ค์ด ๊ฐœ์ธ์šฉ ์ปดํ“จํ„ฐ์—์„œ ์ค‘์š”ํ•˜๋‹ค. ๋ชจ๋ฐ”์ผ ๊ธฐ๊ธฐ์—์„œ๋Š” ํ„ฐ์น˜ ์Šคํฌ๋ฆฐ, ์Œ์„ฑ ์ธ์‹, ๊ทธ๋ฆฌ๊ณ  ๋ฒ ํ„ฐ๋ฆฌ ์ˆ˜๋ช…๋„ ์ค‘์š”ํ•˜๋‹ค. ๋ถˆํ•„์š”ํ•˜๊ฒŒ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ์„ ํ•˜๊ฒŒ๋˜๋ฉด ๋ฒ ํ„ฐ๋ฆฌ๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค. ๊ณ„์‚ฐ์„ ํ•˜๋”๋ผ๋„ ๋ฒ ํ„ฐ๋ฆฌ๋ฅผ ์ ๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค. Multi user system์—์„œ ์—ฌ๋Ÿฌ๊ฐœ์˜ ์ปดํ“จํŒ…์„ ํ•˜๊ฒŒ ๋˜๋Š”๋ฐ Resource Utilization์ด ์ค‘์š”ํ•˜๋‹ค. ์ปดํ“จํ„ฐ resource๋ฅผ ๊ต๋Œ€๋กœ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”๋ฐ ์ด ๊ฒƒ์„ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์Šค์ผ€์ค„๋ง์ด ํ•„์š”ํ•œ๋ฐ ์ด๊ฒƒ์ด ์ž˜๋ชป๋˜๋ฉด resource๊ฐ€ ๋‚จ์•„๋Œ๊ฒŒ ๋œ๋‹ค. ๊ทธ๋Ÿฐ์ผ์ด ์—†๋„๋ก ์ตœ๋Œ€ํ•œ ์‹œ์Šคํ…œ์„ ํšจ์œจ์ ์œผ๋กœ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค. Network-based, Embedd ๋“ฑ๋„ ์กด์žฌํ•œ๋‹ค

 

 

System View

OS๊ฐ€ ํ•˜๋Š” ์ผ. ํ•˜๋‚˜๋Š” Resource allocater์˜ ์—ญํ• . ์˜ˆ๋ฅผ ๋“ค์–ด ํŒŒ์ผ์— ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์„ ์ƒ๊ฐํ•ด๋ณด์ž. ์—ด๊ณ  ์“ฐ๊ณ  ์ €์žฅํ•œ๋‹ค. fopen์„ ํ• ๋•Œ ๋””์Šคํฌ์˜ ์ผ๋ถ€ ํŠน์ • ์˜์—ญ์ด ํŒŒ์ผ์ธ๋ฐ ์˜คํ”ˆํ•˜๊ณ  ๋‹ซ๊ธฐ ์ „๊นŒ์ง€ ๋‚˜ ํ˜ผ์ž ์“ฐ๊ฒŸ๋‹ค๊ณ  ์š”์ฒญ์„ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. os๊ฐ€ ๋ณด๊ธฐ์— ๋ฌธ์ œ๊ฐ€ ์—†์œผ๋ฉด writingํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์„ ๋…์ ์ ์œผ๋กœ ์ฃผ๋Š” ๊ฒƒ์ด๋‹ค. ๋…์ ์ ์ด์ง€ ์•Š๋‹ค๋‹ค๋ฉด ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์ด๊ฒƒ์„ ์—ด์–ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. OS์˜ ์ข…๋ฅ˜์— ๋”ฐ๋ผ ๋…์ ์  ๊ถŒํ•œ์ด ๋‹ค๋ฅด๋‹ค. Reading ๋งŒ์„ ๊ณต์œ ํ•˜๋Š” ๊ฒฝ์šฐ ๋™์‹œ์— ์ฝ์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ๋Šฅ์ด ๋‹ค๋ฅด๋‹ค. ํ”„๋ฆฐํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ๊ทธ ๋ฌธ์„œ๋ฅผ ํŽธ์ง‘ํ•˜๋Š” ๊ฒฝ์šฐ ์„ž์ด๊ฒŒ ๋˜๋ฏ€๋กœ ๋™์‹œ์— ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ํ—ˆ์šฉํ•˜๋ฉด ์•ˆ๋ผ๋ฏ€๋กœ ๋…์ ์  ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•œ๋‹ค. ๋‹ค๋ฅธ ์˜ˆ๋กœ malloc์ด ์žˆ๋‹ค. ๋™์  ๋ฉ”๋ชจ๋ฆฌ ๋ธ”๋ก์ด๋ž€.. ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์€ ํ•˜๋“œ์›จ์–ด ๋ฆฌ์†Œ์Šค์ธ๋ฐ ๋‚จ๋“คํ•˜๊ณ  ๊ฐ™์ด ์‚ฌ์šฉํ•˜๋Š” resource์ด๋‹ค. ์ •์ƒ์ ์œผ๋กœ ์‹คํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๋„์ค‘์—๋Š” ๋‚จ๋“ค์ด ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋„๋ก ํ•ด์•ผํ•œ๋‹ค. ์ผ๋ฐ˜ํ™”ํ•˜๋ฉด resource allocation์ด ๋œ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ, ํŒŒ์ผ ์˜คํ”ˆ, ํŒŒ์ผ ์ €์žฅ, IO ๊ธฐ๊ธฐ๋“ค์ด ๊ทธ ์˜ˆ๊ฐ€ ๋œ๋‹ค. 

 ๋‘ ๋ฒˆ์งธ์˜ ๊ด€์ . ์—ฌ๋Ÿฌ๊ฐœ์˜ ํ”„๋กœ๊ทธ๋žจ์ด ๋Œ๊ธฐ ๋•Œ๋ฌธ์— ์ƒ๊ธฐ๋Š” ๋ฌธ์ œ. ์˜ˆ) ํฌ์ธํ„ฐ๋ฅผ ์ž˜๋ชป์ผ๋‹ค๋Š” ์–˜๊ธฐ๋Š” ์ฃผ์†Œ๊ฐ’์„ ์ž˜๋ชป ์ป๋‹ค๋Š” ์‹ ํ˜ธ์ด๋‹ค. ์ ‘๊ทผ์„ ํ• ๋•Œ ์ •์ƒ์ ์ธ ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์ ‘๊ทผ์„ ํ•˜๋Š”๋ฐ ๋‹ค๋ฅธ ๊ณณ์„ ํฌ์ธํ„ฐํ•  ๋•Œ ์—‰๋šฑํ•œ ๊ณณ์„ ๊ฐ€๋ฆฌํ‚ค๊ฒŒ ๋˜๋Š” ๋ฒ„๊ทธ๊ฐ€ ์กด์žฌํ•œ๋‹ค. OS ์ž…์žฅ์—์„œ ํ• ๋‹น๋˜์ง€ ์•Š์€ ์˜์—ญ์— ์ ‘๊ทผ์„ ํ•˜๋ ค๊ณ  ํ•˜๋Š” ๊ตฌ๋‚˜๋ผ๊ณ  ์ธ์‹ํ•˜๊ณ  ํ”„๋กœ๊ทธ๋žจ์ด terminate๋˜๋„๋ก ํ•œ๋‹ค. ๊ทธ๊ฒƒ์ด os์˜ ์—ญํ• ์ด๋‹ค. ๋ฆฌ์†Œ์Šค๋Š” ๊ณต์šฉ์˜ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ปจํŠธ๋กค์„ ํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค. 

 

 

Computer System Operation

Booting์„ ํ• ๋•Œ ๋ฌด์Šจ์ผ์ด ์ผ์–ด๋‚˜๋Š”๊ฐ€. ๋ฉ”์ธ๋ณด๋“œ์—๋Š” ์ž‘์€ ํ”„๋กœ๊ทธ๋žจ์ด ๋“ค์–ด๊ฐ€์žˆ๋‹ค. ์ปดํ“จํ„ฐ๋ฅผ ์‹œ์ž‘ํ•˜๋ฉด ๋ฌด์กฐ๊ฑด ๊ทธ ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๊ฒŒ ๋˜์–ด์žˆ๋‹ค. ๊ทธ ํ”„๋กœ๊ทธ๋žจ์€ ๋‘๊ฐ€์ง€์˜ ์ผ์„ ํ•œ๋‹ค. ๊ทธ ์‹œ์Šคํ…œ์„ Bootstrap loader๋ผ๊ณ  ํ•œ๋‹ค. Bios ๋ผ๊ณ ๋„ ๋ถ€๋ฅธ๋‹ค . ๊ทธ ๊ธฐ๋Šฅ์„ ์•Œ์•„๋ณด์ž . ํ•˜๋‚˜๋Š” ํ˜„์žฌ ์‹œ์Šคํ…œ, ํ•˜๋“œ์›จ์–ด๋ฅผ ์ฒดํฌํ•œ๋‹ค. ํ‚ค๋ณด๋“œ์˜ ์œ ๋ฌด ๋“ฑ์„ ์ฒดํฌํ•˜๊ณ  ์ดˆ๊ธฐํ™”๋ฅผ ํ•œ๋‹ค. ์ดˆ๊ธฐํ™”์—๋Š” cpu์˜ ๋ž˜์ง€์Šคํ„ฐ ์„ค์ • ์ด๋Ÿฐ๊ฒƒ๋“ค์ด ์žˆ๋‹ค. ๋‘ ๋ฒˆ์งธ๋Š” OS๋ฅผ load ํ•œ๋‹ค. OS๋ฅผ ์–ด๋–ป๊ฒŒ ์ฐพ์•„์„œ ๋ถ€ํŒ…์„ ์‹œํ‚ค๋Š” ๊ฐ€?  Bootstrap loader๋Š” ์–ด๋–ค OS์ธ์ง€ ์‹ ๊ฒฝ๋„ ์•ˆ์“ด๋‹ค. ๋ธŒํŠธ์ŠคํŠธ๋žฉ์˜ 0๋ฒˆ ๋ธ”๋ก์„ ์˜ฌ๋ ค์„œ ์‹คํ–‰์„ ์‹œํ‚จ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ 0๋ฒˆ ๋ธ”๋ก์— ๊ทธ OS๋ฅผ ์˜ฌ๋ ค๋†“๋Š” ๊ฒƒ์ด๋‹ค. ๋กœ๋“œ๋  ๋•Œ ๋ถ€ํŒ…์ด ์ด๋ฃจ์–ด์ง„๋‹ค. ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๊ฑฐ๋‚˜ ํ•„์š”ํ•œ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋Ÿฐ์นญํ•˜๋Š” ์ผ์„ ํ•œ๋‹ค.

์˜ˆ) ์šด์˜์ฒด์ œ์— ๋™์‹œ์— ์ˆ˜์‹ญ๊ฐœ์˜ ํ”„๋กœ๊ทธ๋žจ์ด ๋Œ์•„๊ฐ€๊ธฐ ์œ„ํ•ด์„œ ์ •๋ณด๊ฐ€ ์ €์žฅ๋˜๋Š” ๊ณต๊ฐ„์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค. ๊ทธ๋Ÿฐ linked list ํ˜•ํƒœ์˜ ๊ตฌ์กฐ๊ฐ€ ์ดˆ๊ธฐํ™”๊ฐ€ ๋˜๋ฉด Booting์ด ๋๋‚œ๋‹ค. OS๋Š” Booting์ด ๋˜๋ฉด ์•„๋ฌด๊ฒƒ๋„ ์ด์ œ ํ•˜์ง€ ์•Š๋Š”๋‹ค. ์š”์ฒญ์„ ๊ทธ์ € ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ๋Š”๋‹ค. ๋‹ค์Œ ์š”์ฒญ์„ ๊ทธ์ € ๊ธฐ๋‹ค๋ฆด ๋ฟ์ด๋‹ค.

์˜ˆ) ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ• ๋•Œ ์•„์ด์ฝ˜์„ ๋”๋ธ” ํด๋ฆญ์„ ํ•˜๋Š” ๋ช…๋ น์ด ๊ฐ„๋‹ค. ๋งˆ์šฐ์Šค ํด๋ฆญ์œผ๋กœ ์‹ ํ˜ธ(Interrupt)๋ฅผ ๋ฐœ์ƒ์‹œํ‚จ๋‹ค. ๊ทธ ์‹ ํ˜ธ๊ฐ€ OS์— ์ „๋‹ฌ์ด ๋˜๋ฉด ๊ทธ ์‹ ํ˜ธ๋ฅผ ๋ฐ›์•„์„œ ์ฒ˜๋ฆฌ๋ฅผ ํ•œ๋‹ค. OS๋Š” ๊ทธ ๋งˆ์šฐ์Šค๋ฅด ์›€์ง์—ฌ์ฃผ๊ณ  ๋”๋ธ”ํด๋ฆญํ•  ๋•Œ event๊ฐ€ ๋ฐœ์ƒ์„ ํ•˜๊ณ  (Event๋Š” ์ถ”์ƒ์ ์ธ ๋ง์ด๊ณ  Interrupt๋Š” ๊ตฌ์ฒด์ ์ธ ๋””ํ…Œ์ผ์— ๋Œ€์‘ํ•œ๋‹ค) ๊ทธ ์ขŒํ‘œ๋ฅผ ๋ณด๊ณ  ์•„์ด์ฝ˜์— ํ•ด๋‹นํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์‹คํ–‰ํ•œ๋‹ค. ๊ทธ ๊ณผ์ •์ด ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•ด์ฃผ๋Š” ์š”์ฒญ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ณผ์ •์ด๋‹ค. ๋”๋ธ”ํด๋ฆญ == ์•ฝ์†, ๊ทธ๋ฆฌ๊ณ  ์š”์ฒญ์„ ๊ธฐ๋‹ค๋ฆฐ๋‹ค. Interrupt driven program์ด๋ผ๊ณ  ์˜ค๋Š˜๋‚  ๋ถˆ๋ฆฌ๊ณ  ์žˆ๋‹ค.

 

 

Modern Computer System

์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ ์ค‘์•™์— CPU๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค. Bus, ๋ฐ์ดํ„ฐ๊ฐ€ ์ „์†ก๋˜๋Š” Common Bus๊ฐ€ ์กด์žฌํ•œ๋‹ค. Bus๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์žฅ์น˜๋“ค์„ ์—ฐ๊ฒฐํ•˜๊ณ  ์žˆ๋Š” ๊ณต์šฉ ๋ฒ„์Šค์ด๋‹ค. ์™œ ๊ณต์šฉ์ธ๊ฐ€? CPU์—์„œ Disk ๋กœ ๊ฐˆ๋•Œ, ๋‹ค์–‘ํ•œ ๊ฒฝ์šฐ์— sharingํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ณต์šฉ ๋ฒ„์Šค๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ์—ฌ๋Ÿฌ ์žฅ์น˜๋ฅผ ๋งค๋‹ฌ์•„ ๋†“์œผ๋ฉด ์—ฐ๊ฒฐ์ด ๊ฐ„๋‹จํ•ด์ง€๊ณ  ํ™•์žฅ์„ฑ์ด ์ข‹์•„์งˆ ์ˆ˜ ๋ฐ–์— ์—†๋‹ค. ์ค‘์š”ํ•œ ์„ฑ์งˆ์ด ์กด์žฌํ•œ๋‹ค. Bus๋ผ๋Š” ๋ฐ์ดํ„ฐ Path๋Š” ๊ต‰์žฅํžˆ ํฌ๊ณ  ๋น ๋ฅด๋‹ค.

 

 ์žฅ์น˜๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ถ™๋Š”๊ฐ€?? disk๋Š” bus์— ๋น„ํ•ด ์—„์ฒญ๋‚˜๊ฒŒ ๋Š๋ฆฌ๋‹ค. ๋ฌด์—‡์ธ๊ฐ€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒƒ์ด๋‹ค. ๊ทธ๋ž˜์„œ ๊ทธ ์ค‘๊ฐ„์— controller๋ผ๋Š” ๊ฒƒ์ด ์กด์žฌํ•œ๋‹ค. controller๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์•„๋ž˜์— ์œ„์น˜ํ•œ ๊ฒƒ์ด ๋‚ด๋ถ€๊ฐ€ ๋˜๊ณ  ์œ„์˜ ๊ฒƒ์ด ์™ธ๋ถ€๊ฐ€ ๋œ๋‹ค. bus์™€ ์ง์ ‘์ ์œผ๋กœ device๊ฐ€ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ controller๊ฐ€ ์žˆ๋Š”๋ฐ ๊ทธ ์•ˆ์— buffer๊ฐ€ ์กด์žฌํ•œ๋‹ค. ์†๋„๊ฐ€ ๋งž์ง€ ์•Š์œผ๋ฏ€๋กœ buffer์—๋‹ค๊ฐ€ ์ •๋ณด๋ฅผ ์ง‘์–ด๋„ฃ๊ฒŒ ๋œ๋‹ค. IO์—์„œ ์ฝ๊ณ  ์“ธ๋•Œ๋Š” ์ผ๋‹จ buffer์— ์ง‘์–ด๋„ฃ๊ณ  Bus๊ฐ€ ๊ฐ€์ ธ์˜จ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๋“œ๋ผ์ด๋ฒ„์™€ controller๊ฐ€ ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅธ๊ฐ€..?! controller๋Š” ํ•˜๋“œ์›จ์–ด์ด๋‹ค. ๋“œ๋ผ์ด๋ฒ„๋Š” ์†Œํ”„ํŠธ์›จ์–ด์ด๋‹ค. 

 

Modern Computer System (cont'd)

 ๊ตฌ์กฐ์˜ ์ค‘์š”์„ฑ์ด ์กด์žฌํ•œ๋‹ค. ๊ฐ Device๊ฐ€ ๋™์‹œ์— ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. Disk๊ฐ€ ์ฝ๊ฑฐ๋‚˜ ์“ฐ๋Š” ๋™์•ˆ์— cpu๊ฐ€ ๋‹ค๋ฅธ ์ผ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด๋‹ค. ๋™์‹œ์ ์œผ๋กœ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์ !! ๋‹ค์Œ์€ ๋ฉ”๋ชจ๋ฆฌ์˜ ํŠน์ง•์ด ์žˆ๋‹ค. Bus ์ค‘์‹ฌ์˜ ๊ตฌ์กฐ์—์„œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ์›€์ง์ด๋Š”๋ฐ ํ—ˆ๋ธŒ์˜ ์—ญํ• ์„ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. disk์—์„œ cpu๋ฅผ ์ง์ ‘ ์ฝ์–ด์˜ฌ ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ๊ฐ€ ์กด์žฌํ•œ๋‹ค. ํ‚ค๋ณด๋“œ ํƒ€์ž…์˜ ๊ฒฝ์šฐ controller์—์„œ cpu๋กœ ๋ฐ”๋กœ ๊ฐ€๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๊ด€์—ฌํ•œ๋‹ค. Graphic adapter์—์„œ cpu์™€ ์ •๋ณด๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ๋•Œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋งค๊ฐœ์ฒด๊ฐ€ ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์กด์žฌํ•œ๋‹ค.

 Interrupt์— ๋Œ€ํ•œ ์„ค๋ช…. CPU๊ฐ€ ๋Œ๋‹ค๊ฐ€ disk controller๊ฐ€ diskํ•œํ…Œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋™์•ˆ cpu๋Š” ๋‹ค๋ฅธ ์ž‘์—…์„ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. Disk์— ์žˆ๋Š” ๋‚ด์šฉ์„ ๋‹ค ์ฝ์–ด์™”์„ ๋•Œ, CPU์—๊ฒŒ ์™„๋ฃŒ ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ด๊ฒŒ ๋œ๋‹ค. ๊ทธ Event๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๊ฒŒ ๋œ๋‹ค. Interrupt๋ฅผ handling ํ•ด์•ผํ•œ๋‹ค. ๋‚ด๊ฐ€ ๋ญ”๊ฐ€๋ฅผ ํ•˜๊ณ  ์žˆ๋Š”๋ฐ ์–ด๋–ค ์‹ ํ˜ธ๊ฐ€ ๊ฐ‘์ž๊ธฐ ํƒ ํ•˜๊ณ  ์•Œ๋ฆผ์ด ์˜ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. 

 

 

Interrupt

Asynchronous signal, ๋ฌด์Šจ ๋œป์ธ๊ฐ€? ์˜ˆ์ธกํ•  ์ˆ˜ ์—†๋Š” ์‹ ํ˜ธ๋ผ๋Š” ๊ฒƒ์ด๋‹ค. ๋งˆ์šฐ์Šค๋ฅผ ์ƒ๊ฐํ•ด๋ณด๋ฉด ๋‚ด๊ฐ€ ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ํด๋ฆญ์„ ํ•˜๊ณ  ์›€์ง์ธ๋‹ค๋Š” ๊ฒƒ์„ ๋ณด๋ฉด ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค. ํŠนํžˆ ํ•˜๋“œ์›จ์–ด์—์„œ ๋‚˜์˜ค๋Š” Interrupt๊ฐ€ asynchronousํ•˜๋‹ค. CPU๊ฐ€ disk accessc๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋‚ด ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด disk controller์—๊ฒŒ ์ง์ ‘ ์š”์ฒญ์„ ํ•  ์ˆ˜ ์—†๋‹ค. ๊ทธ๋ž˜์„œ Interrupt๋ฅผ ํ†ตํ•ด์„œ ์š”์ฒญ์„ ํ•˜๊ฒŒ ๋œ๋‹ค. HW interrupt, ๋งˆ์šฐ์Šค ํด๋ฆญ, ํ‚ค๋ณด๋“œ์˜ ์ž…๋ ฅ์ด ๊ทธ ์˜ˆ์ด๋‹ค. Asynchronous ํ•˜๋‹ค.

 SW Interrupt ๋Š” ์‹œ์Šคํ…œ ์ฝœ์ด๋ผ๋Š” ๊ฒƒ์ด ์žˆ๋‹ค. OS์— ์š”์ฒญํ•˜๊ธฐ ์œ„ํ•ด์„œ Interrupt ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๊ฒŒ ๋˜๋Š”๋ฐ ์˜ˆ์™ธ๊ฐ€ ์žˆ๋‹ค. 0์œผ๋กœ ๋‚˜๋ˆ„๊ฒŒ ๋˜๋Š” ์ˆ˜์‹์„ ์ง„ํ–‰ํ•œ ๊ฒฝ์šฐ, ํ”„๋กœ๊ทธ๋žจ์ด ์ฃฝ๊ฒŒ ๋œ๋‹ค. 0์œผ๋กœ ๋‚˜๋ˆ„๋Š” ์ˆœ๊ฐ„์— Interrupt๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋˜๊ณ  OS๊ฐ€ ํ”„๋กœ๊ทธ๋žจ์„ ์ฃฝ์—ฌ๋ฒ„๋ฆฌ๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.. Invalid memory access, ํฌ์ธํ„ฐ์˜ ๊ฒฝ์šฐ ์ด์ƒํ•œ ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•˜๋Š” ๊ฒฝ์šฐ Interrupt๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๊ณ  ํ”„๋กœ๊ทธ๋žจ์„ ์ข…๋ฃŒ์‹œํ‚จ๋‹ค. ์ด๋Ÿฐ ์˜ค๋ฅ˜๋“ค์€ ์˜๋„์ ์œผ๋กœ ๋ฐœ์ƒ์‹œํ‚จ ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๊ฒƒ๋“ค์„ Exception์ด๋ผ๊ณ  ๋ณธ๋‹ค.

 

 

Intel Processor Event-Vector Table

Interrupt์—๋Š” ์ข…๋ฅ˜๊ฐ€ ๋‹ค๋ฅด๊ณ  ๊ณ ์œ ํ•œ ๋ฒˆํ˜ธ๊ฐ€ ๋งค๊ฒจ์ ธ ์žˆ๊ณ  IRQ ๋ฒˆํ˜ธ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. Interrupt Request ๋ฒˆํ˜ธ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. Interrupt Handler๋Š” ์—ฌ๋Ÿฌ ๊ฐœ๊ฐ€ ์กด์žฌํ•œ๋‹ค. 5๋ฒˆ Interrupt๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ๋Š” 5๋ฒˆ Handler๊ฐ€ ์ž‘๋™ํ•ด์•ผ ํ•œ๋‹ค. ํ‘œ๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค๊ณ  Interrupt handler์˜ ์‹œ์ž‘ ์ฃผ์†Œ๋ฅผ ๋งŒ๋“ค๋ฉด ๋œ๋‹ค. ๊ทธ ํ‘œ๋ฅผ Interrupt vector๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. 

 

 

HardWare Process

์‹คํ–‰ํ•˜๊ฒŒ ๋˜๋ฉด ํ”„๋กœ๊ทธ๋žจ์€ Intruction๋“ค์— ์˜ํ•ด์„œ ๊ตฌ์„ฑ์ด ๋œ๋‹ค. Jump๋Š” ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋Š”๊ฐ€. PC program counter๊ฐ€ ์กด์žฌํ•˜๊ณ , ์ผ์ข…์˜ ํฌ์ธํ„ฐ ๋ณ€์ˆ˜์ด๊ณ  ํ˜„์žฌ ์‹คํ–‰ํ•ด์•ผํ•˜๋Š” Instruction์˜ ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. jumpํ•  ๊ณณ์˜ ์ฃผ์†Œ๋ฅผ PC์— ์ง‘์–ด๋„ฃ๊ฒŒ ๋œ๋‹ค. ์ผ๋ฐ˜์ ์ธ ์ƒํ™ฉ์—์„œ Interrupt_Request๋Š” false์ด์ง€๋งŒ ์˜ˆ๋ฅผ ๋“ค์–ด ์™„๋ฃŒ๋˜์—ˆ๋‹ค๋Š” Interrupt๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด True๊ฐ€ ๋œ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ์ƒ์˜ PC ๋ฒˆ์งธ์˜ Instruction์„ ๋ž˜์ง€์Šคํ„ฐ๋กœ ๊ฐ€์ ธ์˜ค๊ณ  PC๋ฅผ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์‹คํ–‰ํ•˜๊ณ  ๋‹ค์Œ PC๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— Interrupt๊ฐ€ ๋ฐœ์ƒํ–ˆ๋Š”์ง€ ์œ ๋ฌด๋ฅผ ํ™•์ธํ•œ๋‹ค. ๋ฐœ์ƒํ–ˆ๋‹ค๋ฉด Interrupt Handler๋กœ ๊ฐ€์•ผํ•˜๋Š”๋ฐ ๊ทธ ์ „์— ํ˜„์žฌ ์œ„์น˜๋ฅผ ์ €์žฅํ•ด์•ผ ํ•œ๋‹ค. ํ˜„์žฌ ์žˆ๋Š” PC์˜ ๊ฐ’์„ ์ €์žฅํ•˜๊ฒŒ ๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  IRQ์— ํ•ด๋‹นํ•˜๋Š” ๊ณณ์œผ๋กœ ์ด๋™ํ•˜๊ฒŒ ๋œ๋‹ค.