반응형

가상 기억장치

  • 보조기억장치 일부를 주기억장치처럼 사용하는 것. 현 운영체제에서 흔히 사용
  • 주기억장치 용량보다 큰 프로그램 실행을 위해 사용
  • 가상 기억장치에 저장된 프로그램 실행을 위해 가상 기억장치의 주소를 주기억장치 주소로 바꾸는 주소 변환작업(주소 매핑)이 필요
  • 블록 단위로 나누어 사용하므로 단편화 해결 가능
  • 기억장치 이용률 및 다중 프로그래밍 효율 향상
  • 운영체제 설계 복잡, 주소 변환 테이블 사용으로 기억장소 낭비

가상 기억장치 구현 기법

   
페이징
(Paging)
기법
 - 가상 기억장치의 프로그램과 주기억장치 영역을 동일한 크기로 나눠 프로그램(페이지)을 주기억장치 영역(페이지 프레임)에 적재시켜 실행
 - 외부 단편화는 없으나 내부 단편화 발생 가능
 - 페이지 맵 테이블 필요
세그먼테이션
(Segmentation)
기법
 - 가상 기억장치의 프로그램을 다양한 크기의 논리적 단위로 나누어 주기억장치에 적재시켜 실행
 - 프로그램을 배열, 함수 등 논리적 크기로 나눈 단위를 세그먼트라 하며, 세그먼트는 고유한 이름과 크기를 가짐
 - 다른 세그먼트의 영역 침범할 수 없으며, 이를 위해 기억장치 보호키(Storage Protection Key)가 필요
 - 내부 단편화는 없으나 외부 단편화 발생
 - 세그먼트 맵 테이블 필요

주소 변환

논리적 가상주소를 물리적 실기억주소로 변환하는 것. 주소 사상 또는 주소 매핑(Mapping)이라고 함

페이지 교체 알고리즘

페이지 부재 발생 시 가상 기억장치의 필요한 페이지를 주기억장치에 적재할 때, 주기억 장치의 모든 페이지 프레임이 사용중일 경우 교체할 페이지 프레임을 결정하는 기법.

   
OPT
(OPTimal Replacement,
최적 교체)
 - 앞으로 오랫동안 사용하지 않을 페이지를 교체하는 기법
 - 각 페이지의 호출 순서와 참조 상황을 예측해야 하므로 실현 가능성 희박
