가상메모리

OwlSuri·2023년 5월 3일
0

방통대 운영체제

목록 보기
9/12

가상메모리

  • 메모리 크리보다 더 큰 기억공간이 필요한 프로세스도 실행할 수 있게 하는 방법
  • 실행중ㅇ인 프로세스에 의해 참조되는 주소를 메모리에서 사용하는 주소와 분리
  • 현재 필요한 일부만 메모리에 적재

사상

  1. 프로세스 실행을 위해 가상주소를 실주로소 변환과정
  2. 동적 주소변환(DAT) : 프로세스가 실행되는 동안 사상
  3. 인위적 연속송
  • 가상주소 공간에서 연속적인 주소가 실주소 공간에서도 연속적일 필요는 없음

블록단위 주소변환

  1. 주소변환 사상표
  • 동적 주소변환을 위한 정보를 가진 표
  1. 주소변환이 바이트나 워드 단위로 이뤄지면 변환에 필요한 정보량이 너무 많이 비효율적임
  2. 블록 단위로 주소변환
  3. 가상메모리의 각 블록이 메모리의 어디에 위치하는지 관리

블록 사상시스템

  1. 블록의 크기는 적절히 정해야 함
  • 크기가 커질수록
    -> 사상표 크기 감소
    -> 블록 전송시간 증가, 동시에 적재할 프로세스 수 감소
  • 크기가 작아질수록
    -> 블록 전송시간 감소, 동시에 적재할 프로세스 수 증가
    -> 사상표 크기 증가

블록 구성방식

  1. 페이지
  • 블록의 크기가 동일
  1. 세그먼트
  • 블록의 크기가 다를 수 있음

페이징

  1. 가상메모리를 페이지 단위로 나누어 관리하는 기법
  2. 메모리 영역도 페이지와 동일한 크기의 페이지 프레임으로 나눔
  • 페이지 프레임: 페이지를 담을 수 있는 틀
  1. 페이지 사상표
  • 가상주소를 실주소로 동적변환할 수 있게 함
  • 페이지 번호에 대한 페이지 프레임 번호 저장
  1. 직접사상에 의한 동적 주소변환
  • 페이지 사상표를 직접이용
  1. 연관사상에 의한 동적 주소변환
  • 페이지 변환 정보를 연관메모리에 저장한 연관사상표를 이용

    -> 빠르게 검색 but 고가의 장비 필요
  1. 연관/직접 사상에 의한 동적 주소변환(4+5)
  • 연관사상표에는 가장 최근에 참조된 페이지만 보관
  • 연관사상표에 없을때만 직접사상 이용

-- 최근사용이 있을때

(페이지크기 = 1024)

-- 최근 사용이 없을때

페이징 기법의 특징

  • 논리적 의미와 무관한 동일 크기의 페이지로 나눈
  • 매모리 보호는 페이지 단위로 이루어짐
  • 외부단편화가 발생하지 않음
  • 내부단편화는 발생 가능

세그멘테이션 기법

  1. 가상메모리를 세그먼트 단위로 나누어 관리하는 기법
  • 세그먼트 : 논리적 의미에 부합하는 다영한 크기의 블록
  1. 세그먼트 사상표를 통해 동적 주소변환
  2. 세그먼트 사상표
  • 세그먼트 번호에 대한 실주소에서의 시작 위치 저장
  • 세그먼트 길이는 오버플로 확인용
  1. 동적주소변환

페이징/세그먼테이션 혼용 기법

  1. 세그먼테이션 기법의 논리적 장점 + 페이징 기법의 메모리 관리 측면의 장점
  2. 가상메모리를 세그먼트 단위로 분할 수 각 세그먼트를 다시 페이지 단위로 분할
  3. 메모리는 페이지 프레임으로 분할
  4. 가상주소

  5. 동적 주소 변환
  • 연관사상표에 있을때
  • 연관사상표에 없을때

메모리 호출 기법

  1. 어느시점에 페이지 또는 세그머트를 메모리에 적재할 것은가를 결정하는 기법
  2. 페이징 기법에서의 호출 기법 종류
  • 요구 페이지 호출 기법
  • 예상페이지 호출기법

요구 페이지 호출 기법

  1. 프로세스의 페이지 요구가 있을떄 요구된 페이지를 메모리에 적재하는 방법
  • 옮길 페이지 결정에 대한 오버헤드 최소화
  • 적재된 페이지는 실제로 참조됨
  • 프로세스 시작 시점에는 연속적으로 페이지 부재 발생

예상페이지 호출 기법

  1. 곧 사용될 것으로 예상되는 페이지를 미리 메모리에 적재하는 기법
  • 예상이 잘못될경우 시간과 메모리 공간 낭비
  • 프로세스 시작점에 적용하면 성능이 개선됨
profile
기억이 안되면, 기록을 -

0개의 댓글