์ผ๊ด„์ฒ˜๋ฆฌ๋ถ€ํ„ฐ ์‹œ๋ถ„ํ• ์‹œ์Šคํ…œ, ์ตœ๊ทผ์˜ ๊ณ ๊ธ‰์šด์˜์ฒด์ œ, ์ธํ„ฐ๋ŸฝํŠธ์— ๊ธฐ๋ฐ˜ํ•œ ํ˜„๋Œ€ ์šด์˜์ฒด์ œ๊นŒ์ง€ ๋ณ€์ฒœ ์—ญ์‚ฌ๋ฅผ ์•Œ์•„๋ณธ๋‹ค.

1. ์ดˆ๊ธฐ ์ปดํ“จํ„ฐ

๋…ธ๊ฐ€๋‹ค, ์‚ฌ๋žŒ ์†๋„ ๋งŽ์ด๊ฐ€, ์žฅ์น˜๋„ ์—„์ฒญ์ปค, ๋น„์‹ธ๊ธฐ๋„ ๋น„์‹ธ

์šด์˜์ฒด์ œ๋Š” ์ปดํ“จํ„ฐ๊ฐ€ ๋ฐœ์ „ํ•˜๋ฉด์„œ ๊ฐ™์ด ๋ฐœ์ „ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ์ดˆ๊ธฐ ์ปดํ“จํ„ฐ๋Š” ํฌ๊ฒŒ 3๊ฐ€์ง€๋กœ ๊ตฌ์„ฑ๋˜์—ˆ๋‹ค. ์นด๋“œ ๋ฆฌ๋”, ํ”„๋กœ์„ธ์„œ, ํ”„๋ฆฐํ„ฐ์ด๋‹ค. ์นด๋“œ ๋ฆฌ๋”๋Š” ์ž…๋ ฅ๊ธฐ์ด๋‹ค. ์ž…๋ ฅ์€ ์ข…์ด์— ์ž…๋ ฅํ•  ์ฝ”๋“œ์— ๋งž๋Š” ๊ตฌ๋ฉ์„ ๋šซ์–ด์„œ ๋„ฃ์–ด์ฃผ๋Š” ๋ฐฉ์‹์ด์—ˆ๋‹ค. ํ”„๋กœ์„ธ์„œ๋Š” ํ˜„์žฌ์™€ ๋น„์Šทํ•œ ๊ณ„์‚ฐํ•˜๋Š” ์—ญํ• ์ด์—ˆ๊ณ , ํ”„๋ฆฐํ„ฐ๋Š” ์ž…๋ ฅ์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ข…์ด์— ์ฐ์–ด์„œ ๋ณด์—ฌ์ฃผ์—ˆ๋‹ค. ์ด ์‹œ๊ธฐ์—๋Š” ์šด์˜์ฒด์ œ๋„ ์กด์žฌํ•˜์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ, ์˜คํผ๋ ˆ์ดํ„ฐ(operator)๋ผ๋Š” ์ปดํ“จํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ง์—…์ด ๋”ฐ๋กœ ์žˆ์—ˆ๊ณ , ์ปดํ“จํ„ฐ์˜ ํฌ๊ธฐ ๋˜ํ•œ ๋„ˆ๋ฌด ์ปค์„œ ๊ฑด๋ฌผ ์ „์ฒด๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•  ์ •๋„์˜€๋‹ค.

2. Batch processing system(์ผ๊ด„ ์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ)

์ฝ”๋“œ๋กœ ๋ฐ˜๋ณต๋˜๋Š” ๊ฑฐ ์ข€ ์ž๋™ํ™” ํ•˜์ž!

