[CS] ์šด์˜์ฒด์ œ
๋ฐ˜์‘ํ˜•

 

 

 

 


01  ์šด์˜์ฒด์ œ

 

Section  1.  ์šด์˜์ฒด์ œ  ๊ธฐ์ดˆ

 

1.  ๊ธฐ์–ต์žฅ์น˜

โ‘ด  ๊ธฐ์–ต์žฅ์น˜์˜  ๊ฐœ๋…

๏‚Ÿ ๋ฐ์ดํ„ฐ, ํ”„๋กœ๊ทธ๋žจ, ์—ฐ์‚ฐ์˜  ์ค‘๊ฐ„  ๊ฒฐ๊ณผ  ๋“ฑ์„  ์ผ์‹œ์   ๋˜๋Š”  ์˜๊ตฌ์ ์œผ๋กœ  ์ €์žฅํ•˜๋Š”  ์žฅ์น˜

โ‘ต  ๊ธฐ์–ต์žฅ์น˜์˜  ์ข…๋ฅ˜

1)  ๋ ˆ์ง€์Šคํ„ฐ (CPU์˜† ๊ณ ์†๋ฉ”๋ชจ๋ฆฌ, ๋น ๋ฆ„)
2)  ์บ์‹œ  ๋ฉ”๋ชจ๋ฆฌ
3)  ์ฃผ๊ธฐ์–ต์žฅ์น˜ (RAM ํœ˜๋ฐœ์„ฑ, ROM ๋น„ํœ˜๋ฐœ์„ฑ)
4)  ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜ (HDD, SSD)
5)  ์—ฐ๊ด€  ๋ฉ”๋ชจ๋ฆฌ

 

2.  ์‹œ์Šคํ…œ  ์†Œํ”„ํŠธ์›จ์–ด

โ‘ด  ์‹œ์Šคํ…œ  ์†Œํ”„ํŠธ์›จ์–ด์˜  ์ข…๋ฅ˜

๏‚Ÿ ๋ง์ปค  :  ๋ชฉ์   ํŒŒ์ผ(Object  File) ์„  ์‹คํ–‰  ํŒŒ์ผ(Execute  File) ๋กœ  ๋ณ€ํ™˜ํ•ด  ์ฃผ๋Š”  ํ”„๋กœ๊ทธ๋žจ 
๏‚Ÿ ๋กœ๋”  :  ๋ชฉ์   ํ”„๋กœ๊ทธ๋žจ์„  ๋ฉ”๋ชจ๋ฆฌ์—  ์ ์žฌํ•˜๊ณ   ๋ฐฐ์น˜  ์ฃผ์†Œ๋ฅผ  ์˜ฎ๊ธฐ๋Š”  ํ”„๋กœ๊ทธ๋žจ
๏‚Ÿ ์œ ํ‹ธ๋ฆฌํ‹ฐ (์ปดํ“จํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๊ฑฐ๋‚˜, ์ •์ƒ์ ์œผ๋กœ ๋Œ์•„๊ฐ€๋„๋ก ์œ ์ง€ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด)
๏‚Ÿ ๋ฒˆ์—ญ๊ธฐ (์ปดํŒŒ์ผ๋Ÿฌ, ์–ด์…ˆ๋ธ”๋Ÿฌ)
๏‚Ÿ ์žฅ์น˜  ๋“œ๋ผ์ด๋ฒ„
๏‚Ÿ ์šด์˜์ฒด์ œ

โ‘ต  ์‹œ์Šคํ…œ  ์†Œํ”„ํŠธ์›จ์–ด์˜  ๊ตฌ์„ฑ

1)  ์ œ์–ด  ํ”„๋กœ๊ทธ๋žจ โญ(๊ฐ์ž‘๋ฐ) 
๏‚Ÿ ๊ฐ์‹œ  ํ”„๋กœ๊ทธ๋žจ(Supervisor  Program)
๏‚Ÿ ์ž‘์—…๊ด€๋ฆฌ  ํ”„๋กœ๊ทธ๋žจ(Job  Control  Program)
๏‚Ÿ ๋ฐ์ดํ„ฐ  ๊ด€๋ฆฌ  ํ”„๋กœ๊ทธ๋žจ(Data  Control  Program)

2)  ํ”„๋กœ๊ทธ๋žจ ์ฒ˜๋ฆฌ
๏‚Ÿ ์„œ๋น„์Šค  ํ”„๋กœ๊ทธ๋žจ(Service  Program)
๏‚Ÿ ๋ฌธ์ œ  ํ”„๋กœ๊ทธ๋žจ(Problem  Program)
๏‚Ÿ ์–ธ์–ด  ๋ฒˆ์—ญ  ํ”„๋กœ๊ทธ๋žจ(Language  Translator  Program)

 

3.  ์šด์˜์ฒด์ œ

โ‘ด  ์šด์˜์ฒด์ œ์˜  ๊ธฐ๋Šฅ

๏‚Ÿ ์ปดํ“จํ„ฐ ์‚ฌ์šฉ์ž์™€ ์ปดํ“จํ„ฐ ํ•˜๋“œ์›จ์–ด ๊ฐ„์˜ ์ธํ„ฐํŽ˜์ด์Šค ๋‹ด๋‹น
๏‚Ÿ ํ”„๋กœ์„ธ์Šค  ๊ด€๋ฆฌ
๏‚Ÿ ๋ฉ”๋ชจ๋ฆฌ  ๊ด€๋ฆฌ
๏‚Ÿ ํŒŒ์ผ  ๊ด€๋ฆฌ
๏‚Ÿ ์ž…์ถœ๋ ฅ  ๊ด€๋ฆฌ 
๏‚Ÿ ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜  ๊ด€๋ฆฌ
๏‚Ÿ ๋„คํŠธ์›Œํ‚น
๏‚Ÿ ์ •๋ณด  ๋ณด์•ˆ  ๊ด€๋ฆฌ
๏‚Ÿ ๋ช…๋ นํ•ด์„

โ‘ต  ์šด์˜์ฒด์ œ  ์šด์šฉ  ๊ธฐ๋ฒ•

๏‚Ÿ ์ผ๊ด„  ์ฒ˜๋ฆฌ  ์‹œ์Šคํ…œ(Batch  Processing  System) (์ผ์ •๋Ÿ‰ ๋˜๋Š” ์ผ์ • ๊ธฐ๊ฐ„ ๋™์•ˆ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ์•„์„œ ํ•œ๊บผ๋ฒˆ์— ์ฒ˜๋ฆฌ)
๏‚Ÿ ์‹ค์‹œ๊ฐ„  ์ฒ˜๋ฆฌ  ์‹œ์Šคํ…œ(Real  Time  Processing) (๋ฐ์ดํ„ฐ ๋ฐœ์ƒ ์ฆ‰์‹œ, ๋˜๋Š” ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์š”๊ตฌ๊ฐ€ ์žˆ๋Š” ์ฆ‰์‹œ ์ฒ˜๋ฆฌ)
๏‚Ÿ ๋‹ค์ค‘  ํ”„๋กœ๊ทธ๋ž˜๋ฐ  ์‹œ์Šคํ…œ(Multi  Programming) (ํ•˜๋‚˜์˜ CPU์™€ ์ฃผ๊ธฐ์–ต์žฅ์น˜, ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ”„๋กœ๊ทธ๋žจ์„ ๋™์‹œ์— ์ฒ˜๋ฆฌ)
๏‚Ÿ ์‹œ๋ถ„ํ•   ์‹œ์Šคํ…œ(Time  Sharing) (์—ฌ๋Ÿฌ ๋ช…์˜ ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ์‹œ์Šคํ…œ์—์„œ ์ปดํ“จํ„ฐ๊ฐ€ ์‚ฌ์šฉ์ž๋“ค์˜ ํ”„๋กœ๊ทธ๋žจ์„ ๋ฒˆ๊ฐˆ์•„๊ฐ€๋ฉฐ ์ฒ˜๋ฆฌํ•ด ์คŒ์œผ๋กœ์จ ๊ฐ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋…๋ฆฝ๋œ ์ปดํ“จํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋Š๋‚Œ์„ ์ฃผ๋Š”๊ฒƒ์œผ๋กœ, ๋ผ์šด๋“œ ๋กœ๋นˆ ๋ฐฉ์‹)
๏‚Ÿ ๋‹ค์ค‘  ์ฒ˜๋ฆฌ  ์‹œ์Šคํ…œ(Multi-Processing) (์—ฌ๋Ÿฌ ๊ฐœ์˜ CPU์™€ ํ•˜๋‚˜์˜ ์ฃผ๊ธฐ์–ต์žฅ์น˜, ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ”„๋กœ๊ทธ๋žจ์„ ๋™์‹œ์— ์ฒ˜๋ฆฌ)
๏‚Ÿ ๋‹ค์ค‘  ๋ชจ๋“œ  ์‹œ์Šคํ…œ(Multi-Mode) (์ผ๊ด„ ์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ, ์‹œ๋ถ„ํ•  ์‹œ์Šคํ…œ, ๋‹ค์ค‘ ์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ, ์‹ค์‹œ๊ฐ„ ์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ์„ ํ•œ ์‹œ์Šคํ…œ์—์„œ ๋ชจ๋‘ ์ œ๊ณต)
๏‚Ÿ ๋ถ„์‚ฐ  ์ฒ˜๋ฆฌ  ์‹œ์Šคํ…œ(Distribute  Processing) (์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ปดํ“จํ„ฐ๋ฅผ ํ†ต์‹  ํšŒ์„ ์œผ๋กœ ์—ฐ๊ฒฐํ•˜์—ฌ ํ•˜๋‚˜์˜ ์ž‘์—…์„ ์ฒ˜๋ฆฌ)

 