FIFO
(First In First Out)
 - 페이지가 주기억장치에 적재 시 시간을 기억하여, 가장 오래 있었던 페이지를 교체하는 기법
 - 이해 및 설계가 간단
 - 페이지 프레임 수가 많으면 페이지 부재의 수가 줄어드는 것이 일반적이나, 페이지 프레임 수를 증가시킬수록 페이지 부재가 많이 일어나는 벨레이디의 모순(Belady's Anomaly) 현상 발생
LRU
(Least Recently Used)
 - 최근 오랫동안 사용하지 않은 페이지를 교체하는 기법
 - 페이지별 계수기나 스택을 두어 가장 오래 전에 사용된 페이지를 교체
LFU
(Least Frequently Used)
 - 사용 빈도가 가장 적은 페이지를 교체하는 기법
 - 프로그램 실행 초기 많이 사용된 페이지가 이후 사용되지 않아도 프레임 차지 가능
NUR
(Not Used Recently)
 - 최근에 사용하지 않은 페이지를 교체하는 기법
 - 최근 사용 여부를 확인하기 위해 페이지 별 참조 비트(Reference Bit)와 변형 비트(Modified Bit, Dirty Bit), 2개의 비트가 사용
 - 참조 비트오 변형 비트의 값에 따라 교체 순서 결정

SCR
(Second Chance Replacement)
 가장 오랫동안 주기억장치에 있던 페이지 중 자주 사용되는 페이지의 교체를 방지하기 위한 기법, FIFO 기법의 단점을 보완

가상기억장치 기타 관리 사항

페이지 크기

   
페이지 크기가
작을 경우
 - 페이지 단편화 감소, 페이지를 주기억장치로 이동하는 시간 감소
 - 프로세스 수행에 필요 내용만 적재, Locality(국부성)에 일치하므로 기억장치 효율 증가
 - 페이지 맵 테이블 크기 증가, 매핑 속도 감소
 - 디스크 접근 횟수의 증가로 전체적인 입 · 출력 효율성 증가
페이지 크기가
클 경우
 - 페이지 맵 테이블 크기 감소, 매핑 속도 증가
 - 디스크 접근 횟수 감소로 전체적인 입 · 출력 효율성 증가
 - 페이지 단편화 증가, 페이지를 주기억장치로 이동하는 시간 증가
 - 프로그램 수행에 불필요한 내용도 적재

국부성(Locality, 구역성)

  • 실행중인 프로세스가 주기억장치를 참조 시 일부 페이지만 집중적으로 참조하는 성질 이론
  • 스래싱 방지를 위한 워킹 셋 이론의 기반
  • 프로세스가 집중적으로 사용하는 페이지를 알아내는 방법, 가상 기억장치 관리의 이론적 근거
  • 캐시 메모리 시스템의 이론적 근거
  • Locality 종류
   
시간 구역성
(Temporal Locality)
 - 프로세스가 실행되며 한 페이지를 일정시간 집중 액세스하는 현상
 - 시간 구역성이 이루어지는 기억장소 : Loop(반복, 순환), 스택(Stack), 부프로그램(Sub Routine), Counting(1씩 증감), Totaling(집계)에 사용되는 변수(기억장소)
공간 구역성
(Spatial Locality)
 - 프로세스 실행 시 일정 위치의 페이지를 집중 액세스하는 현상
 - 공간 구역성이 이루어지는 기억장소 : 배열 순회(Array Traversal), 순차적 코드의 실행, 프로그래머들이 관련된 변수(데이터를 저장할 기억장소)들을 서로 근처에 선언하여 할당되는 기억장소, 같은 영역에 있는 변수를 참조할 때 사용

워킹 셋 / 페이지 부재

워킹 셋(Working Set)

  • 프로세스가 일정 시간 자주 참조하는 페이지의 집합
  • 데닝(Denning)이 제안한 모델, 프로그램의 Locality(구역성) 특징을 이용
  • 자주 참조되는 워킹 셋을 주기억장치에 상주시켜 페이지 부재 및 페이지 교체 현상 줄임
  • 워킹 셋은 시간에 따라 바뀐다

페이지 부재

프로세스 실행 시 페이지가 주기억장치에 없는 현상

페이지 부재 빈도 (PFF : Page Fault Frequency)

페이지 부재 발생 횟수

페이지 부재 빈도 방식

페이지 부재율(Page Fault Rate)에 따라 주기억장치의 페이지 프레임 수를 조절하여 부재율을 적정 수준으로 유지

스래싱(Thrashing)

  • 프로세스 처리 시간보다 페이지 교체 시간이 많아지는 현상
  • 다중 프로그래밍 및 가상 기억장치 사용 시스템에서 프로세스 수행 중 페이지 부재가 자주 발생하여 나타나는 현상으로 전체 시스템 성능 저하
  • 다중 프로그래밍의 정도 향상에 따라 CPU 이용률이 높아지나 특점 시점이후 스래싱 발생 및 CPU 이용률 급감

CPU 이용률을 증가 및 스래싱 방지법

  • 다중 프로그래밍 정도 적정으로 유지
  • 부족 자원 증설
  • 일부 프로세스 중단
  • 페이지 부재 빈도(Page Fault Frequency) 조절
  • Working Set 유지
  • 적정 프레임 수 제공

디스크 스케줄링

  • 디스크 상 여러곳의 데이터에 액세스하기 위해 디스크 헤드가 움직이는 경로를 결정하는 기법
  • 디스크 스케줄링의 목적 : 처리량 최대화, 평균 응답 시간 최소화, 응답 시간 편차 최소화
   
FCFS
(First Come
First Service)
 - 디스크 대기 큐에 가장 먼저 들어온 트랙을 먼저 서비스 하는 기법
 - 들어온 순서대로 서비스하므로 더 높은 우선순위 요청에 의해 순서가 바뀌지 않아 공평성 보장
SSTF
(Shortest Seek Time First)
 - 탐색 거리가 가장 짧은 트랙 요청을 먼저 서비스하는 기법
 - FCFS보다 처리량이 많고, 평균 탐색 시간이 짧음
 - 탐색 패턴 편중으로 안쪽이나 바깥쪽 트랙이 가운데보다 서비스를 덜 받는 경향, 헤드에서 먼 요청은 기아 상태 발생 가능
 - 일괄 처리 시스템에 유용
SCAN  - SSTF의 탐색 시간 편차 해소를 위한 기법
 - 헤드의 위치에서 진행 방향 결정 시, 탐색 거리가 짧은 순서로 해당 방향의 모든 요청 서비스 후 역방향의 요청 서비스
C-SCAN
(Circular SCAN)
 - 항상 바깥쪽에서 안쪽으로 움직이며 가장 짧은 거리를 갖는 요청 서비스 기법
 - 헤드가 트랙 바깥쪽에서 안쪽으로 한 방향으로만 움직이며 끝까지 서비스 후, 가장 바깥쪽으로 이동 후 다시 안쪽으로 요청 서비스
N-Step
SCAN
 SCAN기법의 무한 대기 발생 가능성 제거. 특정 방향 진행 시작 시 대기중이던 요청만 서비스하고, 진행 도중 도착한 요청은 다음의 반대 방향 때 서비스
에션바흐
(Eschenbach)
 - 부하가 매우 큰 항공 예약 시스템을 위해 개발
 - 탐색 시간과 회전 지연 시간을 최적화하기 위한 기법
 - 헤드가 C-SCAN과 같이 움직이며, 모든 실린더는 전체 트랙이 한 바퀴 회전할 동안 서비스 받음
SLTF
(Shortest Latency Time First)
 - SLTF는 섹터 큐잉(Sector Queuing)이라고 하며, 회전 시간의 최적화를 위해 구현된 기법
 - 디스크 대기 큐의 요청을 섹터 위치에 따라 재정렬, 가장 가까운 섹터를 먼저 서비스
 - 헤드 이동이 없는 고정 헤드장치인 드럼과 같은 장치에서 사용
LOOK  SCAN기법에서 진행 방향의 마지막 요청 서비스 후 해당 방향 끝이 아닌 역방향으로 진행
반응형

+ Recent posts