• 카테고리

    질문 & 답변
  • 세부 분야

    기타 (개발 · 프로그래밍)

  • 해결 여부

    해결됨

가상 메모리 용량에 대해 질문드립니다.

23.04.30 05:28 작성 23.04.30 05:29 수정 조회수 415

0

안녕하세요 강사님! 유튜브의 "가상 메모리 개요" 강의를 듣고 질문드립니다.

VMS를 반으로 나눠 2GB는 user mode, 2GB는 kernel mode가 사용하며, 또 user mode에서 0.2GB 정도는 OS가 사용하여 user mode 어플리케이션이 사용가능한 메모리는 1.8GB 정도라고 하셨습니다.

질문 1. OS가 kernel뿐 아니라 user mode 메모리 일부를 사용하는 이유는 OS가 맡은 여러 기능 중 user mode에서 동작해야 하는 기능이 있기 때문인가요? 영상 댓글 중에 같은 내용을 물어본 댓글과 강사님의 답변이 있었는데 제가 제대로 이해한 게 맞는지 궁금해서 질문드립니다.

질문 2. 물리적인 메모리가 16GB이고 프로세스 4개가 돌아가고 있다면 kernel mode에 할당되는 메모리는 2GB * 4로 총 8GB가 되는 건가요? 프로세스가 하나 생길 때마다 kernel mode에 추가로 2GB를 더해주는 건지 궁금합니다. 만약 그렇다면 하나의 프로세스가 안정적으로 동작하는 데 필요한 kernel mode의 메모리를 확보하기 위함인가요? kernel mode에 사용되는 메모리를 전체 물리 메모리 중 얼마로 미리 할당해 놓는 게 아니라 프로세스가 하나 생길 때마다 2GB를 할당해주는 거라면 어떤 이유가 있을 거라고 생각해서 질문드립니다.

질문 3. 물리적인 메모리에 얼마나 여유가 있든 상관없이 프로세스 하나가 사용(관리)할 수 있는 최대 메모리는 RAM과 swap영역 합쳐서 1.8GB라고 할 수 있나요?

답변 1

답변을 작성해보세요.

0

  1. 그렇다기 보다는 0번지부터 시작되는 시작 지점 메모리 구간은 컴퓨터(CPU)가 주변기기와 통신하기위해 사용하는 메모리 영역이기 때문입니다. 분류상 0번지 부터 2GB 구간을 User mode로 배정한 것일 뿐 사실상 Kernel이 직접 사용하는 메모리 영역입니다. 따라서 User mode를 써야만 해서라고 할 수는 없겠습니다.

  2. 아니오. 그렇지 않습니다. Kernel 메모리를 포함해 4GB를 쓸 수 있다고 이론상 되어 있을 뿐 실제로는 그렇게 할당되지 않습니다. 따라서 생각하시는 것처럼 산술적으로 정비례해 메모리가 소모되지도 않습니다.
    가령 아파트에 사시는 분들은 넓은 정원을 여러 세대와 공유해서 함께 사용합니다. 실제로 자신의 소유가 아님에도 넓게 공유하지요. 같은 맥락으로 이해하시면 되겠습니다.

  3. 32비트 환경에서는 그렇습니다. 여유가 아무리 많더라도 관리 체계의 최대 범위를 넘어 설 수는 없습니다.

감사합니다.

byn님의 프로필

byn

질문자

2023.05.08

답변을 듣고 나니 몇가지 궁금한 것이 더 생겼지만 혹시나 운영체제론 강의에서 이미 말씀하신 내용이지 않을까 싶어 강의를 들어보고 다시 질문드리도록 하겠습니다.

감사합니다!