Computer Science/Operating System20 페이지 교체 알고리즘 페이지 교체 페이지의 부재가 발생했을 때 새로운 페이지를 할당해야 한다. 이때 현재 할당된 페이지 중에서 어떤 것을 교체할 지 결정하는 방법이 페이지 교체 알고리즘이다. 교체 알고리즘 가상 메모리는 필요한 페이지만 메모리에 올리고 사용하지 않는 페이지는 그대로 둔다. 하지만 필요한 부분만 올린다 하더라도 결국 가득 차게 된다. 따라서 메모리가 가득 차면 추가로 페이지를 가져오기 위해 기존의 것들 중 안 쓰는 페이지를 out하고 필요한 페이지를 in 해야 한다. 이때 out하는 페이지를 victim page라고 한다. 여기서 어떤 페이지를 out 시킬 지 선택하는 방법이 페이지 교체 알고리즘으로 다양하게 존재한다. 웬만하면 잘 사용하지 않는 페이지를 버리는 것이 좋다. FIFO, First-in First.. 2024. 4. 17. 페이지 테이블의 세 가지 구조 페이지 테이블 앞선 포스팅에서 살펴본 페이지 테이블은 연속적이다. 용량이 다양한 메모리가 연속적으로 할당되는 것에 대해 외부 단편화라는 문제점이 있어서 페이징 기법을 도입하였다. 하지만 페이지 테이블이 연속적이면 모순되는 것이다. 하지만 말로만 들었을 때는 뭐가 문제이지?라는 생각을 할 수 있다. 그럼 먼저 페이지 테이블이 연속적일 경우에 어떤 문제가 발생하는 지부터 살펴보자. 연속적인 페이지 테이블 일반적으로 페이지의 크기는 4KB(=2^12Byte)로 잡는다. 32비트 주소 체계와 64비트 주소 체계의 경우 페이지 테이블의 용량이 어떻게 되는 지 살펴보자. 우선 아래는 가상 메모리 주소를 나타낸다. 가상 메모리 주소는 다음과 같이 page number와 offset으로 구성되어 있다. page num.. 2024. 4. 17. 외부 단편화와 페이징, External Fragmentation and Paging 앞선 포스팅을 통해 메모리의 논리적 주소와 물리적 주소의 개념, 필요성, 매핑에 대해 알아보았다. 오늘은 논리적 주소를 물리적 주소로 mapping할 때, 연속적으로 mapping하면 어떤 문제가 발생하는지, 이에 대한 해결책은 무엇인지 알아보자. 연속 할당의 문제점, 외부 단편화 연속 할당이란 무엇일까? 연속 할당은 한 프로세스의 모든 논리적 주소에 동일한 Base Register를 더해주는 것을 말한다. 이 과정은 MMU에 의해 이루어지며, 주소는 Execution time에 바인딩 된다. 모든 프로세스는 논리적 주소가 0번지부터 시작해서 차례대로 증가하기 때문에, 물리적 주소도 시작 주소만 다르지 연속적으로 배치되어 있다. 그림으로 보면 아래와 같다. 이때 새로운 용어 Partition과 Hole이.. 2024. 4. 17. CPU 주소 체계와 가상메모리 CPU 주소 체계 CPU마다 주소 체계가 다른 이유는 프로세서가 한 번에 처리할 수 있는 데이터의 크기가 다르기 때문이다. 64 bit CPU vs 32 bit CPU 64bit CPU와 32bit CPU의 차이는 뭘까? 전자는 프로세서가 한 번에 처리할 수 있는 데이터의 양이 64bit라는 뜻이고, 후자는 32bit라는 뜻이다. 이렇게 프로세서가 한 번에 처리할 수 있는 데이터의 양을 word라 한다. 64bit CPU의 경우 1 word의 크기는 8byte(=64bit)이고, 메인 메모리에서 한 번에 8줄을 읽을 수 있다는 뜻이다. word 크기는 CPU의 데이터 단위라고 생각하면 되고, word의 크기는 CPU Register의 크기와 같다. 그러면 CPU Register의 크기에 따라 할당할 수 .. 2024. 4. 17. 이전 1 2 3 4 5 다음