๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
HYU/์šด์˜์ฒด์ œ(OS)

2. Operating System Overview (1)

by Jaeguk 2023. 3. 22.

์ง€๋‚œ ์‹œ๊ฐ„๊นŒ์ง€ ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์ด ๋™์ž‘ํ•˜๋Š” ๋ฐฉ์‹์— ๋Œ€ํ•ด ๊ฐ„๋žตํ•˜๊ฒŒ ๋ฐฐ์› ๊ณ , ์˜ค๋Š˜์€ OS์— ๋Œ€ํ•œ ๊ฐœ๊ด„์ ์ธ ๋‚ด์šฉ์„ ๋‹ค๋ฃฐ ๊ฒƒ์ด๋‹ค.

 

Operating System Structure


์šด์˜์ฒด์ œ์˜ ๊ตฌ์กฐ

 

Multiprogramming needed for efficiency

CPU๊ฐ€ ๋ถˆํ•„์š”ํ•œ ๋Œ€๊ธฐ๋ฅผ ํ•˜์ง€ ์•Š๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด์„œ OS๊ฐ€ ๋ฉ€ํ‹ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๋„๋ก ๊ด€๋ฆฌ๋ฅผ ํ•ด์•ผํ•œ๋‹ค.

ํ•˜๋‚˜์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋งŒ์œผ๋กœ๋Š” CPU๊ฐ€ ํ•ญ์ƒ ๋ฐ”์˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜๋Š” ์—†๋‹ค.

=> I/O๋กœ ์ธํ•ด ์–ด์ฉ” ์ˆ˜ ์—†์ด ๋Œ€๊ธฐํ•˜๋Š” ์‹œ๊ฐ„์ด ๋ฐœ์ƒํ•จ.

๋ฉ€ํ‹ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์œ„ํ•ด์„œ๋Š” ๋ชจ๋“  ํ”„๋กœ๊ทธ๋žจ์ด ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์™€์•ผ ํ•˜๋Š”๋ฐ, ๊ทธ๋Ÿฌ๊ธฐ์—๋Š” ๋ฉ”๋ชจ๋ฆฌ์˜ ์šฉ๋Ÿ‰์ด ๋ถ€์กฑํ•˜๋‹ค.
๊ทธ๋ž˜์„œ ๋ฉ€ํ‹ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์œ„ํ•ด์„œ๋Š” Virtual memory๊ธฐ๋Šฅ์ด ์ง€์›๋˜์–ด์•ผ ํ•œ๋‹ค.

ํ”„๋กœ์„ธ์„œ Management ์ž…์žฅ์—์„œ๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ”„๋กœ๊ทธ๋žจ์ด ์žˆ์„ ๋•Œ ์–ด๋–ค ํ”„๋กœ๊ทธ๋žจ์„ ์ง€๊ธˆ CPU๊ฐ€ ์ˆ˜ํ–‰ํ•  ๊ฒƒ์ธ๊ฐ€ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.
๊ทธ๊ฒƒ์„ ์šฐ๋ฆฌ๋Š” CPU ์Šค์ผ€์ค„๋ง ๋˜๋Š” Job ์Šค์ผ€์ค„๋ง ์ด๋ผ๊ณ  ํ•œ๋‹ค.

I/O ๋ฐœ์ƒ ๋“ฑ์˜ ์ด์œ ๋กœ CPU๊ฐ€ ๊ธฐ๋‹ค๋ ค์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•˜๋ฉด OS๋Š” CPU๊ฐ€ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก Switch ์‹œ์ผœ์ฃผ์–ด์•ผ ํ•œ๋‹ค.

Timesharing(Multitasking)์€ CPU switch๋ฅผ ๋งค์šฐ ๋นˆ๋ฒˆํ•˜๊ฒŒ ํ•จ์œผ๋กœ์จ ์‚ฌ์šฉ์ž๊ฐ€ ์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๋ถ€ํ„ฐ ๋ฐ˜์‘์„ฑ์„ ์–ป๋Š” ๊ฒƒ ์ด๋‹ค.

๋ฉ€ํ‹ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๋Š”๋ฐ, ๊ตณ์ด ์–ด๋–ค ํ”„๋กœ๊ทธ๋žจ์„ ์ˆ˜ํ–‰ํ•˜๋‹ค๊ฐ€ ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์ด I/O๋ฅผ ๋ฐœ์ƒ์‹œ์ผฐ์„ ๋•Œ๋งŒ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•  ๊ฒŒ ์•„๋‹ˆ๋ผ, ๊ทธ๊ฑธ ์กฐ๊ธˆ ๋” ์ผ๋ฐ˜ํ™”์‹œ์ผœ์„œ I/O๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค์ง€ ์•Š๋”๋ผ๋„ ์ค‘๊ฐ„์— ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ Switch ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

 

์™œ ๊ทธ๋ ‡๊ฒŒ ํ•ด์•ผ ํ•˜๋А๋ƒ?

๋ชจ๋“  ํ”„๋กœ๊ทธ๋žจ์ด ์กฐ๊ธˆ์”ฉ ์ง„๋„๋ฅผ ๋‚˜๊ฐ€๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด์„œ.
์ฆ‰, ๋ฉ€ํ‹ฐ ํƒœ์Šคํ‚น์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ์ด๋‹ค.
๋งŒ์•ฝ ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด, I/O๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ๋งŒ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ๋จ.

๋ฉ€ํ‹ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ˆ ์„ ์ด์šฉํ•ด์„œ ๋ฉ€ํ‹ฐ ํƒœ์Šคํ‚น์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•˜๋ ค๋ฉด ํ•œ ํ”„๋กœ๊ทธ๋žจ๋งŒ ๊ณ„์† ์ˆ˜ํ–‰๋˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ
ํ”„๋กœ๊ทธ๋žจ๋งˆ๋‹ค ์ˆ˜ํ–‰ ์‹œ๊ฐ„์„ ์ •ํ•ด๋‘๊ณ  ๊ทธ ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด I/O๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋”๋ผ๋„ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจํ•œํ…Œ CPU๋ฅผ ์ฃผ๋„๋ก ํ•œ๋‹ค.
๊ทธ๋Ÿฐ๋ฐ ์ด ์‹œ๊ฐ„ ๊ฐ„๊ฒฉ์„ ๋งค์šฐ ์งง๊ฒŒ ์žก์œผ๋ฉด ๋ชจ๋“  ํ”„๋กœ๊ทธ๋žจ์ด CPU๋ฅผ ์กฐ๊ธˆ์”ฉ ๋Œ์•„๊ฐ€๋ฉด์„œ ์‚ฌ์šฉํ•˜๋ฉด์„œ ๋ฉ€ํ‹ฐ ํƒœ์Šคํ‚น์ด ๊ฐ€๋Šฅํ•ด์ง„๋‹ค.