4.  ์šด์˜์ฒด์ œ์˜  ์ข…๋ฅ˜

โ‘ด  ์œˆ๋„์šฐ(Windows) 

๏‚Ÿ MS-DOS ์˜  ๋ฉ€ํ‹ฐํƒœ์Šคํ‚น  ๊ธฐ๋Šฅ๊ณผ  GUI ํ™˜๊ฒฝ์„  ์ œ๊ณตํ•˜๋Š”  ์šด์˜์ฒด์ œ

โ‘ต  ๋ฆฌ๋ˆ…์Šค(Linux)

๏‚Ÿ 1991๋…„  ๋ฆฌ๋ˆ„์Šค  ํ† ๋ฐœ์ฆˆ์—  ์˜ํ•ด  ์˜คํ”ˆ์†Œ์Šค๋กœ  ๊ฐœ๋ฐœ๋œ  ์œ ๋‹‰์Šค  ํ˜ธํ™˜ OS

โ‘ถ  ์œ ๋‹‰์Šค(Unix) 0๏ธโƒฃ(์šฉ์–ด ์ž์ฒด)

1)  Unix  ์‹œ์Šคํ…œ์˜  ๊ตฌ์„ฑ
๏‚Ÿ ์ปค๋„(Kernel),  ์‰˜(Shell), ์œ ํ‹ธ๋ฆฌํ‹ฐ ํ”„๋กœ๊ทธ๋žจ(Utility  Program)

2)  Unix  ํŒŒ์ผ  ์‹œ์Šคํ…œ โญ
๏‚Ÿ ๋ถ€ํŠธ๋ธ”๋ก : ๋ถ€ํŒ…์‹œ  ํ•„์š”ํ•œ  ์ •๋ณด
๏‚Ÿ ์Šˆํผ๋ธ”๋ก : ์ „์ฒด  ํŒŒ์ผ  ์‹œ์Šคํ…œ์—  ๋Œ€ํ•œ  ์ •๋ณด
๏‚Ÿ I-node ๋ธ”๋ก : ํŒŒ์ผ์ด๋‚˜ ๋””๋ ‰ํ„ฐ๋ฆฌ์—  ๋Œ€ํ•œ  ์ •๋ณด
๏‚Ÿ ๋ฐ์ดํ„ฐ ๋ธ”๋ก : ์‹ค์ œ  ํŒŒ์ผ์—  ๋Œ€ํ•œ  ๋ฐ์ดํ„ฐ  ์ •๋ณด

3) ํŒŒ์ผ  ๋””์Šคํฌ๋ฆฝํ„ฐ (FD,  File  Descriptor) 
๏‚Ÿ ์œ ๋‹‰์Šค  ์‹œ์Šคํ…œ์—์„œ  ํ”„๋กœ์„ธ์Šค๊ฐ€  ํŒŒ์ผ๋“ค์„  ์ ‘๊ทผํ•   ๋•Œ  ์ด์šฉ

๋”๋ณด๊ธฐ

- ํŒŒ์ผ ์ ‘๊ทผ ๊ถŒํ•œ ๊ด€๋ฆฌ ๐Ÿงฎ
    - ๊ถŒํ•œ ๋ณ€๊ฒฝ chmod
        - ๊ถŒํ•œ : read4 write2 excute1
        - ์†Œ์œ ์ฃผ ๊ทธ๋ฃน ๋‚˜๋จธ์ง€
        - chmod 751 a.text 0๏ธโƒฃ
    - ์ ‘๊ทผ ๊ถŒํ•œ ๋งˆ์Šคํฌ
        - ๊ธฐ๋ณธ : ํŒŒ์ผ 666, ๋””๋ ‰ํ„ฐ๋ฆฌ 777
    - ์†Œ์œ ์ฃผ ๋ณ€๊ฒฝ chown
- ํŒŒ์ผ ๊ตฌ์กฐ ์ค‘ ์ƒ‰์ธ 1๏ธโƒฃ

4)  POSIX(Portable  Operating  System  Interface)
๏‚Ÿ ์ด์‹  ๊ฐ€๋Šฅํ•œ  ์šด์˜์ฒด์ œ  ์ธํ„ฐํŽ˜์ด์Šค

โ‘ท  MacOS

๏‚Ÿ ์• ํ”Œ์‚ฌ๊ฐ€  ๊ฐœ๋ฐœํ•œ  ์œ ๋‹‰์Šค  ๊ธฐ๋ฐ˜์˜  ์šด์˜์ฒด์ œ

 

์œˆ๋„์ฆˆ : ์ค‘/์†Œ๊ทœ๋ชจ ์„œ๋ฒ„, ์ผ๋ฐ˜ pc
์œ ๋‹‰์Šค : ๋Œ€์šฉ๋Ÿ‰ ์ฒ˜๋ฆฌ, ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๊ธ‰ ์„œ๋ฒ„
๋ฆฌ๋ˆ…์Šค : ์ค‘/๋Œ€๊ทœ๋ชจ ์„œ๋ฒ„ ๋Œ€์ƒ, ๋†’์€ ๋ณด์•ˆ์„ฑ, ๋น„์šฉ ๊ฐ€์žฅ ์ ์Œ
์•ˆ๋“œ๋กœ์ด๋“œ : ๋ฆฌ๋ˆ…์Šค ์œ„์—์„œ ๊ตฌ๋™, ์ž๋ฐ”์™€ ์ฝ”ํ‹€๋ฆฐ์œผ๋กœ ์ž‘์„ฑ
IOS : ๋†’์€ ๋ณด์•ˆ์„ฑ, ๊ณ ์„ฑ๋Šฅ

 


Section  2.  ๋ฉ”๋ชจ๋ฆฌ  ๊ด€๋ฆฌ

 

1.  ๊ธฐ์–ต์žฅ์น˜  ๊ด€๋ฆฌ  ์ „๋žต

โ‘ด  ๋ฐ˜์ž… ์ „๋žต (Fetch) 

๏‚Ÿ ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜์—  ๋ณด๊ด€  ์ค‘์ธ  ํ”„๋กœ๊ทธ๋žจ์ด๋‚˜  ๋ฐ์ดํ„ฐ๋ฅผ  ์–ธ์ œ  ์ฃผ๊ธฐ์–ต์žฅ์น˜๋กœ  ์ ์žฌํ•   ๊ฒƒ์ธ์ง€๋ฅผ  ๊ฒฐ์ •ํ•˜๋Š”  ์ „๋žต
๏‚Ÿ ์š”๊ตฌ  ๋ฐ˜์ž…(์š”๊ตฌํ•  ๋•Œ), ์˜ˆ์ƒ  ๋ฐ˜์ž…(๋ฏธ๋ฆฌ ์˜ˆ์ƒ)

โ‘ต  ๋ฐฐ์น˜ ์ „๋žต (Placement) 

๏‚Ÿ ์ƒˆ๋กœ  ๋ฐ˜์ž…๋˜๋Š”  ํ”„๋กœ๊ทธ๋žจ์ด๋‚˜  ๋ฐ์ดํ„ฐ๋ฅผ  ์ฃผ๊ธฐ์–ต์žฅ์น˜์˜  ์–ด๋””์—  ์œ„์น˜์‹œํ‚ฌ  ๊ฒƒ์ธ์ง€๋ฅผ  ๊ฒฐ์ •ํ•˜๋Š”  ์ „๋žต
๏‚Ÿ ์ตœ์ดˆ  ์ ํ•ฉ (First  Fit)(์ฒ˜์Œ ๋งŒ๋‚œ ๊ตฌ๋ฉ), ์ตœ์  ์ ํ•ฉ(Best  Fit)(๊ฐ€์žฅ ์ž˜ ๋งž๋Š” ํฌ๊ธฐ์˜ ๊ตฌ๋ฉ),  ์ตœ์•… ์ ํ•ฉ (Worst  Fit)(๊ฐ€์žฅ ๋งŽ์ด ๋‚จ๋Š” ํฌ๊ธฐ์˜ ๊ตฌ๋ฉ)

โ‘ถ  ๊ต์ฒด ์ „๋žต (Replacement) 

