Challenges/정보처리기사

[정보처리기사]4.프로그래밍 언어 활용/SW 운영체제의 활용/가상기억장치

뚱요 2022. 7. 4. 02:22
반응형

가상기억장치

1. 가상기억장치 

- 보조기억장치(하드디스크)의 일부를 주기억장치처럼 사용하는 것으로, 용량이 작은 주기억장치를 마치 큰 용량을 가진 것처럼 사용하는 기법

- 주기억장치의 용량보다 큰 프로그램을 실행하기 위해 사용

- 주기억장치의 이용률과 다중 프로그래밍 효율을 높일 수 있음

- 가상기억장치에 저장된 프로그램을 실행하려면 가상기억장치의 주소를 주기억장치의 주소로 바꾸는 주소 변환 작업 필요

- 블록 단위로 나누어 사용하므로 연속 할당 방식의 단편화 해결 가능

2. 분산 할당기법

 (1) 페이징(Paging) 기법 - 내부 단편화 발생

- 가상기억장치에 보관되어 있는 프로그램과 주기억장치의 영역을 동일한 크기로 나눈 후 나눠진 프로그램(페이지)을 동일하게 나눠진 주기억장치의 영역(페이지 프레임)에 적재시켜 실행하는 기법

페이지(Page):일정한 크기로 나눈 단위
 페이지 프레임(Page Frame):페이지 크기로 일정하게 나누어진 주기억장치의 단위 
페이지 맵 테이블(Page Map Table): 주소 변환을 위해 페이지의 위치 정보를 갖음

- 외부 단편화는 발생하지 않으나, 내부 단편화(분할 크기 > 작업 크기) 발생 

- 페이지 맵 테이블(Page Map Table)  사용으로 비용 증가, 처리 속도 감소

(1.1) 페이지 크기 

페이지 크기가 작은 경우를 기억하고 페이지 크기가 큰경우는 반대로 생각하면 됨

페이지 크기가 작을 경우...

-페이지 단편화가 감소, 한 개의 페이지를 주기억장치로 이동하는 시간이 줄어듬

-불필요한 내용이 주기억장치에 적재될 확률이 적으므로 효율적인 워킹 셋 유지 가능

-지역성(Locality)에 더 일치할 수 있기 때문에 기억장치 효율 높아짐

-페이지 정보를 갖는 페이지 맵(사상) 테이블의 크기가 커지고, 매핑 속도가 늦어짐

-디스크 접근 횟수가 많아져서 전체적인 입출력 시간은 늘어남(효율성 감소)

(1.2) Locality(지역성, 구역성)  

- 프로세스가 실행되는 동안 주기억장치를 참조할 때 일부 페이지만 집중적으로 참조하는 성질이 있다는 이론

- 스래싱(Thrashing)을 방지하기 위한 '워킹 셋' 이론의 기반(참조영역 지역화)

- 데닝(Denning) 교수에 의해 구역성의 개념이 증명됐으며, 캐시 메모리 시스템의 이론적 근거

  • 시간적 구역성(Temporal Locality) 한 번 참조한 페이지는 가까운 시간 내에 계속 참조할 가능성이 높음
    e.g. Loop(루프), Stack(스택), Subroutine(서브루틴), Counting(카운팅), Totaling(집계)   #루스서카집
  • 공간적 구역성(Spatial Locality) 어느 하나의 페이지를 참조하면 그 근처의 페이지를 계속 참조할 가능성이 높음
    e.g. Array(배열), Sequential Code(순차적 코드)

(2) 세그먼테이션(Segmentation) 기법  - 외부 단편화 발생

- 가상기억장치에 보관되어 있는 프로그램을 변적인 크기의 논리적인 단위로 나눈 후 주기억장치에 적재시켜 기억공간을 절약하기 위해서 사용하는 실행시키는 방법

세그먼트(Segment): 논리적인 크기로 나눈 단위, 각 세그먼트는 고유한 이름과 크기를 가짐
세그먼트 맵 테이블(Segment Map Table): 주소 변환을 위해서 세그먼트가 존재하는 위치 정보를 갖음
압축: 서로 떨어져 있는 낭비 공간을 모아 하나의 큰 기억공간 만드는 작업
재배치 :기억장치 관리에서 단편화 해결위해 압축실행, 이과정에서 프로그램의 주소를 새롭게 지정

- 기억장치의 사용자 관점을 보존하는 기억장치 관리 기법

- 세그먼트 맵 테이블 사용

- 세그먼트가 주기억장치에 적재될 때 다른 세그먼트에게 할당된 영역을 침범할 수 없으며, 이를 위해 기억장치 보호키(Storage Protection Key)가 필요

- 내부 단편화는 발생하지 않으나, 외부 단편화(분할 크기 < 작업 크기) 발생 

단편화 크기  = Sum(Min(분할,작업))

2. 스래싱(Thrashing) 

- 프로세스의 처리 시간보다 페이지 교체에 소요되는 시간이 더 많아지는 현상  → 전체 시스템 성능 저하

- 중 프로그래밍(멀티 태스킹)의 정도가 높아짐에 따라 CPU의 이용률은 어느 특정 시점까지는 높아지지만, 다중 프로그래밍의 정도가 더욱 커지면 스래싱이 나타나고, CPU의 이용률은 급격히 감소

2.1 스래싱 방지 방법

-다중 프로그래밍의 정도를 적정 수준으로 유지

-페이지 부재 빈도(Page Fault Frequency)를 조절해 사용

- 페이지 부재가 일어나는 횟수
- 페이지 부재율에 따라 주기억장치에 있는 페이지 프레임의 수를 늘/줄여 페이지 부재율을 적정 수준 유지
페이지 부재(Page Fault): 프로세스 실행 시 참조할 페이지가 주기억장치에 없는 현상
프리페이징(Prepaging): 처음의 과도한 페이지 부재를 방지,필요할 것 같은 모든 페이지를 미리 한꺼번에 페이지 프레임에 적재
→ 기억장치에 들어온 페이지들 중에서 사용되지 않는 페이지가 많을 수도 있음

-워킹 (Working Set)을 유지

- 프로세스가 일정 시간 동안 자주 참조하는 페이지들의 집합
- 주기억장치에 상주시킴으로써 페이지 부재 및 페이지 교체 현상이 줄어들어 프로세스의 기억장치 사용이 안정됨
- 시간이 지남에 따라 자주 참조하는 페이지들의 집합이 변화하기 때문에 워킹 셋은 시간에 따라 변경됨
- 워킹셋에 속한 페이지 참조 -> 프로세스 기억장치 사용은 안정상태

-부족한 자원을 증설하고, 일부 프로세스를 중단시킴

 

 

[정보처리기사] 개정된 정보처리기사 필기 목차

 

[정보처리기사] 개정된 정보처리기사 필기 목차

 정처기 필기 100문제 중 각 챕터 당 20문제로 구성됩니다. 출판사 시나공의 정보처리기사 교재와 이전 기출문제들을 참고로 하여 간단히 키워드로요약하여 작성하였습니다. 각 중요도에 따라서

potato-potahto.tistory.com

반응형