=> CPU ์‚ฌ์šฉ์‹œ๊ฐ„์„ ๊ณต์œ ํ•˜๋Š” ๊ฒƒ์ด ๋ฉ€ํ‹ฐ ํƒœ์Šคํ‚น

์‚ฌ์šฉ์ž์˜ ์ž…์žฅ์—์„œ๋Š” ๋ชจ๋“  ํ”„๋กœ๊ทธ๋žจ๋“ค์ด ์‚ฌ์šฉ์ž์˜ ์›€์ง์ž„์— ๋Œ€ํ•ด์„œ ์ฆ‰๊ฐ์ ์ธ ๋ฐ˜์‘์„ ํ•ด์•ผ ๋ชจ๋“  ํ”„๋กœ๊ทธ๋žจ์ด ์ง„๋„๊ฐ€ ๋‚˜๊ฐ€๊ณ  ์žˆ๋‹ค๋Š” ๋А๋‚Œ์„ ์ค„ ์ˆ˜ ์žˆ๋‹ค.
=> Time sharing(๋ฉ€ํ‹ฐ ํƒœ์Šคํ‚น)์—์„œ๋Š” ์‘๋‹ต์‹œ๊ฐ„์ด ์ถฉ๋ถ„์ด ์ž‘์•„์•ผ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฉ€ํ‹ฐ ํƒœ์Šคํ‚น์ด ๋˜๊ณ  ์žˆ๋‹ค๋Š” ๋А๋‚Œ์„ ์ค€๋‹ค.

 

๋ฉ€ํ‹ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์œ„ํ•ด์„œ๋Š” virtual memory๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ์™œ?

4๊ฐœ์˜ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰์‹œํ‚จ๋‹ค๋ฉด, 4๊ฐœ์˜ ํ”„๋กœ๊ทธ๋žจ์ด ํ”„๋กœ์„ธ์Šค๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐˆ ๊ฒƒ์ด๋‹ค.

์–˜๋„ค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ฑฐ์˜ ๋‹ค ์‚ฌ์šฉํ•œ ์ƒํ™ฉ์—์„œ ์‚ฌ์šฉ์ž๊ฐ€ 5๋ฒˆ์งธ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰์‹œํ‚จ๋‹ค๋ฉด, 5๋ฒˆ์งธ ํ”„๋กœ๊ทธ๋žจ์ด ๋“ค์–ด๊ฐˆ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด ์—†๋‹ค.

๊ทธ๋Ÿผ์—๋„ ๋ฉ€ํ‹ฐ ํƒœ์Šคํ‚น์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ด ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰์‹œ์ผœ ์ฃผ์–ด์•ผ ํ•œ๋‹ค.

=> ์ด๋•Œ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ ์Šค์™€ํ•‘์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ธฐ์กด์— ์˜ฌ๋ผ์™€ ์žˆ๋˜ ํ”„๋กœ๊ทธ๋žจ ์ค‘ ์‹คํ–‰๋˜์ง€ ์•Š๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋””์Šคํฌ๋กœ ๋‚ด๋ฆฌ๊ณ  ์ˆ˜ํ–‰ํ•  5๋ฒˆ์งธ ํ”„๋กœ๊ทธ๋žจ์„ ๋ฉ”๋ชจ๋ฆฌ๋กœ ์˜ฌ๋ฆฌ๋Š” ๊ฒƒ์ด ์Šค์™€ํ•‘.
=> ๊ทธ๋Ÿฐ๋ฐ ๋””์Šคํฌ์— ์ž์ฃผ ์ ‘๊ทผํ•˜๋‹ค ๋ณด๋ฉด ์†๋„๊ฐ€ ๋งค์šฐ ๋А๋ ค์ง.
=> ํ•„์š”ํ•œ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋ฅผ ๋กœ๋“œํ•˜๊ธฐ์— ์ถฉ๋ถ„ํ•œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ฐ–๋Š” ๊ฒƒ์ด ์ข‹์Œ
=> ๊ทธ๋Ÿฐ๋ฐ ๋ฉ”๋ชจ๋ฆฌ์˜ ํฌ๊ธฐ์—๋Š” ํ•œ๊ณ„๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— Virtual Memory๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

=> ์Šค์™€ํ•‘์„ ํšจ๊ณผ์ ์œผ๋กœ ํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ Virtual Memory๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค.
=> ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์˜ ์ „์ฒด๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐˆ ํ•„์š”์—†์ด, ์ง€๊ธˆ ๋‹น์žฅ ์ˆ˜ํ–‰๋˜์–ด์•ผ ํ•˜๋Š” ์ผ๋ถ€๋ถ„๋งŒ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆฌ๋Š” ๋ฐฉ์‹ ์ด Virtual memory์˜ ํ•ต์‹ฌ์ด๋‹ค.
=> ๊ฐ ํ”„๋กœ๊ทธ๋žจ์ด ํ•„์š”๋กœ ํ•˜๋Š” ๊ณต๊ฐ„์ด ์ค„์–ด๋“ค์–ด ๋” ๋งŽ์€ ํ”„๋กœ๊ทธ๋žจ์„ ์˜ฌ๋ฆด ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

 

Operating System Operation


 

Interrupt driven by hardware

ํ•˜๋“œ์›จ์–ด์— ๋Œ€ํ•œ ์ ‘๊ทผ์€ Interrupt Driven์œผ๋กœ ํ•œ๋‹ค. ํ•˜๋“œ์›จ์–ด๊ฐ€ Interrupt๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋ฉด ๊ทธ Interrupt๋ฅผ ํ•ธ๋“ค๋งํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํ•˜๋“œ์›จ์–ด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

