가상 메모리: Difference between revisions

From CS Wiki
No edit summary
No edit summary
 
(5 intermediate revisions by 4 users not shown)
Line 1: Line 1:
[[분류:운영체제]]
;주기억장치의 부족한 물리적 저장공간을 보조기억장치를 이용해서 가상으로 늘려 주는 기술
;주기억장치의 부족한 물리적 저장공간을 보조기억장치를 이용해서 가상으로 늘려 주는 기술


== 장단점 ==
==장단점==
* 메모리 크기의 제약으로부터 자유로워진다.
 
** 사용자 프로그램이 물리 메모리보다 커져도 실행 가능
*메모리 크기의 제약으로부터 자유로워진다.
* 병행성 및 CPU 이용률 증가
**사용자 프로그램이 물리 메모리보다 커져도 실행 가능
** 사용자 프로그램이 더 작은 메모리를 차지하므로 더 많은 프로그램을 동시에 수행 가능
*병행성 및 CPU 이용률 증가
** 주기억장치의 용량이 확대된 것 처럼 프로그램 실행 가능
**사용자 프로그램이 더 작은 메모리를 차지하므로 더 많은 프로그램을 동시에 수행 가능
* 부가기능 제공
**주기억장치의 용량이 확대된 것 처럼 프로그램 실행 가능
** [[공유 메모리]]
*부가기능 제공
** [[Memory mapped file]]
**[[공유 메모리]]
* 전반적인 속도가 느려질 수 있다.
**[[Memory mapped file]]
** 가상메모리를 사용할 경우 물리 메모리로 프로그램을 구동하는 것 보다 속도가 느림
*전반적인 속도가 느려질 수 있다.
**가상메모리를 사용할 경우 물리 메모리로 프로그램을 구동하는 것 보다 속도가 느림
 
==요구 페이지==


== 요구 페이지(Demand Paging) ==
;Demand Paging
;어떤 알고리즘에 따라서 미리 올려 두는 것이 아니라 실제 사용되려고 요구(demand) 될때 메모리에 적재
;어떤 알고리즘에 따라서 미리 올려 두는 것이 아니라 실제 사용되려고 요구(demand) 될때 메모리에 적재


* 어떤 것을 메모리에 올릴 것인가를 판단하는 기준 중 가장 일반적으로 사용되는 기준
*어떤 것을 메모리에 올릴 것인가를 판단하는 기준 중 가장 일반적으로 사용되는 기준
* 장점
*장점
** Less I/O needed
**Less I/O needed
** Less memory needed
**Less memory needed
** Faster response
**Faster response
** More users
**More users
 
===수행 과정===


=== 수행 과정 ===
;Virtual memory는 OS적으로 수행. HW/SW 입장에선 투명성을 가짐
;Virtual memory는 OS적으로 수행. HW/SW 입장에선 투명성을 가짐
# 어떤 명령을 수행하기 위해서 필요한 page로 엑세스를 시도한다.
# 페이지 엑세스가 불가능하다면'''(page fault)'''
#* OS에선 페이지가 존재하지 않는 것인지, 아직 올라오지 않은 것인지 판단한다.
#* 아직 올라오지 않은 것이라면 하드에서 해당되는 페이지를 찾는다.
#* 메모리로 올리고 다시 명령을 수행한다.


== 기법 ==
#어떤 명령을 수행하기 위해서 필요한 page로 엑세스를 시도한다.
* 페이징(Paging)
#페이지 엑세스가 불가능하다면'''(page fault)'''
* 세그멘테이션(Segmentation)
#*OS에선 페이지가 존재하지 않는 것인지, 아직 올라오지 않은 것인지 판단한다.
#*아직 올라오지 않은 것이라면 하드에서 해당되는 페이지를 찾는다.
#*메모리로 올리고 다시 명령을 수행한다.
 
==기법==
 
*페이징(Paging)
**가상기억장치의 일반적인 구현 방법에는 프로그램을 고정된 크기의 일정한 블록으로 나누는 방식
*'''세그멘테이션(Segmentation)'''
**가변적인 크기의 블록으로 나누는 방식
 
==페이지 교체==
 
;상세 내용은 [[가상메모리 페이지 교체]] 참조