๏‚Ÿ ์ด๋ฏธ  ์‚ฌ์šฉ๋˜๊ณ   ์žˆ๋Š”  ์˜์—ญ  ์ค‘์—์„œ  ์–ด๋Š  ์˜์—ญ์„  ๊ต์ฒดํ•˜์—ฌ  ์‚ฌ์šฉํ•   ๊ฒƒ์ธ์ง€๋ฅผ  ๊ฒฐ์ •ํ•˜๋Š”  ์ „๋žต
๏‚Ÿ ์ข…๋ฅ˜  ๋“ฑ :  FIFO,  OPT,  LRU,  LFU,  NUR,  SCR 
OPT - Optimal: ์•ž์œผ๋กœ ๊ฐ€์žฅ ์˜ค๋žซ๋™์•ˆ ์‚ฌ์šฉ๋˜์ง€ ์•Š์„ ํŽ˜์ด์ง€ ๊ต์ฒด
FIFO - First In First Out: ๊ฐ€์žฅ ๋จผ์ € ๋“ค์–ด์˜จ ํŽ˜์ด์ง€๋ฅผ ๊ต์ฒด
LRU - Least Recently Used: ๊ฐ€์žฅ ์˜ค๋žซ๋™์•ˆ ์‚ฌ์šฉ๋˜์ง€ ์•Š์€ ํŽ˜์ด์ง€๋ฅผ ๊ต์ฒด
LFU - Least Frequently Used: ์ฐธ์กฐ ํšŸ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ์ ์€ ํŽ˜์ด์ง€ ๊ต์ฒด
MFU - Most Frequently Used: ์ฐธ์กฐ ํšŸ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ๋งŽ์€ ํŽ˜์ด์ง€ ๊ต์ฒด
NUR - Not Used Recently: ์ตœ๊ทผ์— ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ํŽ˜์ด์ง€ ๊ต์ฒด
SCR - Second Chance Replacement: FIFO์—์„œ ํ•œ ๋ฒˆ ๋” ๊ธฐํšŒ๋ฅผ ์ฃผ๊ณ  ๊ต์ฒด

 

2.  ๋‹จํŽธํ™” ๐Ÿงฎ

โ‘ด  ๋‹จํŽธํ™”์˜  ๊ฐœ๋…

๏‚Ÿ ์ฃผ๊ธฐ์–ต์žฅ์น˜์—  ํ”„๋กœ๊ทธ๋žจ์„  ํ• ๋‹นํ•˜๊ณ   ๋ฐ˜๋‚ฉํ•˜๋Š”  ๊ณผ์ •์—์„œ  ๋ฐœ์ƒํ•˜๋Š”  ์‚ฌ์šฉ๋˜์ง€  ์•Š๋Š”  ์ž‘์€  ์กฐ๊ฐ  ๊ณต๊ฐ„

โ‘ต  ๋‹จํŽธํ™”์˜  ์ข…๋ฅ˜

๏‚Ÿ ๋‚ด๋ถ€  ๋‹จํŽธํ™” : ๊ณต๊ฐ„์„  ํ• ๋‹น  ํ›„  ์‚ฌ์šฉ๋˜์ง€  ์•Š๊ณ   ๋‚จ์•„์žˆ๋Š”  ๊ณต๊ฐ„ 
๏‚Ÿ ์™ธ๋ถ€  ๋‹จํŽธํ™” : ํ”„๋กœ๊ทธ๋žจ์ด  ํ• ๋‹น๋   ์ˆ˜  ์—†์–ด  ์‚ฌ์šฉ๋˜์ง€  ์•Š๊ณ   ๋‚จ์•„์žˆ๋Š”  ๊ณต๊ฐ„

โ‘ถ  ๋‹จํŽธํ™”  ํ•ด๊ฒฐ  ๋ฐฉ๋ฒ•

๏‚Ÿ ํ†ตํ•ฉ(Coalescing)  :  ์ธ์ ‘ํ•ด  ์žˆ๋Š”  ๊ณต๊ฐ„์„  ํ•˜๋‚˜๋กœ  ํ†ตํ•ฉ 
๏‚Ÿ ์••์ถ•(Compaction)  : ์ฃผ๊ธฐ์–ต์žฅ์น˜  ๋‚ด  ๋ถ„์‚ฐ๋˜์–ด  ์žˆ๋Š”  ๋‹จํŽธํ™”  ๊ณต๊ฐ„๋“ค์„  ํ†ตํ•ฉ   
๏‚Ÿ ์žฌ๋ฐฐ์น˜(Relocation)  :   ํ”„๋กœ๊ทธ๋žจ์˜  ์ฃผ์†Œ๋ฅผ  ์ƒˆ๋กญ๊ฒŒ  ์ง€์ •ํ•ด์ฃผ๋Š”  ๊ธฐ๋ฒ• 

 

 

 

Section  3.  ๊ฐ€์ƒ๊ธฐ์–ต์žฅ์น˜

 

1.  ๊ฐ€์ƒ๊ธฐ์–ต์žฅ์น˜

โ‘ด  ๊ฐ€์ƒ๊ธฐ์–ต์žฅ์น˜์˜  ๊ฐœ๋…

๏‚Ÿ ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜ (ํ•˜๋“œ๋””์Šคํฌ) ์˜  ์ผ๋ถ€๋ฅผ  ์ฃผ๊ธฐ์–ต์žฅ์น˜์ฒ˜๋Ÿผ  ์‚ฌ์šฉํ•˜๋Š”  ๊ฒƒ

โ‘ต  ๋ธ”๋ก  ๋ถ„ํ•   ๋ฐฉ๋ฒ• ๐Ÿงฎ

1)  ํŽ˜์ด์ง•(Paging) ๊ธฐ๋ฒ•
๏‚Ÿ ๊ฐ™์€  ํฌ๊ธฐ์˜  ๋ธ”๋ก์œผ๋กœ  ํŽธ์„ฑํ•˜์—ฌ  ์šด์šฉํ•˜๋Š”  ๊ธฐ๋ฒ• (๋‚ด๋ถ€๋‹จํŽธํ™”  ๋ฐœ์ƒ)
๏‚Ÿ ํŽ˜์ด์ง€  ํฌ๊ธฐ๋ณ„  ๋น„๊ต

ํŽ˜์ด์ง€ ํฌ๊ธฐ ๊ธฐ์–ต์žฅ์†Œ ํšจ์œจ ๋‹จํŽธํ™” ์ž…์ถœ๋ ฅ ์‹œ๊ฐ„ ๋งต ํ…Œ์ด๋ธ”
ํด์ˆ˜๋ก ๊ฐ์†Œ ์ฆ๊ฐ€ ๊ฐ์†Œ ๊ฐ์†Œ
์ž‘์„์ˆ˜๋ก ์ฆ๊ฐ€ ๊ฐ์†Œ ์ฆ๊ฐ€ ์ฆ๊ฐ€


2)  ์„ธ๊ทธ๋จผํ…Œ์ด์…˜ ๊ธฐ๋ฒ•(Segmentation)
๏‚Ÿ ์„œ๋กœ  ํฌ๊ธฐ๊ฐ€  ๋‹ค๋ฅธ  ์„ธ๊ทธ๋จผํŠธ๋กœ  ๋ถ„ํ• ํ•˜๊ณ   ๋ฉ”๋ชจ๋ฆฌ๋ฅผ  ํ• ๋‹นํ•˜๋Š”  ๊ธฐ๋ฒ• (์™ธ๋ถ€  ๋‹จํŽธํ™”  ๋ฐœ์ƒ)


2.  ๊ฐ€์ƒ๊ธฐ์–ต์žฅ์น˜  ๊ธฐํƒ€  ๊ด€๋ฆฌ์‚ฌํ•ญ

โ‘ด  ํŽ˜์ด์ง€  ๋ถ€์žฌ

๏‚Ÿ ํ”„๋กœ์„ธ์Šค  ์‹คํ–‰  ์‹œ  ์ฐธ์กฐํ•   ํŽ˜์ด์ง€๊ฐ€  ์ฃผ๊ธฐ์–ต์žฅ์น˜์—  ์—†๋Š”  ํ˜„์ƒ

โ‘ต  ์ง€์—ญ์„ฑ(Locality)

๏‚Ÿ ํ”„๋กœ์„ธ์Šค๊ฐ€  ์‹คํ–‰๋˜๋Š”  ๋™์•ˆ  ์ฃผ๊ธฐ์–ต์žฅ์น˜๋ฅผ  ์ฐธ์กฐํ•   ๋•Œ  ์ผ๋ถ€  ํŽ˜์ด์ง€๋งŒ  ์ง‘์ค‘์ ์œผ๋กœ  ์ฐธ์กฐํ•˜๋Š”  ์„ฑ์งˆ
๏‚Ÿ ์ง€์—ญ์„ฑ์˜  ์ข…๋ฅ˜
1)  ์‹œ๊ฐ„ ๊ตฌ์—ญ์„ฑ(Temporal  Locality)  :  Loop(๋ฐ˜๋ณต),  Stack(์Šคํƒ), ๋ถ€ ํ”„๋กœ๊ทธ๋žจ(Sub  Routine) ๋“ฑ
2)  ๊ณต๊ฐ„  ๊ตฌ์—ญ์„ฑ(Spatial  Locality)  :  ๋ฐฐ์—ด์ˆœํšŒ, ์ˆœ์ฐจ์  ์ฝ”๋“œ ์‹คํ–‰ ๋“ฑ

