1 요구 페이징의 개요
컴퓨터를 오래 켜두면 느려지는 이유는 작업을 하지 않고 쉬는 프로세스나 좀비 프로세스가 메모리를 차지하기 때문이다. 따라서 메모리에는 꼭 필요한 프로세스만 유지하는 게 중요하다. 그러기 위해서 프로세스의 일부만 메모리에 가져오는 방법을 사용한다. 이 방법의 장점은 메모리를 효율적으로 관리할 수 있고, 응답 속도를 향상할 수 있다는 것이다.
사용자가 요구할 때 해당 페이지를 메모리로 가져오는 것을 요구 페이징이라고 한다. 이와 반대로 미리 가져오기는 필요할 것이라고 예상되는 페이지를 미리 가져오는 방식이다.
2 페이지 테이블 엔트리의 구조
페이지 테이블 엔트리의 구성으로는 페이지 번호, a,m,v,r,w,x비트, 프레임 번호가 있다.
접근 비트 : 페이지가 메모리에 올라온 후 사용한 적이 있는지 알려주는 비트, 참조 비트라고도 한다.
변경 비트 : 페이지에서 데이터의 변경이 있었는지 알려주는 비트, 더티 비트라고도 한다.
유효 비트 : 실제 메모리에 있는지를 나타내는 비트이다. 1이라면 스왑 영역에 있다.
읽기, 쓰기, 실행 비트 : 각 권한에 대한 비트이다.
3 페이지 부재
프로세스가 페이지를 요청했을 때 그 페이지가 메모리에 없는 상황을 페이지 부재(page fault)라고 한다. 페이지 부재가 발생하면 스왑 영역에서 물리 메모리로 페이지를 옮겨야 한다.
4 지역성
페이지 교체 알고리즘이 쫓아낼 페이지를 찾을 때 지역성을 바탕으로 한다.
지역성은 기억장치에 접근하는 패턴이 특정 영역에 집중되는 성질을 말한다.
공간의 지역성 : 현재 위치에서 가까운 데이터에 접근할 확률이 높다.
시간의 지역성 : 가장 가까운 시간에 접근한 데이터가 확률이 높다.
순차적 지역성 : 작업이 순서대로 진행되는 경향이 있다.
'프로그래밍 이론 & 책 > 운영체제' 카테고리의 다른 글
[운영체제] 9.3 스레싱과 프레임 할당 (0) | 2020.06.01 |
---|---|
[운영체제] 9.2 페이지 교체 알고리즘 (0) | 2020.06.01 |
[운영체제] 8 가상 메모리 (0) | 2020.05.29 |
[운영체제] 7.4 다중 프로그래밍 환경에서의 메모리 할당 (0) | 2020.05.28 |
[운영체제] 7.3 단일 프로그래밍 환경에서의 메모리 할당 (0) | 2020.05.28 |