전성빈의 사리사욕

[OS의 작동방식] 메모리 관리 본문

백엔드 로드맵따라가기/OS 및 일반적인 지식

[OS의 작동방식] 메모리 관리

Been2 2020. 8. 11. 23:21
728x90

메모리 관리 개념

 

프로그램을 실행 시키기 위해서는 메모리 위에 적재를 해야합니다. 멀티 프로세스 시스템에서는 다양한 프로세스들이 메모리에 적재되어 실행되는데 이를 위해서 메모리를 효율적으로 관리해야 합니다.

 

이러한 메모리 관리를 위해 메모리 관리자가 존재하고, 메모리 관리 장치(MMU, Memory Manangement Unit)와 OS가 함께 작업합니다.

 

이때 몇가지 정책에 따라 메모리를 관리합니다.

  • 적재 정책 : Disk에서 메모리로 프로세스를 언제 가져와야 하는지 정하는것
  • 배치 정책 : Disk에서 가져온 프로세스를 어느 위치에 저장할 지 정하는것
  • 대치 정책 : 메모리가 충분하지 않을 때 현재 메모리에 적재된 프로세스중 무엇을 제거할 지 결정하는

 

논리적 주소, 물리적 주소, 메모리 매핑

 

1. 논리적 주소

가상 주소라고도 하며 프로그래머의 목적 코드가 저장된 공간과 프로세스에서 사용하는 배열, 구조체 등등 이에 해당한다.

 

2. 물리적 주소

논리적 주소에 대응되는 실제 메모리의 주소이며 메모리 칩이나 디스크 공간에서 만든다.

 

이 때 논리적 주소와 물리적 주소는 MMU에서 관리한다.

 

3. 메모리 매핑

바인딩

  바인딩의 종류

    정적

    동적

  바인딩 타임

  바인딩 타임의 종류

    컴파일 시간

    적재 시간

    실행 시간

    

 

링커와 로더

  링커

  로더

 

할당

  정적

  동적

 

 

메모리 할당 방법

 

고정 분할 방법

 

가변 분할 방법

  최초 적합 방법

  최적 적합 방법

  최악 적합 방법

 

버디 시스템

 

 

---

캐시 메모리 평균 접근시간 계산하기

캐시 메모리 평균 접근시간 = 캐시 HIT 비율 * 캐시 접근시간 + 캐시 MISS 비율 * DISK 접근시간

728x90