์œ„์—์„œ ์ดˆ๊ธฐ ์ปดํ“จํ„ฐ์˜ ์ƒํ™ฉ์„ ์‚ดํŽด๋ณด์•˜๋Š”๋ฐ, ํ”„๋กœ๊ทธ๋žจ์„ ์ˆ˜ํ–‰ํ•  ๋•Œ๋งˆ๋‹ค ์ปดํŒŒ์ผโ†’๋งํฌโ†’๋กœ๋”ฉ ์ˆœ์„œ๋ฅผ ์˜คํผ๋ ˆ์ดํ„ฐ๊ฐ€ ์ง์ ‘ ์ž…๋ ฅํ•ด์ฃผ์—ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ณผ์ •์„ ์ž๋™ํ™”ํ•œ ๊ฒƒ์ด batch processing system ์ด๋‹ค. ์œ„ ๊ณผ์ •์„ ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ์ž‘์„ฑํ•˜์—ฌ ํ”„๋กœ์„ธ์„œ์˜ ๋ฉ”๋ชจ๋ฆฌ์•ˆ์— ํ• ๋‹นํ•ด์ฃผ์—ˆ๋Š”๋ฐ, ์ด ํ”„๋กœ๊ทธ๋žจ์„ resident monitor๋ผ๊ณ  ๋ถˆ๋ €๋‹ค.

resident๋Š” โ€œ๊ฑฐ์ฃผโ€ ๋ผ๋Š” ์˜๋ฏธ๋กœ ์ด ํ”„๋กœ๊ทธ๋žจ์ด ํ•ญ์ƒ ํ”„๋กœ์„ธ์„œ์•ˆ์—์„œ ๊ฑฐ์ฃผํ•œ๋‹ค๋Š” ์˜๋ฏธ๋กœ ์ด๋Ÿฌํ•œ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜์˜€๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์ด ์ตœ์ดˆ์˜ ์šด์˜์ฒด์ œ๋กœ ์•Œ๋ ค์ ธ ์žˆ๋‹ค.

3. Multiprogramming system(๋‹ค์ค‘ ํ”„๋กœ๊ทธ๋ž˜๋ฐ)

CPU๊ฐ€ ๋…ธ๋Š” ์‹œ๊ฐ„์ด ๋„ˆ๋ฌด ๋งŽ์€๋ฐ? ์‰ด ๋™์•ˆ ๋‹ค๋ฅธ์ผ์„ ์‹œ์ผœ๋ฒ„๋ฆฌ์ž.

๊ณผ๊ฑฐ์—๋Š” ์ปดํ“จํ„ฐ๊ฐ€ ๋งค์šฐ ๋น„์‹ผ ์žฅ๋น„์˜€๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ดˆ์ฐฝ๊ธฐ ๋ฉ”๋ชจ๋ฆฌ์˜ ์ƒํƒœ๋Š” resident monitor๋ฅผ ์ œ์™ธํ•˜๊ณ  ๋‹จ ํ•˜๋‚˜์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋งŒ์„ ํ• ๋‹นํ•˜์—ฌ ์‚ฌ์šฉํ•˜์˜€๋‹ค. ํ•˜์ง€๋งŒ ์ด๋Š” ๋งค์šฐ ๋น„ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•์ด์—ˆ๋‹ค.

ํ”„๋กœ๊ทธ๋žจ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋„์ค‘์—๋Š” ๊ณ„์‚ฐ์„ ํ•˜๋Š” CPU ์™ธ์—๋„ ์ž…์ถœ๋ ฅ์„ ๋‹ด๋‹นํ•˜๋Š” I/O์žฅ์น˜๊ฐ€ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์ฆ‰, CPU์™€ I/O์žฅ์น˜๊ฐ€ ๊ต๋Œ€๋กœ ๋™์ž‘ํ•˜๋Š”๋ฐ I/O์žฅ์น˜๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋Š” ๋™์•ˆ์—๋Š” CPU๊ฐ€ ์•„๋ฌด๊ฒƒ๋„ ํ•  ์ผ์ด ์—†์—ˆ๋‹ค. CPU๊ฐ€ ์•„๋ฌด์ผ๋„ ์•ˆํ•˜๋Š” ์ƒํƒœ๋ฅผ idle ์ƒํƒœ๋ผ๊ณ  ๋งํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  I/O์žฅ์น˜๋Š” CPU์— ๋น„ํ•ด ๋งค์šฐ ๋Š๋ฆฌ๊ธฐ๋•Œ๋ฌธ์— idle ์ƒํƒœ์˜ ๋น„์œจ์ด ๋„ˆ๋ฌด ๋†’์•˜๋‹ค. ์ด๋Ÿฌํ•œ ๋น„ํšจ์œจ์ ์ธ ์ˆ˜ํ–‰์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด multiprogramming system์ด ๋‚˜์™”๋‹ค. ์ฆ‰ CPU๋ฅผ ๋ชป๋†€๊ฒŒ ํ•˜์ž

