운영체제_가상메모리_Linux, Windows의 가상 메모리

미뇽·2024년 6월 8일
0

운영체제(강의)

목록 보기
27/43
post-thumbnail

Linux의 메모리 관리

Linux 가상 메모리

3단계 페이지테이블 구조의 사용

  • 페이지 디렉토리(page directory)
    - 각 프로세스는 페이지 크기의 페이지 디렉토리 하나를 가짐
    - 페이지 디렉토리의 각 항목은 페이지 중간 디렉토리 중 한 페이지를 가리킴
  • 페이지 중간 디렉토리(page middle directory)
    - 다수의 페이지로 구성될 수 있음
    - 중간 디렉토리의 각 항목은 페이지테이블 중 한 페이지를 가리킴
  • 페이지테이블(Page table)
    - 다수의 페이지로 구성될 수 있음
    - 각 항목은 프로세스의 가상페이지 하나를 참조

Linux 가상 주소 : 4개의 필드로 구성

  • 첫 번째 필드 -> 페이지 디렉토리의 인덱스
  • 두 번째 필드 -> 페이지 중간 디렉토리에 대한 인덱스
  • 세 번째 필드 -> 페이지테이블의 인덱스
  • 네 번째 필드 -> 선택된 메모리 페이지 내의 오프셋 값

Windows의 메모리 관리

Windows 가상주소 맵(Virtual Address Map)

Windows의 디폴트 32비트 가상주소공간

- 사용자 프로세스 -> 각각 독립된 32비트 주소공간(4GB)의 메모리 사용 가능 - 메모리의 절반(2GB)은 운영체제용, 절반은 사용자가 독자적으로 사용할 수 있는 가상주소공간의 크기(2GB)

Windows 페이징

  • 프로세스 생성 시 2GB(32비트의 경우)에 가까운 사용자 공간 전체를 사용 가능
  • 윈도우즈는 페이지들을 64KB 경계에 맞추어 할당된 연속 영역으로 관리
  • 가용(available)
    - 프로세스에 의해 현재 사용되지 않는 주소영역
  • 예약(reserved)
    - 가상메모리 관리자가 다른 용도로 할당될 수 없도록 프로세스를 위해 마련해 둔 주소영역
  • 위탁(committed)
    - 프로세스가 가상메모리 페이지들을 접근할 때 사용할 수 있도록 초기화된 주소영역
    - 페이지는 디스크 혹은 주기억장치 상에 위치
    - 디스크 상에 있는 페이지들은 파일 내에 유지되거나 페이징 파일 상에 위치
profile
문이과 통합형 인재(人災)

0개의 댓글