가상 메모리 편집하기
IT위키
편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.
최신판 | 당신의 편집 | ||
1번째 줄: | 1번째 줄: | ||
;주기억장치의 부족한 물리적 저장공간을 보조기억장치를 이용해서 가상으로 늘려 주는 기술 | ;주기억장치의 부족한 물리적 저장공간을 보조기억장치를 이용해서 가상으로 늘려 주는 기술 | ||
==장단점== | == 장단점 == | ||
* 메모리 크기의 제약으로부터 자유로워진다. | |||
*메모리 크기의 제약으로부터 자유로워진다. | ** 사용자 프로그램이 물리 메모리보다 커져도 실행 가능 | ||
**사용자 프로그램이 물리 메모리보다 커져도 실행 가능 | * 병행성 및 CPU 이용률 증가 | ||
*병행성 및 CPU 이용률 증가 | ** 사용자 프로그램이 더 작은 메모리를 차지하므로 더 많은 프로그램을 동시에 수행 가능 | ||
**사용자 프로그램이 더 작은 메모리를 차지하므로 더 많은 프로그램을 동시에 수행 가능 | ** 주기억장치의 용량이 확대된 것 처럼 프로그램 실행 가능 | ||
**주기억장치의 용량이 확대된 것 처럼 프로그램 실행 가능 | * 부가기능 제공 | ||
*부가기능 제공 | ** [[공유 메모리]] | ||
**[[공유 메모리]] | ** [[Memory mapped file]] | ||
**[[Memory mapped file]] | * 전반적인 속도가 느려질 수 있다. | ||
*전반적인 속도가 느려질 수 있다. | ** 가상메모리를 사용할 경우 물리 메모리로 프로그램을 구동하는 것 보다 속도가 느림 | ||
**가상메모리를 사용할 경우 물리 메모리로 프로그램을 구동하는 것 보다 속도가 느림 | |||
== 요구 페이지(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에선 페이지가 존재하지 않는 것인지, 아직 올라오지 않은 것인지 판단한다. | |||
#* 아직 올라오지 않은 것이라면 하드에서 해당되는 페이지를 찾는다. | |||
#* 메모리로 올리고 다시 명령을 수행한다. | |||
== 기법 == | |||
* 페이징(Paging) | |||
* 세그멘테이션(Segmentation) | |||
==기법== | |||
*페이징(Paging) | |||
* | |||
*FIFO(First In First Out) | == 페이지 교체 == | ||
**가장 먼저 들어와서 가장 오래 있었던 페이지를 교체 | ;상세 내용은 [[페이지 교체 기법]] 참조 | ||
*LRU(Least Recently Used) | * FIFO(First In First Out) | ||
**최근에 적게 사용된 페이지를 교체 | ** 가장 먼저 들어와서 가장 오래 있었던 페이지를 교체 | ||
*NUR(Not Used Recently) | * LRU(Least Recently Used) | ||
**LRU의 개선 기법으로, 참조 비트와 변형 비트를 두어 최근에 사용하지 않은 페이지를 교체 | ** 최근에 적게 사용된 페이지를 교체 | ||
*SCR(Second Chance Replacement) | * NUR(Not Used Recently) | ||
**LRU의 개선 기법으로, 회전 주기 내에 두번 연속 사용되지 않을 경우 삭제하는 기법 | ** LRU의 개선 기법으로, 참조 비트와 변형 비트를 두어 최근에 사용하지 않은 페이지를 교체 | ||
*OPT(OPTimal Replacement, Belady's Algorithm) | * SCR(Second Chance Replacement) | ||
**가장 오랫동안 사용하지 않을 페이지를 교체하는 기법('최적'을 상정하는 가상의 이론적 기법) | ** LRU의 개선 기법으로, 회전 주기 내에 두번 연속 사용되지 않을 경우 삭제하는 기법 | ||
*LFU(Least Frequency Used) | * OPT(OPTimal Replacement, Belady's Algorithm) | ||
**가장 빈번하지 않게 사용된 페이지를 교체한다. | ** 가장 오랫동안 사용하지 않을 페이지를 교체하는 기법('최적'을 상정하는 가상의 이론적 기법) | ||
*MFU(Most Frequency Used) | * LFU(Least Frequency Used) | ||
**가장 빈번하게 사용된 페이지를 교체한다. 구역성(Locality)에 반하는 것으로, 거의 사용되지 않는다. | ** 가장 빈번하지 않게 사용된 페이지를 교체한다. | ||
* MFU(Most Frequency Used) | |||
** 가장 빈번하게 사용된 페이지를 교체한다. 구역성(Locality)에 반하는 것으로, 거의 사용되지 않는다. |