상세 컨텐츠

본문 제목

[정보처리기사 실기 공부] 메모리 관리

정보처리기사 공부지식

by 소란한소란 2024. 6. 4. 21:15

본문

728x90

운영 체제의 메모리 관리 이해

메모리 관리는 컴퓨터의 기본 메모리 관리를 담당하는 운영 체제의 중요한 기능입니다. 여기에는 효율적인 메모리 할당, 할당 해제, 재할당을 위한 전략이 포함되어 최적의 성능과 활용도를 보장합니다. 


기억장치 관리 전략

  • 개념
    • 보조기억장치의 프로그램이나 데이터를 주기억장치에 적재시키는 시기, 위치 등을 지정하여 한정된 주기억장치의 공간을 효율적으로 사용한다.

반입(Fetch)전략 (★)

  • 보조기억장치에 보관 중인 프로그램이나 데이터를 언제 주기억장치로 적재할 것인지를 결정하는 전략
요구 반입 (Demand) 예상 반입 (Ariticipatory)
실행 중인 프로그램이 특정 프로그램이나 데이터 등의 참조를 요구할 때 적재하는 방법 실행 중인 프로그램에 의해 참조될 프로그램이나 데이터를 미리 예상하여 적재하는 방법

 

배치(Placement) 전략 (★)

  • 새로 반입되는 프로그램이나 데이터를 주기억장치의 어디에 위치시킬 것인지를 결정하는 전략
최초 적합 (First Fit) 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 첫 번째 분할 영역에 배치
최적 적합 (Best Fit) 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 단편화가 가장 작은 분할 영역에 배치
최악 적합 (Worst Fit)  프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역중에서 단편화가 가장 큰 분할 영역에 배치

 

배치 전략 예시

 

배치 전략의 예를 설명하기 위해 16K 프로그램을 할당해야 하는 메모리 상태 테이블을 고려해 보겠습니다. 우리는 First-Fit, Best-Fit, Worst-Fit의 세 가지 일반적인 배치 전략을 사용합니다. 다음은 사용 가능한 메모리 블록을 보여주는 메모리 상태 테이블입니다.

영역 번호 시작 주소  크기
1 0K 20K
2 20K 15K
3 35K 30K
4 65K 10K
5 75K 25K

 

최적 배치 전략

 

First-Fit 전략은 프로그램을 수용할 수 있을 만큼 큰 첫 번째 블록을 할당합니다.

16K 프로그램은 첫 번째 블록(20K)을 검사하여 적합한지 찾습니다.

프로그램은 첫 번째 블록에 할당됩니다.

첫 번째 블록의 남은 공간은 20K - 16K = 4K입니다.

 

First-Fit 이후 업데이트된 메모리 상태 테이블

영역 번호 시작 주소  크기
1 0K 4K
2 20K 15K
3 35K 30K
4 65K 10K
5 75K 25K

 

최적의 배치 전략


Best-Fit 전략은 프로그램을 수용할 수 있을 만큼 충분히 큰 가장 작은 블록을 할당합니다.

16K 프로그램은 모든 블록을 검사하고 가장 작은 적합한 블록이 다섯 번째 블록(25K)임을 찾습니다.

프로그램은 5번째 블록에 할당됩니다.

다섯 번째 블록의 남은 공간은 25K - 16K = 9K입니다.

 

Best-Fit 이후 업데이트된 메모리 상태 테이블

영역 번호 시작 주소  크기
1 0K 20K
2 20K 15K
3 35K 30K
4 65K 10K
5 75K 9K

 

최악의 배치 전략


Worst-Fit 전략은 프로그램을 수용할 만큼 충분히 큰 가장 큰 블록을 할당합니다.

16K 프로그램은 모든 블록을 검사하여 가장 큰 적합한 블록이 세 번째 블록(30K)임을 찾습니다.

프로그램은 세 번째 블록에 할당됩니다.

세 번째 블록의 남은 공간은 30K - 16K = 14K입니다.

최악 적합 이후 업데이트된 메모리 상태 테이블

영역 번호 시작 주소  크기
1 0K 20K
2 20K 15K
3 35K 14K
4 65K 10K
5 75K 25K

 

교체(Replacement) 전략 (★)

  • 주 기억장치의 모든 영역이 이미 사용 중인 상태에서 새로운 프로그램이나 데이터를 주기억장치에 배치하려 할 때, 이미 사용되고 있는 영역 중에서 어느 영역을 교체하여 사용할 것인지를 결정하는 전략 
  • 종류 : FIFO, OPT, LRU, LFU, NUR, SCR

주기억장치 할당 기법

  • 단일 분할 할당 기법
    • 주기억장치의 사용 시 한 순간에는 오직 한 명의 사용자만이 주기억장치의 사용자 영역을 사용하는 기법
    • 주기억장치보다 큰 프로그램을 실행하기 위해 오버레이 기법과 스와핑 기법을 사용