์ง์ ‘ I/O ๋””๋ฐ”์ด์Šค์— ์ ‘๊ทผํ•ด์„œ ์‘๋‹ต์„ ๋ฐ›๋Š” ๋ฐฉ์‹๋„ ์žˆ์ง€๋งŒ, ์˜ˆ์ƒ์น˜ ๋ชปํ•˜๊ฒŒ ์ž…๋ ฅ์ด ๋“ค์–ด์˜ค๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค.

์ปดํ“จํ„ฐ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์–ธ์ œ ํ‚ค๋ณด๋“œ๋ฅผ ๋ˆ„๋ฅผ์ง€ ์•Œ ์ˆ˜๊ฐ€ ์—†๋‹ค.

๋ฌด์ž‘์ • ํ‚ค๋ณด๋“œ๊ฐ€ ์ž…๋ ฅ๋˜๊ธฐ๋ฅผ ๋ฌดํ•œ ๋ฃจํ”„๋ฅผ ๋Œ๋ฉด์„œ ๊ธฐ๋‹ค๋ฆฌ๋ฉด CPU๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ ๋ฌดํ•œ ๋ฃจํ”„๋ฅผ ๋„๋Š” ๋งค์šฐ ๋น„ํšจ์œจ์ ์ธ ๋™์ž‘์„ ํ•˜๊ฒŒ ๋œ๋‹ค.

์ž…๋ ฅ์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋ฃจํ”„๋ฅผ ๋„๋Š” ๋Œ€์‹  ์ž…๋ ฅ์ด ๋“ค์–ด์™”์„ ๋•Œ ํ‚ค๋ณด๋“œ๊ฐ€ Interrupt๋ฅผ ๋ณด๋‚ด๊ฒŒ ๋งŒ๋“ค์–ด์„œ Interrupt๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์•„ ์ž…๋ ฅ์ด ๋“ค์–ด์™”๊ตฌ๋‚˜๋ฅผ ์ธ์‹ํ•จ.

=> Interrupt๋ฅผ ์ด์šฉํ•ด์„œ ํ•˜๋“œ์›จ์–ด ์ž…์ถœ๋ ฅ(I/O)์„ ๊ด€๋ฆฌ

 

Software error or request creates exception or trap

์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ณผ์ •์—์„œ๋„ I/O์™€ ๋ฌด๊ด€ํ•˜๊ฒŒ ์ง€๊ธˆ ์ˆ˜ํ–‰๋˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์ค‘๋‹จํ•˜๊ณ  ๊ธด๊ธ‰ํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•  ์ผ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์–ด๋–ค ํ”„๋กœ๊ทธ๋žจ์„ ์ˆ˜ํ–‰ํ•˜๋‹ค๊ฐ€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค๋ฉด?

์˜ˆ๋ฅผ ๋“ค์–ด 0์œผ๋กœ ๋‚˜๋ˆ„๋Š” ์—ฐ์‚ฐ์ด ๋ฐœ์ƒํ•˜๋ฉด, ์ง€๊ธˆ ํ•˜๊ณ  ์žˆ๋Š” ์ผ์„ ์ค‘๋‹จํ•˜๊ณ  ๊ทธ ์—๋Ÿฌ ๋จผ์ € ์ฒ˜๋ฆฌํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

์ด ์—๋Ÿฌ์˜ ํŒŒ๊ธ‰ ํšจ๊ณผ๊ฐ€ ์‹œ์Šคํ…œ ์ „์ฒด์— ํผ์ง€๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฑธ ๋ง‰๊ธฐ ์œ„ํ•ด์„œ ํ˜„์žฌ ํ•˜๊ณ  ์žˆ๋Š” ์ผ์„ ์ค‘๋‹จํ•˜๊ณ  ์—๋Ÿฌ๋ฅผ ๋จผ์ € ์ฒ˜๋ฆฌํ•จ.

์ด๊ฑธ Exception์ด๋ผ๊ณ  ํ•œ๋‹ค.

I/O์™€ ์ƒ๊ด€์—†์ด ์†Œํ”„ํŠธ์›จ์–ด ์‹คํ–‰ ๊ณผ์ •์—์„œ ๊ธ‰ํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•  ์ผ์ด ๋ฐœ์ƒํ–ˆ์„ ๋•Œ Exception์ด ๋ฐœ์ƒํ–ˆ๋‹ค๊ณ  ํ•œ๋‹ค.

์ด๋•Œ Exception handling์„ ํ†ตํ•ด ์ฒ˜๋ฆฌ.

=> Interrupt์™€ ๊ฑฐ์˜ ๋™์ผํ•œ ๋ฐฉ์‹.

 

๊ทธ๋Ÿฐ๋ฐ ์™œ ์ด๋ฆ„์„ ๊ตฌ๋ถ„์ง€์–ด ๋†จ๋А๋ƒ?

Exception์€ I/O ์žฅ์น˜๊ฐ€ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํ”„๋กœ๊ทธ๋žจ(์†Œํ”„ํŠธ์›จ์–ด)์—์„œ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ๊ฒƒ์ž„.

๋Œ€ํ‘œ์ ์ธ ์˜ˆ๋กœ page fault (ํŽ˜์ด์ง€ ํดํŠธ) exception์ด ์žˆ๋‹ค.

๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ์ค‘์— ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์™€ ์žˆ์ง€ ์•Š์€ ์ฃผ์†Œ์— ์ ‘๊ทผํ•˜๋ ค๊ณ  ํ•˜๋ฉด page fault๊ฐ€ ๋ฐœ์ƒ.

๊ทธ๋Ÿฌ๋ฉด Exception handler๊ฐ€ ๋””์Šคํฌ์—์„œ ํ•ด๋‹นํ•˜๋Š” ์ฃผ์†Œ๊ฐ€ ํฌํ•จ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ํŽ˜์ด์ง€ ๋‹จ์œ„๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ ค๋‘๊ณ  ๋ฆฌํ„ดํ•œ๋‹ค.

 

Dual mode operation allows OS to protect itself and other system components

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

 

