컴퓨터언어/운영체제

주기억장치 할당 기법

bbanpro 2020. 6. 24. 18:32
728x90
반응형

👍 주기억장치 할당 기법이 뭐에요?

 

컴퓨터 발전사를 보면, 보조기억장치는 주기억장치보다 늦게 등장하였기 때문에, CPU는 보조기억장치에 직접 접근할 수 없게 설계되었다.

따라서 운영체제는 보조기억장치에 저장된 프로그램을 주기억장치에 적재하여 CPU가 실행할 수 있게 도와준다.

하지만 주기억장치의 크기는 제한되어 있으므로, 운영체제는 하나 또는 여러 개의 프로그램을 어떻게 주기억장치에 적재할 것인지 고민해야 한다.

 

예전에는 프로그램의 크기가 주기억장치보다 작았기 때문에, 하나의 프로그램을 적재하는 데 큰 어려움이 없었다.

적재되는 것만으로도 그 당시에는 기적이었을 것이다.

이를 "단일 프로그래밍" 방식이라고 한다.

 

그러나 점점 프로그램의 크기가 주기억장치보다 현저히 커지면서, 보조기억장치에 저장된 하나의 프로그램 파일을 주기억장치가 소화할 수 있는 크기로 분할하여 순차적으로 적재하여 실행하는 방법을 개발했고, 이를 "오버레이"라고 한다.

즉 프로그램들을 잘게 조각내어 메모리에 올리는 형태이며, 실행하다가 더 이상 불필요해진 조각이 위치한 메모리에 당장 필요한 조각을 덮어씌워(overlay) 원활한 실행이 가능한 것이다.

이것만으로도 획기적이다.

 

하지만 CPU의 성능 또한 많이 발전하여 멀티프로세싱이 가능해지면서, 하나의 프로그램만을 분할하여 적재하는 단일프로그래밍 방식의 "오버레이"는 운영체제에게 더 이상 성이 차지 않는다. 비싼 CPU를 놀게 하다니

이제는 동시에 여러 개의 프로그램을 적재하여 CPU 이용률을 극대화하려는 것이다.

그래서 운영체제는 프로그램 뿐 아니라 주기억장치도 분할하여 여러 개의 프로그램을 적재하는 다중프로그래밍 방식을 적용하기 시작했다.

 

정리하면,

주기억장치에 하나의 프로그램만 분할하여 적재하는 것을 단일프로그래밍이라고 하고,

주기억장치에 여러 개의 프로그램을 분할하여 적재하는 것을 다중프로그래밍이라고 한다.

 

그런데 이게 끝이 아니다.

분할되면서 상대적으로 작아진 주기억장치가 이를 소화하기 힘들면 보조기억장치를 주기억장치처럼 사용하는 "가상기억장치" 기술까지 개발하여 지금까지 사용하고 있다.

 

최종 정리하면 우리가 주기억장치 할당 기법을 알기 위해서는 3가지 관점에서 봐야 한다.

  • 주기억장치의 단일프로그래밍(오버레이)
  • 주기억장치의 다중프로그래밍
  • 보조기억장치의 다중프로그래밍

 

728x90
반응형