Yenarue's Log Generalist Software Engineer :-)

메모리 관리 - Overlay

|

이 포스팅은 기존 개발 블로그에서 백업한 포스팅입니다.

  • 원문 : https://syung1104.blog.me/159118925

overlay는 필요할 때에 컴퓨터의 주기억장치로 불러들일 수 있는 프로그램의 일부분을 말한다.

컴퓨터의 주기억장치(램) 보다 용량이 큰 프로그램은 주기억장치에 입력될 수 없다.

이것은 곧 프로그램의 수행이 불가능함을 의미한다.

그러나 ‘오버레이’기법을 이용하면 프로그램의 수행이 가능해진다.

오버레이 기법은 용량이 큰 프로그램을 분할 가능한 몇 개의 부분으로 나눈 뒤, 각 부분의 실행이 필요할 때마다 필요한 부분만 주기억장치로 입력시켜 실행할 수 있게 하는 것이다.

이 때 분할된 각각의 부분을 ‘세그먼트’ 또는 ‘모듈’이라고 하며 주 프로그램은 항상 주기억장치에 머물면서 필요한 세그먼트(모듈)를 오버레이 버퍼라는 일종의 기억장치에서 불러낸다.

특히 PC와 같이 주기억장치의 용량이 작은 컴퓨터들은 상대적으로 규모가 큰 프로그램의 수행이 불가능하다.

예를 들어 성적처리 프로그램의 용량이 사용하는 컴퓨터의 주기억 용량 보다 크면 입력이 불가능하다는 메시지와 함깨 실행을 할 수 없다.

이럴 때에 오버레이 기법을 사용하면 실행할 수 있다.

성적처리 프로그램은 학생들의 성적을 합산하는 부분, 성적순으로 학생의 순위를 정렬하는 부분, 이상과 같은 결과를 인쇄하는 부분 등으로 나누어져 있다.

이와 같은 성적처리 프로그램을 오버레이 기법을 통해 합산, 정렬, 인쇄의 세가지 세그먼트로 나누고 각 세그먼트를 차례대로 입력함으로써 수행할 수 있게 된다.

또한 주기억장치(램)에 특정의 프로그램을 상주시키고 그 프로그램을 필요에 따라 호출할 수 있는 램 상주 프로그램에서도 오버레이 기법이 사용된다.

램에 특정 프로그램이 상주되면 프로그램 용량 만큼의 주기억 용량을 사용할 수 없게 되므로 다른 프로그램의 사용에 큰 제약을 받게 된다.

따라서 오버레이 기법을 이용하여 램 상주에 필요한 주프로그램을 상주시키고 나머지 세그먼트를 필요에 따라 주기억장치로 호출함으로써 램 상주 프로그램을 수행할 수 있고 주 메모리의 용량이 줄어드는 것도 방지할 수 있다 오버레이는 유용한 기법으로 기억용량이 작은 컴퓨터에서 많은 도움을 주지만 프로그래머가 프로그램을 각 세그먼트(모듈)로 나누고 세그먼트 간의 데이터 교환을 실행시켜야 하므로 고도의 프로그램 작성 기술을 요구한다

Comments