CPU๋Š” ์–ด๋–ป๊ฒŒ ํ˜„์žฌ ์ˆ˜ํ–‰์ค‘์ธ ์ฝ”๋“œ๊ฐ€ ์‚ฌ์šฉ์ž ์ฝ”๋“œ์ธ์ง€ ์ปค๋„ ์ฝ”๋“œ์ธ์ง€ ๊ตฌ๋ถ„ํ• ๊นŒ?

  • Mode bit์„ ์‚ฌ์šฉํ•ด์„œ ํ˜„์žฌ ์ˆ˜ํ–‰์ค‘์ธ ์ฝ”๋“œ์˜ ๋ชจ๋“œ๋ฅผ ๊ตฌ๋ถ„ํ•œ๋‹ค.
  • ํ”„๋กœ๊ทธ๋žจ์„ ์ฒ˜์Œ์— ์‹คํ–‰ํ•  ๋•Œ๋Š” Mode bit๋ฅผ user mode๋กœ ์„ธํŒ….
  • ๊ทธ๋Ÿฌ๋‹ค๊ฐ€ ์‚ฌ์šฉ์ž ์ฝ”๋“œ๊ฐ€ System Call์„ ํ˜ธ์ถœํ•˜๋ฉด Mode bit๋ฅผ kernel mode๋กœ ์ „ํ™˜.
  • ๊ทธ๋•Œ๋ถ€ํ„ฐ๋Š” CPU๋Š” ๋งŽ์€ ๊ถŒํ•œ์„ ๊ฐ€์ง€๊ณ  Instruction์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋จ.

 

์œ ์ € ๋ชจ๋“œ์—์„œ ์ปค๋„ ๋ชจ๋“œ๋กœ์˜ ์ „ํ™˜

  • ์œ ์ € ํ”„๋กœ๊ทธ๋žจ์„ ์ˆ˜ํ–‰ํ•˜๋‹ค๊ฐ€ System call์„ ํ˜ธ์ถœํ•˜๊ฒŒ ๋˜๋ฉด System call์€ ์ปค๋„ ์˜์—ญ์— ์žˆ๋Š” ์ฝ”๋“œ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ปค๋„ ๋ชจ๋“œ์—์„œ๋งŒ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  • mode bit๋ฅผ ์ปค๋„ ๋ชจ๋“œ๋กœ ์ „ํ™˜ํ•˜๊ณ  System call์„ ์ˆ˜ํ–‰ํ•œ ๋‹ค์Œ System call์ด ๋๋‚˜๊ณ  ๋ฆฌํ„ดํ•˜๊ฒŒ ๋˜๋ฉด mode bit๋ฅผ ๋‹ค์‹œ ์œ ์ €๋ชจ๋“œ๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค.

 

Process (ํ”„๋กœ์„ธ์Šค)


ํ”„๋กœ์„ธ์Šค๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

ํ”„๋กœ์„ธ์Šค์˜ ์ •์˜๋Š” "์‹คํ–‰์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ" ์ด๋ผ๊ณ  ๋˜์–ด ์žˆ๋‹ค.

๋…ผ๋ฆฌ์ ์œผ๋กœ๋Š” ๋งž๋Š” ๋ง์ด์ง€๋งŒ, ์กฐ๊ธˆ ๋” ์ž์„ธํ•˜๊ฒŒ ๋งํ•˜๋ฉด ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๋ชจ๋“  ์ •๋ณด๋“ค์„ ๋‹ด๊ณ  ์žˆ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค.

ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์— ํ•„์š”ํ•œ ๊ฒƒ๋“ค์„ ํ•˜๋‚˜๋กœ ๋ฌถ์–ด์„œ ๊ด€๋ฆฌ๋ฅผ ํ•œ๋‹ค.
์–ด๋–ป๊ฒŒ ๋ฌถ๋ƒ๋ฉด ์ด๊ฑธ ๋ฌถ๊ธฐ ์œ„ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ OS๊ฐ€ ์ œ๊ณตํ•ด์ฃผ๋Š”๋ฐ ์ด ์ž๋ฃŒ๊ตฌ์กฐ๊ฐ€ ๋ฐ”๋กœ "ํ”„๋กœ์„ธ์Šค"๋‹ค.

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

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

ํ•˜๋‚˜์˜ ์Šค๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋Š” program counter๊ฐ€ ํ•˜๋‚˜๋งŒ ์žˆ์œผ๋ฉด ๋˜๊ณ ,
์—ฌ๋Ÿฌ ๊ฐœ์˜ ์Šค๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋Š” ๊ฐ ์Šค๋ ˆ๋“œ๋งˆ๋‹ค program counter๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค.
=> ๊ฐ ์Šค๋ ˆ๋“œ๋งˆ๋‹ค ๋‹ค๋ฅธ ๋ถ€๋ถ„์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์—

 

File System


OS๋Š” File์ด๋ผ๋Š” ์‹œ์Šคํ…œ์„ ๊ด€๋ฆฌํ•˜๊ณ  ์œ ์ €์—๊ฒŒ ์ œ๊ณตํ•œ๋‹ค.

ํ•˜๋“œ ๋””์Šคํฌ์˜ ์ €์žฅ ๊ณต๊ฐ„์€ OS๊ฐ€ ๊ด€๋ฆฌ๋ฅผ ํ•œ๋‹ค.

ํ•˜๋“œ ๋””์Šคํฌ์˜ ๊ณต๊ฐ„์„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(์‚ฌ์šฉ์ž)์—๊ฒŒ ๊ทธ๋Œ€๋กœ ๋…ธ์ถœํ•  ์ˆ˜๊ฐ€ ์—†๋‹ค. ํ•˜๋“œ ๋””์Šคํฌ์˜ ์ฃผ์†Œ ์ฒด๊ณ„๋Š” ๋งค์šฐ ๋ณต์žกํ•œ ๋ฐฉ์‹์œผ๋กœ ๊ด€๋ฆฌ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์ž๊ฐ€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ†ตํ•ด์„œ ์ ‘๊ทผํ•˜๊ฒŒ ํ•˜๋ฉด ๋„ˆ๋ฌด ์–ด๋ ค์›Œ์ง€๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๊ทธ๋ž˜์„œ OS๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—๊ฒŒ ๋งค์šฐ ๊ฐ„๋‹จํ•œ ๋ฐฉ์‹์œผ๋กœ ํ•˜๋“œ ๋””์Šคํฌ ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค€๋‹ค.

