ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 3. 다중 프로그래밍이란?
    운영체제/운영체제 정리 2019. 9. 4. 23:45


    이전에는 하나의 프로그램만 실행되고 CPU는 시간이 빠르고 다른 I/O 장치 등은 시간이 오래 걸리기에 CPU가 낭비 되는 시간이


    많았다.






    C언어를 USER PROGRAM으로  예를 들면 Cpu가 동작하다가 I/O를 실행하다 다시 CPU를 동작한다. 이때 CPU는 아무 일도 하지 않고 놀게 되는데



    이 시간이 매우 아깝게 버려지는 것. 그래서 메모리에 여러 개의 프로그램을 돌리는 식으로 바뀌게 되었다.







    처음 USER PROGRAM 1을 실행하다가 I/O를 만나면 바로 USER PROGRAM 2로 내려가게 된다. 어느 순간에도


    CPU가 놀지 않도록 즉 USER PROGRAM2가 I/O를 만나면 CPU는 USER PROGRAM 3로 가게 되는 것.  그러면 CPU에 이용율이 굉장히 올라갈 수


    있다. 이런 식으로 메모리에 여러가지 프로그램을 올리는 것을 다중 프로그래밍 ( multi programming ) 이라고 한다. 



    이렇게 다중 프로그래밍이 나오면서 생각할 것들이 생기게 됬는데 


    프로그램 3개중 무엇을 먼저 실행 시키는게 좋을까? 운영체제의 목적중 하나는 성능 향상인데 1-2-3 과 2-1-3이 성능이 다르게 나온다면 


    어떻게 더 좋은 성능을 만들게 될건가? CPU SCHEDULING 을 생각해야 되고


    메모리에 어떤 식으로 USER PROGRAM을 배치 해야 하고


    프로그램이 종료될 시 빈 공간이 생길텐데 이 빈공간을 어떻게 처리할지에 대한 메모리 관도 생각하여야 한다.



    그러면 시공유 시스템(Time-Sharing System)이란?


    예를 들어 각 ms초마다 user1 user2 user3 user1 user2 user3 . . 으로 cpu를 번갈아 할당하는 것을 말하며 시간이 지나면 자동으로 넘어가는


    강제 절환의 특징을 가지는 것이 시공유 시스템이다.






    '운영체제 > 운영체제 정리' 카테고리의 다른 글

    6. mmu란?  (31) 2019.09.24
    5. 인터럽트 기반 시스템이란?  (1) 2019.09.22
    4. 다중프로세서 시스템이란?  (0) 2019.09.22
    2. 운영체제 커널(kernel)과 shell(쉘)이란?  (0) 2019.09.03
    1. 운영체제란?  (0) 2019.09.01
Designed by Tistory.