본문 바로가기
운영체제

[운영체제] Memory Management

by moonstal 2022. 5. 6.

주소

  • 논리적 주소

    • 프로세스마다 독립적으로 가지는 주소
    • 0번지 부터
    • cpu가 보는 주소
  • 물리적 주소

    • 메모리에 실제 올라가는 위치
  • 주소 바인딩: 주소 결정

주소바인딩

  • 컴파일 타임 바인딩: 컴파일 시에 주소 바인딩
  • 로드 타임 바인딩: 실행 시작될 때 주소변환
  • excution 타임 바인딩: (런타임) 프로그램 시작된 이후 중간에, 하드웨어 지원 필요

memory management unit

논리주소 -> 주소변환 -> 물리주소

Dynamic loading

  • 해당 루틴 불려질 때 메모리에 load하는 것
  • memory utilization 향상
  • 프로그램 자체에서 구현 가능

overlays

  • 메모리에 프로세스 부분 중 실제 필요한 정보만 올림
  • 사용자가 구현

swapping

  • 프로세스 일시적으로 메모리에서 backing store로 쫓아냄
  • backing store:디스크
  • 중기 스케줄러가 swap out 프로세스 선정(cpu 우선순위 낮은 프로세스)

Dynamic linking

  • linking을 실행 시간까지 미루는 기법<-> static링킹
  • 라이브러리 어디에 있는지 찾아 메모리에 올림

allocation of physical memory

  • 메모리는 os 상주 영역/사용자 프로세스 영역으로 나뉨

  • 사용자 프로세스 영역 할당

    • contiguous allocation(연속할당): 각각의 프로세스가 메모리 연속 공간에 적재

      • 고정분할: 영구적 분할
      • 가변분할: 프로그램 크기 고려 -dynamic storage allocation problem(hole찾는 문제)
    • Noncontiguous allocation(불연속할당): 하나의 프로세스가 메모리 여러 영역에 분산

      • paging: 페이지 테이블
      • segmention: 의미단위로 잘라 (공유, 보안)
      • paged segmentation: segment하나가 여러개의 페이지로 구성

운영체제 관여 안함 하드웨어가 해줌

http://www.kocw.net/home/search/kemView.do?kemId=1046323&ar=pop

'운영체제' 카테고리의 다른 글

[운영체제] File Systems  (0) 2022.05.12
[운영체제] Virtual Memory  (0) 2022.05.08
[운영체제] Deadlocks  (0) 2022.05.03
[운영체제] Process Synchronization  (0) 2022.05.01
[운영체제] CPU Scheduling  (0) 2022.04.28