포도가게의 개발일지

메모리 관리 참조 : [OS] Lec 8. Memory Management (3/3) - Variable Partition Multi-programming 본문

CS

메모리 관리 참조 : [OS] Lec 8. Memory Management (3/3) - Variable Partition Multi-programming

grape.store 2021. 9. 9. 23:25
반응형

https://www.youtube.com/watch?v=o1TB9NWvG9w 

 

Variable Partition Multiprogramming

  • 초기에는 전체가 하나의 영역
  • 프로세스를 처리하는 과정에서 메모리 공간이 동적으로 분할
  • No internal fragmentation은 필요할때마다 전체에서 잘라서주기때문에 발생하지 않는다.

 

 배치전략 (Placement strategies)

  • First-fit(최초 적합) : 처음만나는 맞는 공간을 선택
    - 충분한 크기를 가진 첫 번째 partition을 선택
    - Simple and low overhead
    - 공간 활용률이 떨어질 수 있음 (처음 만나는애가 자기보다 큰 메모리를 만날 경우)

  • Best-fit(최적 적합) : process가 들어갈 수 있는 partition 중 가장 작은 곳 선택
    - 전체를 봐야해서 탐색시간이 오래 걸린다 overhead가 크다
    - 크기가 큰 partition을 유지 할 수 있음
    - 작은 크기의 partition이 많이 발생한다..

  • Worst-fit(최악 적합) : process가 들어갈 수 있는 partition 중 가장 큰 곳 선택
    - 탐색시간이 오래걸려 오버헤드가 큼
    - 작은 크기의 partitino이 많이 생기는걸 방지
    - 큰 공간의 partition확보가 어려움

  • Next-fit(순차 최초 적합)
    - 최초 적합 전랴과 유사
    - state table에서 마지막으로 탐색한 위치부터 탐색
    - 메모리 영역의 사용 빈도 균등화
    - 탐색이 줄어들어 Low overhead


각 시스템과 알고리즘에 따라서 전략적으로 선택해서 사용해야 한다.

 

하지만 아직 이 방법으로도 external fragmentation issue가 해결이 안됌

 

Coalescing holes(공간 통합)

  • 인접한 빈 영역을 하나의 partition으로 통합
    - Process가 memory를 release하고 나가면 수행
    - Low overhead가 적은일

Storage Compaction(메모리 압축)

  • High overhead
    - 이유는 모든 Process 재배치 -> Process를 중지해야됨
    - 많은 시스템 자원을 소비
    - 자주해주면 안되고 일정 기간이나 특정요청이 있을때 해주는게 좋음

메모리 압축

 

화이트보드에 내용을 적어보자

 

Comments