== 페이지 교체 ==
*FIFO(First In First Out)
;상세 내용은 [[페이지 교체 기법]] 참조
**가장 먼저 들어와서 가장 오래 있었던 페이지를 교체
* FIFO(First In First Out)
*LRU(Least Recently Used)
** 가장 먼저 들어와서 가장 오래 있었던 페이지를 교체
**최근에 적게 사용된 페이지를 교체
* LRU(Least Recently Used)
*NUR(Not Used Recently)
** 최근에 적게 사용된 페이지를 교체
**LRU의 개선 기법으로, 참조 비트와 변형 비트를 두어 최근에 사용하지 않은 페이지를 교체
* NUR(Not Used Recently)
*SCR(Second Chance Replacement)
** LRU의 개선 기법으로, 참조 비트와 변형 비트를 두어 최근에 사용하지 않은 페이지를 교체
**LRU의 개선 기법으로, 회전 주기 내에 두번 연속 사용되지 않을 경우 삭제하는 기법
* SCR(Second Chance Replacement)
*OPT(OPTimal Replacement, Belady's Algorithm)
** LRU의 개선 기법으로, 회전 주기 내에 두번 연속 사용되지 않을 경우 삭제하는 기법
**가장 오랫동안 사용하지 않을 페이지를 교체하는 기법('최적'을 상정하는 가상의 이론적 기법)
* OPT(OPTimal Replacement, Belady's Algorithm)
*LFU(Least Frequency Used)
** 가장 오랫동안 사용하지 않을 페이지를 교체하는 기법('최적'을 상정하는 가상의 이론적 기법)
**가장 빈번하지 않게 사용된 페이지를 교체한다.
* LFU(Least Frequency Used)
*MFU(Most Frequency Used)
** 가장 빈번하지 않게 사용된 페이지를 교체한다.
**가장 빈번하게 사용된 페이지를 교체한다. 구역성(Locality)에 반하는 것으로, 거의 사용되지 않는다.
* MFU(Most Frequency Used)
** 가장 빈번하게 사용된 페이지를 교체한다. 구역성(Locality)에 반하는 것으로, 거의 사용되지 않는다.

Latest revision as of 22:49, 14 May 2022


주기억장치의 부족한 물리적 저장공간을 보조기억장치를 이용해서 가상으로 늘려 주는 기술

장단점[edit | edit source]

  • 메모리 크기의 제약으로부터 자유로워진다.
    • 사용자 프로그램이 물리 메모리보다 커져도 실행 가능
  • 병행성 및 CPU 이용률 증가
    • 사용자 프로그램이 더 작은 메모리를 차지하므로 더 많은 프로그램을 동시에 수행 가능
    • 주기억장치의 용량이 확대된 것 처럼 프로그램 실행 가능
  • 부가기능 제공
  • 전반적인 속도가 느려질 수 있다.
    • 가상메모리를 사용할 경우 물리 메모리로 프로그램을 구동하는 것 보다 속도가 느림

요구 페이지[edit | edit source]

Demand Paging
어떤 알고리즘에 따라서 미리 올려 두는 것이 아니라 실제 사용되려고 요구(demand) 될때 메모리에 적재
  • 어떤 것을 메모리에 올릴 것인가를 판단하는 기준 중 가장 일반적으로 사용되는 기준
  • 장점
    • Less I/O needed
    • Less memory needed
    • Faster response
    • More users

수행 과정[edit | edit source]

Virtual memory는 OS적으로 수행. HW/SW 입장에선 투명성을 가짐
  1. 어떤 명령을 수행하기 위해서 필요한 page로 엑세스를 시도한다.
  2. 페이지 엑세스가 불가능하다면(page fault)
    • OS에선 페이지가 존재하지 않는 것인지, 아직 올라오지 않은 것인지 판단한다.
    • 아직 올라오지 않은 것이라면 하드에서 해당되는 페이지를 찾는다.
    • 메모리로 올리고 다시 명령을 수행한다.

기법[edit | edit source]

  • 페이징(Paging)
    • 가상기억장치의 일반적인 구현 방법에는 프로그램을 고정된 크기의 일정한 블록으로 나누는 방식
  • 세그멘테이션(Segmentation)
    • 가변적인 크기의 블록으로 나누는 방식

페이지 교체[edit | edit source]

상세 내용은 가상메모리 페이지 교체 참조
  • FIFO(First In First Out)
    • 가장 먼저 들어와서 가장 오래 있었던 페이지를 교체
  • LRU(Least Recently Used)
    • 최근에 적게 사용된 페이지를 교체
  • NUR(Not Used Recently)
    • LRU의 개선 기법으로, 참조 비트와 변형 비트를 두어 최근에 사용하지 않은 페이지를 교체
  • SCR(Second Chance Replacement)
    • LRU의 개선 기법으로, 회전 주기 내에 두번 연속 사용되지 않을 경우 삭제하는 기법
  • OPT(OPTimal Replacement, Belady's Algorithm)
    • 가장 오랫동안 사용하지 않을 페이지를 교체하는 기법('최적'을 상정하는 가상의 이론적 기법)
  • LFU(Least Frequency Used)
    • 가장 빈번하지 않게 사용된 페이지를 교체한다.
  • MFU(Most Frequency Used)
    • 가장 빈번하게 사용된 페이지를 교체한다. 구역성(Locality)에 반하는 것으로, 거의 사용되지 않는다.