OS๋Š” ๋ฌผ๋ฆฌ์  ์ €์žฅ ์žฅ์น˜์™€ ์‚ฌ์šฉ์ž ์‚ฌ์ด์— "ํŒŒ์ผ ์‹œ์Šคํ…œ"์ด๋ผ๊ณ  ํ•˜๋Š” ์ถ”์ƒ์  ๊ณ„์ธต์„ ์ œ๊ณตํ•œ๋‹ค.

ํ•˜๋“œ ๋””์Šคํฌ ๋˜๋Š” SSD๊ฐ€ ์–ด๋–ป๊ฒŒ ์ƒ๊ฒผ๋Š”์ง€ ์‹ ๊ฒฝ์“ฐ์ง€ ๋ง๊ณ , file์ด๋ผ๋Š” ๊ณต๊ฐ„์— ์“ฐ๊ณ  ์‹ถ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์“ฐ๋ฉด OS๊ฐ€ ์•Œ์•„์„œ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ค€๋‹ค.
Ex) fprintf, fopen ...  ๋“ฑ์˜ ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด์„œ ํŒŒ์ผ์— ์ ‘๊ทผ ๊ฐ€๋Šฅ

 

File System์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š”

OS๋Š” ํ•˜๋“œ ๋””์Šคํฌ์˜ ์ €์žฅ ๊ณต๊ฐ„์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค.

ํ˜„์žฌ ํ•˜๋“œ ๋””์Šคํฌ์˜ ๋นˆ ๊ณต๊ฐ„์€ ์–ด๋””์ธ์ง€, ์ฑ„์›Œ์ง„ ๊ณต๊ฐ„์€ ์–ด๋””์ธ์ง€ ๋“ฑ๋“ฑ.

๊ทธ๋ฆฌ๊ณ  I/O๊ฐ€ ์›Œ๋‚™ ๋А๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— I/O๋ฅผ ์š”์ฒญํ•  ๋•Œ ์š”์ฒญ ์ˆœ์„œ๋ฅผ ์ ์ ˆํžˆ ์กฐ์ •ํ•ด์„œ ํ•˜๋“œ ๋””์Šคํฌ ํ—ค๋“œ์˜ ์›€์ง์ž„์„ ์ตœ์†Œํ™” ํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ Disk scheduling์ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ, OS๋Š” ์ด๋Ÿฌํ•œ ๋งค์ปค๋‹ˆ์ฆ˜๊นŒ์ง€ ์ œ๊ณตํ•œ๋‹ค.

=> ํ•˜๋‚˜์˜ I/O ๋””๋ฐ”์ด์Šค์— ๋Œ€ํ•ด ์—ฌ๋Ÿฌ ๋ช…๋ น์„ ๋‚ด๋ฆด ์ˆ˜ ์—†๋Š” ์ด์œ . ๋””์Šคํฌ ์Šค์ผ€์ค„๋ง์— ์˜ํ•ด ๋ช…๋ น์ด ๋’ค์„ž์ผ ์ˆ˜ ์žˆ๋‹ค

 

A๋ผ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ํ•˜๋“œ ๋””์Šคํฌ์—์„œ ๋ ˆ์ง€์Šคํ„ฐ๊นŒ์ง€ ์˜ฌ๋ผ๊ฐ€๋Š” ๊ณผ์ •

  • ๋ฉ€ํ‹ฐ ํƒœ์Šคํ‚น ๊ณผ์ •์—์„œ ๋ฐ์ดํ„ฐ๋Š” ์บ์‹œ์— ์˜ฌ๋ผ๊ฐ€ ์žˆ์„ ์ˆ˜๋„ ์žˆ๊ณ  ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ€ ์žˆ์„ ์ˆ˜๋„ ์žˆ๋Š”๋ฐ, ๋ชจ๋“  ํ”„๋กœ๊ทธ๋žจ์€ ๊ทธ ๋ฐ์ดํ„ฐ์˜ ์ตœ์‹ ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ๋™์ž‘ํ•˜๋Š” ๊ฒƒ์ด ์ •์ƒ์ด๋‹ค.
  • ๋งŒ์•ฝ A๋ผ๋Š” ๋ฐ์ดํ„ฐ์˜ ๊ฐ’์ด 3์ธ๋ฐ, 1๋ฒˆ ํ”„๋กœ๊ทธ๋žจ์ด ๊ทธ ๊ฐ’์„ 5๋กœ ๋ฐ”๊ฟจ๋‹ค.
  • ๊ทธ๋Ÿฐ๋ฐ 2๋ฒˆ ํ”„๋กœ๊ทธ๋žจ๋„ ๋˜‘๊ฐ™์ด A ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•œ๋‹ค๋ฉด, ์›๋ž˜ ๊ฐ’์ธ 3์„ ์ ‘๊ทผํ•˜๋Š” ๊ฒŒ ๋งž์„๊นŒ ๋ฐ”๋€ 5๋ฅผ ์ ‘๊ทผํ•˜๋Š” ๊ฒŒ ๋งž์„๊นŒ?
    • ๋‹น์—ฐํžˆ ์ตœ์‹ ๊ฐ’์„ ์ ‘๊ทผํ•˜๋Š” ๊ฒŒ ๋งž๋‹ค.

OS๋Š” ํ˜„์žฌ ์‹คํ–‰๋˜๋Š” ๋ชจ๋“  ํ”„๋กœ๊ทธ๋žจ์ด ์ ‘๊ทผํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ํ•ญ์ƒ ์ตœ์‹  ๋ฐ์ดํ„ฐ์ž„์„ ๋ณด์žฅํ•ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค.

์ด๋•Œ CPU๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์ด๋ฉด (์ฝ”์–ด๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ๋ฉด) ๊ฐ ํ”„๋กœ์„ธ์„œ ๋งˆ๋‹ค ์บ์‹œ๋ฅผ ๊ฐ–๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ƒํ™ฉ์ด ๋” ๋ณต์žกํ•ด์ง.


