목표

  • 프로그래밍을 할 때 쉽게 메모리를 사용할 수 있도록 abstraction을 제공해주는 것
  • minimal overhead로 성능을 최대한 이끌어낼 수 있도록 프로세스들 사이에서 부족한 메모리 자원을 적절히 잘 할당하는 것
  • 프로세스들 사이에서 isolation을 제공(Memory Protection)

 

Step in Creating and Running Code

  • "Source file → (Compile) → Object file → (Linker) → Executable file"
  • "Executable file → (Loader) → memory"
  • Link: HDD에 들어가 있는 다양한 library들을 실행하기 위해 연결해주는 과정
  • 하나의 프로그램이 실행되기 위해서는 code, data, stack이 필요
  • os는 이 실행파일을 메모리의 어디 부분에 올릴지를 결정 "MMU"

 

MMU

  • Memory Management Unit
  • 메모리 공간에서 빈 공간을 찾아 프로그램을 올릴 때 주소를 조절해주는 역할: MMU의 relocation register

 

메모리 낭비 방지

Dynamic Loading(동적 적재)

  • 메모리의 효율성을 위해 필요한 루틴이 호출될 때 해당 루틴을 메모리에 적재하는 방식
  • Loading : 메모리로 데이터(.exe / code, data)를 옮기는 것

 

Dynamic Linking(동적 연결)

  • 여러 프로그램에 공통 사용되는 라이브러리를 관리하는 방법

 

Swapping

  • 메모리에 적재되어 있으나 현재 사용되지 않고 있는 프로세스를 관리하는 역할

 

'Computer Science > Operating System' 카테고리의 다른 글

[개념] Memory Management 3(Paging)  (0) 2021.08.12
[개념] Memory Management 2  (0) 2021.08.12
[개념] Virtualization  (0) 2021.08.12
[개념] IPC  (0) 2021.08.12
[개념] I/O Management  (0) 2021.08.12

+ Recent posts