본문 바로가기
전공/운영체제

Ch07. 물리 메모리 관리_03)단일 프로그래밍 환경에서의 메모리 할당

by 임 낭 만 2023. 5. 14.

<쉽게 배우는 운영체제> 교재를 참고하였습니다.

메모리 오버레이

메모리 오버레이

  • 프로그램의 크기가 실제 메모리(물리 메모리)보다 클 때 전체 프로그램을 메모리에 가져오는 대신 적당한 크기로 잘라서 가져오는 기법
  • 메모리 오버레이를 사용하면 물리 메모리보다 더 큰 프로그램도 실행이 가능하다!


메모리 중첩

메모리 오버레이의 작동 방식

  • 프로그램이 실행되면 필요한 모듈만 메모리에 올라와 실행

메모리 오버레이의 작동 방식

메모리 오버레이의 의미

  • 한정된 메모리에서 메모리보다 큰 프로그램 실행 가능. 이것은 가상 메모리의 기본 개념임.
  • 프로그램 전체가 아니라 일부만 메모리에 올라와도 실행 가능
  • 이것은 메모리를 여러 조각으로 나누어 여러 프로세스에 할당할 수 있다는 의미임.

중첩 (오버레이)

  • 실행하려는 프로그램이 메모리보다 클 때는 당장 필요하지 않은 프로그램의 일부는 중첩(오버레이)으로 설정 가능.
  • 운영체제 영역과 메모리의 일부 영역에는 프로그램 실행에 꼭 필요한 명령어와 데이터만 저장, 나머지 중첩 영역에는 필요할 때 호출하여 적재하는 방법
  • 구조

중첩 구조

  • 중첩 예

중첩 예


스왑

스왑 영역 (swap area)

  • 메모리가 모자라서 쫓겨난 프로세스를 저장장치의 특별한 공간에 모아두는 영역
  • 메모리에서 쫓겨났다가 다시 돌아가는 데이터가 머무는 곳이기 때문에 저장장치는 장소만 빌려주고 메모리 관리자가 관리
  • 사용자는 실제 메모리의 크기와 스왑 영역의 크기를 합쳐서 전체 메모리로 인식하고 사용

스왑

  • [그림 7-15]에서는 메모리에 모듈 B를 가져올 때 먼저 메모리에 올라온 모듈 A는 어떤 곳이든 보관해야 함
  • 모듈 A 하드디스크 위치에 옮겨 놓으면 되겠지만, 다시 사용할지도 모르고 아직 작업이 끝나지 않았으면 별도공간에 보관해야 함
더보기
  • 메모리가 부족해서 교체된 프로세스는 저장장치의 특별한 공간에 모아두는데 이 영역을 스왑영역(swap area)이라고 함.
  • 메모리에서 교체되었다가 다시 돌아가는 데이터가 머무는 곳이기 때문에 저장장치는 장소만 빌려주고 메모리 관리자가 관리

스왑인과 스왑아웃

  • 스왑인 : 스왑 영역에서 메모리로 데이터를 가져오는 작업
  • 스왑아웃 : 메모리에서 스왑 영역으로 데이터를 내보내는 작업

스왑인과 스왑아웃

스와핑 (프로세스 교체)

  • 프로세서 할당이 끝나고 수행 완료된 프로세스는 보조기억장치로 보내고(스왑 아웃), 새롭게 시작하는 프로세스는 메모리에 적재(스왑 인). 프로세스는 메모리에 있어야 수행되므로 일시적으로 디스크로 이동했다가 메모리로 되돌아와 다시 수행 가능
  • 개념

스와핑의 개념

댓글