스물두줄

정보관리기술사 · 클라우드 및 인프라

가상메모리

가상메모리는 물리 메모리보다 큰 프로그램을 실행하게 하는 메모리 관리 기법이다. 프로세스는 자기만의 연속된 주소 공간을 가진다고 믿으며 실행된다. 당장 필요한 조각만 물리 메모리에 올리고 나머지는 보조기억장치에 둔다. CPU가 가상 주소를 참조하면 MMU가 페이지 테…

주요 장면

  1. 0:02 가상메모리란
  2. 0:21 주소 변환과 요구 페이징
  3. 0:51 평균 접근 시간 계산
  4. 1:29 페이징과 세그멘테이션 비교
  5. 2:09 내부 단편화 계산
  6. 2:44 정리

대본

가상메모리란

가상메모리는 물리 메모리보다 큰 프로그램을 실행하게 하는 메모리 관리 기법이다.

프로세스는 자기만의 연속된 주소 공간을 가진다고 믿으며 실행된다.

당장 필요한 조각만 물리 메모리에 올리고 나머지는 보조기억장치에 둔다.

주소 변환과 요구 페이징

CPU가 가상 주소를 참조하면 MMU가 페이지 테이블을 조회한다.

변환을 빠르게 하려고 TLB라는 변환 색인 버퍼에 결과를 캐시한다.

유효 비트가 무효이면 페이지 폴트 트랩이 발생한다.

OS는 빈 프레임을 찾고, 없으면 교체 알고리즘으로 희생 페이지를 고른다.

요구 페이징은 참조된 페이지만 디스크에서 가져오는 방식이다.

평균 접근 시간 계산

평균 접근 시간은 정상 접근과 폴트 처리 시간을 폴트율로 섞은 값이다.

예로 메모리 접근 100ns, 폴트 처리 8ms, 폴트율 0.001이라 하자.

계산하면 약 8,099.9ns, 즉 약 8.1μs다.

메모리 접근 시간의 약 80배다. 폴트율이 조금만 늘어도 결과가 크게 변한다.

페이징과 세그멘테이션 비교

정답은 100ns다. 폴트율이 0이면 두 번째 항이 사라져 메모리 접근 시간만 남는다.

페이징은 고정 크기 단위로 나누고, 세그멘테이션은 논리 단위로 가변 크기로 나눈다.

그래서 페이징에서는 내부 단편화가, 세그멘테이션에서는 외부 단편화가 생긴다.

세그먼티드 페이징은 세그먼트 안을 다시 페이지로 나눠 외부 단편화를 없앤다.

페이징의 두 단편화는 할당 방식과 짝지어 기억해야 한다.

내부 단편화 계산

예로 프로세스 크기 10,000B를 페이지 4,096B 단위로 올린다고 하자.

필요한 페이지는 3개이고 할당 공간은 12,288B다.

낭비는 2,288B이며 마지막 페이지의 잔여 공간이다.

이것이 페이징에서 내부 단편화가 생기는 이유다.

정리

정리하면 가상메모리는 필요한 페이지만 올리는 요구 페이징 기법이다.

페이징은 고정 단위라 내부 단편화가, 세그멘테이션은 가변 단위라 외부 단편화가 생긴다.

작업집합이 물리 메모리를 넘으면 스래싱이 생겨 CPU 이용률이 급락한다.

시험에서는 기법 정의와 단편화 유형을 짝지어 쓰는 것이 핵심이다.

같은 장의 영상