cs
OS - 다중 프로그래밍 (고정분할 다중 프로그래밍)
joepasss
2022. 5. 9. 11:02
1. 고정분할 다중 프로그래밍
운영체제가 주기억장치를 할당하기 전에 주기억장치의 사용자 영역을 여러 개의 일정한 크기로 분할하고 준비상태 큐에서 프로그램을 각 영역에 할당하여 실행하는 기법
1.1 특징
- 프로그램 전체가 주기억장치에 위치해야 프로그램을 실행할 수 있다
- 분할된 영역보다 프로그램이 커서 그 영역 안에 들어갈 수 없는 경우(외부 단편화)가 발생할 수 있다
- 고정된 크기의 분할영역에 여러 다양한 크기의 분할영역이 할당되므로, 내부 단편화 및 외부 단편화가 발생하여 주기억장치의 낭비가 크다
- 실행할 프로그램의 크기를 미리 알고있어야 한다
1.2 절대번역과 적재 (absolute translation loading)
주기억장치가 여러 개의 고정된 크기로 분할되어 있고 작업들이 절대 어셈블러와 컴파일러에 의해 번역되어 지정된 분할영역 내에서만 실행되는 경우 한 작업이 실행준비가 되어 있을 때 지정된 자신의 분할영역이 사용되고 있다면 다른 분할이 이용 가능하더라도 그작업은 지정된 분할영역이 사용 가능하게 될 때 까지 대기한다.
1.3 재배치 가능 번역과 적재 (relocatable translation loading)
* 모든 작업을 하나의 큐에 넣어, 어느 분할에서든지 실행 가능하도록 한 기법.
* 재배치 컴파일러, 로더는 어떤 영역에서든지 그 영역에 수용될 프로그램이 있으면 실행 가능한 경우
* 절대번역과 적재상에서 발생하는 기억장치의 낭비를 막을 수 있다
작업 큐에 들어 있는 작업 1, 2 ... 등은 어느 분할에든지 할당 가능하여 기억장치가 비어있는 상태에서 사용되지 못되는 현상이 발생되지 않으므로 기억장치의 낭비를 줄일 수 있다