기록공간

4-3-7장. 가상기억장치 기타 관리 사항 - A 본문

자격증공부/정보처리기사_필기

4-3-7장. 가상기억장치 기타 관리 사항 - A

입코딩 2020. 9. 19. 16:17
반응형

기상기억장치를 구현할 때 시스템 성능에 영향을 미치는 것들에는 어떤 것들이 있는지 알아보자.

 

페이지 크기

페이징 기법을 사용하면 프로그램을 페이지 단위로 나누게 되는데, 페이지의 크기에 따라 시스템이 미치는 영향이 크다. 페이지 크기에 따른 특징은 다음과 같다.

 

페이지 크기가 작을 경우

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

  • 불필요한 내용이 주기억장치에 적재될 확률이 적으므로 효율적인 워킹 셋을 유지할 수 있음

  • Locality에 더 일치할 수 있기 때문에 기억장치 효율이 높아짐

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

  • 디스크 접근 횟수가 많아져서 전체적인 입출력 시간은 늘어남

페이지 크기가 클 경우

  • 페이지 정보를 갖는 페이지 맵 테이블의 크기가 작아지고, 매핑 속도가 빨라짐

  • 디스크 접근 횟수가 줄어들어 전체적인 입출력의 효율성이 증가

  • 페이지 단편화가 증가되고, 한 개의 페이지를 주기억장치로 이동하는 시간이 늘어남

  • 프로세스(프로그램) 수행에 불필요한 내용까지도 주기억장치에 적재될 수 있음

Locality

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

 

  • 스레싱을 방지하기 위한 워킹 셋 이론의 기반이 됨

  • 프로세스가 집중적으로 사용하는 페이지를 알아내는 방법 중 하나로, 가상기억장치 관리의 이론적인 근거가 됨

  • 데닝 교수에 의해 구역성의 개념이 증명되었으며 캐시 메모리 시스템의 이론적 근거

  • Locality의 종류에는 시간 지역성과 공간 지역성이 있음

시간 지역성(Time Locality)

  • 시간 지역성은 프로세스가 실행되면서 하나의 페이지를 일정 시간 동안 집중적으로 액세스하는 현상

  • 한 번 참조한 페이지는 가까운 시간 내에 계속 참조할 가능성이 높음을 의미

  • 시간 지역성이 이루어지는 기억 장소 : 루프, 스택, 부 프로그램(Sub Routine), 카운팅, 집계(Totaling)에 사용되는 변수(기억장소)

공간 지역성(Spatial Locality)

  • 공간 지역성은 프로세스 실행 시 일정 위치의 페이지를 집중적으로 액세스하는 현상

  • 어느 하나의 페이지를 참조하면 그 근처의 페이지를 계속 참조할 가능성이 높음을 의미

  • 공간 지역성이 이루어지는 기억장소 : 배열 순회, 순차적 코드의 실행, 프로그램들이 관련된 변수들을 서로 근처에 선언하여 할당되는 기억장소, 같은 영역에 있는 변수를 참조할 때 사용

워킹 셋(Working Set)

워킹 셋은 프로세스가 일정 시간 동안 자주 참조하는 페이지들의 집합이다.

 

  • 데닝이 제안한 프로그램의 움직임에 대한 모델로, 프로그램의 Locality 특징을 이용

  • 자주 참조되는 워킹 셋을 주기억장치에 상주시킴으로써 페이지 부재 및 페이지 교체 현상이 줄어들어 프로세스의 기억장치 사용이 안정됨

  • 시간이 지남에 따라 자주 참조하는 페이지들의 집합이 변화하기 때문에 워킹 셋은 시간에 따라 변경됨

페이지 부재 빈도 방식

페이지 부재는 프로세스 실행 시 참조할 페이지가 주기억장치에 없는 현상이며, 페이지 부재 빈도는 페이지 부재가 일어나는 횟수를 의미한다.

 

  • 페이지 부재 빈도 방식은 페이지 부재율에 따라 주기억장치에 있는 페이지 프레임의 수를 늘리거나 줄여 페이지 부재율을 적정 수준으로 유지하는 방식

  • 운영체제는 프로세스 실행 초기에 임의의 페이지 프레임을 할당하고, 페이지 부재율을 지속적으로 감시하고 있다가 부재율이 상한선을 넘어가면 좀 더 많은 페이지 프레임을 할당하고, 부재율이 하한선을 넘어가면 페이지 프레임을 회수하는 방식을 사용 

프리페이징(Prepaging)

프리페이징은 처음에 과도한 페이지 부재를 방지하기 위해 필요할 것 같은 모든 페이지를 헌꺼번에 페이지 프레임에 적재하는 기법이다. 하지만 기억장치에 들어온 페이지들 중에서 사용되지 않는 페이지가 많을 수도 있다.

 

스래싱(Thrashing)

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

 

  • 다중 프로그래밍 시스템이나 가상기억장치를 사용하는 시스템에서 하나의 프로세스 수행 과정중 자주 페이지 부재가 발생함으로써 나타나는 현상으로, 전체 시스템의 성능이 저하됨

  • 다중 프로그래밍의 정도가 높아짐에 따라 CPU의 이용률은 어느 특정 시점까지 높아지지만, 다중 프로그래밍의 정도가 더욱 커지면 스래싱이 나타나고, CPU의 이용률은 급격히 감소하게됨

  • 스래싱 현상 방지 방법

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

    • 페이지 부재 빈도를 조절하여 사용

    • 워킹 셋을 유지

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

    • CPU 성능에 대한 자료의 지속적인 관리 및 분석으로 임계치를 예상하여 운영

반응형
Comments