๐Ÿ€ Knowledge/์šด์˜์ฒด์ œ(OS)

[์šด์˜์ฒด์ œ] ๋ฉ€ํ‹ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ Time Sharing

TIlearn 2024. 3. 5. 13:58

 

 

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๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ ์žˆ์–ด, ๋™์‹œ์— ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.