๊ฐ™์€ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฐ ์ฝ”์–ด์˜ ์บ์‹œ์— ๋™์‹œ์— ์˜ฌ๋ผ๊ฐ€์žˆ๋Š” ์ƒํƒœ์—์„œ ์–ด๋–ค ํ”„๋กœ์„ธ์„œ๊ฐ€ ์บ์‹œ์˜ ๊ฐ’์„ ์—…๋ฐ์ดํŠธ ํ•œ๋‹ค๋ฉด?

cache coherence problem ๋ฐœ์ƒ

์ด ๋ฌธ์ œ๋ฅผ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐ ํ•˜๋ƒ๋ฉด, cache coherency protocol์€ ์บ์‹œ์— ๋ณด๊ด€๋œ ๋ฐ์ดํ„ฐ์˜ ๋ชจ๋“  ์‚ฌ๋ณธ์ด ๋™์ผํ•œ ๊ฐ’์„ ๊ฐ€์ง€๋Š”์ง€ ์ฒดํฌํ•œ๋‹ค.

ํ•œ ํ”„๋กœ์„ธ์„œ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•˜๋ฉด ๋™์ผํ•œ ๋ฐ์ดํ„ฐ์˜ ์‚ฌ๋ณธ์„ ๊ฐ–๊ณ  ์žˆ๋Š” ๋ชจ๋“  ํ”„๋กœ์„ธ์„œ์—๊ฒŒ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด ๊ณผ๊ฑฐ์˜ ๋ณต์‚ฌ๋ณธ์„ ๋ฌดํšจํ™”ํ•œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋ฉ”๋ชจ๋ฆฌ ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•œ ํ”„๋กœ์„ธ์„œ๋กœ๋ถ€ํ„ฐ ์—…๋ฐ์ดํŠธ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค.

 

ํ•˜๋‚˜์˜ ์ž‘์—…์„ ์—ฌ๋Ÿฌ ๋Œ€์˜ ์ปดํ“จํ„ฐ์—์„œ ๋™์‹œ์— ์ž‘์—…ํ•˜๊ฒŒ ๋˜๋ฉด ๊ฐ™์€ ๋ฐ์ดํ„ฐ์— ๋ชจ๋“  ์ปดํ“จํ„ฐ๊ฐ€ ์ ‘๊ทผ์„ ํ•˜๊ฒŒ ๋˜๊ณ , cache coherence problem๋ณด๋‹ค ๋” ๋ณต์žกํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒ.

=> ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋งค์ปค๋‹ˆ์ฆ˜๋„ OS๊ฐ€ ์ œ๊ณตํ•˜๊ณ  ์žˆ์Œ

 

I/O Subsystem


I/O ์žฅ์น˜๋Š” ์ˆ˜๋งŽ์€ ํšŒ์‚ฌ์—์„œ ๋งŒ๋“ค์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ ์ข…๋ฅ˜๊ฐ€ ๋งค์šฐ ๋‹ค์–‘ํ•˜๋‹ค.

๋งˆ์šฐ์Šค๋งŒ ํ•˜๋”๋ผ๋„ ์ˆ˜๋งŽ์€ ํšŒ์‚ฌ์—์„œ ๊ฐ ํšŒ์‚ฌ๋งˆ๋‹ค ๋‹ค๋ฅด๊ฒŒ ๋งˆ์šฐ์Šค๋ฅผ ์ƒ์‚ฐํ•˜๊ณ  ์žˆ๋‹ค.

๋„ˆ๋ฌด๋‚˜๋„ ๋‹ค์–‘ํ•œ I/O ์žฅ์น˜๋“ค์˜ ํŠน์„ฑ์„ ์‚ฌ์šฉ์ž๋Š” ๊ตณ์ด ๊ตฌ๋ถ„ํ•  ํ•„์š”์—†์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ๊ฒƒ์ด OS์˜ ์ค‘์š”ํ•œ ๋ชฉํ‘œ ์ค‘ ํ•˜๋‚˜์ด๋‹ค.

=> ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” ๋งค์šฐ ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด์คŒ.

 

I/O ๋””๋ฐ”์ด์Šค๊ฐ€ ๋А๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ ๋А๋ฆฐ ๊ฒƒ์„ ๋งŒํšŒํ•ด์ฃผ๋Š” ์†Œํ”„ํŠธ์›จ์–ด์  ๊ธฐ๋Šฅ๋„ OS๊ฐ€ ์ œ๊ณตํ•œ๋‹ค.

Buffering: ํ•˜๋“œ ๋””์Šคํฌ์— ์ €์žฅํ•  ๋ฐ์ดํ„ฐ๋ฅผ ๋ฒ„ํผ์— ์ž„์‹œ ์ €์žฅํ–ˆ๋‹ค๊ฐ€ ํ•œ ๋ฒˆ์— ์ €์žฅํ•œ๋‹ค. ๋งค๋ฒˆ ๋””์Šคํฌ์— ์ ‘๊ทผํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ฒŒ ๋˜๋ฉด ๋А๋ฆฌ๊ธฐ ๋•Œ๋ฌธ

Caching: ๋””์Šคํฌ์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์ค‘ ์ผ๋ถ€๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ ค๋†“๊ณ  ์‚ฌ์šฉํ•œ๋‹ค.

Spooling: ์–ด๋–ค ์ž‘์—…์ด ์ƒ์„ฑํ•ด ๋‚ธ output์„ ๋‹ค๋ฅธ ์ž‘์—…ํ•œํ…Œ ๋ณด๋‚ผ ๋•Œ ์ง์ ‘ ๋ณด๋‚ด์ง€ ์•Š๊ณ  ์ค‘๊ฐ„ ๋‹จ๊ณ„์˜ ์ž„์‹œ ๊ณต๊ฐ„(Spool)์— ๋ณด๋ƒ„. ๊ทธ๋ฆฌ๊ณ  Spool์—์„œ ๋‹ค๋ฅธ ์ž‘์—…์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด๊ฐ€๊ฒŒ ๋งŒ๋“ ๋‹ค.

