[운영체제] 2일차 가상메모리

nearworld·2024년 2월 16일
0

운영체제

목록 보기
2/5

가상 메모리 주소

구성

  • 32비트 시스템에서의 가상 메모리 주소 구조
  • 페이지 넘버 (20비트)와 페이지 오프셋 (12비트) 구성
  • 32비트 시스템은 주소 레지스터의 크기가 32비트
  • 그래서 가상 메모리 주소가 32비트 (0비트부터 31비트까지)

    이미지 출처: http://denninginstitute.com/itcore/virtualmemory/vmideas.html

가상 메모리

  • 프로세스 하나당 독립적인 가상 메모리가 할당된다.

가상 메모리 크기 구하는 방법

  • 가상 메모리 주소가 32비트 길이이고 주소 하나당 1바이트씩 저장공간을 갖고있다.
  • 32비트로 만들 수 있는 주소 갯수는 2^32이다.
  • 가상 메모리 크기 = 가상 메모리 주소 갯수 * 1바이트 (주소 1개당 저장공간)
  • 2^32 * 1바이트 = 2^32바이트 = 4GB (가상 메모리 크기)
  • 2^32 바이트가 4GB가 되는 이유
  • 1kb = 1024바이트, 1mb = 1024kb, 1gb = 1024mb
  • 1024 = 2^10
  • 1gb = 2^10 x 2^10 x 2^10 (2^30) bytes
  • 주소 갯수는 2^32 이므로 2^30 (1gb) x 2^2 (4) = 4gb 가 나온다

페이지

  • 운영체제가 가상 메모리를 다룰때 주소 하나 하나씩 다루면 굉장히 많은 시간이 소요된다.
  • 그래서 주소들을 일정 범위 단위로 나눠서 덩어리로 관리한다. 이 덩어리를 청크 혹은 페이지라고 한다.
  • 예를 들어, 가상 메모리 주소 100개씩 나눠 페이지를 만들었다고 치자.
  • 그리고 페이지에 넘버를 붙여준다. 페이지 0, 페이지 1 처럼.
  • 그리고 가상 메모리 주소 250번에 있는 데이터를 읽어야한다고 하자.
  • 그럼 바로 페이지 2번에 있는 것을 알 수 있다. 페이지 2 (200 ~ 300번 주소)
profile
깃허브: https://github.com/nearworld

0개의 댓글