๋ฐฉ๋ฒ•

Multiprogramming system์€ ๋ฉ”๋ชจ๋ฆฌ์— ์—ฌ๋Ÿฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(ํ”„๋กœ๊ทธ๋žจ)์„ ์˜ฌ๋ฆฌ๋Š” ์‹œ์Šคํ…œ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด a, b ๋‘ ๊ฐœ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์žˆ์„ ๋–„, ์ฒ˜์Œ์—๋Š” a์—์„œ CPU ์ˆ˜ํ–‰์„ ํ•˜๋‹ค๊ฐ€ I/O์žฅ์น˜ ์ˆ˜ํ–‰์œผ๋กœ ๋„˜์–ด๊ฐ„๋‹ค. ์ด ์ˆœ๊ฐ„ CPU๋Š” idle ์ƒํƒœ์— ์žˆ์ง€ ์•Š๊ณ  b๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋ณด๊ณ  b์˜ CPU ์ˆ˜ํ–‰์„ ์‹œ์ž‘ํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ idle์ƒํƒœ์˜ ์‹œ๊ฐ„์„ ์ตœ๋Œ€ํ•œ ์ค„์ด๊ณ ์ž ํ•˜์˜€๋‹ค. ์ด๋Ÿฐ ๋™์ž‘์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋ ค๋ฉด ์•ž์„œ ๋งํ–ˆ๋“ฏ, ๋ฉ”๋ชจ๋ฆฌ์— ์—ฌ๋Ÿฌ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์˜ฌ๋ฆฐ ์ƒํƒœ์—ฌ์•ผ๋งŒ ํ•œ๋‹ค.

ํ•œ๊ณ„ ๋ฐ ๋ฌธ์ œ

ํ•˜์ง€๋งŒ ๋ฉ”๋ชจ๋ฆฌ์— ์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋žจ์„ ์˜ฌ๋ฆฌ๋ฉด์„œ ๋งŽ์€ ๋ฌธ์ œ์ ์ด ๋ฐœ์ƒํ–ˆ๋‹ค. ๊ฐ€์žฅ ํฐ ๋ฌธ์ œ์ ์€ CPU๊ฐ€ ์–ด๋Š ํ”„๋กœ๊ทธ๋žจ์„ ์ˆ˜ํ–‰ํ•ด์•ผํ•˜๋Š”์ง€ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋Ÿฌํ•œ ์ž‘์—…์„ **CPU ์Šค์ผ€์ค„๋ง**์ด๋ผ๊ณ  ํ•˜๋ฉฐ, ์ด๋Š” ์šด์˜์ฒด์ œ์˜ ์ค‘์š”ํ•œ ์—ญํ•  ์ค‘ ํ•˜๋‚˜์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์—ฌ๋Ÿฌ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ณต๊ฐ„์„ ํ• ๋‹นํ•œ๋‹ค๋Š” ์ „์ œ ์กฐ๊ฑด ๋•Œ๋ฌธ์—, ์ƒˆ๋กญ๋ฐ ๋“ค์–ด์˜จ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•ด ์–ด๋Š ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ํ• ๋‹นํ•ด์•ผํ•˜๋Š”์ง€๋„ ํฐ ๋ฌธ์ œ์˜€๋‹ค. ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋„ ์šด์˜์ฒด์ œ๊ฐ€ ๋‹ค๋ค„์•ผ ํ•˜๋Š” ์ค‘์š”ํ•œ ๊ณผ์ œ๋กœ ๋‚จ์•˜๋‹ค.

