페이징 3

[OS/운영체제] 페이지 교체 (Page Replacement) - (2)

FIFO (First-In, First-Out) Page Replacement FIFO는 가장 단순한 페이지 교체 알고리즘으로, 메모리에 옮겨진 메모리들 중 가장 오래된 페이지를 Victim으로 선택한다. 각 페이지가 메모리로 옮겨진 시간을 직접 기록하는 것이 아니라, FIFO 큐(Queue)를 생성해 메모리의 모든 페이지를 담아 놓는다. 그림에서 처음 7, 0, 1번 페이지에 대해 페이지 결함이 발생하고, 이들 페이지는 순서대로 프레임이 할당된다. 다음으로 2번 페이지의 요청에서 페이지 결함이 발생하고, FIFO 알고리즘에서는 가장 먼저 프레임을 할당받았던 7번 페이지를 Victim으로 선택해, 7번 페이지를 디스크에 기록하고 원래 7번이 할당받은 프레임을 2번 페이지에 새로 할당한다. Belady's..

운영체제 2020.11.15

[OS/운영체제] 페이징 (Paging) - (2)

Protection in Paging 페이지를 사용하는 환경에서 메모리를 보호하는 것은 각 프레임마다 Protection bit을 두어 해결할 수 있다. 일반적으로 이 bit는 페이지 테이블에 같이 저장된다. 하나의 bit로 페이지가 읽기 전용인지, 그렇지 않은지를 정의할 수 있다. 모든 메모리 참조는 페이지 테이블을 통해 올바른 프레임 번호를 찾는 과정을 거치는데, 이 때 Protection bit로 해당 페이지가 읽기 전용 페이지인지 확인할 수 있다. (읽기 전용 페이지에 데이터를 쓰는 것은 하드웨어 Trap을 발생시킨다.) 일반적으로 페이지 테이블에 Valid-Invalid bit을 추가한다. 만약 이 bit가 valid라면, 해당 페이지는 프로세스의 논리적 주소 공간에 존재하며, 유효한(valid..

운영체제 2020.11.13

[OS/운영체제] 페이징 (Paging) - (1)

페이징 (Paging) 페이징은 프로세스가 차지하는 물리적 메모리 공간이 비연속적이 되도록 허용하는 메모리 관리 기법을 말한다. 페이징은 외부 단편화가 발생하지 않으며, 따라서 별도의 Compaction 과정이 필요하지 않다. 또한 다양한 크기의 메모리 덩어리(Chunk)들을 Backing store에 맞춰야 하는 문제를 해결해 준다. 이 문제는 메인 메모리를 차지한 코드나 데이터가 swap out될 때, 그만한 공간을 Backing store에서 찾아야 하기 때문에 발생한다. Backing store에서도 동일하게 단편화 문제가 발생하지만, 메인 메모리에서보다 접근 속도가 훨씬 느리기 때문에 Compaction을 적용할 수 없다. 이러한 장점들 때문에 현재 대부분의 운영체제에서 다양한 형태로 사용되는 ..

운영체제 2020.11.13