๐Ÿ“š CS [ComputerScience]/๐Ÿ“š CS ๋ฉด์ ‘

๐Ÿ“š [CS๋ฉด์ ‘] ์›น ๋ฉด์ ‘ ์งˆ๋ฌธ [16] [์šด์˜์ฒด์ œ]

Dbswnstjd 2024. 3. 11. 19:08

1. ์šด์˜์ฒด์ œ์˜ ์—ญํ• 

- CPU ์Šค์ผ€์ค„๋ง & ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ

- ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ

- ๋””์Šคํฌ ํŒŒ์ผ ๊ด€๋ฆฌ

- I/O ๋””๋ฐ”์ด์Šค ๊ด€๋ฆฌ

 

* ํ”„๋กœ์„ธ์Šค๋ž€ ?

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

 

์šด์˜์ฒด์ œ์˜ ๋ชฉ์  

์ž์›์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•จ

 

2. CPU ์Šค์ผ€์ค„๋ง

CPU ์Šค์ผ€์ค„๋ง์€ ์–ธ์ œ ์–ด๋–ค ํ”„๋กœ์„ธ์Šค์— CPU๋ฅผ ํ• ๋‹นํ• ์ง€ ๊ฒฐ์ •ํ•˜๋Š” ์ž‘์—…. ์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ CPU ์ด์šฉ๋ฅ ์€ ๋†’๊ฒŒ, ์ฃผ์–ด์ง„ ์‹œ๊ฐ„์— ๋งŽ์€ ์ผ์„ ํ•˜๊ฒŒ, ์ค€๋น„ ํ์— ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค๋Š” ์ ๊ฒŒ, ์‘๋‹ต์‹œ๊ฐ„์€ ์งง๊ฒŒ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•œ๋‹ค.

 

๋น„์„ ์ ํ˜• ์Šค์ผ€์ค„๋ง

์–ด๋–ค ํ”„๋กœ์„ธ์Šค๊ฐ€ CPU๋ฅผ ์ ์œ ํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ์ด๋ฅผ ๋บ์„ ์ˆ˜ ์—†๋Š” ๋ฐฉ์‹. ๊ฐ•์ œ๋กœ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ค‘์ง€ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ ๋ฌธ๋งฅ ๊ตํ™˜(Context Switching)์œผ๋กœ ์ธํ•œ ๋ถ€ํ•˜๊ฐ€ ์ƒ๋Œ€์ ์œผ๋กœ ์ ์ง€๋งŒ ํ”„๋กœ์„ธ์Šค์˜ ๋ฐฐ์น˜์— ๋”ฐ๋ผ ํšจ์œจ์„ฑ ์ฐจ์ด๊ฐ€ ๋งŽ์ด ๋‚˜๊ฒŒ ๋œ๋‹ค.

 

- FCFS(First-Come-First-Served)

๋ง ๊ทธ๋Œ€๋กœ ๋„์ฐฉํ•œ ์ˆœ์„œ๋Œ€๋กœ ํ”„๋กœ์„ธ์Šค์— CPU๋ฅผ ํ• ๋‹นํ•ด์ฃผ๋Š” ์Šค์ผ€์ค„๋ง ๋ฐฉ์‹์ด๋‹ค.ํ˜•ํ‰์„ฑ์€ ๋›ฐ์–ด๋‚˜์ง€๋งŒ ํšจ์œจ์„ฑ ์ธก๋ฉด์—์„œ ๋–จ์–ด์ง„๋‹ค.

 

- SJF (Shortest-Job-First)

์‹คํ–‰์‹œ๊ฐ„์ด ์งง์€ ์ˆœ์„œ๋Œ€๋กœ CPU๋ฅผ ํ• ๋‹นํ•ด์ฃผ๋Š” ์Šค์ผ€์ค„๋ง ๋ฐฉ์‹์ด๋‹ค.

FCFS ๋ณด๋‹ค๋Š” ํ‰๊ท  ๋Œ€๊ธฐ์‹œ๊ฐ„์ด ์ค„์–ด๋“ค์ง€๋งŒ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ํ”„๋กœ์„ธ์Šค๋Š” ๊ธฐ์•„ ํ˜„์ƒ(๋ฌดํ•œ ๋Œ€๊ธฐ)์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

 

- Priority

๊ฐ๊ฐ์˜ ํ”„๋กœ์„ธ์Šค์— ์šฐ์„ ์ˆœ์œ„ ๋„˜๋ฒ„๊ฐ€ ์žˆ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜. ์˜ˆ๋ฅผ ๋“ค์–ด SJF ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ฒฝ์šฐ, ๋‚ฎ์€ ์šฐ์„  ์ˆœ์œ„์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ ˆ๋Œ€ ์‹คํ–‰๋˜์ง€ ์•Š๋Š” ๊ธฐ์•„(Starvation) ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋…ธํ™”(aging)๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ค๋ž˜๋œ ์ž‘์—…์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋†’์—ฌ์ฃผ๋Š” ์‹.

 