4. Time-sharing system(์‹œ๋ถ„ํ•  ์‹œ์Šคํ…œ)

ํ•˜๋‚˜ ๋‹ค ๋๋‚  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ์ง€ ๋ง๊ณ  Interval์„ ์ฃผ์ž!

์‹œ๊ฐ„์ด ์ง€๋‚˜ ๋ชจ๋‹ˆํ„ฐ์™€ ํ‚ค๋ณด๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์‚ฌ์šฉ์ž์™€ ์ปดํ“จํ„ฐ ์‚ฌ์ด์— ๋Œ€ํ™” ํ˜•์‹์ด ๊ฐ€๋Šฅํ•ด์กŒ๋‹ค. ํ•˜์ง€๋งŒ ์—ฌ์ „ํžˆ ์ปดํ“จํ„ฐ ์ž์ฒด๊ฐ€ ๋„ˆ๋ฌด ๋น„์ŒŒ๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ž˜์™€ ๊ฐ™์ด ๋‹จ๋ง๊ธฐ(terminal) ํ˜•ํƒœ๋กœ ์‚ฌ์šฉํ•˜์˜€๋‹ค.

๊ฐ ์‚ฌ์šฉ์ž(User)๋“ค์€ ๋ชจ๋‹ˆํ„ฐ์™€ ํ‚ค๋ณด๋“œ๋งŒ์„ ๊ฐ€์ง€๊ณ , ์‹ค์ œ ํ”„๋กœ์„ธ์„œ๋Š” ํ•˜๋‚˜์˜ ๋‹จ๋ง๊ธฐ์— ์กด์žฌํ•˜์—ฌ ์ด๋ฅผ ๊ณต์œ ํ•˜์—ฌ ์‚ฌ์šฉํ•˜์˜€๋‹ค. ๋ฉ€ํ‹ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ์ด์™€ ๊ฐ™์€ ๋‹จ๋ง๊ธฐ ํ˜•ํƒœ์—์„œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹จ๋ง๊ธฐ ๋ฉ”๋ชจ๋ฆฌ์— User1 ํ”„๋กœ๊ทธ๋žจ, User2 ํ”„๋กœ๊ทธ๋žจ, User3 ํ”„๋กœ๊ทธ๋žจ์ด ํ• ๋‹น๋˜์–ด ์žˆ๊ณ  User1์ด ๋จผ์ € CPU๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•˜์ž. ๋ฉ€ํ‹ฐํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” User1์ด CPU๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ์žˆ๋Š” ๋„์ค‘์—๋Š” ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋Š” CPU์ž์ฒด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค. (CPU๊ฐ€ ํ•˜๋‚˜์ธ ํ™˜๊ฒฝ) ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋“ค์€ User1์ด CPU์ˆ˜ํ–‰์„ ๋ชจ๋‘ ๋งˆ์น  ๋•Œ๊นŒ์ง€(๋˜๋Š” I/O๋ฅผ ๋งŒ๋‚  ๋•Œ๊นŒ์ง€) ๊ธฐ๋‹ค๋ ค์•ผํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋Š” ๋งค์šฐ ๋น„ํšจ์œจ์ ์ด๋‹ค.

ํ•ด๊ฒฐ