오버레이(Overlay) 보조기억장치에 저장된 프로그램을 여러 개의 조각으로 분할한 후 필요한 조각을 차례로 주기억장치에 적재시켜 프로그램을 실행
스와핑 (Swapping) 하나의 프로그램 전체를 주기억장치에 할당하여
사용하다 필요하다 싶으면 필요에 따라
다른 프로그램과 교체하는 기법

 

  • 다중 분할 할당 기법
    • 고정 분할 할당 기법
      • 주기억장치의 사용자 영역을 여러 개의 고정된 크기로 분할하고, 준비상태 큐에서 준비 중인 프로그램을 각 영역에 할당하여 수행하는 기법
    • 가변 분할 할당 기법
      • 고정 분할 할당 기법의 단편화를 줄이기 위한 기법

단편화

  • 개념
    • 주기억장치에 프로그램을 할당하고 반납하는 과정에서 발생하는 사용되지 않는 작은 조각 공간

단편화의 종류

  • 내부 단편화
    • 주기억장치 공간이 프로그램보다 커서 프로그램의 사용 공간을 할당 후 사용되지 않고 남아있는 공간
  • 외부 단편화
    • 주기억장치 공간보다 프로그램이 커서 프로그램이 할당될 수 없어 사용되지 않고 남아있는 공간

단편화 계산 예시

 

할당 전 가상 메모리 상태

영역 번호 시작 주소  크기
1 0K 20K
2 20K 15K
3 35K 30K
4 65K 10K
5 75K 25K
  • 다음 프로그램을 할당해야 한다고 가정해 보겠습니다.
    • 프로그램 A: 12K
    • 프로그램 B: 28K
    • 프로그램 C: 8K
  • First-Fit 배치 전략 사용
    • 프로그램 A(12K) 할당
      • 블록 1(20K)에 맞습니다.
      • 블록 1의 남은 공간: 20K - 12K = 8K.
    •  프로그램 B(28K) 할당
      • 블록 3(30K)에 맞습니다.
      • 블록 3의 남은 공간: 30K - 28K = 2K.
    •  프로그램 C(8K) 할당
      • 블록 2(15K)에 맞습니다.
      • 블록 2의 남은 공간: 15K - 8K = 7K.

할당 후 업데이트된 메모리 상태

영역 번호 시작 주소  사이즈 할당된 프로그램 남은 공간
1 0K 20K A (12K) 8K
2 20K 15K C (8K) 7K
3 35K 30K B (28K) 2K
4 65K 10K 무료 10K
5 75K 25K 무료 25K

 

조각화 계산

  • 내부 단편화
    • 할당된 메모리가 필요한 메모리보다 크면 내부 조각화가 발생하여 할당된 블록 내에 사용되지 않은 공간이 남습니다.
      • 블록 1: 8K 남음(20K - 12K)
      • 블록 2: 7K 남음(15K - 8K)
      • 블록 3: 2K 남음(30K - 28K)
        • 총 내부 조각화 = 8K + 7K + 2K = 17K 
  • 외부 조각화
    • 외부 조각화는 사용 가능한 메모리가 작은 블록으로 분산되어 더 큰 프로그램을 할당할 수 없을 때 발생합니다.
      • 블록 4: 10K 무료
      • 블록 5: 25K 무료
    •  예를 들어 30K가 필요한 새 프로그램을 할당하려고 하면 더 작은 블록(10K 및 25K)으로 조각화되어 있기 때문에 총 35K의 여유 공간이 있어도 할당할 수 없습니다.

      • 총 외부 조각화 = 모든 여유 공간의 합계 = 10K + 25K = 35K
  • 요약
    • 내부 단편화: 17K(할당된 블록 내 사용되지 않은 공간)
    • 외부 조각화: 35K(사용 가능하지만 연속되지 않은 메모리 블록)

 

단편화 해결 방법

  • 통합(Coalescing) 기법
    • 인접해 있다면 두 개의 빈 분할 공간을 하나로 통합하여 효율성을 높이는 작업
  • 압축(Compaction) 기법
    • 주기억장치 내 분산되어 있는 단편화 공간들을 통합하여 하나의 커다란 빈 공간을 만드는 작업
    • 가비지 컬렉션(Garbage Collection) 작업이라고도 함
  • 재배치 기법(Relocation)
    • 압축을 실행하여 이 과정에서 프로그램의 주소를 새롭게 지정해주는 기법

효율적인 메모리 관리는 컴퓨팅 시스템의 성능과 안정성에 필수적입니다. 이러한 전략과 기술을 이해하고 구현함으로써 시스템은 메모리 사용을 최적화하고 조각화를 줄이며 원활한 작동을 보장할 수 있습니다.

2024년에 정보처리기사 따기 위해 노력하는 모두에게 행운을 빕니다!

 

728x90

관련글 더보기