기어가더라도 제대로

[운영체제-김덕수 교수님] 가상 메모리 관리(1/6) - 비용 모델, 하드웨어 요소 본문

CS/운영체제

[운영체제-김덕수 교수님] 가상 메모리 관리(1/6) - 비용 모델, 하드웨어 요소

Damagucci-juice 2022. 8. 12. 15:43

이번 장에서는 가상 메모리의 각종 전략(할당, 교체, 퇴거)들을 사용함에 있어서
성능상의 이점을 살펴보기에 앞서 간단한 용어정리를 하려 한다.
또한 성능이라는 모호한 말 대신 비용 모델이라는 용어를 도입한다.

목차. 
1. 가상 메모리 시스템에서 비용 모델
2. 하드웨어 요소
3. vector bit
    3-1. Reference bit
    3-2. Update bit
  • 가상 메모리(기억장치)
    • Non-continuous allocation
      • 사용자 프로그램을 블록으로 분할하여 적재/ 실행
      • paging / segment system
  • 가상 메모리 관리의 목적
    • 가상 메모리 시스템 성능 최적화
      • 성능은 모호한 말
      • Cost model
        • 성능을 비용 모델로 측정
      • 다양한 최적화 기법

‏‏‎ ‎

Cost Model for Virtual Mem. Sys.

[운영체제-김덕수 교수님] 가상 메모리 관리(1/6) - 비용 모델, 하드웨어 요소 image

  • Page fault frequency (발생빈도)
  • Page fault rate(발생률)
  • Page fault rate 를 최소화 할 수 있도록 전략들을 설계해야 함
    • Context switch 및 kernel 개입을 최소화
    • 시스템 성능 향상

[운영체제-김덕수 교수님] 가상 메모리 관리(1/6) - 비용 모델, 하드웨어 요소 image

  • Page reference string(d)
    • 프로세스의 수행 중 참조한 페이지 번호 순서
    • ω, 요 w 같이 생긴건 오메가라고 읽는다.
    • ω는 왜 만들었는가하면, 메모리를 참조한 주소를 나열한 것이다.
      • r1, r2 , rk, rT 까지 메모리 주소를 참조하였다.

[운영체제-김덕수 교수님] 가상 메모리 관리(1/6) - 비용 모델, 하드웨어 요소 image

‏‏‎

  • Page Fault rate = F(ω)

[운영체제-김덕수 교수님] 가상 메모리 관리(1/6) - 비용 모델, 하드웨어 요소 image

  • 어려워 보이지만 별거 없다.
    • 분모
      • 방문한 스트링의 길이를 뜻한다.
      • 즉 몇번 메모리로부터 읽어들였느냐를 뜻한다.
    • 분자
      • ω 동안 page fault 가 일어난 숫자를 뜻한다.
    • "page fault 숫자 / 전체 메모리 읽는 횟수" 다.

‏‏‎ ‎

Hardware Components

  • Address translation device (주소 사상(변환) 장치)
    • 주소 사상을 효율적으로 수행하기 위해 사용
      • E.g., TLB(associated memories), Dedicated page-table register, Cache memories
  • Bit Vectors
    • Page 사용 상황에 대한 정보를 기록하는 비트들
    • Reference bits(used bit)
      • 참조 비트
      • 해당 프레임이 참조됬니 안됐니를 물어보는 비트
    • Update bits(modified bits, write bits, dirty bits)
      • 갱신 비트
      • dirty bits
        • page frame 의 데이터가 손상되었다는 것을 알려주는 비트

[운영체제-김덕수 교수님] 가상 메모리 관리(1/6) - 비용 모델, 하드웨어 요소 image

Page Map Table 에 레퍼런스 비트와 업데이트 비트가 추가된 모습

Reference bit vector

[운영체제-김덕수 교수님] 가상 메모리 관리(1/6) - 비용 모델, 하드웨어 요소 image

‏‏‎ 메모리에 적재된 각각의 page 가 최근에 참조 되었는지를 표시

  • 운영
    • 1. 프로세스에 의해 참조되면 해당 page 의 Ref. bit 를 1로 설정
    • 2. 주기적으로 모든 reference bit를 0으로 초기화
  • Reference bit 를 확인함으로서 최근데 참조된 page 들을 확인 가능
    • 시간적 지역성을 확인할 수 있다.
    • 이게 무슨 말이냐면, 일정 시간(리셋에서 다음 리셋까지의 시간) 이 지나면 참조 비트를 0으로 바꾸는데
    • 참조비트가 1이라면, 참조 되고 나서 일정 시간도 지나지 않은 따끈따끈한 데이터라는 것을 알리는 비트다.

Update bit vector

  • Page 가 메모리에 적재된 후, 프로세스에 의해 수정되었는지를 표시
  • 주기적 초기화 없음
    • 메모리에서 블록이 반환될 때 초기화
    • 메인 메모리에서 스왑 디바이스로 스왑 아웃 될 때 초기화
  • Update bit = 1
    • 해당 page 의 (Main memory 상 내용) != (Swap device 의 내용)
    • 해당 page 에 대한 Write-back (to swap device) 이 필요

[운영체제-김덕수 교수님] 가상 메모리 관리(1/6) - 비용 모델, 하드웨어 요소 image

  • 1번 과정에서 Swap Device 가 메인 메모리에 적재한 블록과
  • 3번 과정을 거쳐 연산 결과가 저장된 블록의 경우에 같은 메모리 공간을 나타내는 것이지만, 각자 지니는 값이 다르다.
  • 그렇다면, 4번의 과정을 거치기 위해서 해당 메모리의 값이 변경되었다는 것을 알리기 위한 비트가 필요한데 이것이 Update Bit이다.
    • Update bit = 1 일 경우,
      • 메모리에서 해당 블록이 Swap device로 다시 내려갈 때,
      • 메모리에 있는 값을 Swap device 의 블록으로 덮어 써줘야한다.
      • 이 덮어 쓰기 의 과정을 Write-back 이라고 한다.
        • Write-back 은 메모리에서 블럭이 해제될 때 실행되는데, write-back 을 할지 말지 를 Update bit 를 보고 결정하는 것이다.
    • Update bit = 0 인 경우,
      • 별도의 쓰기 작업 없이 바로 스왑 아웃 한다.
      • 모든 데이터에 대해서 변경이 되었나 안되었나를 비교하지 않아서 경제적이다.

‏‏‎ ‎

‏‏‎ ‎

Comments