โ‘ถ  ์›Œํ‚น  ์…‹(Working  Set)

๏‚Ÿ ํ”„๋กœ์„ธ์Šค๊ฐ€  ์ผ์ •  ์‹œ๊ฐ„  ๋™์•ˆ  ์ž์ฃผ  ์ฐธ์กฐํ•˜๋Š”  ํŽ˜์ด์ง€๋“ค์˜  ์ง‘ํ•ฉ

โ‘ท  ์Šค๋ž˜์‹ฑ(Thrashing) โญ

๏‚Ÿ ํ”„๋กœ์„ธ์Šค์˜  ์ฒ˜๋ฆฌ  ์‹œ๊ฐ„๋ณด๋‹ค  ํŽ˜์ด์ง€  ๊ต์ฒด์—  ์†Œ์š”๋˜๋Š”  ์‹œ๊ฐ„์ด  ๋”  ๋งŽ์•„์ง€๋Š”  ํ˜„์ƒ

 

3.  ํŽ˜์ด์ง€  ๊ต์ฒด  ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๐Ÿงฎ

โ‘ด  FIFO(First  In  First  Out)

๏‚Ÿ ๊ฐ€์žฅ  ๋จผ์ €  ๋ฉ”๋ชจ๋ฆฌ์—  ์ ์žฌ๋œ  ํŽ˜์ด์ง€๋ฅผ  ๋จผ์ €  ๊ต์ฒดํ•˜๋Š”  ๊ธฐ๋ฒ•
๏‚Ÿ ํ”„๋ ˆ์ž„  ๊ฐœ์ˆ˜๋ฅผ  ๋Š˜๋ฆฌ๋ฉด  ๋ถ€์žฌ  ๋ฐœ์ƒ์ด  ๊ฐ์†Œํ•ด์•ผ ํ•˜๋‚˜, ์˜คํžˆ๋ ค  ๋”  ๋Š˜์–ด๋‚˜๋Š” Belady's  Anomaly  ์ด์ƒ  ํ˜„์ƒ  ๋ฐœ์ƒ

โ‘ต  OPT(Optimal  replacement, ์ตœ์   ๊ต์ฒด ) 

๏‚Ÿ ์•ž์œผ๋กœ  ๊ฐ€์žฅ  ์‚ฌ์šฉ๋˜์ง€  ์•Š์„  ํŽ˜์ด์ง€๋ฅผ  ๊ต์ฒด

โ‘ถ  LRU(Least  Recently  Used)

๏‚Ÿ ์ตœ๊ทผ์—  ๊ฐ€์žฅ  ์˜ค๋žซ๋™์•ˆ  ์‚ฌ์šฉ๋˜์ง€  ์•Š์€  ํŽ˜์ด์ง€๋ฅผ  ๊ต์ฒด

โ‘ท  LFU(Least  Frequently  Used)

๏‚Ÿ ์‚ฌ์šฉ  ๋นˆ๋„๊ฐ€  ๊ฐ€์žฅ  ์ ์€  ํŽ˜์ด์ง€๋ฅผ  ๊ต์ฒด

โ‘ธ  NUR(Not  Used  Recently)

๏‚Ÿ ์ฐธ์กฐ๋น„ํŠธ์™€  ๋ณ€ํ˜•๋น„ํŠธ๋ฅผ  ์ด์šฉํ•ด์„œ  ํŽ˜์ด์ง€  ๊ต์ฒด

โ‘น  SCR(Second  Chance  Replacement)

๏‚Ÿ FIFO  ๊ธฐ๋ฒ•์˜  ๋‹จ์ ์„  ๋ณด์™„ํ•˜๋Š”  ๊ธฐ๋ฒ•

 

 

 

Section  4.  ํ”„๋กœ์„ธ์Šค

 

1.  ํ”„๋กœ์„ธ์Šค

โ‘ด  ํ”„๋กœ์„ธ์Šค์˜  ๊ฐœ๋…

๏‚Ÿ ์ปดํ“จํ„ฐ์—์„œ  ์—ฐ์†์ ์œผ๋กœ  ์‹คํ–‰๋˜๊ณ   ์žˆ๋Š”  ์ปดํ“จํ„ฐ  ํ”„๋กœ๊ทธ๋žจ

โ‘ต  ์Šค๋ ˆ๋“œ(Thread)

1)  ์Šค๋ ˆ๋“œ์˜  ๊ฐœ๋…

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

2)  ์Šค๋ ˆ๋“œ์˜  ๋ถ„๋ฅ˜

๏‚Ÿ ์‚ฌ์šฉ์ž  ์ˆ˜์ค€์˜  ์Šค๋ ˆ๋“œ
๏‚Ÿ ์ปค๋„  ์ˆ˜์ค€์˜  ์Šค๋ ˆ๋“œ

โ‘ถ  ๋ฉ”๋ชจ๋ฆฌ์ƒ์˜  ํ”„๋กœ์„ธ์Šค  ์˜์—ญ

๏‚Ÿ ์ฝ”๋“œ  ์˜์—ญ : ํ”„๋กœ๊ทธ๋žจ  ์ฝ”๋“œ  ์ €์žฅ
๏‚Ÿ ๋ฐ์ดํ„ฐ  ์˜์—ญ : ์ „์—ญ  ๋ณ€์ˆ˜, ์ •์   ๋ณ€์ˆ˜
๏‚Ÿ ์Šคํƒ  ์˜์—ญ : ์ง€์—ญ  ๋ณ€์ˆ˜
๏‚Ÿ ํž™  ์˜์—ญ : ๋™์ ํ• ๋‹น

โ‘ท  ํ”„๋กœ์„ธ์Šค  ์ƒํƒœ  ์ „์ด (์ƒ์ค€์‹ค๋Œ€์™„) โญ0๏ธโƒฃ

 

job scheduler / ์ค€๋น„ : ํ”„๋กœ์„ธ์Šค๊ฐ€ CPU๋ฅผ ํ• ๋‹น๋ฐ›๊ธฐ ์œ„ํ•ด ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ƒํƒœ Dispatch. cpu scheduler / ์‹คํ–‰: ์ค€๋น„์ƒํƒœ์— ์žˆ๋˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ CPU๋ฅผ ํ• ๋‹น๋ฐ›์•„ ์‹คํ–‰๋˜๋Š” ์ƒํƒœ. I/O ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋ฉด ํ”„๋กœ์„ธ์Šค๋Š” ๋Œ€๊ธฐ ์ƒํƒœ๋กœ ์ „์ด / ๋Œ€๊ธฐ : IO ์ฒ˜๋ฆฌ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ๋‹ค์‹œ ์ค€๋น„์ƒํƒœ๋กœ ์ „์ด Wake Up / Spooling :๋ฉ€ํ‹ฐํƒœ์Šคํ‚น ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ์œ„ํ•ด์„œ ์ž…/์ถœ๋ ฅํ•  ๋ฐ์ดํ„ฐ๋ฅผ ์ง์ ‘ ์ž…/์ถœ๋ ฅ ์žฅ์น˜์— ๋ณด๋‚ด์ง€ ์•Š๊ณ , ๋ชจ์•„๋’€๋‹ค๊ฐ€ ํ•œ๊บผ๋ฒˆ์— ์ž…/์ถœ๋ ฅํ•˜๊ธฐ ์œ„ํ•ด ๋””์Šคํฌ์— ์ €์žฅํ•ด๋†“๋Š” ๊ณผ์ •


โ‘ธ  PCB(Process  Control  Block, ํ”„๋กœ์„ธ์Šค  ์ œ์–ด  ๋ธ”๋ก) 

๏‚Ÿ ์šด์˜์ฒด์ œ๊ฐ€  ํ”„๋กœ์„ธ์Šค์—  ๋Œ€ํ•œ  ์ •๋ณด๋ฅผ  ์ €์žฅํ•ด  ๋†“๋Š”  ๊ณต๊ฐ„

โ‘น  ๋ฌธ๋งฅ  ๊ตํ™˜(Context  Switching) 

๏‚Ÿ ์ด์ „์˜  ํ”„๋กœ์„ธ์Šค์˜  ์ƒํƒœ๋ฅผ  ๋ณด๊ด€ํ•˜๊ณ   ๋˜  ๋‹ค๋ฅธ  ํ”„๋กœ์„ธ์Šค๋ฅผ  ๋ ˆ์ง€์Šคํ„ฐ์—  ์ ์žฌํ•˜๋Š”  ๊ณผ์ •

 

2.  ํ”„๋กœ์„ธ์Šค  ์Šค์ผ€์ค„๋ง 1๏ธโƒฃ

โ‘ด  ์Šค์ผ€์ค„๋ง์˜  ๋ชฉ์ 

