본문 바로가기

3학년 1학기/운영체제

메모리 관리, Memory management



단일 프로그래밍에서는 메인 메모리가 2파트, 2가지의 공간으로 나뉜다.


첫째, 운영체제를 위한 공간

둘째, 현재 수행중인 프로그램(current running program)을 위한 공간


단일프로그래밍 이란?

항상 시스템내에 한가지의 프로세스만 존재.

다른 프로세스가 실행되려면 현재 실행중인 프로세스가 끝나야만

다른 프로세스가 실행 가능한 시스템.


하지만,


다중 프로그래밍에서는 메인 메모리가 여러 파트, 여러 공간으로 나뉜다.

다중 프로그래밍에서 메인 메모리에 있는 user's memory 라는 부분이 있는데,

다중프로그래밍은 여러 프로세스들이 실행되므로 여러 프로세스들을 수용하기 위해

더 여러부분으로 나뉘어진다.


여러 프로세스들이 실행,중단,종료 등 다양한 행동을 보여주는데

이때 우리는 이것을 예측할 수 가 없다. 

그래서 프로세스가 실행,중단,종료 등 다양한 행동을 실행할때

OS가 메인메모리를 동적으로 분할해주는데

이를 운영체제에 메모리 관리(Memory management) 기법이 라고 한다.


다중 프로그래밍에서 메모리 관리는 필수적이다.

예를 들어보면, 비교적 적은 수의 프로세스가 메인메모리에 있을때,

모든 프로세스는 대부분의 시간 동안 입출력 작업 종료를 기다리게 되며 (idle 상태)

그때 프로세서는 아무 일도 하지 않게 된다. (프로세스가 입출력작업보다 빠르다.)


메모리는 사용 가능한 처리기 시간을 소비하기에

충분한 수의 프로세스가 준비 상태에 있을수 있도록 할당 되어야한다.