[OS] 메모리 관리 요약

2021. 6. 13. 18:38IT

SMALL

1. 메모리 관리 정책

1. 적재 정책(Fetch Policy)

: 디스크에서 메모리로 프로세스를 언제 가져와야 할지를 정하는 것 (반입 시기 결정)

 1. 요구 적재 : 운영체제나 시스템 프로그램, 사용자 프로그램 등 참조 요청에 따라 메모리를 적재하는 방법

 2. 예상 적재 : 시스템의 요청을 미리 예측하여 메모리에 적재하는 방법

2. 배치 정책(Placement Policy)

: 디스크에서 메모리로 가져온 프로세스를 어느 위치에 저장할 것인지 정하는 것

3. 대치 정책(Replacement Policy)

: 메모리가 충분하지 않을 때, 현재 메모리에 적재된 프로세스 중 제거할 프로세스를 결정 및 교체하는 방법

 

 

2. 메모리의 구조와 매핑

메모리의 주소

1. 논리적 주소

  • 프로그래머가 프로그래밍에 사용하는 공간

2. 물리적 주소

  • 실제 데이터나 프로그램을 저장하는 공간 

 

프로세서(CPU) ---------------> MMU(고정 분할, 동적 분할, 페이징, 세그멘테이션) ----------------> 메모리

                      논리적 주소                                                                     물리적 주소

 

동적 적재

  • 바인딩을 최대한 늦춰 실행 직전에 주소 확정하여 메모리 효율적으로 운영 방법
  • 메인 프로그램만 먼저 메모리에 적재하여 수행

 

중첩(오버레이)

  • 실행하려는 프로그램이 메모리보다 클 때는, 당장 필요하지 않은 프로그램의 일부는 중첩으로 설정

 

내부 단편화

  • 50MB에 30MB 프로세스를 넣고, 20MB 공간이 남았는데 남은 공간은 사용하지 못함

외부 단편화

  • 메모리에 남아 있는 공간 100MB(50MB + 50MB)
  • C라는 작업이 70MB일때, 일어나는 경우
  • 작업보다 많은 공간이 남아 있더라도 실제로 그 작업을 받아 들이지 못하는 경우

 

3. 메모리 할당 방법

1. 연속 메모리 할당 

: 프로그램을 메모리 공간 한 곳에 연속적으로 할당하는 방법

  1.  고정 분할 기법 
    1. 메모리 영역을 여러 개의 고정된 크기로 분할하여 프로세스에 제공하는 기법
    2. 내부/외부 단편화 초래
  2.  가변 분할 기법
    1. 고정된 경계를 없애고 각 프로세스가 필요한 만큼 메모리 할당
    2. 운영체제가 메모리의 어느 부분을 사용하고 사용할 수 있는지 알 수 없기 때문에 메모리 분할 테이블 필요함

 

2. 분산(불연속) 메모리 적재 방법

  • 페이징

- 작업을 크기가 동일한 페이지로 나눠 처리하는 방법

- 프로세스를 크기가 동일한 페이지로 나눔

- 메인 메모리를 프레임 이라는 고정 크기로 나눠서 프레임에 페이지를 적재함

 

  • 세그멘테이션

-  프로세스 관점을 지원하여 메모리를 크기가 변할 수 있는 세그먼트로 나누는 것

 

 

4. 사용 가능 공간 메모리 배치 방법

  1. 최초 적합 방법
    1. 프로세스를 사용 가능 공간 중 충분히 큰 첫번째 공간에 할당
    2. 공간 활용률 떨어질 수 있는 단점, 공간 빨리 찾기 가능
  2. 최적 적합 방법
    1. 프로세스를 사용 가능 공간 중에서 들어갈 수 있는 가장 작은 공간에 할당함
    2. 사용 공간 이용률은 좋으나 할당 과정에 많은 시간 소요할 수 있음
  3. 최악 적합 방법
    1. 프로세스를 가장 큰 사용 가능 공간에 할당함
    2. 전체 검색해야 함.

 

LIST