상세 컨텐츠

본문 제목

가상 메모리 기본

똑똑한 개발/Algorithm 과 Data Structure

by 성댕쓰 2022. 2. 5. 23:30

본문


1. 가상 메모리란


프로그램에 물리적인 메모리 주소가 아닌 가상의 메모리 주소를 할당하는 것을 말한다.  이를 통해 프로그램은 물리적인 용량보다 더 많은 용량을 사용할 수 있다.


 


2. Page Fault


Page Fault는 찾으려는 페이지가 현재 memory에 없는 상황을 말한다. 운영체제는 Page Fault가 발생하면 동작하던 흐름을 멈추고 Disk에서 Page를 찾아 memory에 저장한다. 그리고 다시 이전 흐름으로 돌아가 동작한다.

 

 

위 그림에서 P1 프로세스가 사용하는 페이지 테이블을 볼 수 있다.

프로세스는 필요한 경우 4번 페이지가 Main Memory에 있는지 테이블에서 확인한다.

4번 페이지는 Valid bit가 0 이므로 현재 메모리에 없다. Page Fault가 발생한 것이다.

프로세스는 현재 흐름을 멈추고 Disk에서 4번 페이지를 찾아 이를 Main Memory에 올린 뒤 Valid bit을 1로 바꾼다.

프로세스는 이전 흐름으로 돌아가 다시 동작한다.



3. 페이지 교체


실행되고 있는 또는 새로 실행되는 프로세스가 페이지를 요구하면 운영체제는 memory에 페이지를 저장한다. 그런데 어느 순간이 되면 memory가 모두 찰 것이다. 이 때 운영체제는 memory에 있는 페이지를 Disk로 보내고 새로 요구한 페이지를 memory에 저장하는 작업을 수행한다. 이를 페이지 교체라고 부른다. 가장 최근까지 가장 드물게 사용한 페이지를 교체하는 등의 알고리즘을 사용한다.


참조 :

[운영체제(OS)] 15. 가상메모리 (velog.io),

[1부]가상 메모리란? : 네이버 블로그 (naver.com)

 

 

'똑똑한 개발 > Algorithm 과 Data Structure' 카테고리의 다른 글

Dead-lock과 해결 방법  (0) 2022.02.06
Process 와 Thread  (0) 2022.02.06
Clustered, Non-Clustered Index  (0) 2022.02.05
Database Index 알아보기  (0) 2022.02.05
SOLID 원칙  (0) 2022.02.03

관련글 더보기

댓글 영역