ํ๋ก๊ทธ๋จ ๋์์์
1. ํ๋ก๊ทธ๋จ์ด ์์๋์ด ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ
2. PC(ํ๋ก๊ทธ๋จ ์นด์ดํฐ)๋ผ๋ ๋ ์ง์คํฐ๊ฐ ํ์ฌ CPU์์ ์ํํ ์ฝ๋์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๊ฐ์ ๊ฐ์ง๊ฒ ๋จ
3. CPU๋ PC๊ฐ ๊ฐ๋ฆฌํค๋ ์ฃผ์์ ๊ธฐ๊ณ์ด ๋ช ๋ น์ ํ๋์ฉ ์ํ
๊ธฐ๊ณ์ด ๋ช ๋ น ์ข ๋ฅ
- cpu๋ด์์ ์ํ๋๋ ๋ช ๋ น (์ : ADD๋ช ๋ น)
- ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ ํ์๋ก ํ๋ ๋ช ๋ น (์ : Load๋ช ๋ น, Store๋ช ๋ น)
- ์ ์ถ๋ ฅ์ ๋๋ฐํ๋ ๋ช ๋ น
1๋ฒ, 2๋ฒ์ ๋น๊ต์ ๋น ๋ฅธ๋ช ๋ น (์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ด ์ง์ cpu๋ฅผ ๊ฐ์ง๊ณ ์ํ) ๐ CPU๋ฒ์คํธ
3๋ฒ์ ์๋์ ์ผ๋ก ๋๋ฆฐ ๋ช ๋ น ๐ I/O ๋ฒ์คํธ
ํ๋ก๊ทธ๋จ๋ค์ CPU๋ฒ์คํธ๊ฐ ๊ธด ๊ฒฝ์ฐ๋ ์๊ณ ์งง์ ๊ฒฝ์ฐ๋ ์๊ณ , I/O๋ฒ์คํธ๊ฐ ๊ธด ๊ฒฝ์ฐ, ์งง์ ๊ฒฝ์ฐ ์๊ณ ๋ค์ํ๋ค.
๋ฐ๋ผ์ CPU ์ค์ผ์ค๋ง์ด ํ์ํจ.
CPU์ค์ผ์ค๋ง์ ๋ ๊ฐ์ง ๋ถ๋ฅ
- ๋น์ ์ ํ ๋ฐฉ์ : CPU๋ฅผ ํ๋ํ ํ๋ก์ธ์ค๊ฐ ์ค์ค๋ก CPU๋ฅผ ๋ฐ๋ฉํ๊ธฐ ์ ๊น์ง๋ CPU๋ฅผ ๋นผ์๊ธฐ์ง ์๋ ๋ฐฉ๋ฒ
- ์ ์ ํ ๋ฐฉ์ : ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ๊ณ์ ์ฌ์ฉํ๊ธฐ๋ฅผ ์ํ๋๋ผ๋ ๊ฐ์ ๋ก ๋นผ์์ ์ ์๋ ์ค์ผ์ค๋ง ๋ฐฉ๋ฒ(๋๋ถ๋ถ ์ด ๋ฐฉ์์ ์ฌ์ฉ)
CPU์ค์ผ์ค๋ง์ ์ฑ๋ฅ ์ฒ๋
- ์์คํ
๊ด์
- CPU์ด์ฉ๋ฅ (CPU utilization) : ์ ์ฒด ์๊ฐ ์ค์์ CPU๊ฐ ์ผ์ ํ ์๊ฐ์ ๋น์จ
- ์ฒ๋ฆฌ๋(throughput) : ์ฃผ์ด์ง ์๊ฐ ๋์ ์ค๋น ํ์์ ๊ธฐ๋ค๋ฆฌ๊ณ ์๋ ํ๋ก์ธ์ค ์ค ๋ช ๊ฐ๋ฅผ ๋๋ง์ณค๋์ง
- ์ฌ์ฉ์ ๊ด์
- ์์์๊ฐ(turnaround time) : ์ค๋นํ์์ ๊ธฐ๋ค๋ฆฐ ์๊ฐ + ์ค์ ๋ก CPU๋ฅผ ์ฌ์ฉํ ์๊ฐ (ํด๋น CPU๋ฒ์คํธ๊ฐ ์๋ฃ๋ ๋๊ฐ์ง ์์๋ ์๊ฐ์ผ๋ก, ํ๋ก๊ทธ๋จ์ด ์์ํด ์ข ๋ฃํ๋ ๋ฐ๊ฐ์ง ๊ฑธ๋ฆฌ๋ ์๊ฐ์ด ์๋!)
- ๋๊ธฐ์๊ฐ(waiting time) : ์ค๋น ํ์์ CPU๋ฅผ ์ป ์ํด ๊ธฐ๋ค๋ฆฐ ์๊ฐ์ ํฉ
- ์๋ต์๊ฐ(response time) : ์ค๋นํ์ ๋ค์ด์จ ํ ์ฒซ ๋ฒ์งธ CPU๋ฅผ ์ป๊ธฐ๊น์ง ๊ธฐ๋ค๋ฆฐ ์๊ฐ
์๋ต์๊ฐ์ ๋ํํ ์์คํ ์ ์ ํฉํ ์ฑ๋ฅ ์ฒ๋. ์ฌ์ฉ์ ์ ์ฅ์์ ๊ฐ์ฅ ์ค์ํ ์ฑ๋ฅ ์ฒ๋.
cpu์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ
- FCFS (First-Come First-Served)
- ๋น ์ ์ ํ ์ค์ผ์ฅด๋ง์ด๋ค.
- โ๋จ์ : ์ฝ๋ณด์ด ํ์
์ฝ๋ณด์ด ํ์ : cpu๋ฒ์คํธ๊ฐ ์งง์ ํ๋ก์ธ์ค๊ฐ cpu ๋ฒ์คํธ๊ฐ ๊ธด ํ๋ก์ธ์ค๋ณด๋ค ๋์ค์ ๋์ฐฉํด ์ค๋ ์๊ฐ์ ๊ธฐ๋ค๋ ค์ผ ํ๋ ํ์
- SJF(Shortest-Job First)
- ๋น์ ์ ํ
- ์ ์ ํ (=SRTF)
- ์ ์ ํ ๋ฐฉ์์ SJF๋ ํ๊ท ๋๊ธฐ์๊ฐ์ ๊ฐ์ฅ ์งง๊ฒ ํ๋ ์ต์ ์๊ณ ๋ฆฌ์ฆ.
- โ ๋จ์ : ๊ธฐ์ํ์
- โ ํ์ค์ ์ผ๋ก ์ด๋ ค์ด ๋ถ๋ถ : CPU๋ฒ์คํธ์ ์๊ฐ์ ๋ฏธ๋ฆฌ ์ ์ ์๋ค๋ ์ ๐ ์์ธก์ ํตํด CPU๋ฒ์คํธ ํ์์ ๊ตฌํจ
๊ธฐ์ํ์ : CPU ๋ฒ์คํธ๊ฐ ๊ธด ํ๋ก์ธ์ค๋ ์ค๋น ํ์ ์ค ์์ ๋ฌดํ์ ๊ธฐ๋ค๋ ค์ผ ํ๋ ๋ฌธ์
- ์ฐ์ ์์ ์ค์ผ์ค๋ง
- ๋น์ ์ ํ
- ์ ์ ํ
- highest priority๋ฅผ ๊ฐ์ง ํ๋ก์ธ์ค์๊ฒ cpu๋ฅผ ํ ๋น
- SJF๋ ์ผ์ข ์ priority scheduling์ด๋ค.
- โ๋จ์ : ๊ธฐ์ํ์
- ๐กํด๊ฒฐ๋ฐฉ๋ฒ : ๋ ธํ(aging) ๊ธฐ๋ฒ : ๊ธฐ๋ค๋ฆฌ๋ ์๊ฐ์ด ๊ธธ์ด์ง๋ฉด ์ฐ์ ์์๋ฅผ ์กฐ๊ธ์ฉ ๋์ฌ, ์ธ์ ๊ฐ๋ ๊ฐ์ฅ ๋์ ์ฐ์ ์์๊ฐ ๋์ด pcu๋ฅผ ํ ๋น ๋ฐ์ ์ ์๊ฒ ํด์ฃผ๋ ๋ฐฉ๋ฒ
- ๋ผ์ด๋ ๋ก๋น ์ค์ผ์ค๋ง
- ๊ฐ ํ๋ก์ธ์ค๋ ๋์ผํ ํฌ๊ธฐ์ ํ ๋น์๊ฐ์ ๊ฐ์ง
- ํ ๋น ์๊ฐ์ด ์ง๋๋ฉด ํ๋ก์ธ์ค๋ ์ ์ ๋นํ๊ณ , ์ค๋นํ์ ์ ์ผ ๋ค์ ๊ฐ์ ๋ค์ ์ค์ ์ ๋ค
- ์๋ต์๊ฐ(cpu๋ฅผ ์ต์ด๋ก ์ป๋ ์๊ฐ)์ด ๋นจ๋ผ์ง๋ค.
- ํ ๋น์๊ฐ์ด ๋๋ฌด ํฌ๋ฉด : FCFS์ ๊ฐ์ ์๊ณ ๋ฆฌ์ฆ์ด ๋จ
- ํ ๋น์๊ฐ์ด ๋๋ฌด ์งง์ผ๋ฉด : ๋ฌธ๋งฅ๊ตํ(context switch)์ ์ค๋ฒํค๋๊ฐ ์ปค์ง
- ๋๊ธฐ์๊ฐ์ด ๋ณธ์ธ์ cpu๋ฅผ ์ฌ์ฉํ๋ ค๋ ์๊ฐ์ด ๋น๋กํ๊ฒ ๋๋ค.
- ๋ฉํฐ๋ ๋ฒจ ํ
- ์ค๋น ํ๋ฅผ ์ฌ๋ฌ๊ฐ๋ก ๋ถํ
- foreground(interactive)
- background(batch - no human interaction)
- ๊ฐ ํ๋ ๋
๋ฆฝ์ ์ธ ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ์ ๊ฐ์ง
- foreground - ๋ผ์ด๋๋ก๋น
- background - FCFS
- ํ์ ๋ํ ์ค์ผ์ค๋ง์ด ํ์
- Fixed priority scheduling
- foreground ํ ์๊ฒ cpu๋ฅผ ๋ค ํ ๋นํ ๋ค์, background ํ ์๊ฒ cpu๋ฅผ ์ฃผ๋ ๋ฐฉ์
- ๊ธฐ์ํ์์ด ๋ฐ์ํ ์ ์
- Time slice
- ๊ฐ ํ์ cpu time์ ์ ์ ํ ๋น์จ๋ก ํ ๋น
- ์) 80%๋ foreground, 20%๋ background
- Fixed priority scheduling
- ์ค๋น ํ๋ฅผ ์ฌ๋ฌ๊ฐ๋ก ๋ถํ
- ๋ฉํฐ๋ ๋ฒจ ํผ๋๋ฐฑ ํ
- ํ๋ก์ธ์ค๊ฐ ๋ค๋ฅธ ํ๋ก ์ด๋ ๊ฐ๋ฅ
- ์์ด์ง(aging)๊ธฐ๋ฒ ํ์ฉ
- ์์
- ๋ค์ค์ฒ๋ฆฌ๊ธฐ ์ค์ผ์ค๋ง
- cpu๊ฐ ์ฌ๋ฌ ๊ฐ์ธ ๊ฒฝ์ฐ ์ค์ผ์ค๋ง์ ๋์ฑ ๋ณต์กํด์ง
- ํ์ ํ ์ค๋ก ์ธ์์ ๊ฐ ํ๋ก์ธ์๊ฐ ์์์ ๊บผ๋ด๊ฐ๊ฒ ํ ์ ์๋ค.
- ๋ฐ๋์ ํน์ ํ๋ก์ธ์์์ ์ํ๋์ด์ผ ํ๋ ํ๋ก์ธ์ค๊ฐ ์๋ ๊ฒฝ์ฐ์๋ ๋ ๋ณต์กํด์ง
- Load sharing
- ์ผ๋ถ ํ๋ก์ธ์์ job์ด ๋ชฐ๋ฆฌ์ง ์๋๋ก ๋ถํ๋ฅผ ์ ์ ํ ๊ณต์ ํ๋ ๋ฉ์ปค๋์ฆ ํ์
- ๋์นญํ ๋ค์ค์ฒ๋ฆฌ : ๊ฐ cpu๊ฐ ๊ฐ์ ์์์ ์ค์ผ์ค๋ง์ ๊ฒฐ์
- ๋น๋์นญํ ๋ค์ค์ฒ๋ฆฌ : ํ๋์ cpu๊ฐ ๋ค๋ฅธ ๋ชจ๋ cpu์ ์ค์ผ์ค๋ง ๋ฐ ๋ฐ์ดํฐ ์ ๊ทผ์ ์ฑ ์์ง๊ณ ๋๋จธ์ง cpu๋ ๊ฑฐ๊ธฐ์ ๋ฐ๋ผ ์์ง์ด๋ ๋ฐฉ์
- ์ค์๊ฐ ์ค์ผ์ค๋ง
- (์๋ถํ ์์คํ ์์๋ ๋ฐ๋๋ผ์ธ์ด ์์ง๋ง) ์ค์๊ฐ ์ค์ผ์ค๋ง์ ๋ฐ๋๋ผ์ธ์ด ์์
- ๊ฒฝ์ฑ ์ค์๊ฐ ์์คํ : ์๊ฐ์ด ์ ํํ ์ง์ผ์ผ ํ๋ ์์คํ
- ์ฐ์ฑ ์ค์๊ฐ ์์คํ : ๋ฐ๋๋ผ์ธ์ด ์กด์ฌํ๊ธฐ๋ ํ์ง๋ง ๋ฐ๋๋ผ์ธ์ ์งํค์ง ๋ชปํ๋ค๊ณ ํด์ ์ํํ ์ํฉ์ด ๋ฐ์ํ์ง ์์
'๐์ปดํจํฐ๊ณผํ:CS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
OSI 7 Layer (0) | 2024.04.17 |
---|---|
[์ด์์ฒด์ ]5์ฅ - ํ๋ก์ธ์ค ๊ด๋ฆฌ (1) | 2024.01.05 |
[์ด์์ฒด์ ]4์ฅ-ํ๋ก๊ทธ๋จ์ ๊ตฌ์กฐ์ ์คํ (0) | 2023.06.20 |
[์ด์์ฒด์ ]3์ฅ-์ปดํจํฐ ์์คํ ์ ๋์ ์๋ฆฌ (0) | 2023.06.20 |
[์ด์์ฒด์ ]2์ฅ-์ด์์ฒด์ ๊ฐ์ (0) | 2023.06.20 |