Spooling์€ ํ”„๋ฆฐํŠธ๋ฅผ ํ•  ๋•Œ ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค.
hwp ํ”„๋กœ๊ทธ๋žจ์ด ํ”„๋ฆฐํ„ฐ์— ์ถœ๋ ฅ์„ ํ•˜๋ฉด ํ”„๋ฆฐํ„ฐ์— ์ง์ ‘ ๋ฐ์ดํ„ฐ๋ฅผ ๋„˜๊ฒจ์ฃผ์ง€ ์•Š๊ณ  OS๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” Spool์ด๋ผ๋Š” ์˜์—ญ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋„˜๊ฒจ์ค€๋‹ค. ๊ทธ๋Ÿผ Spool์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ”„๋ฆฐํ„ฐ์— ๋„˜๊ฒจ์ฃผ๋Š” ์—ญํ• ์€ OS๊ฐ€ ํ•œ๋‹ค.
ํ”„๋ฆฐํ„ฐ๋Š” ๋А๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ฌด์ž‘์ • ๋ณด๋‚ด๋ฉด ์•ˆ ๋จ. ๋ฐ์ดํ„ฐ๊ฐ€ ์†์‹ค๋˜๊ฑฐ๋‚˜ ๋ณ€ํ˜•๋  ์ˆ˜ ์žˆ๋‹ค.

OS๊ฐ€ ํ”„๋ฆฐํ„ฐ์˜ ์†๋„์— ๋งž์ถฐ์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ๊ธˆ์”ฉ ๋„˜๊ฒจ์ค€๋‹ค
=> ํ”„๋ฆฐํ„ฐ์˜ ๋А๋ฆฐ ์†๋„๋ฅผ OS๊ฐ€ ๋งŒํšŒ์‹œ์ผœ์คŒ

 

Protection and Security


Protection๊ณผ Security๋Š” ์–ด๋–ค ์ฐจ์ด๊ฐ€ ์žˆ์„๊นŒ?

Protection: ๊ถŒํ•œ์ด ์—†๋Š” ์ž๊ฐ€ ๊ถŒํ•œ์ด ์—†๋Š” ์ž์›์— ์ ‘๊ทผํ•˜๋ ค๊ณ  ํ•˜๋ฉด ๋ง‰์•„์คŒ

Security: ์•…์˜์ ์ธ ํ–‰๋™์„ ๋ง‰๋Š” ๊ฒƒ

OS๋Š” ๊ถŒํ•œ์ด ์žˆ๋Š” ์‚ฌ์šฉ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์œ ์ €๋งˆ๋‹ค User ID๋ฅผ ์ƒ์„ฑ.

OS๋Š” UserID๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ถŒํ•œ์„ ๊ฒฐ์ •ํ•œ๋‹ค!

ํ•ด๋‹น ํŒŒ์ผ์„ ๋งŒ๋“  ์‚ฌ๋žŒ์€ ํ•ด๋‹น ํŒŒ์ผ์— ๋Œ€ํ•œ ๋ชจ๋“  ๊ถŒํ•œ์„ ๊ฐ€์ง„๋‹ค.

ํ•ด๋‹น ํŒŒ์ผ์ด ๋งŒ๋“ค์–ด์งˆ ๋•Œ ํŒŒ์ผ์„ ๋งŒ๋“œ๋Š” ์‚ฌ๋žŒ์€ ์†Œ์œ ์ž๊ฐ€ ์•„๋‹Œ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ๋Š” ์ด๋Ÿฐ ๊ถŒํ•œ์„ ์ฃผ๋ผ๊ณ  ์ง€์ •์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ชจ๋“  ๊ถŒํ•œ์„ ์ค„ ์ˆ˜๋„ ์žˆ๊ณ , ์ฝ๊ธฐ ๊ถŒํ•œ๋งŒ ์ค„ ์ˆ˜๋„ ์žˆ๊ณ , ์ ‘๊ทผ ์ž์ฒด๋ฅผ ๋ชป ํ•˜๊ฒŒ ํ•  ์ˆ˜๋„ ์žˆ์Œ.

 

์œ ์ €๊ฐ€ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰์‹œํ‚ค๋ฉด ๊ทธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์–ด๋–ค ๊ถŒํ•œ์„ ๊ฐ€์ง€๋ƒ, ์œ ์ €๊ฐ€ ๊ฐ€์ง„ ๊ถŒํ•œ์„ ์Šน๊ณ„๋ฐ›์•„์„œ ๋˜‘๊ฐ™์€ ๊ถŒํ•œ์„ ๊ฐ€์ง€๊ฒŒ ๋œ๋‹ค.

๋”ฐ๋ผ์„œ ๊ฐ™์€ ํ”„๋กœ๊ทธ๋žจ์ด๋ผ๊ณ  ํ•˜๋”๋ผ๋„ ์‹คํ–‰ํ•œ ์œ ์ €์— ๋”ฐ๋ผ ํ”„๋กœ๊ทธ๋žจ์ด ๋‹ค๋ฅธ ๊ถŒํ•œ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ ๊ถŒํ•œ ๋‚ด์—์„œ ์ž์›์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด๋ณด์ž

A๋ผ๋Š” ์œ ์ €๊ฐ€ ๋กœ๊ทธ์ธํ•ด์„œ hwp ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰์‹œ์ผœ B๋ผ๋Š” ์œ ์ €๊ฐ€ ๋งŒ๋“  hwp ํŒŒ์ผ์„ ์˜คํ”ˆํ•˜๋ ค๊ณ  ํ•˜๋ฉด, ์˜คํ”ˆ์€ A๊ฐ€ ์‹คํ–‰์‹œํ‚จ hwp ํ”„๋กœ๊ทธ๋žจ์ด ํ•˜๋Š” ๊ฒƒ์ž„.
๊ทธ๋Ÿฌ๋ฉด ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์ด ๊ฐ€์ง„ ๊ถŒํ•œ์€ A ์œ ์ €์˜ ID๊ฐ€ ๊ฐ€์ง„ ๊ถŒํ•œ์ž„.

A์˜ ID๊ฐ€ ๊ฐ€์ง„ ๊ถŒํ•œ์ด B๊ฐ€ ์ƒ์„ฑํ•œ ํŒŒ์ผ์„ ์˜คํ”ˆํ•  ์ˆ˜ ์žˆ๋Š”์ง€๋Š” B๊ฐ€ ํŒŒ์ผ์— ๋Œ€ํ•ด ์„ค์ •ํ•œ ์„ค์ •์„ ๋”ฐ๋ฆ„.
๋‹ค๋ฅธ ์‚ฌ๋žŒ๋„ ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์„ค์ •ํ•ด๋‘์—ˆ์œผ๋ฉด A์˜ ID๋กœ๋„ ํŒŒ์ผ์„ ์˜คํ”ˆํ•  ์ˆ˜ ์žˆ์Œ.