๏‚Ÿ ๊ณตํ‰์„ฑ, ํšจ์œจ์„ฑ, ์•ˆ์ •์„ฑ, ๋ฐ˜์‘ ์‹œ๊ฐ„ ๋ณด์žฅ, ๋ฌดํ•œ ์—ฐ๊ธฐ ๋ฐฉ์ง€

โ‘ต  ์Šค์ผ€์ค„๋ง  ๊ธฐ๋ฒ•

1)  ์„ ์ ํ˜•  ์Šค์ผ€์ค„๋ง (Preemptive) 
๏‚Ÿ ๋‹ค๋ฅธ  ํ”„๋กœ์„ธ์Šค๊ฐ€  ์‹คํ–‰  ์ค‘์ด๋”๋ผ๋„  ์šด์˜์ฒด์ œ๊ฐ€  CPU๋ฅผ  ๊ฐ•์ œ๋กœ  ๋บ์„  ์ˆ˜  ์žˆ๋Š”  ๋ฐฉ์‹
๏‚Ÿ ๋ผ์šด๋“œ ๋กœ๋นˆ(Round Robin) : ๊ฐ™์€ ํฌ๊ธฐ์˜ CPU ํ• ๋‹น
๏‚Ÿ SRT(Shortest Remaining Time First) : ๊ฐ€์žฅ ์งง์€ ์‹œ๊ฐ„์ด ์†Œ์š”๋˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ๋จผ์ € ์ˆ˜ํ–‰ํ•˜๊ณ , ๋‚จ์€ ์ฒ˜๋ฆฌ์‹œ๊ฐ„์ด ๋” ์งง๋‹ค๊ณ  ํŒ๋‹จ๋˜๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ค€๋น„ ํ์— ์ƒ๊ธฐ๋ฉด ์–ธ์ œ๋ผ๋„ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์„ ์ ๋จ
๏‚Ÿ ๋‹ค๋‹จ๊ณ„ ํ(Multi Level Queue) : ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ๋ฅผ ์ด์šฉํ•˜์—ฌ ์ƒ์œ„๋‹จ๊ณ„ ์ž‘์—…์— ์˜ํ•œ ํ•˜์œ„๋‹จ๊ณ„ ์ž‘์—…์ด ์„ ์ 
๏‚Ÿ ๋‹ค๋‹จ๊ณ„ ํ”ผ๋“œ๋ฐฑ ํ(MLFQ, Multi Level Feedback Queue): ํ๋งˆ๋‹ค ์„œ๋กœ ๋‹ค๋ฅธ CPU์‹œ๊ฐ„ ํ• ๋‹น๋Ÿ‰์„ ๋ถ€์—ฌ, FIFO+๋ผ์šด๋“œ ๋กœ๋นˆ ์Šค์ผ€์ค„๋ง ๊ธฐ๋ฒ• ํ˜ผํ•ฉ

2)  ๋น„์„ ์ ํ˜•  ์Šค์ผ€์ค„๋ง (Non-Preemptive) 
๏‚Ÿ ํ”„๋กœ์„ธ์Šค๊ฐ€  CPU๋ฅผ  ์ ์œ ํ•˜๊ณ   ์žˆ๋‹ค๋ฉด  ์ด๋ฅผ  ๋นผ์•—์„  ์ˆ˜  ์—†๋Š”  ๋ฐฉ์‹
๏‚Ÿ ์ข…๋ฅ˜ : FCFS,  SJF,  HRN, ์šฐ์„ ์ˆœ์œ„, ๊ธฐํ•œ๋ถ€ ๋“ฑ
์šฐ์„ ์ˆœ์œ„(Priority): ํ”„๋กœ์„ธ์Šค๋ณ„ ์šฐ์„ ์ˆœ์œ„์— ๋”ฐ๋ผ CPUํ• ๋‹น / ์šฐ์„ ์ˆœ์œ„ = (๋Œ€๊ธฐ์‹œ๊ฐ„+ ์„œ๋น„์Šค์‹œ๊ฐ„) / ์„œ๋น„์Šค์‹œ๊ฐ„
๊ธฐํ•œ๋ถ€(Deadline) : ์ž‘์—…๋“ค์ด ๋ช…์‹œ๋œ ๊ธฐํ•œ ๋‚ด์— ์™„๋ฃŒ๋˜๋„๋ก ๊ณ„ํš
FCFS(=FIFO) : ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋Œ€๊ธฐ ํ์— ๋„์ฐฉํ•œ ์ˆœ์„œ์— ๋”ฐ๋ผ CPU ํ• ๋‹น
SJF(Short Job First) : ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋„์ฐฉํ•˜๋Š” ์‹œ์ ์— ๋”ฐ๋ผ ๊ทธ ๋‹น์‹œ ๊ฐ€์žฅ ์ž‘์€ ์„œ๋น„์Šค ์‹œ๊ฐ„์„ ๊ฐ–๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ ์‹œ๊นŒ์ง€ ์ž์› ์ ์œ , ๊ธฐ์•„ ํ˜„์ƒ ๋ฐœ์ƒ
HRN(Highest Response Ratio Next) : ๋Œ€๊ธฐ ์ค‘์ธ ํ”„๋กœ์„ธ์Šค ์ค‘ ํ˜„์žฌ ์‘๋‹ต๋ฅ ์ด ๊ฐ€์žฅ ๋†’์€ ๊ฒƒ์„ ์„ ํƒ, ๊ธฐ์•„ํ˜„์ƒ ์ตœ์†Œํ™” ๊ธฐ๋ฒ•
๋ฐ˜ํ™˜์‹œ๊ฐ„ = ์ข…๋ฃŒ์‹œ๊ฐ„ - ๋„์ฐฉ์‹œ๊ฐ„
๋Œ€๊ธฐ์‹œ๊ฐ„ = ๋ฐ˜ํ™˜์‹œ๊ฐ„ - ์„œ๋น„์Šค ์‹œ๊ฐ„

3)  ๊ธฐ์•„ํ˜„์ƒ๊ณผ  ์—์ด์ง•  ๊ธฐ๋ฒ•
๏‚Ÿ ๊ธฐ์•„ํ˜„์ƒ(Starvation)  :  ์šฐ์„ ์ˆœ์œ„๊ฐ€  ๋‚ฎ์€  ํ”„๋กœ์„ธ์Šค๊ฐ€  ๋ฌดํ•œ์ •  ๊ธฐ๋‹ค๋ฆฌ๋Š”  ํ˜„์ƒ (SJF,  ์šฐ์„ ์ˆœ์œ„,  SRT,  MLQ)
๏‚Ÿ ์—์ด์ง•  ๊ธฐ๋ฒ•(Aging)  :  ๊ธฐ์•„ํ˜„์ƒ์„  ํ•ด๊ฒฐํ•˜๊ธฐ  ์œ„ํ•œ  ๊ธฐ๋ฒ•(HRN,  MLFQ)

 

3.  ์Šค์ผ€์ค„๋ง  ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๐Ÿงฎ 2๏ธโƒฃ

โ‘ด  ์„ ์ ํ˜•  ๊ธฐ๋ฒ•

1)  Round  Robin
๏‚Ÿ ์‹œ๊ฐ„๋‹จ์œ„(Time  Quantum/Slice)๋ฅผ  ์ •ํ•ด์„œ  ํ”„๋กœ์„ธ์Šค๋ฅผ  ์ˆœ์„œ๋Œ€๋กœ  CPU๋ฅผ  ํ• ๋‹นํ•˜๋Š”  ๋ฐฉ์‹ 

2)  SRT(Shortest  Remaining  Time)
๏‚Ÿ CPU  ์ ์œ   ์‹œ๊ฐ„์ด  ๊ฐ€์žฅ  ์งง์€  ํ”„๋กœ์„ธ์Šค์—  CPU๋ฅผ  ๋จผ์ €  ํ• ๋‹นํ•˜๋Š”  ๋ฐฉ์‹

3)  ๋‹ค๋‹จ๊ณ„  ํ (MLQ,  Multi-Level  Queue) 
๏‚Ÿ ๊ทธ๋ฃน์—  ๋”ฐ๋ผ  ๊ฐ๊ธฐ  ๋‹ค๋ฅธ  ์ค€๋น„  ์ƒํƒœ  ํ๋ฅผ  ์‚ฌ์šฉํ•˜๋Š”  ๊ธฐ๋ฒ•

4)  ๋‹ค๋‹จ๊ณ„  ํ”ผ๋“œ๋ฐฑ  ํ (MLFQ,  Multi-Level  Feedback  Queue) 
๏‚Ÿ ํ”„๋กœ์„ธ์Šค  ์ƒ์„ฑ  ์‹œ  ๊ฐ€์žฅ  ๋†’์€  ์šฐ์„ ์ˆœ์œ„  ์ค€๋น„  ํ์—  ๋“ฑ๋ก๋˜๋ฉฐ, ๋“ฑ๋ก๋œ  ํ”„๋กœ์„ธ์Šค๋Š” FCFS์ˆœ์„œ๋กœ CPU๋ฅผ  ํ• ๋‹น๋ฐ›์•„
์‹คํ–‰๋˜๊ณ , ํ• ๋‹น๋œ  ์‹œ๊ฐ„์ด  ๋๋‚˜๋ฉด  ๋‹ค์Œ  ๋‹จ๊ณ„์˜  ์ค€๋น„  ํ๋กœ  ์ด๋™ 

