-
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