์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋‚˜์˜จ ๊ฒƒ์ด time-sharing system์ด๋‹ค. ์‹œ๋ถ„ํ•  ์‹œ์Šคํ…œ์€ CPU๊ฐ€ ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์‹œ๊ฐ„์„ ์ œํ•œํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, User1 ํ”„๋กœ๊ทธ๋žจ์„ ์ผ์ • ์‹œ๊ฐ„ ์ˆ˜ํ–‰ํ•˜๋ฉด ๋ฐ˜๋“œ์‹œ ๋‹ค์Œ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๋„˜์–ด๊ฐ€์„œ(์Šค์œ„์นญ, switching) ๋˜ ๋‹ค์‹œ ์ผ์ • ์‹œ๊ฐ„์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ์ผ์ • ์‹œ๊ฐ„์„ ๋‘์–ด ํ”„๋กœ๊ทธ๋žจ๋“ค์„ ๋ฒˆ๊ฐˆ์•„ ์ˆ˜ํ–‰ํ•˜๋ฉด์„œ ๋ชจ๋“  ํ”„๋กœ๊ทธ๋žจ์ด ๊ณตํ‰ํ•˜๊ฒŒ ์ˆ˜ํ–‰์ด ๋˜๋„๋ก ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด ์ผ์ • ์‹œ๊ฐ„์€ ๋งค์šฐ ์งง์€ ์‹œ๊ฐ„(ms)์ด๋ฏ€๋กœ CPU๊ฐ€ ํ•˜๋‚˜์ธ ํ™˜๊ฒฝ์—์„œ๋„ ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž๊ฐ€ ๋™์‹œ์— ์‚ฌ์šฉํ•˜๋Š” ๋“ฏํ•œ ํšจ๊ณผ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค. ๊ฐ€์žฅ ๋Œ€ํ‘œ์ ์ธ ์‹œ๋ถ„ํ•  ์‹œ์Šคํ…œ์€ Unix๊ฐ€ ์žˆ์—ˆ๋‹ค.

ํ•œ๊ณ„ ๋ฐ ๋ฌธ์ œ

์‹œ๋ถ„ํ•  ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž(ํ”„๋กœ์„ธ์Šค)๊ฐ„์— ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•ด์กŒ๋‹ค. ํ•˜์ง€๋งŒ ์—ฌ๊ธฐ์„œ๋„ ์—ฌ์ „ํžˆ ๋ฉ€ํ‹ฐํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ์™€ ๊ฐ™์€ ์Šค์ผ€์ค„๋ง๊ณผ ๋ฉ”๋ชจ๋ฆฌ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋™๊ธฐํ™” ๊ธฐ์ˆ , ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ๋“ฑ์ด ์ดํ›„์— ๋‚˜์™”๋‹ค.

5. ๊ณ ๋“ฑ ์šด์˜์ฒด์ œ

5.1 ๋‹ค์ค‘ ํ”„๋กœ์„ธ์„œ ์‹œ์Šคํ…œ (Multiprocessor system)

CPU๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ

  • ๋ณ‘๋ ฌ ์‹œ์Šคํ…œ (parallel system)
    • ์—ฌ๋Ÿฌ๊ฐœ์˜ CPU๊ฐ€ ๋™์‹œ์— ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๊ฐ•๊ฒฐํ•ฉ ์‹œ์Šคํ…œ (tightly-coupled system)
    • ๋ฉ”๋ชจ๋ฆฌ์— ์—ฌ๋Ÿฌ CPU๊ฐ€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค.
  • 3๊ฐ€์ง€ ์žฅ์ : performance, cost, reliability
    • ์—ฌ๋Ÿฌ ์ผ๊พผ์„ ์“ฐ๋‹ˆ ๋น ๋ฅด๋‹ค.
    • ์‹ธ์ง€๋งŒ ์—ฌ๋Ÿฌ๊ฐœ๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๊ฒŒ ๊ฐ™์€ ์„ฑ๋Šฅ๋Œ€๋น„ ๊ฐ€๊ฒฉ์ด ์‹ธ๋‹ค.
    • ํ•˜๋‚˜๊ฐ€ ๋ง๊ฐ€์ ธ๋„ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๋‹ค. ์‹ ๋ขฐ๋„๊ฐ€ ๋†’๋‹ค.
  • ๋‹ค์ค‘ ํ”„๋กœ์„ธ์„œ ์šด์˜์ฒด์ œ (Multiprocessor OS)
    • CPU๊ฐ€ ๋Š˜์–ด๋‚ฌ๊ธฐ ๋•Œ๋ฌธ์—, ๋‹ค๋ฅธ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•˜๋‹ค.

