[์ด์์ฒด์ ] ๋ฉํฐ ํ๋ก๊ทธ๋๋ฐ๊ณผ Time Sharing
Operation System์ ๋ฐ์
์ด์ ์๋ Operation System์ด ์์๊ธฐ ๋๋ฌธ์ ์ง์ ์๋์ผ๋ก ํ๋์จ์ด ์ฅ์น๋ฅผ ์ ์ดํ์๋ค.
ํ์ง๋ง ์ด๋ฌํ ๋ฐฉ๋ฒ์ ๋๋ฌด ํจ์จ์ด ๋จ์ด์ก๊ธฐ์ ๋ชจ๋ํฐ๋ผ๋ ๊ฒ์ ๋ง๋ค๊ฒ ๋์๋ค.
๋ชจ๋ํฐ๋ ์ผ๋ จ์ ๊ณผ์ ์ ์ ์ดํ๋ ์ํํธ์จ์ด์ด๋ค.
๋ฐ๋ผ์ ํ๋ก๊ทธ๋จ๋ค์ด ๋ฌถ์ฌ์์ผ๋ฉฐ ๊ทธ ์์๋๋ก ์คํ๋ ์ ์๋๋ก ๋์์ค๋ค.
๊ทธ๋ฆฌ๊ณ ์ด๋ ๊ฒ ์ฌ๋ฌ ๊ฐ์ ํ๋ก๊ทธ๋จ๋ค์ ๋ฌถ์ด๋๊ณ ์๋ค๊ฐ ์ฐจ๋ก๋ก ํ๋์ฉ ์คํ์์ผ ๋๋ ๋ฐฉ์์ ์ผ๊ด ์ฒ๋ฆฌ ์ฆ, Batch System์ด๋ผ๊ณ ํ๋ค.
๋ชจ๋ํฐ๋ ์ด๋ฌํ Simple Batch System ์์์ ์ผ๋ จ์ ๊ณผ์ ๋ค์ด ์ฐจ๋ก๋ก ์ํ๋์๋ค.
Uni-programming
์ ๊ทธ๋ฆผ์ Uniprogramming์ CPU์ ๋์ ๋ฐฉ์์ ๋ํ๋ธ ๊ฒ์ด๋ค.
_Run_์ด๋ผ๋ ์์๊ฐ ์๋ ๋์์๋ ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ ๊ฒ์ด๋ฉฐ _Wait_์ ์ํ๋ CPU๊ฐ ์ฌ๊ณ ์๋ ์ํ์ด๋ค.
๋ง์ฝ ์ด๋ฌํ ์ํฉ์์ I/O๊ฐ ์ผ์ด๋๋ ์ํฉ์ ๊ฐ์ ํด๋ณด์. ์ฌ์ฉ์์ ์ ๋ ฅ์ ๋ฐ๋ ๋์ CPU๋ ์ผ์ ํ ๊น? ์๋๋ค. ๊ธฐ๋ค๋ ค์ผ ํ๋ค. ๋ํ ํ๋ฉด์ ๊ฐ์ ๋ณด์ฌ์ฃผ๊ธฐ ์ํด์๋ CPU๋ ๊ธฐ๋ค๋ ค์ผ ํ๋ค. ์ด๋ฅผ _utilization_์ด ์ข์ง ๋ชปํ๋ค๊ณ ๋งํ๋ค.
์ฆ, I/O๊ฐ ์ผ์ด๋๋ ์ํฉ์์ ์ผ๋ฐ์ ์ผ๋ก CPU์ ์ฑ๋ฅ์ ์ข์ง ๋ชปํ๋ค.
Multiprogramming Systems
CPU๊ฐ ๋๊ณ ์๋ ์ํฉ์ ๋ฐฉ์งํ๊ณ ์, ์ฌ๋๋ค์ Multiprogramming System์ ๋ง๋ค์๋ค.
๊ทธ๋ฆผ๋ง ๋ณด์๋ ์ ์ ์๋ฏ์ด, Program A๊ฐ _Wait_ํ๋ ๋์์ Program B๊ฐ _Run_์ ํ ์ ์๋ค. ๋ฐ๋ผ์ ์ด์ ์ uniprogramming์์ ๋ณด๋ค CPU๊ฐ ๊ธฐ๋ค๋ฆฌ๋ ์๊ฐ์ด ์ค์ด๋ค๊ธฐ ๋๋ฌธ์ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์์ผ๋ฉฐ utilization๋ํ ๋์์ง๋ค.
ํ์ง๋ง, ์ด๋ ๊ทธ๋ฅ ๋๋ ๊ฒ์ ์๋๊ณ , Main Memory ์์ ๊ฒฐ๊ตญ ์ฌ๋ฌ ํ๋ก๊ทธ๋จ์ด ์ ์ฌ๋ ์ ์์ด์ผ ํ๊ธฐ ๋๋ฌธ์ Main Memory๊ฐ ๊ทธ๋งํผ ์ปค์ผ ํ๋ค.
Process Scheduling
์ด๋ค ํ๋ก๊ทธ๋จ์ด ๋ค์์ ์คํ๋ ์ง ์ ํ๋ ๊ฒ์ ๊ณง Processor๊ฐ ์ด๋ค ํ๋ก๊ทธ๋จ์ ๋ด๋นํ ์ง ์ ํ๋ ๊ฒ๊ณผ ๊ฐ์ ๋ง์ด๊ณ , ๋์์ CPU๊ฐ ์ด๋ค ํ๋ก๊ทธ๋จ์ ์คํํ ์ง ์ ํ๋ ๊ฒ๊ณผ ๊ฐ์ ๋ง์ด๋ค.
๋ํ ์ด๋ฌํ Processor Scheduling์ CPU scheduling, job scheduling์ด๋ผ๊ณ ๋ ๋ถ๋ฆฐ๋ค.
Time Sharing Systems
Multiprogramming์ ํ๋ก๊ทธ๋จ์ด _Wait_ํ๋ ๋์ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์ด _Run_ํ๋ ๊ฒ์ ๊ฐ๋ฅํ๊ฒ ํ๋ค. ํ์ง๋ง ๊ฐ ํ๋ก๊ทธ๋จ๋ง๋ค _Run_์ ์๊ฐ์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ์ด๋ค ํ๋ก๊ทธ๋จ์ ๊ต์ฅํ ๋ง์ด _Wait_ํด์ผ ํ๋ ์ํฉ์ด ๋ฐ์ํ๊ธฐ๋ ํ๋ค.
๊ทธ๋์ _Time Sharing System_์ด๋ผ๋ ๊ธฐ์ ์ ์ฌ์ฉํ๋๋ฐ, ์ด๋ Time Slice๋ผ๋ ์งง์ ์๊ฐ ๋์ ๋ฒ๊ฐ์๊ฐ๋ฉฐ ํ๋ก๊ทธ๋จ์ _Run_์ ํ๋๋ก ํ๋ค. ๋ค์ ๋งํด, ์๊ฐ์ ๊ณต์ ํ์ฌ ํ๊ท ์ง์ฐ์๊ฐ์ ๋ฆ์ถ๋ ๊ธฐ์ ์ด๋ค.
time slice์ ๊ธธ์ด : 100 msec(1/10 sec)
๋ฐ๋ผ์ ๊ฐ ํ๋ก๊ทธ๋จ์ _Run_์๊ฐ์ด ๋ชจ๋ ๋ฌ๋๋ Multiprogramming, Uniprogramming๊ณผ๋ ๋ฌ๋ฆฌ, Time Sharing System์ ๊ฐ ํ๋ก๊ทธ๋จ์ _Run_์๊ฐ์ด ๋ชจ๋ ์ผ์ ํ๋ค.
Multiprogramming Vs. Time Sharing
- Multiprogramming
- ๋ฐฐ์น ํ๋ก์ธ์ฑ, ๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ฑ์ ์์ด ์ฃผ๋ก ์ฌ์ฉ๋๋ค.
- Time Sharing๋ณด๋ค ์ค๋ฒ ํค๋๊ฐ ์๋ค.
- ์ฒ๋ฆฌ๋(Throughput)์ด ์ข๋ค.
- Time Sharing
- ์ธํฐ๋ ํฐ๋ธ ํ๋ก์ธ์ฑ(Interactive Processing), ํฌ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ฑ์ ์ฃผ๋ก ์ฌ์ฉ๋๋ค.
- Multiprogramming๋ณด๋ค ์ค๋ฒ ํค๋๊ฐ ํฌ๋ค.
- ๋์ฑ๋ ๋์ ์๋ต ์๋(Response Time)
- ์์ฒญ์ ๋ฐ์ ์๊ฐ ๋ถํฐ, ๋ด ์์๊ฐ ์ค๊ธฐ๊น์ง๊ฐ ์๋ต ์๋์ด๋ค.
- CPU๊ฐ ๋ ๋น ๋ฅธ ์๋๋ก ์ฒ๋ฆฌํ๋ค๋ ๋ป์ด ์๋๋ค..!
- Context Switching์ด ๋ ๋ง๊ธฐ ๋๋ฌธ์ด๋ค.
Symmetric multiprocessing(SMP)
Symmetric multiprocessing์ ๊ทธ๋๋ก ์ง์ญํ๋ฉด ๋์นญํ ๋ฉํฐ ํ๋ก์ธ์ฑ์ผ๋ก, ๋ชจ๋ ํ๋ก์ธ์๊ฐ ๊ฐ์ ์ผ์ ์ํํ๋ ๊ฒ์ ๋งํ๋ค.
๋ฐ๋๋ก ํน์ ํ๋ก์ธ์๊ฐ ๋ค๋ฅธ ํ๋ก์ธ์์ ๋ค๋ฅธ ์ผ์ ํ๋ค๋ฉด ์ด๋ ๋น๋์นญํ ๋ฉํฐํ๋ก์ธ์ฑ์ด๋ค.
์ฌ๊ธฐ์ ๊ฐ๊ฐ์ ํ๋ก์ธ์๋ค์ ์ฌ์ค ํ๋์จ์ด ๊ทธ ์์ฒด์ด๊ธฐ ๋๋ฌธ์ ํฐ ์๋ฏธ๊ฐ ์๋ค. ๊ทธ ์ญํ ์ ๋ถ์ฌํ๋ ๊ฒ์ Main Memory์์ ์๋ OS์ธ ๊ฒ์ด๋ค.
MultiProgramming Vs. MultiProcessing
MultiProgramming๊ณผ MultiProcessing์ ์์ฐํ ๋ค๋ฅด๋ค.
MultiProgramming์ ํ๋ก๊ทธ๋จ A๋ฅผ ์คํํ๋ ๋์ ํ๋ก๊ทธ๋จ B๋ ์คํํ์ง ์๋๋ค. ์ฆ, ํ๋ก์ธ์(CPU) ์์ฒด๋ ํ๋์ด๊ธฐ ๋๋ฌธ์ ์๊ฐ๋๋ฅผ ๋ฐ๋ก ๋์ด์ฌ๋ฌ ๊ฐ์ ํ๋ก๊ทธ๋จ์ ์คํํ๋ ๊ฒ์ด๋ค.
๋ฐ๋๋ก MultiProcessing์ CPU๊ฐ ์ฌ๋ฌ ๊ฐ ์์ด, ๋์์ ํ๋ก๊ทธ๋จ์ ์คํํ๋ ๊ฒ์ด๋ค.