가상 메모리 편집하기

IT위키

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.

편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.

최신판 당신의 편집
1번째 줄: 1번째 줄:
[[분류:운영체제]]
;주기억장치의 부족한 물리적 저장공간을 보조기억장치를 이용해서 가상으로 늘려 주는 기술
;주기억장치의 부족한 물리적 저장공간을 보조기억장치를 이용해서 가상으로 늘려 주는 기술


==장단점==
== 장단점 ==
* 메모리 크기의 제약으로부터 자유로워진다.
** 사용자 프로그램이 물리 메모리보다 커져도 실행 가능
* 병행성 및 CPU 이용률 증가
** 사용자 프로그램이 더 작은 메모리를 차지하므로 더 많은 프로그램을 동시에 수행 가능
* 프로그램 실행 속도 향상
** 프로그램을 메모리에 올리고 스왑(swap)하는데 필요한 입/출력 횟수가 줄어듬
* 부가기능 제공
** [[공유 메모리]]
** [[Memory mapped file]]


*메모리 크기의 제약으로부터 자유로워진다.
== 요구 페이지(Demand Paging) ==
**사용자 프로그램이 물리 메모리보다 커져도 실행 가능
*병행성 및 CPU 이용률 증가
**사용자 프로그램이 더 작은 메모리를 차지하므로 더 많은 프로그램을 동시에 수행 가능
**주기억장치의 용량이 확대된 것 처럼 프로그램 실행 가능
*부가기능 제공
**[[공유 메모리]]
**[[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에선 페이지가 존재하지 않는 것인지, 아직 올라오지 않은 것인지 판단한다.
#* 아직 올라오지 않은 것이라면 하드에서 해당되는 페이지를 찾는다.
#* 메모리로 올리고 다시 명령을 수행한다.


#어떤 명령을 수행하기 위해서 필요한 page로 엑세스를 시도한다.
== 페이지 교체 ==
#페이지 엑세스가 불가능하다면'''(page fault)'''
* [[페이지 교체 알고리즘]] 참조
#*OS에선 페이지가 존재하지 않는 것인지, 아직 올라오지 않은 것인지 판단한다.
#*아직 올라오지 않은 것이라면 하드에서 해당되는 페이지를 찾는다.
#*메모리로 올리고 다시 명령을 수행한다.
 
==기법==
 
*페이징(Paging)
**가상기억장치의 일반적인 구현 방법에는 프로그램을 고정된 크기의 일정한 블록으로 나누는 방식
*'''세그멘테이션(Segmentation)'''
**가변적인 크기의 블록으로 나누는 방식
 
==페이지 교체==
 
;상세 내용은 [[가상메모리 페이지 교체]] 참조
 
*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)에 반하는 것으로, 거의 사용되지 않는다.
IT위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는 IT위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다. 저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소 편집 도움말 (새 창에서 열림)