5.2 ๋ถ„์‚ฐ ์‹œ์Šคํ…œ (Distributed system)]

์ปดํ“จํ„ฐ๊ฐ€ ์—ฌ๋Ÿฌ๋Œ€, ๊ทผ๋ฐ ๋ฌถ์—ฌ์žˆ๋‹ค.

  • ๋‹ค์ค‘ ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ (multi-computer system) ์—ฌ๋Ÿฌ๋Œ€์˜ ์ปดํ“จํ„ฐ๋กœ ๋งŒ๋“  ์‹œ์Šคํ…œ์ด๋‹ค.

  • ์†Œ๊ฒฐํ•ฉ ์‹œ์Šคํ…œ (loosely-coupled system)

    • ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋Š์Šจํ•˜๊ฒŒ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค.
  • 3๊ฐ€์ง€ ์žฅ์ : performance, cost, reliability

    • ์—ฌ๋Ÿฌ ์ผ๊พผ์„ ์“ฐ๋‹ˆ ๋น ๋ฅด๋‹ค.
    • ์‹ธ์ง€๋งŒ ์—ฌ๋Ÿฌ๊ฐœ๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๊ฒŒ ๊ฐ™์€ ์„ฑ๋Šฅ๋Œ€๋น„ ๊ฐ€๊ฒฉ์ด ์‹ธ๋‹ค.
    • ํ•˜๋‚˜๊ฐ€ ๋ง๊ฐ€์ ธ๋„ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๋‹ค. ์‹ ๋ขฐ๋„๊ฐ€ ๋†’๋‹ค.
  • ๋ถ„์‚ฐ ์šด์˜์ฒด์ œ (Distributed OS)

    • ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ๋“ค์„ ๊ด€๋ฆฌํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ƒˆ๋กœ์šด ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•˜๋‹ค.

5.3 ์‹ค์‹œ๊ฐ„ ์‹œ์Šคํ…œ (Real-time system)

  • ์‹œ๊ฐ„ ์ œ์•ฝ: Deadline
  • ๊ณต์žฅ ์ž๋™ํ™” (FA), ๊ตฐ์‚ฌ, ํ•ญ๊ณต, ์šฐ์ฃผ
  • ์‹ค์‹œ๊ฐ„ ์šด์˜์ฒด์ œ (Real-time OS = RTOS)

6. ์ธํ„ฐ๋ŸฝํŠธ ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ(Interrupt based system)

ํ˜„๋Œ€ ์šด์˜์ฒด์ œ๋Š” ์ธํ„ฐ๋ŸฝํŠธ ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ์ด๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์ธํ„ฐ๋ŸฝํŠธ๋Š” ๋ฌด์—‡์ธ๊ฐ€?

6.1 ์ธํ„ฐ๋ŸฝํŠธ

์ปดํ“จํ„ฐ์— ์ „์›์ด ๋“ค์–ด์˜ค๋ฉด ์œ„์—์„œ ๋งํ–ˆ๋“ฏ์ด ๋ถ€ํŒ…์ด ์‹œ์ž‘๋œ๋‹ค. ๋จผ์ €, POST๊ณผ์ •์ด ์‹œ์ž‘๋˜๊ณ  ๊ทธ ํ›„์— ๋ถ€ํŠธ ๋กœ๋”๊ฐ€ ํ•˜๋“œ ๋””์Šคํฌ์— ์žˆ๋Š” ์šด์˜์ฒด์ œ ํ”„๋กœ๊ทธ๋žจ์„ RAM์— ๊ฐ€์ ธ์™€ ํ• ๋‹นํ•œ๋‹ค. ํ• ๋‹น๋œ ์šด์˜์ฒด์ œ๋Š” ์ปดํ“จํ„ฐ์˜ ์ „์›์ด ๊บผ์งˆ ๋•Œ๊นŒ์ง€ ์ƒ์ฃผ(resident)ํ•œ๋‹ค.

