。゚(*´□`)゚。

코딩의 즐거움과 도전, 그리고 일상의 소소한 순간들이 어우러진 블로그

CS

가상 메모리

quarrrter 2023. 11. 25. 12:07

프로세스 일부만 메모리에 로드하고, 나머지는 디스크에 둔 상태로 프로세스를 실행하는 방식

프로세스 전체가 메모리에 올라오지 않아도 프로세스를 실행하는 데 문제가 없다는 점에서 ,,!

 

장점: 

프로그램이 메모리 크기에 대한 제약을 덜 받을 수 있다.

동시에 많은 프로그램을 실행하므로 CPU 이용률과 처리율을 높일 수 있다.

필요한 영역만 메모리에 로드해 스와핑 횟수를 줄여 프로그램 실행 속도를 높일 수 있다. 

 


요구 페이징 

프로세스에서 필요한 페이지만 메모리에 로드하는 방식, 디스크에 저장되어 있는 영역을 요청이 올 때 메모리에 로드한다. 

페이지 폴트: 프로그램을 실행하다가 물리 메모리에 필요한 페이지가 없을 때, 이 경우 디스크에서 필요한 페이지를 스왑 인함. 

이때 페이지에 해당하는 메모리 영역이 물리 메모리에 있는지 페이지 테이블로 파악할 수 있으며, 프레임이 존재하면 'v' 값을, 존재하지 않거나 유효하지 않은 주소 값이면 'i'값을 반환한다. 

 


스레싱

동시에 일정 수 이상의 프로그램을 실행했을 떼 오히려 CPU 이용률이 떨어지는 상황

가상 메모리를 구현해 다중 프로그래밍을 하면 CPU 이용률이 높아지지만 일정 수 이상으로 하면 페이지 폴트가 자주 일어나고 스왑인, 스왑아웃 작업을 자주하게 되여 CPU 이용률이 떨어지는 스레싱이 발생하게 된다.

예방하려면 워킹 세트를 설정할 수 있다. => 지역성을 기반으로 자주 사용하는 페이지를 저장해 두는 것. 자주 사용하는 페이지를 물리 메모리의 프레임에 고정하면 페이지 폴트가 빈번하게 발생하는 현상을 방지할 수 있다.

 

'CS' 카테고리의 다른 글

1. 운영체제 정리  (1) 2023.11.25
캐시 메모리  (0) 2023.11.25
메모리 관리 전략  (1) 2023.11.23
스케줄링  (0) 2023.11.23
프로세스  (0) 2023.11.23