๊ทธ๋Ÿฌ๋‚˜ ๋ณธ์ธ ์ด์™ธ์—๋Š” ์˜คํ”ˆํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ์„ค์ •์„ ํ•ด๋‘์—ˆ๋‹ค๋ฉด A์˜ ID๋กœ ์‹คํ–‰์‹œํ‚จ hwp ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ๋Š” ์ด ํŒŒ์ผ์„ ์˜คํ”ˆํ•  ์ˆ˜ ์—†์Œ.

Root๋Š” ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž์™€ ๋‹ค๋ฅด๊ฒŒ ๋ชจ๋“  ์ž์›์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ•๋ ฅํ•œ ๊ถŒํ•œ์„ ๊ฐ€์ง.

 

Privilege escalation


User ID๊ฐ€ ๊ฐ€์ง„ ๊ถŒํ•œ์ด ์ผ์‹œ์ ์œผ๋กœ ์ƒ์Šน๋˜๋Š” ๊ฒƒ

์–ด๋–ค ํ”„๋กœ๊ทธ๋žจ์„ ์ˆ˜ํ–‰์‹œํ‚ฌ ๋•Œ, ์—†๋Š” ๊ถŒํ•œ์„ ํš๋“ํ•ด์•ผ์ง€๋งŒ ํ”„๋กœ๊ทธ๋žจ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Œ.

A๋ผ๋Š” ์œ ์ €์˜ ID๋กœ hwp ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰์‹œํ‚ค๋ฉด A ์œ ์ €์˜ ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰์ด ๋œ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ํ”„๋ฆฐํŠธ๋ฅผ ํ•œ๋‹ค๊ณ  ํ•˜๋ฉด, ์ถœ๋ ฅํ•  ๋ฐ์ดํ„ฐ๊ฐ€ OS๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” Spool ์˜์—ญ์— ์“ฐ์—ฌ์•ผ ํ•œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  Spool ์˜์—ญ์— ์“ฐ์ธ ๋ฐ์ดํ„ฐ๋ฅผ OS๊ฐ€ ํ”„๋ฆฐํ„ฐ์˜ ์ž‘์—… ์†๋„์— ๋งž์ถฐ์„œ ๋ณด๋‚ธ๋‹ค.
=> ์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋žจ์ด ๋™์‹œ์— ํ•˜๋‚˜์˜ ์ถœ๋ ฅ ์žฅ์น˜๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•˜๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ์†์‹ค๋˜๊ฑฐ๋‚˜ ๋ฎ์–ด์“ฐ์ผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ”๋กœ ์ถœ๋ ฅ ์žฅ์น˜๋กœ ๋ณด๋‚ด๋Š” ๊ฒƒ์ด ์•„๋‹Œ Spool ์˜์—ญ์— ๋ณด๋‚ธ๋‹ค๊ณ  ์•ž์„œ ์„ค๋ช…ํ–ˆ๋‹ค.

์ฆ‰, OS๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” Spool ์˜์—ญ์€ ์‚ฌ์šฉ์ž์˜ ์˜์—ญ์ด ์•„๋‹ˆ๋ผ OS์˜ ์˜์—ญ์ž„.

OS๊ฐ€ ๋งŒ๋“  ์˜์—ญ์— ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์ด ์ ‘๊ทผํ•˜๋Š” ๊ฑด ๋ถˆ๊ฐ€๋Šฅ(Protection์œผ๋กœ ์ธํ•ด).

์›๋ž˜๋Š” A์˜ ID๋กœ ์‹คํ–‰ํ•œ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ๋Š” OS์˜ Spool์ด๋ผ๋Š” ์˜์—ญ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ชป ์“ฐ๋Š” ๊ฒŒ ์ •์ƒ์ด์ง€๋งŒ ๊ทธ๋Ÿฌ๋ฉด ํ”„๋ฆฐํŠธ๋ฅผ ๋ชป ํ•˜๊ฒŒ ๋œ๋‹ค.

๊ทธ๋ž˜์„œ ํ”„๋ฆฐํŠธ๋ฅผ ํ•  ๋•Œ๋Š” ๊ถŒํ•œ์„ ์ž ์‹œ ์ƒ์Šน์‹œ์ผœ์ค€๋‹ค.

OS์˜ Spool ์˜์—ญ์— ์“ธ ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์„ ์ฃผ๊ณ , ๋‹ค ์“ฐ๊ณ ๋‚˜๋ฉด ๋‹ค์‹œ ๊ถŒํ•œ์„ ๊ฐ€์ ธ๊ฐ.
=> ์ด๊ฒŒ ๋ฐ”๋กœ Privilege escalation.

 

๊ทธ๋Ÿฐ๋ฐ ์ด๊ฒƒ์€ ๋งค์šฐ ์œ„ํ—˜ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

User ID๊ฐ€ Root์˜ ๊ถŒํ•œ์„ ๊ฐ–๊ฒŒ ๋˜๋Š” ๊ฒƒ์ธ๋ฐ, ๊ทธ๋Ÿฌ๋ฉด ์•„๋ฌด ํŒŒ์ผ์„ ์‚ญ์ œํ•˜๊ฑฐ๋‚˜ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

Priviledge๊ฐ€ ์ƒ์Šนํ•œ ํ‹ˆ์— ํŒŒ์ผ์— ์ ‘๊ทผํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œ๋ฅผ ํ•˜๋Š” ๋ฐฉ์‹์˜ ํ•ดํ‚น์ด ์ž์ฃผ ์‚ฌ์šฉ๋จ.

728x90

'HYU > ์šด์˜์ฒด์ œ(OS)' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

4. CPU Scheduling  (3) 2023.03.24
3. Processes and Threads  (0) 2023.03.23
2. Operating System Overview (2)  (0) 2023.03.23
1. Computer System Overview (2)  (0) 2023.03.20
1. Computer System Overview (1)  (0) 2023.03.20