๋ถ€ํŒ…์ด ๋๋‚˜๊ณ  ์šด์˜์ฒด์ œ๊ฐ€ ๋™์ž‘ํ•˜๋Š” ๋™์•ˆ ์ˆ˜ ๋งŽ์€ ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์‚ฌ์šฉ์ž๊ฐ€ ๋งˆ์šฐ์Šค๋ฅผ ์›€์ง์ธ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž. ์ด ๋™์ž‘์„ ์ปดํ“จํ„ฐ๋Š” ์–ด๋–ป๊ฒŒ ์•Œ ์ˆ˜ ์žˆ์„๊นŒ? ๋ฐ”๋กœ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ํ†ตํ•ด ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๋งˆ์šฐ์Šค๋ฅผ ์›€์ง์ด๋Š” ์ˆœ๊ฐ„, ๋งˆ์šฐ์Šค์—์„œ ์ธํ„ฐ๋ŸฝํŠธ ์ „๊ธฐ ์‹ ํ˜ธ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ์ด๋ฅผ CPU์—๊ฒŒ ๋ณด๋‚ธ๋‹ค. CPU๋Š” ์ด๋ฅผ ๊ฐ์ง€ํ•˜๊ณ , ์ž์‹ ์ด ํ•˜๋˜ ์ผ์„ ๋ฉˆ์ถ˜ ํ›„์— ์ด ์ธํ„ฐ๋ŸฝํŠธ ์‹ ํ˜ธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์šด์˜์ฒด์ œ ๋‚ด๋ถ€์— ์žˆ๋Š” **์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์ฝ”๋“œ(interrupt service routine, ISR)**๋กœ ์ด๋™ํ•œ๋‹ค. ์ด ๊ณณ์— ๋งˆ์šฐ์Šค๊ฐ€ ์›€์ง์ผ ๋•Œ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•ด์•ผํ•˜๋Š”์ง€๊ฐ€ ๋‚ดํฌ๋˜์–ด ์žˆ์–ด ์ด๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.

6.2 ์ธํ„ฐ๋ŸฝํŠธ์˜ ์ข…๋ฅ˜์™€ ๋™์ž‘๋ฐฉ๋ฒ•

์ด๋Ÿฌํ•œ ํ•˜๋“œ์›จ์–ด์—์„œ ๋ฐœ์ƒํ•œ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ํ•˜๋“œ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ(Hardwore Interrupt) ๋ผ๊ณ  ํ•œ๋‹ค. ์ธํ„ฐ๋ŸฝํŠธ๋ผ๊ณ  ํ•˜๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ํ•˜๋“œ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ๋งํ•˜์ง€๋งŒ, ์†Œํ”„ํŠธ์›จ์–ด์—์„œ๋„ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ์š”์ฒญ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ์†Œํ”„ํŠธ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ(Software Interrupt) ๋ผ๊ณ  ํ•œ๋‹ค. ์†Œํ”„ํŠธ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ๋Š” ๋ช…๋ น์–ด๋กœ ์ง์ ‘ ์ธํ„ฐ๋ŸฝํŠธ ์ „๊ธฐ ์‹ ํ˜ธ๋ฅผ CPU์—๊ฒŒ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, ํ”„๋กœ๊ทธ๋žจ์—์„œ swi, int ์™€ ๊ฐ™์€ ์–ด์…ˆ๋ธ”๋ฆฌ์–ด ๋ช…๋ น์–ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. (๋ช…๋ น์–ด๋Š” ์šด์˜์ฒด์ œ๋งˆ๋‹ค ๋‹ค๋ฅด๋‹ค. ์œ„์˜ ๋ช…๋ น์–ด๋Š” CPU์—์„œ ์–ด์…ˆ๋ธ”๋ฆฌ์–ด ์ฝ”๋“œ ์ค‘ ์ผ์ข…์œผ๋กœ, interupt๋ฅผ ์ฒ˜๋ฆฌํ•˜๋ผ๋Š” ๋ช…๋ น์–ด์ด๋‹ค.)

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

