티스토리 뷰

Linux

Linux virtual memory

두덕리온라인 2024. 2. 19. 07:56
728x90
반응형
리눅스의 가상 메모리 관리는 복잡한 시스템이며, 여러 컴포넌트와 메커니즘을 포함합니다. 가상 메모리 시스템의 주요 목적은 물리적 메모리의 한계를 초월하여 프로세스에게 더 많은 메모리를 제공하는 것입니다. 이를 통해 시스템의 효율성과 유연성이 증가합니다. 리눅스 가상 메모리 관리의 핵심 개념과 구성 요소를 아래에 설명합니다.
 

1. 가상 메모리와 물리적 메모리

  • 가상 메모리: 프로세스에게 제공되는 주소 공간으로, 실제 메모리 주소와는 독립적입니다. 이를 통해 프로세스는 자신만의 독립된 메모리 공간을 가지는 것처럼 동작할 수 있습니다.
  • 물리적 메모리: 컴퓨터에 실제로 장착된 RAM(Random Access Memory)을 의미합니다.

2. 페이지

  • 리눅스는 가상 메모리와 물리적 메모리를 페이지라고 하는 고정 크기의 블록으로 관리합니다. 일반적으로 페이지의 크기는 4KB입니다.
  • 각 페이지는 가상 주소와 물리적 주소 사이의 매핑을 통해 관리됩니다.

3. 페이지 테이블

  • 페이지 테이블은 가상 주소와 물리적 주소 사이의 매핑을 유지하는 데이터 구조입니다. 이를 통해 가상 메모리 시스템은 가상 주소를 실제 물리적 주소로 변환할 수 있습니다.

4. 스왑 영역(Swap Space)

  • 스왑 공간은 디스크의 일부 영역으로, 사용하지 않는 페이지를 임시로 저장하는 데 사용됩니다. 물리적 메모리가 부족할 때, 리눅스는 사용 빈도가 낮은 페이지를 스왑 영역으로 이동시켜 물리적 메모리를 확보합니다.

5. 페이지 폴트(Page Fault)

  • 프로세스가 접근하려는 페이지가 물리적 메모리에 없을 때 발생합니다. 이 경우, 운영 체제는 해당 페이지를 물리적 메모리로 로드하거나, 필요한 경우 스왑 영역에서 찾아 로드합니다.

6. 페이지 교체 알고리즘

  • 리눅스는 여러 페이지 교체 알고리즘을 사용하여, 어떤 페이지를 메모리에 유지하고 어떤 페이지를 스왑 아웃할지 결정합니다. 예를 들어, LRU(Least Recently Used) 알고리즘은 가장 오랫동안 사용되지 않은 페이지를 스왑 아웃합니다.

7. 메모리 오버커밋(Memory Overcommit)

  • 리눅스는 프로세스에 실제 사용 가능한 물리적 메모리보다 더 많은 가상 메모리를 할당할 수 있도록 허용합니다. 이는 메모리 오버커밋 기능을 통해 가능하며, 시스템의 메모리 사용 효율을 높이지만, 과도한 오버커밋은 성능 저하나 시스템의 안정성 문제를 야기할 수 있습니다.
 
리눅스의 가상 메모리 관리는 이러한 컴포넌트와 메커니즘들이 상호 작용하여 시스템의 메모리를 효율적으로 관리하고, 다양한 응용 프로그램과 서비스가 안정적으로 실행될 수 있도록 지원합니다.
반응형

'Linux' 카테고리의 다른 글

리눅스 프로세스 컨텍스트 스위칭  (0) 2024.02.20
linux에서 task와 process의 차이  (0) 2024.02.19
fork()와 exec()의 차이  (0) 2024.02.19
Android secure boot  (0) 2024.02.19
segmentation fault 와 page fault의 차이점  (0) 2024.02.19
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday