기어가더라도 제대로

[운영체제-김덕수 교수님] 메모리 관리(2/3) - 할당 본문

CS/운영체제

[운영체제-김덕수 교수님] 메모리 관리(2/3) - 할당

Damagucci-juice 2022. 8. 10. 13:51
  • Continuous memory allocation
    • 프로세스(Context)를 하나의 연속된 메모리 공간에 할당하는 정책
      • 프로그램, 데이터, 스택 등
    • 메모리 구성 정책
      • 메모리에 동시에 올라갈 수 있는 프로세스 수
        • Multiprogramming degree
      • 각 프로세스에게 할당되는 메모리 공간 크기
      • 메모리 분할 방법

‏‏‎ ‎


  • Uni-programming
    • Multiprogramming degree = 1
  • Multi-Programming
    • Fixed(Static) partition multi-programming(FPM)
      • 고정 분할
    • Variable(Dynamic) partition multi-programming(VPM)
      • 가변 분할

‏‏‎ ‎

메모리 관리(2/3) - 할당 image

  • 문제점
    • 프로그램의 크기 > 메모리 크기
    • 이런 경우 프로그램을 쪼개서 올려야하는 문제가 있다.
  • 해결법
    • Overlay structure
      • 메모리에 현재 필요한 영역만 적재
      • 사용자가 프로그램의 흐름 및 자료구조를 모두 알고 있어야함
  • 문제점
    • 커널(kernel) 보호
    • 프로그램을 메모리에 올리다 보면 커널도 메모리에 올라가다 보니, 커널 영역을 침범할 수 있는 문제점이 있다.
  • 해결법
    • 경계 레지스터(Boundary register) 사용
    • "여기서부터는 커널의 영역입니다" 를 알려주는 레지스터

메모리 관리(2/3) - 할당 image

  • 시스템의 활용도가 낮다는게 문제
  • 그 해결책으로 멀티 프로그래밍을 하면 된다.

‏‏‎ 


Fixed Partition Multiprogramming

  • 메모리 공간을 고정된 크기로 분할
  • 미리 분할되어 있음
  • 각 프로세스는 하나의 partition(분할)에 적재
  • Process : Partition = 1:1

메모리 관리(2/3) - 할당 image

메모리 관리(2/3) - 할당 image

파티션간 침범을 막는 방법도 존재한다.
커널에 경계 레지스터를 두었던 것 처럼, 프로세스들간에도 경계 레지스터를 설정해주는 것이다.


Fragmentation(단편화)

  • Internal fragmentation
    • 내부 단편화
    • Partition 크기 > Process 크기
      • 메모리가 낭비됨
  • External fragmentation
    • 외부 단편화
    • (남은 메모리 크기> Process크기)이지만, 연속된 공간이 아니라 메모리가 낭비됨

메모리 관리(2/3) - 할당 image

  • 요약
    • 고정된 크기로 메모리 미리 분할
    • 메모리 관리가 간편함
    • 시스템 자원이 낭비 될 수 있음
    • 내부 단편화, 외부 단편화 가능성이 있음

‏‏‎ ‎

Comments