โ‘ต  ๋น„  ์„ ์ ํ˜•  ๊ธฐ๋ฒ•

1)  FCFS(First  Come  First  Serve)
๏‚Ÿ ๋จผ์ €  ๋„์ฐฉํ•œ  ํ”„๋กœ์„ธ์Šค๋ฅผ  ๋จผ์ €  ์ฒ˜๋ฆฌํ•˜๋Š”  ์Šค์ผ€์ค„๋ง  ์•Œ๊ณ ๋ฆฌ์ฆ˜

2)  SJF(Shortest  Job  First)
๏‚Ÿ ์‹คํ–‰์‹œ๊ฐ„์ด  ๊ฐ€์žฅ  ์งง์€  ํ”„๋กœ์„ธ์Šค์—๊ฒŒ  CPU๋ฅผ  ํ• ๋‹นํ•˜๋Š”  ๋ฐฉ์‹ 

3)  HRN(Highest  Response  ratio  Next)
๏‚Ÿ SJF  ๊ธฐ๋ฒ•์—์„œ  ๋น„๊ต์   ์‹คํ–‰์‹œ๊ฐ„์ด  ๊ธด  ํ”„๋กœ์„ธ์Šค๊ฐ€  ๊ฐ€์งˆ  ์ˆ˜  ์žˆ๋Š”  ๋ถˆ๋ฆฌํ•จ์„  ๋ณด์™„ํ•œ  ์Šค์ผ€์ค„๋ง  ๋ฐฉ์‹
๏‚Ÿ ์šฐ์„ ์ˆœ์œ„ = (๋Œ€๊ธฐ์‹œ๊ฐ„ + ์‹คํ–‰์‹œ๊ฐ„) / ์‹คํ–‰์‹œ๊ฐ„ (์‹คํ–‰์‹œ๊ฐ„=์„œ๋น„์Šค์‹œ๊ฐ„)

4) ์šฐ์„ ์ˆœ์œ„ (Priority) 
๏‚Ÿ ํ”„๋กœ์„ธ์Šค๋งˆ๋‹ค  ์šฐ์„ ์ˆœ์œ„๋ฅผ  ๋ถ€์—ฌํ•˜์—ฌ  ๋†’์€  ์šฐ์„ ์ˆœ์œ„๋ฅผ  ๊ฐ€์ง„  ํ”„๋กœ์„ธ์Šค์—๊ฒŒ  ๋จผ์ €  ์ž์›์„  ํ• ๋‹น

5) ๊ธฐํ•œ๋ถ€ (Deadline) 
๏‚Ÿ ํ”„๋กœ์„ธ์Šค์—๊ฒŒ  ์ผ์ •ํ•œ  ์‹œ๊ฐ„์„  ์ฃผ์–ด  ๊ทธ  ์‹œ๊ฐ„  ์•ˆ์—  ์™„๋ฃŒํ•˜๋„๋ก  ํ•˜๋Š”  ๊ธฐ๋ฒ•

 

 

Section  5.  ๋ณ‘ํ–‰  ํ”„๋กœ์„ธ์Šค์™€  ๊ต์ฐฉ์ƒํƒœ

1.  ๋ณ‘ํ–‰  ํ”„๋กœ์„ธ์Šค

โ‘ด  ๋ณ‘ํ–‰  ํ”„๋กœ์„ธ์Šค์˜  ๊ฐœ๋…

๏‚Ÿ ๋‘  ๊ฐœ  ์ด์ƒ์˜  ํ”„๋กœ์„ธ์Šค๋“ค์ด  ๋™์‹œ์—  ์กด์žฌํ•˜๋ฉฐ  ์‹คํ–‰์ƒํƒœ์—  ์žˆ๋Š”  ๊ฒƒ

โ‘ต  ๋ฌธ์ œ์ ๊ณผ  ํ•ด๊ฒฐ์ฑ…

1)  ๋ฌธ์ œ์ 
๏‚Ÿ ๋™์‹œ์— 2๊ฐœ ์ด์ƒ์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ณ‘ํ–‰ ์ฒ˜๋ฆฌํ•˜๋ฉด ํ•œ์ •๋œ ์ž์›(CPU, ๋ฉ”๋ชจ๋ฆฌ, ๋””์Šคํฌ, I/O ์žฅ์น˜ ๋“ฑ)์— ๋Œ€ํ•œ ์‚ฌ์šฉ ์ˆœ์„œ ๋“ฑ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒ

2)  ๋ฌธ์ œ  ํ•ด๊ฒฐ์ฑ…
๏‚Ÿ ์ž„๊ณ„๊ตฌ์—ญ, ์ƒํ˜ธ๋ฐฐ์ œ ๊ธฐ๋ฒ•, ๋™๊ธฐํ™” ๊ธฐ๋ฒ•

 

2.  ๋ณ‘ํ–‰  ํ”„๋กœ์„ธ์Šค  ๋ฌธ์ œ  ํ•ด๊ฒฐ์ฑ…

โ‘ด  ์ž„๊ณ„๊ตฌ์—ญ(Critical  Section) 

๏‚Ÿ ๊ณต์œ   ์ž์›์—  ๋Œ€ํ•ด์„œ  ํ•œ  ์ˆœ๊ฐ„์—๋Š”  ๋ฐ˜๋“œ์‹œ  ํ•˜๋‚˜์˜  ํ”„๋กœ์„ธ์Šค๋งŒ  ์‚ฌ์šฉ๋˜๋„๋ก  ์ง€์ •ํ•œ  ์˜์—ญ

โ‘ต  ์ƒํ˜ธ  ๋ฐฐ์ œ(Mutual  Exclusion)

