← 질문 목록
#24깊이 0

가상 메모리는 무엇을 해결하는가?

운영체제기초메모리

답변 연습

내 답변 적어보기접힘
이 브라우저에 자동 저장 · 0자
모범답안 확인하기내 답변 뒤에 열어보세요

프로그램이 가상 주소로 일하게 해 물리 메모리의 배치와 수명을 직접 관리하지 않게 한다. 커널은 주소 범위마다 읽기·쓰기·실행 권한과 어떤 데이터를 연결할지 정한다.

  1. CPU
  2. 그다음은 MMU입니다. 가상 주소와 접근 종류를 보낸다

    MMU
  3. 그다음은 TLB입니다. 최근 변환과 권한이 있는지 본다

    TLB
  4. 그다음은 페이지 테이블입니다. 없으면 계층을 따라 변환을 찾는다

    페이지 테이블
  5. 그다음은 커널입니다. 매핑이 없거나 권한 처리가 필요하면 page fault

    커널
  6. 그다음은 CPU입니다. 파일·swap·새 페이지·COW로 해결하거나 잘못된 접근을 끝낸다

    CPU

서로 다른 프로세스의 같은 가상 주소는 다른 물리 페이지를 가리킬 수 있어 격리가 쉽다. 반대로 공유 라이브러리와 파일은 같은 물리 페이지를 여러 주소 공간에 읽기 전용으로 연결할 수 있다.

demand paging은 실제로 접근한 페이지만 올린다. 큰 가상 주소 범위를 잡았다고 그만큼의 물리 메모리가 이미 확보되거나 끝까지 성공한다는 뜻은 아니다. 작업 집합이 자원 한도를 넘으면 할당이 실패할 수 있다.

비용은 페이지 테이블의 메모리와 주소 변환이다. TLB miss가 나면 page table walk가 필요하다. 주소 공간 전환 때도 CPU의 주소 공간 태그 같은 기능을 쓰면 모든 TLB 항목을 매번 비우지 않을 수 있다.

주의

page fault가 모두 디스크 I/O는 아니다. 처음 쓰는 익명 페이지와 copy-on-write도 fault로 처리할 수 있다. 작업 집합이 물리 메모리보다 커서 내보낸 페이지를 곧 다시 읽는 일이 반복되면 스래싱으로 실행 시간이 무너진다.

추천 꼬리질문

0/300

적은 내용은 AI 학습에 쓰일 수 있습니다. 이름이나 연락처는 넣지 말아 주세요.

관련 질문

가상 메모리는 무엇을 해결하는가?