๋งˆ์ง€๋ง‰์œผ๋กœ **๋‚ด๋ถ€ ์ธํ„ฐ๋ŸฝํŠธ(Internal Interrupt)**๊ฐ€ ์žˆ๋‹ค. ๋‚ด๋ถ€ ์ธํ„ฐ๋ŸฝํŠธ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋„์ค‘์— ๋ฐœ์ƒํ•˜๋Š” ์˜ˆ์™ธ ์ƒํ™ฉ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค. ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๋กœ 0์œผ๋กœ ๋‚˜๋ˆ„๋Š” ๋™์ž‘์ด๋‹ค. ํ”„๋กœ๊ทธ๋žจ์˜ ๋‚ด๋ถ€์— result = a / 0; ์ด์™€ ๊ฐ™์€ ์ฝ”๋“œ๊ฐ€ ์žˆ์„ ๋•Œ, CPU๋Š” ๋‚ด๋ถ€ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ๋ฐœ์ƒ์‹œ์ผœ ์šด์˜์ฒด์ œ์•ˆ์— ์žˆ๋Š” ISR๋กœ ์ด๋™ํ•œ๋‹ค. ์ด ๊ฒฝ์šฐ์—๋Š” DividedByZero ๋ผ๋Š” ISR๋กœ ์ด๋™ํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ ์ž˜๋ชป๋œ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•œ ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐ•์ œ๋กœ ์ข…๋ฃŒ์‹œํ‚จ๋‹ค.

์šด์˜์ฒด์ œ๋Š” ํ‰์†Œ์—๋Š” ๋Œ€๊ธฐ ์ƒํƒœ์— ์žˆ์œผ๋ฉด์„œ ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์ˆœ๊ฐ„ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๊ทธ ์ธํ„ฐ๋ŸฝํŠธ์˜ ์ข…๋ฅ˜์— ๋”ฐ๋ผ ์šด์˜์ฒด์ œ ๋‚ด๋ถ€์— ์œ„์น˜ํ•œ ISR๋กœ ์ด๋™ํ•˜์—ฌ ๊ทธ์— ๋งž๋Š” ์ฒ˜๋ฆฌ๋ฅผ ํ•œ๋‹ค. ์œ„์—์„œ ์„ค๋ช…ํ•œ ํ•˜๋“œ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ ๊ณผ์ •์„ ๊ทธ๋ฆผ์œผ๋กœ ๊ฐ„๋‹จํžˆ ํ‘œํ˜„ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

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

์ •๋ฆฌ

์ •๋ฆฌํ•˜๋ฉด, ์ธํ„ฐ๋ŸฝํŠธ๋Š” CPU์—๊ฒŒ ๋ณด๋‚ด๋Š” ์ „๊ธฐ ์‹ ํ˜ธ๋กœ์„œ ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด CPU๋Š” ํ•˜๋˜ ์ผ์„ ์ค‘์ง€ํ•˜๊ณ  ํ•ด๋‹น ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์šด์˜์ฒด์ œ ๋‚ด๋ถ€์— ์žˆ๋Š” ISR๋กœ ์ด๋™ํ•˜์—ฌ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ˆ˜ํ–‰์ด ๋๋‚˜๋ฉด ์›๋ž˜ ์œ„์น˜๋กœ ๋Œ์•„๊ฐ„๋‹ค. ์ธํ„ฐ๋ŸฝํŠธ๋Š” ํ•˜๋“œ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ, ์†Œํ”„ํŠธ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ, ๋‚ด๋ถ€ ์ธํ„ฐ๋ŸฝํŠธ๋กœ ์ด ์„ธ ๊ฐ€์ง€๊ฐ€ ์กด์žฌํ•œ๋‹ค.

Reference