본문 바로가기

OS/운영체제론

[운영체제론] 단일 사용자 연속 메모리 할당 / 2021.12.07

* 참고 자료 : 운영체제론 한빛아카데미

 

단일 사용자 연속 메모리 할당이란 ?

초기 컴퓨터 시스템은 한 번에 한 사용자만 시스템을 사용하도록 허용했다. 그리고 시스템의 모든 자원을 해당 사용자에게 할당했다. 따라서 자원의 공유가 불필요했다. 

- 운영체제 없음 -> 프로그래머가 low-level 입출력 명령어를 포함한 모든 코드 구현

- 입출력 제어 시스템 (IOCS) : 기본 기능을 구현한 입출력 루틴 -> 현대 운영체제 개념의 시작

 

단일 사용자 연속 메모리 할당

 

1. 중첩

연속 메모리 할당은 실행 가능한 프로그램의 크기를 제한했다. 이 메모리 한계를 극복할 수 있는 방법 중 하나가 중첩이다.

 

- 프로그램이 특정 구역에 필요한 메모리를 요구하지 않을 때, 시스템 메모리 교체

- 프로그램을 논리적 구역으로 나눔

- 단점 : 메모리 구성에 대한 지식 필요, 수정의 어려움 

 

가상 메모리 시스템 -> 중첩을 제어해야 하는 부담 줄임

 

중첩 구조

 

2. 단일 사용자 시스템에서의 보호

단일 사용자 연속 메모리 할당 시스템에서는 보호 문제가 간단하다. 사용자 프로그램으로부터 운영체제를 어떻게 보호할 수 있는가?

프로세스들이 메모리 내용의 일부나 전체를 다른 데이터로 바꿈으로써 운영체제의 메모리를 우연히 혹은 고의로 방해할 수 있다. 프로세스들로부터 운영체제를 보호해야한다.

 

단일 사용자 시스템에서의 보호는 프로세서 안에 만들어진 경계 레지스터를 통해 이루어진다. 경계 레지스터는 사용자 프로그램의 시작 메모리 주소 정보를 포함하고 특권 명령어로만 수정이 가능하다. 시스템은 프로세스가 메모리 주소를 참조할 때마다 주소가 경계 레지스터에 저장된 주소 이하인지 확인한다. 만약 크거나 같으면 메모리의 요청대로 서비스하고 그렇지 않으면 프로그램이 운영체제에 접근을 시도한다. 시스템 호출 (슈퍼바이저 호출) 시 사용자모드->커널모드로 변경하여 운영체제 명령어를 수행한다. 수행 후 사용자 모드로 전환하고 제어를 프로세스에 넘긴다.

 

메모리 보호

 

단일 경계 레지스터는 사용자가 여려 명 있는 시스템도 충분히 보호할 수 있는가?
답 : 단일 경계는 사용자 프로세스가 운영체제를 손상시키는 상황을 방지하지만 프로세스 간에 서로 손상시키는 상황은 방지하지 못한다.

 

3. 단일 스트림 배치 처리

초기 단일 사용자 메모리 시스템은 작업의 실행 시간보다 많은 자원을 한 작업에 할당했다. 이 때문에 실제 작업의 처리보다 부수적인 작업에 많은 시간을 허비했다. 

- 테이프/디스크 마운트, 프린터 설정 등 작업 준비에 많은 시간 소비

- 테이프 제거 등 해제에도 많은 시간 소비 -> 이러한 시간 동안 컴퓨터는 쉬고 있어야 함

 

--> 설계자들은 작업 간 전환에서 일어나는 다양한 일을 자동화 한다면 작업들 사이에 낭비하는 많은 시간을 절약할 수 있음을 깨달았다. 그래서 배치 처리 시스템을 개발하게 되었다.

 

3-1) 단일 스트림 배치 처리  

단일 스트림 배치 처리에서는 작업전환 과정에서 일어나는 일을 자동화한다. 그리고 작업들을 테이프나 디스크에 연속적으로 로드해서 배치로 그룹화한다. 

작업 스트림 프로세서는 각 작업을 정의하는 작업 제어 언어 문장들을 읽고 현재 작업이 종료되면 다음 작업을 설정해준다.