본문 바로가기

정보처리기사 (필기)/4. 프로그래밍 언어 활용

[정보처리기사] 4-6. 기억장치 관리

1. 기억장치 관리 전략

  • 한정된 주기억장치의 공간을 효율적으로 사용하기 위함

1-1. 반입 전략 (Feth) 

  • 언제 주기억장치로 적재할 것인지 결정하는 전략
  • 요구 반입 (Demand Feth) : 참조를 요구할 때 적재하는 방법
  • 예상 반입 (Anticipatory Feth) : 데이터를 미리 예상하여 적재하는 방법

1-2. 배치 전략 (Placement)

  • 새로 반입되는 프로그램이나 데이터를 어디에 위치시킬 것인지 결정하는 전략
  • 초 적합 : 빈 영역 중 첫번째 영역에 배치
  • 적 적합 : 단편화를 가장 작게 남기는 분할 영역에 배치
  • 악 적합 : 단편화를 가장 많이 남기는 분할 영역에 배치
  • 최적악

1-3. 교체 전략 (Replacement)

  • 어느 영역을 교체할 것인지 결정하는 전략
  • FIFO, FRU, LFU, NUR, OPT,SCR

2. 주기억장치 할당(Allocation)의 개념

  • 프로그램이나 테이터를 실행시키기 위해 주기억장치에 어떻게 할당할 지 정함

연속 할당 기법 : 프로그램을 주기억장치에 연속으로 할당하는 기법

  • 단일 분할 할당 기법 : 오버레이 스와핑
  • 다중 분할 할당 기법 : 고정(정적) 분할 할당 기법,  가변(동적) 분할 할당 기법

분산 할당 기법 : 프로그램을 특정 단위의 조각으로 나누어 할당하는 기법

  • 페이징 기법
  • 세그먼테이션 기법

3. 가상기억장치

  • 용량이 작은 주기억장치를 마치 큰 용량을 가진 것처럼 사용하는 기법
  • 주기억장치의 이용률과 다중 프로그래밍 효율을 높일 수 있음
  • 주소 변환 작업 필요
  • 연속할당 방식의 단편화 해결

4. 페이징 기법

  • 주기억장치의 영역을 동일한 크기로 나눈 후 나눠진 프로그램을 동일하게 나눠진 주기억장치의 영역(페이지프레임)에 적재시켜 실행하는 기법
  • 일정한 크기로 나눈 단위를 페이지라고 함
  • 페이지크기로 일정하게 나누어진 주기억장치의 단위를 페이지 프레임이라고 함
  • 외부 단편화는 발생하지 않지만 내부 단편화 발생
  • 페이지 맵 테이블 필요

5. 세그먼테이션 기법

  • 다양한 크기의 논리적인 단위로 나는 후 주기억장치에 적재시켜 기억공간을 절약하기 위해 사용
  • 논리적인 크기로 나눈 단위를 세그먼트라고 하며, 각 세그먼트는 고유한 이름과 크기를 가짐
  • 사용자의 관점을 보존하는 기억장치 기법
  • 세그먼트 맵 테이블 필요
  • 기억장치 보호키 필요
  • 내부단편화는 발생하지 않으나 외부단편화 발생

6. 페이지 교체 알고리즘

  • FIFO (First In First Out) : 선입선출
  • LRU (Least Recently Used) : 가장 오래전에 사용된 페이지 교체
  • LFU (Least Frequently Used) : 사용 빈도가 가장 적은 페이지 교체
  • OPT (OPTimal replacement) : 앞으로 가장 오랫동안 사용하지 않을 페이지 교체
  • NUR (Not Used Recently) : 최근에 사용하지 안은 페이지 교체
  • SCR (Second Chance Replacement) : 자주 사용되는 페이지 교체를 방지하기 위한 것, FIFO의 단점 보완

7. 페이지 크기

▶ 페이지 크기 작을 경우

  • 페이지 단편화 감소
  • 주기억장치로 이동하는 시간 줄어든다
  • 효율적인 워킹 셋 유지
  • 기억장치 효율 높아짐
  • 페이지 맵 테이블 커짐, 매핑 속도 늦어짐
  • 전제적인 입출력 시간 늘어남

▶ 페이지 클 경우

  • 페이지 단편화 증가
  • 주기억장치로 이동한시간 늘어남
  • 페이지 맵 테이블 크기 작아짐, 매핑속도 빨라짐
  • 전체적인 입출력 효율 증가

8. Locality (지역성, 구역성)

  • 일부 페이지만 집중적으로 참조하는 성잘
  • 스래싱을 방지하기 위한 워킹셋 이론의 기반
  • 데닝 교수에 의해 개념 증명

▶ 시간적 구역성

  • 가까운 시간 내에 계속 참조
  • 루프, 스택, 서브루틴, 카운팅, 집계
  • 루스서카집

▶ 공간적 구역성

  • 그 근처 페이지를 계속 참조할 가능성 높음
  • 배열, 순차적 코드

9. 워킹셋

  • 자주 참조하는 페이지의 집합
  • 페이지 부재 및 교체현상 줄어들어 프로세스의 기억장치 사용 안정됨
  • 워킹셋은 시간에 따라 변경됨

10. 페이지 부재 빈도(PFF: Page Fault Frequency) 방식

  • 프로세스 실행 시 참조할 페이지가 주기억장치에 없는 현상,
  • 페이지 부재 빈도(PFF; Page Fault Frequency)는 페이지 부재가 일어나는 횟수를 의미 

 11. 스래싱

  • 프로세스의 처리 시간보다 페이지 교체에 소요되는 시간이 더 많아지는 현상

스래싱 현상 방지 방법

  • 다중 프로그래밍의 정도를 적정 수준으로 유지
  • 워킹 셋 유지
  • 임계치 예상해 운영