본문 바로가기
CS/운영체제

3. 다중 프로그래밍 (Multi-Processing) OS

by D.O.T 2024. 4. 21.
다중 프로그래밍 기법이 출현한 배경을 생각해보자.

 

이전, 배치 처리에서 어떤 문제로 인해 다중프로그래밍 방식의 아이디어가 제안 되었을 것이다.

배치 처리는 일괄적으로 처리할 수 있게 되었지만 CPU 작업 중 특정 명령 코드에서 I/O 작업을 요청한다.

그럼 컴퓨터는 CPU 작업을 하다가 I/O 작업을 하게 되는데 이 작업이 반복되는 현상이 발생한 것이다.

실질적으로 컴퓨터에서 처리를 하는 HW는 CPU인데 컴퓨터가 I/O 작업을 하면서 CPU는 대기하는 현상이 발생한다. 이것을 CPU idle time 이라고 한다.

 

CPU IDLE Time을 줄이면 CPU 활용률(처리율)이 증가하게 된다. 그래서 다중 프로그래밍 기법이 출현한 것이다.

다중 프로그래밍 기법은 여러 프로그램을 메모리가 수용할만큼 메모리에 적재하는 것이다. 그리고 프로그램 실행 도중 I/O가 발생하더라도 메모리 상 존재하는 다른 프로그램을 실행하면서 CPU의 Idle을 줄이는 기법이다.

다중 프로그래밍에서의 CPU Idle

 

다중 프로그래밍 운영체제는 배치 처리방식과 유사하지만, 테이프가 디스크로 바뀌고 메인 PC가 다중 프로그래밍 OS로 바뀌었다. 프로그램 3개에 대해서 배치 처리와 다중 프로그래밍을 비교해보겠다.

그림 A. 배치 처리
그림 B. 다중 프로그래밍

  batch multi processing
Running Time 30 17
Idle Time 14 1
CPU Utilization 16/30 = 53% 16/17 = 94%
Throughput 3/30 = 0.1task/time 3/17 = 0.176 task/time

 


 

다중프로그래밍을 도입하면서 발생한 이슈

 

  • 다중 프로그래밍은 메모리에 여러 프로그램을 올리기 위해 메모리가 커야한다는 이슈
  • 메모리에 적재할 프로그램 수, 적재 위치, 메모리 할당 크기 등 메모리와 관련된 이슈
  • 여러 프로그램이 메모리에 적재되므로 다른 프로그램 영역에 대해 메모리를 보호해야하는 이슈
  • CPU가 프로그램을 선택하기 위해 스케쥴링과 I/O가 발생한 동안 다른 프로그램을 실행할 때, 이전 프로그램의 정보를 저장 필요가 있어서 컨텍스트 스위칭 방법에 대한 이슈
  • I/O의 상태를 위한 인터럽트 개념
  • I/O가 수행되는 동안 이전 프로그램이 접근하였던 자원에 접근하는 문제에 대한 처리 - 동기화
  • 서로 상대가 가진 자원을 요청하는 교창 상태가 발생

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

6. 커널 (Kernal)  (0) 2024.04.21
5. 운영체제의 역할  (1) 2024.04.21
4. 시분할 다중프로그래밍(Time Sharing Multi-Programming) OS  (0) 2024.04.21
2. 운영체제의 발전  (0) 2024.04.21
1. 운영체제(OS, Operating System)란?  (1) 2024.04.20