[운영체제] Chapter8. 컴퓨터 시스템의 소개
Chapter8. 컴퓨터 시스템의 소개
1 가상 메모리의 이해
1-1 가상 메모리의 개념과 원리
- 각 프로그램에 실제 메모리 주소가 아닌 가상 메모리 주소를 주는 방법
- 메인 메모리보다 더 큰 저장 공간을 제공하는 방법이다.
- 사용자와 논리적 주소를 물리적으로 분리하여 사용자가 메인 메모리 용량을 초과한 프로세스에 주소를 지정해서 메모리를 제한 없이 사용할 수 있도록 하는 개념
- 메인 메모리의 제한된 용량과 중첩 사용 문제를 해결
2 요구 페이징
2-1 요구 페이징의 개념
- 프로그램을 실행하기 위해 프로그램의 일부만 메인 메모리에 적재하되, 순차적으로 작성되어 있는 프로그램의 포듈을 처리할 때 다른 부분은 실행하지 않는 특징을 이용
- 예외 처리 루틴이나 과도하게 공간을 확보하는 배열을 선언하고 모듈의 일부를 처리하는데 이용 가능
- 장점
- 프로그램 시작 시 적재 지연이 적다
- 다중 프로그래밍 정도를 증가 시키고 액세스하지 않은 페이지를 적재하지 않아 다른 프로그램들도 사용할 수 잇도록 메모리 절약
- 적은 수의 페이지를 읽기 때문에 초기 디스크 오버헤드가 적다
- 단점
- 페이지에 처음 액세스할 때 약간의 지연 발생
- 낮은 비용, 낮은 성능의 시스템에서 실행하는 프로그램은 페이지 대체를 지원하는 메모리 관리 장치가 없다.
- 페이지 교체 알고리즘을 포함하는 메모리 관리가 복잡
2-2 페이지 부재
- 프로세스가 메모리에 적재되지 않은 페이지에 액세스하려고 한다면 페이지 부재가 발생
- 요구된 페이지를 메모리에 읽어 들여 원래 메모리에 저장되어 있었던 것처럼 프로세스를 다시 시작하여 적재하지 않은 프로세스를 수행할 수 있음
- 필요한 모든 페이지를 메모리에 적재할 때 까지 페이지 부재를 발생시킴.
2-3 페이지 대체
- 페이지 부재가 발생하면, 메인 메모리에 있으면서 사용하지 않는 페이지를 없애 새로운 페이지로 바꾸는 것
- 페이지 부재 비율은 유효 액세스 시간과 관련이 있기에 중요하나, 지속적으로 중요한 것은 아니다.
- 페이지 대부분은 처음 참조 시 부재가 발생하지만 이후에는 메모리에 저장되어 있어 페이지 부재 비율이 발생되지 않을 수 있기 때문
3 페이지 대치 알고리즘
3-1 페이지 부재와 프레임 수
- 페이지 부재 때문에 메인 메모리에서 디스크로 내보낼 페이지를 고르는 방법은 시스템 효율성에 큰 영향을 미치게 됨. 페이지 부재 비율이 가장 낮은 알고리즘을 기본으로 선택하는 것이 중요
3-2 알고리즘 종류
- 선입선출 대치 알고리즘
- 최적 페이지 대치 알고리즘
- 최근 최소 사용 대치 알고리즘
- 카운터를 이용한 순서 결정
- 스택을 이용한 순서 결정
- 참조 비트 알고리즘
- 시계 알고리즘
- NUR 알고리즘
- 최소 사용 빈도수 알고리즘
- 최대 사용 빈도수 알고리즘
- 페이지 버퍼링
4 프레임 할당 알고리즘
4-1 프레임 할당 알고리즘의 필요성
- 페이지 할당을 통해 페이지 부재의 횟수를 줄이는 방법은 매우 중요
4-2 균일 비례 프레임
- 프레임 M개를 프로세스 N개에 나눠 주는 가장 쉬운 방법은 각 프로세스 똑같이 프레임을 M/N개 씩 할당하는 것으로, 이 방법을 균일 할당이라 한다.
- 어떤 프로세스는 페이지 프레임을 낭비하고, 또 다른 프로세스에서는 페이지 부재가 빈번하게 일어날 수 있음
4-3 비례 할당 알고리즘
- 균일 할당 알고리즘을 해결
- 프로세스에 필요한 메모리양이나 프로세스 크기에 따라 페이지를 할당
5 메모리를 관리하는 프로세스 적재 정책
- 메인 메모리에 상주하는 프로세스 수가 다중 프로그래밍 수준이므로 메모리에 상주할 프로세스 수를 결저앟는 것은 메모리 관리 측면에서 매우 중요
- 때문에, 이러한 메모리를 관리하는 프로세스 적재 정책들이 매우 중요하다
5-1 스래싱
- 페이지 교환이 계속 일어나는 현상
- 어떤 프로세스가 프로세스 수행에 보낸 시간보다 페이지 교환에 보내는 시간이 더 길면 '스래싱 하고 있다'고 표현
5-2 스래싱의 발생 원인
- 프로세서가 요구하는 최소한의 수보다 페이지 프레임 수가 적으면 적을수록 페이지 부재 비율이 증가하며, 페이지 부재로 프로세서의 이용률이 감소하면 스래싱이 발생하여 시스템의 처리율은 매우낮고 페이지 부재는 엄청 늘어나게 된다.
5-3 스래싱 예방
- 낮은 프로세서 이용률과 높은 페이지 부재율이 스래싱의 원인이므로 지역 교환 알고리즘, 우선순위 교환 알고리즘을 이용하여 스래싱 제한이 가능
- 프로세스에 필요한 많은 프레임을 제공하여 간단하게 스레싱을 방지
- 작업 집합 모델 : 프로세스가 실제로 얼만큼 프레임을 많이 사용하는지 검사하여 지역모델을 정의
- 지역 모델 : 프로세스를 실행할 때 프로그램은 보통 지역 몇 개로 중첩해서 구성하므로 한 지역에서 다른 지역으로 이동하는 과정을 의미
- 가장 확실한 예방은 프로세스에 필요한 만큼 프레임 수를 제공하는 것
5-4 지역성
- 실행 중인 프로세스에서 나타나는 특성
- 동일한 값이나 관련 저장 위치를 자주 액세스하는 현상, 한번 참조한 데이터를 짧은 시간 안에 다시 참조 혹은 참조한 데이터의 근처에 있는 데이터를 짧은 시간안에 참조하는 현상을 의미
- 시간 지역성
- 특정 자원들을 상대적으로 짧은 시간 안에 재사용한다는 것을 의미
- 순환, 서브 프로그램, 스택, 계산 변수는 시간 지역성에 적용하는 예
- 공간 지역성
- 프로세스가 메모리의 어떤 위치를 참조하면, 그 근처를 이후에도 계속 참조할 가능성이 높다는 것
5-5 작업 집합 모델
- 프로세스가 메모리에서 페이지 부재를 가장 최소 비율로 유지하도록 가장 최근의 계산으로 필요한 메모리를 구하는 방법으로 제안된 모델.
- 프로세스가 많이 참조하는 페이지 집합을 메모리 공간에 계속 상주시켜 빈번한 페이지 대치 현상을 감소