운영체제(이론) - 핀토스 - Virtual memory - 각 키워드 정의

연도·2024년 6월 12일
0

운영체제 이론&구현

목록 보기
12/19
post-thumbnail

Virtual Memory

컴퓨터 시스템의 메모리 관리 기술 중 하나로, 물리적 메모리(RAM)의 한계극복하고 프로그램이 더 많은 메모리를 사용할 수 있도록 하는 방법

Page Table

가상 주소를 물리 주소로 변환하는 데 사용. 각 프로세스는 고유한 페이지 테이블을 가지며, 페이지 테이블은 가상 페이지 번호를 물리 페이지 번호에 매핑.

여러 개의 엔트리로 구성되어 있다.

  • 가상 페이지 번호 : 가상 메모리 페이지 번호

  • 물리 페이지 번호 : 물리 메모리 페이지 번호. 이는 물리 메모리의 프레임 가리킨다.

  • 상태 비트 : 페이지의 상태를 나타내는 비트들로 구성.

유효 비트 : 페이지가 물리 메모리에 로드되어 있는지 여부

수정 비트 : 페이지가 수정되었는지 여부 나타냄

참조 비트 : 페이지가 최근에 참조되었는지 여부

사용자/커널 비트 : 페이지에 대한 접근 권한을 나타낸다. 사용자 모드에서 접근 가능한지, 커널 모드에서만 접근 가능한지

TLB

캐시 메모리. 페이지 테이블의 최근 변환 정보를 저장하여 가상 주소를 물리 주소로 변환하는 시간을 크게 줄여준다.

구조 : 각 엔트리는 가상 페이지 번호와 이에 대응하는 물리 페이지 번호를 저장. 또한 각 엔트리에는 여러 상태 비트 포함.

동작 :

TLB 히트 - CPU가 가상 주소를 참조할 때, 해당 가상 페이지 번호가 TLB에 이미 존재하는 경우.

TLB 미스 - CPU가 가상 주소를 참조할 때, 해당 가상 페이지 번호가 TLB에 없는 경우

구성 요소 :

가상 페이지 번호 : 가상 주소의 상위 비트로, 가상 페이지 식별

물리 페이지 번호 : 물리 주소의 상위 비트로, 물리 메모리의 특정 페이지 식별

상태 비트 : 페이지의 유효성, 수정 여부, 접근 권한 등을 나타내는 비트

TLB 교체 알고리즘 :

TLB 공간은 제한되어 있으므로, 새로운 엔트리를 로드할 때, 기존의 엔트리를 교체해야 할 경우가 많다. 대표적인 알고리즘

  • FIFO : 가장 먼저 들어온 엔트리 교체
  • LRU : 가장 오래 사용되지 않은 엔트리 교체
  • 랜덤 교체 : 무작위로 선택한 엔트리 교체

Page Fault

CPU가 특정 가상 주소에 접근하려고 할 때 페이지가 물리 메모리존재하지 않는 경우 발생. 페이지 폴트는 페이지를 물리 메모리로 로드할 필요가 있음을 알리는 인터럽트.

원인

  1. 불필요한 페이지 참조 :

프로세스는 아직 물리 메모리에 로드되지 않은 페이지에 접근하려고 할 때 발생. 이는 정상적인 상황으로, 필요한 페이지를 디스크에서 물리 메모리로 로드.

  1. 잘못된 페이지 참조:

프로세스가 자신의 주소 공간 밖의 페이지에 접근하려고 할 때 발생. 이는 예외 상황으로, 일반적으로 접근 위반 오류 발생

  1. 페이지가 스왑 아웃된 경우

메모리 부족으로 인해 페이지가 디스크로 스왑 아웃되어 있는 경우. 해당 페이지에 접근하려고 할 때 페이지 폴트 발생.

Lazy Loading

지연 로딩. 필요한 시점까지 리소스나 데이터를 로드하지 않고, 실제로 필요할 때 로드하는 방법.

이 기법은 성능 최적화와 자원 사용의 효율성을 높이는 데 중요한 역할.

기본 원리

  • 리소스나 데이터의 로드를 지연시킴으로써 초기 로딩 시간을 단축하고, 사용자가 필요로 하는 시점에 리소스를 동적으로 로드
  • 이는 메모리 사용량을 줄이고, 네트워크 대역폭을 효율적으로 사용

Page Replacement Policy

페이지 교체 정책. 물리 메모리가 꽉 찬 경우 어떤 페이지를 내보내고 새로운 페이지를 로드할지를 결정하는 알고리즘.

주요 페이지 교체 정책

FIFO - 가장 먼저 들어온 페이지를 가장 먼저 보낸다. 구현은 간단하지만, 오래된 페이지가 자주 사용될 경우 성능 저하.\

OPT - 앞으로 가장 오랫동안 사용되지 않을 페이지를 교체. 이론적으로 가장 적은 페이지 폴트를 보장하지만, 미래의 참조를 예측해야 하므로 실제 시스템 구현 불가.