์„ ์ ํ˜• ์Šค์ผ€์ค„๋ง

ํ˜„๋Œ€ ์šด์˜์ฒด์ œ๊ฐ€ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๋ฐฉ์‹์œผ๋กœ, ์–ด๋–ค ํ”„๋กœ์„ธ์Šค๊ฐ€ CPU๋ฅผ ํ• ๋‹น๋ฐ›์•„ ์‹คํ–‰ ์ค‘์ด๋”๋ผ๋„ ์šด์˜์ฒด์ œ๊ฐ€ ์ด๋ฅผ ๊ฐ•์ œ๋กœ ๋บ์„ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์‹. ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋”ฐ๋ผ ๊ฐ•์ œ๋กœ ์ค‘๋‹จ์‹œํ‚ค๊ณ  ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์— CPU๋ฅผ ํ• ๋‹นํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ์ฒ˜๋ฆฌ ์‹œ๊ฐ„์ด ๋งค์šฐ ๊ธด ํ”„๋กœ์„ธ์Šค์˜ CPU ์‚ฌ์šฉ ๋…์ ์„ ๋ง‰์„ ์ˆ˜ ์žˆ์–ด ํšจ์œจ์ ์ธ ์šด์˜์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ์žฆ์€ ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ์œผ๋กœ ์ธํ•ด ์˜ค๋ฒ„ํ—ค๋“œ(Overhead)๊ฐ€ ์ปค์งˆ ์ˆ˜ ์žˆ๋‹ค.

 

- ๋ผ์šด๋“œ ๋กœ๋นˆ (RR, Round Robin)

๊ฐ ํ”„๋กœ์„ธ์Šค๋Š” ๋™์ผ ํฌ๊ธฐ์˜ CPU ํ• ๋‹น์‹œ๊ฐ„์„ ๊ฐ–๋Š”๋‹ค. ํ• ๋‹น์‹œ๊ฐ„์ด ๋๋‚˜๋ฉด ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ํ”„๋กœ์„ธ์Šค๋Š” CPU๋ฅผ ๋นผ์•—๊ธฐ๊ณ  CPU ํ์˜ ์ œ์ผ ๋’ค์— ์ค„์€ ์„ ๋‹ค. n ๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ CPU ํ์— ์žˆ๋Š” ๊ฒฝ์šฐ ์–ด๋–ค ํ”„๋กœ์„ธ์Šค๋„ (n-1) * ํ• ๋‹น์‹œ๊ฐ„ ์ด์ƒ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๋Š”๋‹ค. 

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

์‘๋‹ต ์‹œ๊ฐ„์„ ๋น ๋ฅด๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์ง€๋งŒ ํ• ๋‹น ์‹œ๊ฐ„์ด ๊ธธ๋ฉด FCFS์ฒ˜๋Ÿผ ์ž‘๋™ํ•˜๊ณ , ๋ฐ˜๋Œ€๋กœ ํ• ๋‹น ์‹œ๊ฐ„์ด ๋„ˆ๋ฌด ์งง์œผ๋ฉด process sharing์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ์ด๊ฒƒ์€ n๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ”„๋กœ์„ธ์„œ ์†๋„์˜ 1/n ์”ฉ์œผ๋กœ ์ž‘๋™ํ•จ์„ ์˜๋ฏธํ•œ๋‹ค.

 

3. ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ

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

 

ํ”„๋กœ์„ธ์Šค๋ฅผ ์ชผ๊ฐœ์ง€๋Š” ๋‹จ์œ„๋ฅผ ํŽ˜์ด์ง€(Page)๋ผ๊ณ  ํ•œ๋‹ค. 

 

CPU๊ฐ€ ์š”์ฒญํ•œ ํŽ˜์ด์ง€๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ๋ชจ๋‘ ์ฐจ์ง€ํ–ˆ์„ ๋•Œ ์šด์˜์ฒด์ œ๋Š” ํšจ์œจ์„ฑ์„ ์ฒดํฌํ•˜๊ฒŒ ๋œ๋‹ค. 

๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ์—๋Š” LRU ์™€ LFU ๋‘ ๊ฐ€์ง€ ๋ฐฉ์‹์ด ์กด์žฌํ•œ๋‹ค.

 

- LRU (๊ฐ€์žฅ ์˜ค๋ž˜ ์ „์— ์ฐธ์กฐ ํŽ˜์ด์ง€ ์‚ญ์ œ)

- LFU (์ฐธ์กฐ ํšŸ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ์ ์€ ํŽ˜์ด์ง€ ์‚ญ์ œ)