240213 TIL #320 메모리 관리 기법 / 메모리 단편화

김춘복·2024년 2월 13일
0

TIL : Today I Learned

목록 보기
320/543
post-custom-banner

230706 Today I Learned

오늘은 메모리 관리기법에 대해 공부해보았다.


메모리 관리 기법

운영체제가 컴퓨터 시스템에서 사용되는 물리적인 메모리(RAM)를 효율적으로 할당하고 관리하는 기법을 말한다.

  • 메모리가 고가의 자원이고 시스템에서 중요한 역할을 수행하기 때문에 운영체제의 역할 중 큰 부분을 차지한다.

반입기법

주기억장치(메모리)에 적재할 다음 프로세스의 반입시기(When)를 결정하는 기법

  1. 요구반입기법 : 다음에 실행될 프로세스가 참조 요구가 있을 때 적재한다.

  2. 예상반입기법 : 시스템의 요구를 예측해 미리 메모리에 적재하는 방법. 요구되는 페이지 이외 다른 페이지도 함께 적재한다.

배치기법

디스크에 있는 프로세스를 주기억장치의 어느 위치(Where)에 저장할 지 결정하는 기법

  1. 최초 적합 First Fit

    프로세스가 적재될 수 있는 가용 공간 중에서 첫 번째 분할에 할당하는 방식

  2. 최적 적합 Best Fit

    가용 공간 중에서 크기가 가장 비슷한 공간을 선택해 프로세스를 적재하는 방식. 공백이 최소화 되는 장점이 있다.

  3. 최악 적합 Worst Fit

    가용 공간 중에서 가장 큰 공간에 할당하는 방식

할당기법

실행해야 할 프로세스를 주기억장치에 어떤 방법(How)으로 할당할 것인지 결정하는 기법

  1. 연속할당기법

    실행을 위한 각 프로세스를 주기억장치 공간 내에서 인접되게 연속해서 저장하는 방법.

  • 단일 분할 할당 기법 : 오버레이, 스와핑
  • 다중 분할 할당 기법 : 고정 분할 할당 기법, 동적 분할 할당 기법
  1. 분산 할당 기법

    하나의 프로세스를 여러 조각으로 나누어 주기억장치 공간 내에 분산하여 배치하는 기법. 주로 가상기억장치에 사용한다.

  • 페이징, 세그먼테이션, 페이징/세그먼테이션 기법이 있다.
    (이 기법들에 대해서는 추후 따로 TIL을 파서 정리할 예정)

교체기법

재배치 기법으로 주기억장치에 있는 프로세스 중 어떤 프로세스(Who)를 제거할지 결정하는 기법

  1. FIFO : 가장 먼저 들어와 가장 오래 있던 페이지를 교체

  2. LRU : Least Recently Used. 가장 오랫동안 사용되지 않은 페이지를 교체. 지역성의 원리에 따라 최근 참조된 페이지는 앞으로도 그럴 가능성이 높다는 전제로 구현된 알고리즘이다.

  3. LFU : Least Frequently Used. 사용 횟수를 확인해 참조 횟수가 가장 적은 페이지를 교체.

  4. OPT : OPTimal Replacement. 앞으로 가장 오랫동안 사용하지 않을 페이지를 교체. 가장 효율적.

  5. NUR : Not Used Recently. LRU와 비슷. 최근 사용하지 않은 페이지를 교체

  6. SCR : Second Chance Replacement. 가장 오래 주기억장치에 있던 페이지 중 자주 사용되는 페이지의 교체를 방지한다. FIFO의 단점을 보완한다.


메모리 단편화

분할된 주기억장치에 프로세스를 할당하고 반납하는 과정에서 사용되지 못하고 낭비되어 발생한다.

  • 내부 단편화
    분할된 공간에 프로세스를 적재한 후 남은 공간이다.
    고정분할할당방식이나 페이징기법 사용 시 발생한다.
    Slav Allocator, 통합-압축으로 해결한다.

  • 외부 단편화
    할당된 크기가 프로세스 크기보다 작아서 사용하지 못하는 공간이다.
    가변분할할당방식이나 세그먼테이션 기법 사용 시 발생한다.
    버디메모리 할당, 통합-압축으로 해결한다.

profile
Backend Dev / Data Engineer
post-custom-banner

0개의 댓글