๏‚Ÿ ํ•˜๋‚˜์˜  ํ”„๋กœ์„ธ์Šค๊ฐ€  ๊ณต์œ   ๋ฉ”๋ชจ๋ฆฌ  ํ˜น์€  ๊ณต์œ   ํŒŒ์ผ์„  ์‚ฌ์šฉํ•˜๊ณ   ์žˆ์„  ๋•Œ  ๋‹ค๋ฅธ  ํ”„๋กœ์„ธ์Šค๋“ค์ด  ์‚ฌ์šฉํ•˜์ง€  ๋ชปํ•˜๋„๋ก 
๋ฐฐ์ œ์‹œํ‚ค๋Š”  ์ œ์–ด  ๊ธฐ๋ฒ•
๏‚Ÿ ์ƒํ˜ธ  ๋ฐฐ์ œ  ๊ธฐ๋ฒ•
โ‘   ๋ฐ์ปค์˜  ์•Œ๊ณ ๋ฆฌ์ฆ˜(Dekker's  Algorithm)
โ‘ก  ํ”ผํ„ฐ์Šจ์˜  ์•Œ๊ณ ๋ฆฌ์ฆ˜(Peterson's  Algorithm)
โ‘ข  ๋‹ค์ต์ŠคํŠธ๋ผ  ์•Œ๊ณ ๋ฆฌ์ฆ˜(Dijkstra  Algorithm)
โ‘ฃ  ๋žจํฌํŠธ์˜  ๋ฒ ์–ด์ปค๋ฆฌ  ์•Œ๊ณ ๋ฆฌ์ฆ˜(Lamport's  Bakery  Algorithm)

โ‘ถ  ๋™๊ธฐํ™”  ๊ธฐ๋ฒ•

๏‚Ÿ ์Šค๋ ˆ๋“œ๋“ค์—๊ฒŒ  ํ•˜๋‚˜์˜  ์ž์›์—  ๋Œ€ํ•œ  ์ฒ˜๋ฆฌ  ๊ถŒํ•œ์„  ์ฃผ๊ฑฐ๋‚˜  ์ˆœ์„œ๋ฅผ  ์กฐ์ •ํ•ด์ฃผ๋Š”  ๊ธฐ๋ฒ•
๏‚Ÿ ์„ธ๋งˆํฌ์–ด (Semaphore),  ๋ชจ๋‹ˆํ„ฐ (Monitor)

 

3.  ๊ต์ฐฉ์ƒํƒœ(Dead  Lock) 

โ‘ด  ๊ต์ฐฉ์ƒํƒœ์˜  ๊ฐœ๋… โญ

๏‚Ÿ ์ƒํ˜ธ  ๋ฐฐ์ œ์—  ์˜ํ•ด  ๋‚˜ํƒ€๋‚˜๋Š”  ๋ฌธ์ œ์ ์œผ๋กœ, ๋‘˜  ์ด์ƒ์˜  ํ”„๋กœ์„ธ์Šค๋“ค์ด  ์ž์›์„  ์ ์œ ํ•œ  ์ƒํƒœ์—์„œ  ์„œ๋กœ  ๋‹ค๋ฅธ  ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ ์œ ํ•˜๊ณ   ์žˆ๋Š”  ์ž์›์„  ์š”๊ตฌํ•˜๋ฉฐ  ๋ฌดํ•œ์ •  ๊ธฐ๋‹ค๋ฆฌ๋Š”  ํ˜„์ƒ

โ‘ต  ๊ต์ฐฉ์ƒํƒœ  ๋ฐœ์ƒ  ์กฐ๊ฑด(4๊ฐœ ๋ชจ๋‘ ๋งŒ์กฑํ•ด์•ผ ํ•จ, ์ƒ์ ๋น„ํ™˜) โญ

๏‚Ÿ ์ƒํ˜ธ๋ฐฐ์ œ (Mutual  Exclusion)   ๊ณต์œ   ์ž์›์€  ํ•˜๋‚˜์˜  ํ”„๋กœ์„ธ์Šค๋งŒ์ด  ์‚ฌ์šฉ ๊ฐ€๋Šฅ
๏‚Ÿ ์ ์œ ์™€  ๋Œ€๊ธฐ (Hold  &  Wait)  : ์ž์›์„  ์ ์œ   ํ•˜๋ฉด์„œ  ๋‹ค๋ฅธ  ํ”„๋กœ์„ธ์Šค์˜  ์ž์›์„  ์ถ”๊ฐ€๋กœ  ์š”๊ตฌํ•˜๋ฉฐ  ๋Œ€๊ธฐ
๏‚Ÿ ๋น„์„ ์ (Nonpreemption)  :  ๊ฐ•์ œ๋กœ  ๋นผ์•—์„  ์ˆ˜  ์—†์Œ 
๏‚Ÿ ํ™˜ํ˜•๋Œ€๊ธฐ(Circular  Wait)  :  ๊ฐ  ํ”„๋กœ์„ธ์Šค๊ฐ€  ์ˆœ์ฐจ์ ์œผ๋กœ  ๋‹ค์Œ  ํ”„๋กœ์„ธ์Šค๊ฐ€  ์š”๊ตฌํ•˜๊ณ   ์žˆ๋Š” ์ง€์›์„  ๊ฐ€์ง€๊ณ   ์žˆ๋Š”  ์ƒํƒœ, ํ”„๋กœ์„ธ์Šค์˜ ์ง‘ํ•ฉ์—์„œ ์ˆœํ™˜ํ˜•ํƒœ๋กœ ์ž์›์„ ๋Œ€๊ธฐ

โ‘ถ  ๊ต์ฐฉ์ƒํƒœ  ํ•ด๊ฒฐ  ๋ฐฉ๋ฒ•

๏‚Ÿ ์˜ˆ๋ฐฉ  ๊ธฐ๋ฒ•(Prevention) (๊ต์ฐฉ์ƒํƒœ ๋ฐœ์ƒ ์กฐ๊ฑด ๋ถ€์ •)
๏‚Ÿ ํšŒํ”ผ  ๊ธฐ๋ฒ• (Avoidance)  : ์€ํ–‰์›  ์•Œ๊ณ ๋ฆฌ์ฆ˜  ์‚ฌ์šฉ (ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž์›์„ ์š”๊ตฌํ•  ๋•Œ ์‹œ์Šคํ…œ์€ ์ž์›์„ ํ• ๋‹นํ•œ ํ›„์—๋„ ์•ˆ์ • ์ƒํƒœ๋กœ ๋‚จ์•„์žˆ๊ฒŒ ๋˜๋Š”์ง€ ๋ฏธ๋ฆฌ ๊ฒ€์‚ฌํ•˜์—ฌ ๊ต์ฐฉ ์ƒํƒœ๋ฅผ ํšŒํ”ผํ•œ๋‹ค. ์•ˆ์ • ์ƒํƒœ์ธ ๊ฒฝ์šฐ๋งŒ ์ž์›์„ ํ• ๋‹นํ•˜๊ณ  ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋“ค์˜ ์ž์› ํ•ด์ง€์‹œ ๊นŒ์ง€ ๋Œ€๊ธฐ)
๏‚Ÿ ๋ฐœ๊ฒฌ  ๊ธฐ๋ฒ•(Detection)
๏‚Ÿ ํšŒ๋ณต  ๊ธฐ๋ฒ•(Recovery)

 

 

 

Section  6. ๋””์Šคํฌ  ์Šค์ผ€์ค„๋ง (Disk  Scheduling) 

1.  ๋””์Šคํฌ  ์Šค์ผ€์ค„๋ง (๋””์Šคํฌ์—์„œ ๋ฐ์ดํ„ฐ ์ฐพ๊ธฐ ์ˆœ์„œ)

โ‘ด  ๋””์Šคํฌ  ์Šค์ผ€์ค„๋ง  ์ข…๋ฅ˜ โญ๐Ÿงฎ

1)  FCFS ์Šค์ผ€์ค„๋ง (First  Come  First  Service) 
๏‚Ÿ ์š”์ฒญ์ด  ๋“ค์–ด์˜จ  ์ˆœ์„œ๋Œ€๋กœ  ์ฒ˜๋ฆฌ

2)  SSTF (Shortest  Seek  Time  First)
๏‚Ÿ ํ˜„์žฌ  ํ—ค๋“œ์—์„œ  ๊ฐ€์žฅ  ๊ฐ€๊นŒ์šด  ํŠธ๋ž™์˜  ์š”์ฒญ์„  ๋จผ์ €  ์ฒ˜๋ฆฌํ•œ๋‹ค.

3)  SCAN
๏‚Ÿ ํ—ค๋“œ์˜  ์ง„ํ–‰๋ฐฉํ–ฅ์—  ์žˆ๋Š”  ์š”์ฒญ์„  ์ฒ˜๋ฆฌํ•˜๊ณ ,  ๋‹ค์‹œ  ๋ฐ˜๋Œ€๋ฐฉํ–ฅ์œผ๋กœ  ํ‹€์–ด  ๋ฐ˜๋Œ€๋ฐฉํ–ฅ์—  ์žˆ๋Š”  ์š”์ฒญ๋“ค์„  ์ฒ˜๋ฆฌํ•œ๋‹ค.

4)  C-SCAN
๏‚Ÿ ํ•ญ์ƒ  ํ•œ์ชฝ  ๋ฐฉํ–ฅ์—์„œ  ๋ฐ˜๋Œ€๋ฐฉํ–ฅ์œผ๋กœ  ์ง„ํ–‰ํ•˜๋ฉฐ  ํŠธ๋ž™์˜  ์š”์ฒญ์„  ์ฒ˜๋ฆฌํ•œ๋‹ค.

5)  LOOK
๏‚Ÿ SCAN ๊ธฐ๋ฒ•์„  ๊ธฐ์ดˆ๋กœ  ์‚ฌ์šฉํ•˜๋ฉฐ, ์ง„ํ–‰  ๋ฐฉํ–ฅ์˜  ๋งˆ์ง€๋ง‰  ์š”์ฒญ์„  ์ฒ˜๋ฆฌํ•œ  ํ›„  ๋ฐ˜๋Œ€๋ฐฉํ–ฅ์œผ๋กœ  ์ฒ˜๋ฆฌํ•˜๋Š”  ๊ธฐ๋ฒ•

6)  C-LOOK
๏‚Ÿ C-SCAN ๊ธฐ๋ฒ•์„  ๊ธฐ์ดˆ๋กœ  ์‚ฌ์šฉํ•˜๋ฉฐ, ์ง„ํ–‰  ๋ฐฉํ–ฅ์˜  ๋งˆ์ง€๋ง‰  ์š”์ฒญ์„  ์ฒ˜๋ฆฌํ•œ  ํ›„  ๋ฐ˜๋Œ€๋ฐฉํ–ฅ์œผ๋กœ  ์ฒ˜๋ฆฌํ•˜๋Š”  ๊ธฐ๋ฒ•

7)  N-STEP  SCAN
๏‚Ÿ SCAN  ๊ธฐ๋ฒ•์„  ๊ธฐ์ดˆ ์ฒ˜๋ฆฌํ•˜๋Š”  ๊ณผ์ •  ์ค‘์—  ์š”์ฒญ์ด  ๋“ค์–ด์˜ค๋ฉด  ๋ฐ˜๋Œ€  ๋ฐฉํ–ฅ์œผ๋กœ  ์ง„ํ–‰ํ•   ๋•Œ  ์„œ๋น„์Šค

8) ์—์…˜๋ฐ”ํ (Eschenbach) ๊ธฐ๋ฒ• 
๏‚Ÿ ๋ถ€ํ•˜๊ฐ€  ๋งค์šฐ  ํฐ  ํ•ญ๊ณต  ์˜ˆ์•ฝ  ์‹œ์Šคํ…œ์„  ์œ„ํ•ด  ๊ฐœ๋ฐœ

 

 

Section  7.  ํ™˜๊ฒฝ๋ณ€์ˆ˜์™€  ๋กœ๊ทธ  ํŒŒ์ผ

 

