본문 바로가기
운영체제

[운영체제] Virtual Memory

by moonstal 2022. 5. 8.

Demand Paging

  • 실제로 필요할 때 page를 메모리에 올림
    • i/o양 감소
    • memory 사용량 감소
    • 빠른 응답
    • 많은 사용자 수용
  • invalid: 사용되지 않는 주소영역/물리적 메모리에 없음(page fault)

page fault

  • invalid page접근->mmu(주소변환하드웨어)가 trap발생시킴->커널모드(cpu가 운영체제로)->page fault handler 실행
  • disk에서 메모리로 읽어옴(i/o때 cpu뺏김->disk read끝->valid)
  • cpu 잡고 다시 실행

free frame 없으면

  • page replacement: 어떤 frame 빼앗을지, 곧바로 사용되지 않을 page
  • optimal algorithm: 미래참조, 실제 사용x
  • FIFO algorithm: 먼저 들어온 것 먼저 내쫓음, 메모리 늘렸는데 성능 나빠짐
  • Least Recently Used algorithm: 가장 오래전에 참조된 것 지움
  • Least Frequently Used algorithm: 참조 횟수가 가장 적은 것 지움 (힙자료구조)
  • clock algorithm: not Recently Used, reference bit(하드웨어가함) 1 최근 참조/modifidd bit 1 최근 변경

캐슁

  • 캐쉬에 요청된 데이터 저장해 두었다가 후속 요청시 캐쉬로 직접서비스
  • 시간제약: O(1), O(log n)

page frame의 allocation

  • 필요성: 명령어 수행 위해 최소 할당 frame 수가 있음
  • equal allocation: 똑같은 개수
  • proportional allocation: 프로세스 크기
  • priority allocation: 우선순위

thrashing

  • 프로세스 원활한 수행에 필요한 page frame 수 할당받지 못한 경우
  • page fault rate 높아짐-> cpu utiliztion 낮아짐->os mpd 높여야한다고 판단->프로세스 시스템에 추가->프로세스당 frame 수 감소

working set model

  • locality of reference: 프로세스는 특정 시간 동안 일정 장소만 집중적으로 참조
  • working set: 프로세스 수행시 한꺼번에 메모리에 올라와 있어야 하는 page 집합, thrashing방지
  • working set algorithm: working set window 통해, 전부 보장될 때만

Page Fault Frequency Scheme

  • Page Fault rate 상한값과 하한값 둔다.
  • 빈 frame 없으면 일부프로세스 swap out

http://www.kocw.net/home/search/kemView.do?kemId=1046323&ar=pop

'운영체제' 카테고리의 다른 글

[운영체제] Disk Management and Scheduling  (0) 2022.05.13
[운영체제] File Systems  (0) 2022.05.12
[운영체제] Memory Management  (0) 2022.05.06
[운영체제] Deadlocks  (0) 2022.05.03
[운영체제] Process Synchronization  (0) 2022.05.01