LRU - 가장 최근에 사용되지 않은 페이지 교체. 과거의 사용 기록을 기반으로 하며, 자주 사용되는 페이지를 남기고, 덜 사용된 페이지를 교체

LFU - 사용 빈도가 가장 적은 페이지 교체. 페이지의 사용 빈도를 카운터하여 교체 우선순위를 정한다.

MFU - 가장 많이 사용된 페이지를 교체하는 방식. 자주 사용된 페이지가 더 이상 사용되지 않을 가능성이 높다는 가정에 기반.

페이지 교체 정책의 평가 기준

  1. 페이지 폴트율 : 페이지 폴트가 발생하는 빈도 측정. 낮은 페이지 폴트율이 좋은 성능을 의미한다.
  2. 시스템 오버헤드 : 페이지 교체 알고리즘의 구현과 실행에 필요한 추가적인 자원과 시간을 평가. 복잡한 알고리즘일수록 오버헤드가 높을 수 있다
  3. 메모리 사용 효율 : 물리 메모리의 사용 효율을 평가한다. 자주 사용되는 페이지가 메모리에 유지되면 효율이 높다.

Anonymous Page

익명 페이지. 가상 메모리 시스템에서 디스크에 존재하지 않는, 즉 파일 시스템에 속하지 않는 페이지 의미.

이러한 페이지는 주로 프로그램이 실행 중에 동적으로 할당된 메모리를 구성되며, 이는 예를 들어 힙 or 스택과 같은 영역에 할당된 메모리 포함.

주요 특징

  1. 파일과 연관x
  • 익명 페이지는 파일 시스템의 파일과 연관x. 이는 디스크에 있는 파일을 메모리에 매핑하는 메모리 매핑된 파일과는 다르다.
  • 이러한 페이지는 메모리에만 존재. 특정 파일에 대한 참조x
  1. 동적 메모리 할당
  • 익명 페이지는 ‘malloc’ 같은 메모리 할당 함수 or 프로세스의 스택 확장에 의해 생성.
  • 프로그램 실행 중에 필요한 데이터를 저장하기 위해 사용.
  1. 페이지 스왑
  • 익명 페이지는 물리 메모리가 부족할 때 스왑 공간으로 스왑 아웃될 수 있다.
  • 스왑 공간은 익명 페이지를 임시저장하기 위해 사용되는 디스크의 특별한 영역
  1. 보안 및 초기화
  • 익명 페이지는 할당 시 운영체제에 의해 0으로 초기화. 이는 보안상의 이유로, 이전에 다른 프로세스가 사용했던 데이터를 접근하지 못하게 하기 위함이다.

Swap Disk(스왑 디스크)

가상 메모리 시스템에서 물리 메모리부족할 때사용되는 디스크 공간.

스왑 디스크는 운영체제가 데이터를 저장하는 데 사용되며, 메모리 관리의 중요한 부분. 스왑 디스크는 주로 익명 페이지와 잘 알려지지 않은 메모리 페이지를 저장하는데 사용.

주요 개념

  1. 스왑 공간

스왑 디스크에 할당된 공간. 물리 메모리가 부족할 때 메모리 페이지를 저장. 스왑 공간은 디스크의 특정 파티션이나 피일로 설정o

  1. 페이지 스왑

운영체제가 메모리 페이지를 스왑 디스크로 옮기거나, 스왑 디스크에서 다시 메모리로 가져오는 과정.

  1. 페이지 아웃

메모리 페이지 → 스왑 디스크로 옮기는 과정. 이 과정을 통해 물리 메모리에서 사용하지 않는 페이지를 해제하여 다른 중요한 작업에 사용o

작동 방식

메모리(부족 감지) > 페이지(선택) > 페이지(아웃) > 메모리(해제) > 페이지(인)

File-backed Page

가상 메모리 시스템에서 디스크의 파일연관된 메모리 페이지.

이러한 페이지는 특정 파일의 내용을 메모리에 매핑하여 사용되며, 파일의 내용을 읽거나 쓸 때 사용. 주로 메모리 맵 파일을 통해 구현

주요 개념

메모리 맵 파일

  • 파일의 내용을 가상 메모리 주소 공간에 매핑하여, 파일의 내용을 메모리에서 직접 접근할 수 있도록 한다.

파일 매핑

  • 파일을 가상 메모리 공간에 매핑. 파일의 특정 부분을 메모리 페이지로 사용 가능.

페이지 폴트

  • 파일 매핑된 페이지에 접근할 때 해당 페이지가 메모리에 로드x → 페이지 폴트 발생.

File-backed Page와 Anonymous Page 비교

특징File-backed PageAnonymous Page
연관된 파일파일과 연관파일과 연관되지 않음
용도파일 입출력, 메모리 맵 파일동적 메모리 할당, 스택, 힙
저장 위치물리 메모리 및 원본 파일물리 메모리 및 스왑 공간
예시mmap을 사용한 파일 매핑malloc, 스택, 힙

0개의 댓글

관련 채용 정보