반응형
개요
- 프로세스(process)에 대해 공부하기 전에 먼저 멀티프로그래밍을 공부하는 것이 좋다.
Uni-Programming (단일 프로그래밍)
- 멀티프로그래밍 이전에는 유니프로그래밍 방식으로 컴퓨터가 동작했다.
- 위의 사진을 보면 Program A가 실행될 때 RUN->Wait->Run->Wait 형태로 프로그램이 동작하기 된다.
- (이러한 RUN->Wait->Run->Wait 형태는 모든 프로그램에 공통되는 동작이다. CPU연산->입출력을 계속 반복하는 형태)
- 이때 Wait는 CPU idle 상태라고 하는데, I/O(입출력) 상태 이거나 다른 동작을 하고 있기 때문에 CPU가 일을 하지 않고 있다.
- 그 당시에는 CPU 연산과 같은 귀중한 자원이 idle 상태에 장기간 유지되는 것이 굉장한 낭비라고 생각되었기 때문에 Multi-programming이 등장하게 되었다.
Multi-programming (다중 프로그래밍)
- 간단히 말해서 멀티프로그래밍은 CPU idle 상태 일 때 CPU 연산을 다른 프로그램에게 넘겨주는 것을 의미한다.
- 위의 사진을 보면 A의 CPU 연산이 끝나고 I/O 연산이 진행되려고 할 때 CPU가 쓰이지 않기 때문에 프로그램 B에게 CPU 연산을 넘겨준다.
- 이런 식으로 한 개의 프로그래밍만 실행하지 않고 CPU는 여러 프로그래밍을 실행하게 된다. (최근 모든 운영체제는 멀티프로그래밍 방식을 사용함)
Uni-Programming vs Multi-programming
- 그림을 통해서 Multi-programming과 uni-programming을 비교해보자.
- 먼저 그림의 가장 하단에 보이는 화살표는 CPU 연산 시간이다.
- 멀티프로그래밍의 CPU 연산 시간이 압도적으로 짧은 것을 볼 수 있다. 이를 통해 멀티 프로그래밍의 장점을 정리할 수 있다.
- 장점
- Trought(처리량)이 높다.
- Utillization(활용도)가 높다.
- 처리량과 활용도는 Degree of multiprogramming가 높을수록 높다. 즉 최대한 많은 프로그램을 동시에 실행시키는 것이 좋다.
출처 - 공룡 책 (Operating System Concepts)
반응형
'CS > OS' 카테고리의 다른 글
[OS]프로세스 연산 (Operations on Processes ), 시스템 콜(System Call) (0) | 2021.04.30 |
---|---|
[OS]프로세스(Process)란? (0) | 2021.04.29 |
[OS]운영체제 구조 (Operating System Structure) (0) | 2021.02.19 |
[OS]캐싱(Caching) 이란? (0) | 2021.02.15 |
운영체제 (OS)(Operating System) 란? (0) | 2021.02.12 |