1.  ํ™˜๊ฒฝ๋ณ€์ˆ˜

โ‘ด  ํ™˜๊ฒฝ๋ณ€์ˆ˜์˜  ๊ฐœ๋…

๏‚Ÿ ํ”„๋กœ์„ธ์Šค๊ฐ€  ์ปดํ“จํ„ฐ์—์„œ  ๋™์ž‘ํ•˜๋Š”  ๋ฐฉ์‹์—  ์˜ํ–ฅ์„  ๋ฏธ์น˜๋Š”  ๋™์ ์ธ  ๊ฐ’๋“ค์˜  ๋ชจ์ž„

โ‘ต  UNIX/Linux  ํ™˜๊ฒฝ๋ณ€์ˆ˜

๏‚Ÿ env,  set,  printenv ๋ช…๋ น์–ด๋“ค์„  ์‚ฌ์šฉํ•˜์—ฌ  ํ™˜๊ฒฝ๋ณ€์ˆ˜์™€  ๊ทธ์—  ๋”ฐ๋ฅธ  ๋ชจ๋“   ๊ฐ’์„  ๋ณผ  ์ˆ˜  ์žˆ๋‹ค.
๏‚Ÿ export ๋ช…๋ น์„  ์ด์šฉํ•˜์—ฌ  ์‚ฌ์šฉ์ž  ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ  ์ „์—ญ๋ณ€์ˆ˜๋กœ  ์„ค์ •ํ•   ์ˆ˜  ์žˆ๋‹ค.

โ‘ถ  Windows  ํ™˜๊ฒฝ๋ณ€์ˆ˜

๏‚Ÿ ์ œ์–ดํŒ  > ์‹œ์Šคํ…œ  ๋ฐ  ๋ณด์•ˆ > ์‹œ์Šคํ…œ > ๊ณ ๊ธ‰  ์‹œ์Šคํ…œ  ์„ค์ • > ํ™˜๊ฒฝ๋ณ€์ˆ˜  ์กด์žฌ
๏‚Ÿ ์ปค๋งจ๋“œ  ์ฐฝ์—์„œ set ๋ช…๋ น์œผ๋กœ  ํ™•์ธ 

 

2.  ๋กœ๊ทธ  ํŒŒ์ผ

โ‘ด  ๋กœ๊ทธ์˜  ๊ฐœ๋…

๏‚Ÿ ์‹œ์Šคํ…œ์˜  ๋ชจ๋“   ๊ธฐ๋ก์„  ๋‹ด๊ณ   ์žˆ๋Š”  ๋ฐ์ดํ„ฐ

โ‘ต  ๋ฆฌ๋ˆ…์Šค  ๋กœ๊ทธ  ์ข…๋ฅ˜

์ข…๋ฅ˜ ์„ค๋ช…
messages  ์‹œ์Šคํ…œ  ๋กœ๊ทธ  ํŒŒ์ผ 
secure  ๋ณด์•ˆ์ธ์ฆ์—  ๊ด€ํ•œ  ๋ฉ”์‹œ์ง€  ๋กœ๊ทธํŒŒ์ผ
maillog  ๋ฉ”์ผ  ๋กœ๊ทธ  ํŒŒ์ผ 
xferlog  ftp ๋กœ๊ทธํŒŒ์ผ 
dmesg  ๋ถ€ํŒ…  ์‹œ์˜  ์‹œ์Šคํ…œ  ๋กœ๊ทธ
wtmp  ์‹œ์Šคํ…œ์—  ๋กœ๊ทธ์ธ  ๊ธฐ๋ก์ด  ์ €์žฅ๋˜๋Š”  ํŒŒ์ผ (์ „์ฒด  ๋กœ๊ทธ์ธ  ๊ธฐ๋ก )
utmp  ์‹œ์Šคํ…œ์—  ๋กœ๊ทธ์ธ  ๊ธฐ๋ก์ด  ์ €์žฅ๋˜๋Š”  ํŒŒ์ผ (ํ˜„์žฌ  ๋กœ๊ทธ์ธ  ์‚ฌ์šฉ์ž์—  ๋Œ€ํ•œ  ๊ธฐ๋ก)
btmp  ๋กœ๊ทธ์ธ  ์‹คํŒจ  ์ •๋ณด  ๊ธฐ๋ก
lastlog  ๊ฐ  ๊ณ„์ •๋“ค์˜  ๊ฐ€์žฅ  ์ตœ๊ทผ  ๋กœ๊ทธ์ธ  ๊ธฐ๋ก

 

 


Section  8.  ์Šคํ† ๋ฆฌ์ง€

1.  ์Šคํ† ๋ฆฌ์ง€(Storage) 

โ‘ด  ์Šคํ† ๋ฆฌ์ง€  ์ข…๋ฅ˜

๏‚Ÿ DAS(Direct  Attached  Storage) ๋ฐ์ดํ„ฐ ์„œ๋ฒ„์™€ ์™ธ์žฅํ˜• ์ €์žฅ์žฅ์น˜(์™ธ์žฅํ•˜๋“œ)๋ฅผ ์ „์šฉ ์ผ€์ด๋ธ”๋กœ 1:1 ์ง์ ‘ ์ ‘์†
๏‚Ÿ NAS(Network  Attached  Storage) LAN์„ ํ†ตํ•ด Storage์™€ Server๋ฅผ ์ ‘์† 
๏‚Ÿ SAN(Storage  Area  Network) ์„œ๋ฒ„๊ฐ€ fiber channel switch๋ฅผ ํ†ตํ•˜์—ฌ storage๋ฅผ ์—ฐ๊ฒฐ

โ‘ต  RAID(Redundant  Array  of  Inexpensive  Disks)

1)  RAID  ๊ฐœ๋…

๏‚Ÿ ๋ณต์ˆ˜์˜  ํ•˜๋“œ๋””์Šคํฌ๋ฅผ  ํ•˜๋‚˜์˜  ๋“œ๋ผ์ด๋ธŒ์™€  ๊ฐ™์ด  ์ธ์‹ํ•˜๊ณ   ํ‘œ๊ธฐํ•œ๋‹ค.

2)  RAID  ๊ตฌ์„ฑ

โ‘   ์ŠคํŠธ๋ผ์ดํ•‘(Striping) 
๏‚Ÿ ๋…ผ๋ฆฌ์ ์œผ๋กœ  ์—ฐ์†๋œ  ๋ฐ์ดํ„ฐ๋“ค์ด  ๋ฌผ๋ฆฌ์ ์œผ๋กœ  ์—ฌ๋Ÿฌ  ๊ฐœ์˜  ๋””์Šคํฌ์—  ๋ผ์šด๋“œ  ๋กœ๋นˆ  ๋ฐฉ์‹์œผ๋กœ  ์ €์žฅ๋˜๋Š”  ํ˜•ํƒœ

โ‘ก  ๋ฏธ๋Ÿฌ๋ง(Mirroring) 
๏‚Ÿ ๋ฐ์ดํ„ฐ๋ฅผ  ๊ทธ๋Œ€๋กœ  ๋ณต์ œํ•˜๋Š”  ๊ฒƒ์œผ๋กœ  ์‹ ๋ขฐ์„ฑ  ๋ฐ  ๊ฐ€์šฉ์„ฑ  ํ™•๋ณด๋ฅผ  ์œ„ํ•ด  ์‚ฌ์šฉ๋จ

3)  RAID  ํ˜•ํƒœ 2๏ธโƒฃ

๏‚Ÿ RAID-0  :  ์ŠคํŠธ๋ผ์ดํ•‘
๏‚Ÿ RAID-1  :  ๋ฏธ๋Ÿฌ๋ง
๏‚Ÿ RAID-2  :  ํ•ด๋ฐ์ฝ”๋“œ  ์˜ค๋ฅ˜์ •์ •
๏‚Ÿ RAID-3  :  ํ•˜๋‚˜์˜  ๋””์Šคํฌ๋Š”  ํŒจ๋ฆฌํ‹ฐ  ์ •๋ณด, ๋‚˜๋จธ์ง€๋Š”  ๋ฐ์ดํ„ฐ  ์ €์žฅ
๏‚Ÿ RAID-4  :  RAID-3 ๊ณผ  ๊ฐ™์€  ํ˜•ํƒœ,  ๋ธ”๋ก  ๋‹จ์œ„๋กœ  ๋ถ„์‚ฐ  ์ €์žฅ
๏‚Ÿ RAID-5  :  ๊ฐ๊ฐ์˜  ๋””์Šคํฌ์—  ํŒจ๋ฆฌํ‹ฐ  ์ •๋ณด  ์ €์žฅ
๏‚Ÿ RAID-6  :  ํ•˜๋‚˜์˜  ํŒจ๋ฆฌํ‹ฐ๋ฅผ  ๋‘  ๊ฐœ์˜  ๋””์Šคํฌ์—  ๋ถ„์‚ฐ  ์ €์žฅ

๋ฐ˜์‘ํ˜•
 ๐Ÿ’ฌ C O M M E N T