페이징

    [운영체제] Ch10. 가상 메모리

    [운영체제] Ch10. 가상 메모리

    공룡책(운영체제)을 읽고 정리한 글입니다. 가상 메모리 개념은 어떻게 탄생한 것일까? 현재 실행되고 있는 코드는 반드시 물리 메모리에 존재해야 한다는 사실은 너무나 당연하고 기본적인 조건으로 보인다. 이 요구조건을 가장 쉽게 만족시키는 방법은 전체 프로세스를 메모리에 올리는 것이다. 하지만 이러한 방법은 프로그램의 크기를 물리 메모리의 크기로 제한한다는 점 때문에 마냥 좋지많은 않다. 실제로 많은 경우에 프로그램 전체가 한꺼번에 메모리에 늘 올라와있어야 할 필요는 없다는 사실을 알 수 있다. 프로그램에는 잘 발생하지 않는 오류 상황을 처리하는 코드가 종종 존재한다. 이러한 오류들은 실질적으로 거의 발생하지 않으므로, 이 코드들은 거의 실행되지 않는다. 배열, 리스트, 테이블 등은 필요 이상으로 많은 공간..

    [운영체제] Ch9. 메인 메모리

    [운영체제] Ch9. 메인 메모리

    공룡책(운영체제)을 읽고 정리한 글입니다. 컴퓨터의 CPU는 프로그램 카운터(PC)가 지시하는 대로 메모리로부터 다음 수행할 명령어를 가져오는데 그 명령어는 필요한 경우 추가적인 데이터를 더 가져올 수 있으며 반대로 데이터를 메모리로 내보낼 수도 있다. 전형적인 명령어 실행은 먼저 메모리로부터 한 명령어를 가져오는 데서부터 시작된다. 그런 다음 명령어를 해독하고, 메모리에서 피연산자를 가져와 피연산자에 대해 명령어를 실행한 후에 계산 결과를 메모리에 다시 저장한다. 배경 지식 기본 하드웨어 메인 메모리와 각 처리 코어에 내장된 레지스터들은 CPU가 직접 접근할 수 있는 유일한 범용 저장장치이다. 기계 명령어들은 메모리 주소만을 인수로 취하고, 디스크의 주소를 인수로 취하지 않는다. 따라서 모든 실행되는 ..