(Project3-Virtual Memory) 파일-기반 페이지(File-backed page)

파일 백드 페이지는 주기억장치(RAM)에 적재된 페이지가 특정 파일과 관련되어 있음을 나타내는 페이지로, 파일의 내용이 메모리에 로딩되어 있는 상태를 의미한다. 파일 백드 페이지의 활용 파일 매핑: 파일 매핑은 파일의 내용을 주기억장치에 매핑하여 파일의 일부 또는 전체를 메모리에 올리는 기술을 말한다. 파일 백드 페이지는 파일 매핑의 결과물 중 하나이다. 프로그램 코드 및 데이터: 프로그램 실행 중에 사용되는 코드 및 데이터는 해당 프로그램 파일로부터 읽혀져 파일 백드 페이지로 메모리에 로딩된다. 동적 라이브러리 및 공유 객체: 동적 라이브러리나 공유 객체 역시 파일 백드 페이지를 통해 필요한 부분이 메모리에 로딩된다. 파일 백드 페이지와 쓰기 연산 읽기 전용 및 쓰기 가능: 파일 백드 페이지는 읽기 전..

keyword 2023.12.16 0

(Project3-Virtual Memory) 스왑 디스크(Swap Disk)

스왑 디스크는 주기억장치(RAM)가 꽉 차거나 더 이상 필요하지 않은 데이터를 임시로 저장하는 데 사용되는 디스크 공간을 의미한다. 스왑 디스크는 주로 하드 디스크(HDD) 또는 고성능의 솔리드 스테이트 드라이브(SSD)와 같은 보조 저장 장치에 할당된다. 스왑 디스크의 역할 가상 메모리 확장: 주기억장치(RAM)의 한계를 극복하기 위해 스왑 디스크는 가상 메모리를 지원하며, 필요한 경우 주기억장치와 스왑 디스크 사이에서 데이터를 교환한다. 페이지 교체: 페이지 교체 정책에 따라 필요한 페이지를 스왑 디스크로 내림으로써 새로운 페이지를 주기억장치에 올릴 수 있도록 돕는다. 스왑 디스크의 주의사항 I/O 부하: 스왑 디스크를 사용하는 동안 발생하는 입출력(I/O) 작업은 주기억장치에 비해 느리기 때문에, ..

keyword 2023.12.16 0

(Project3-Virtual Memory) 익명 페이지(Anonymous page)

익명 페이지는 특정 파일과 연결되지 않은 페이지로, 디스크에 저장된 파일과 직접적인 관련이 없는 페이지를 의미한다. 익명 페이지는 디스크 대신 메모리에만 존재하며, 프로세스의 실행 중에 동적으로 할당되거나 사용되는 데이터에 대응된다. 익명 페이지의 역할 동적 할당 및 해제: 익명 페이지는 주로 동적 메모리 할당과 관련이 있으며, 프로세스가 런타임 중에 메모리를 필요로 할 때 동적으로 할당되고 필요 없어지면 다시 해제된다. 힙과 스택: 프로세스의 힙(heap)과 스택(stack) 영역에서 익명 페이지는 동적으로 할당된 데이터를 저장하는 데 사용된다. 익명 페이지의 특징 임시적인 데이터 저장: 익명 페이지는 주로 임시적으로 필요한 데이터를 저장하는 데 사용되므로, 프로세스의 런타임 동안의 데이터 흐름을 관리..

keyword 2023.12.16 0

(Project3-Virtual Memory) 페이지 교체 알고리즘(Page Replacement Policy)

페이지 교체 정책은 물리 메모리가 가득 찬 상태에서 새로운 페이지를 적재하기 위해 어떤 페이지를 내릴지를 결정하는 정책이다. 주요 페이지 교체 정책 - FIFO(First-In-First-Out): 가장 먼저 들어온 페이지를 제일 먼저 내리는 방식이다. 단순하고 구현이 쉽지만, 프레임 수를 늘려도 페이지 폴트가 더 많이 발생하는 벨라디의 모순(Belady's Anomaly)이 발생할 수 있다. - LRU(Least Recently Used): 최근에 사용되지 않은 페이지를 우선으로 내리는 방식이다. 각 페이지에 접근할 때마다 사용 시간을 업데이트하고, 가장 오래 전에 사용된 페이지를 교체한다. - LFU(Least Frequently Used): 가장 적게 사용된 페이지를 우선으로 내리는 방식이다. 각 ..

keyword 2023.12.16 0

(Project3-Virtual Memory) 지연 로딩(Lazy Loading)

Lazy Loading은 필요한 시점까지 데이터나 자원을 불러오지 않고, 필요한 순간에만 해당 자원을 로딩하는 전략을 말한다. 애플리케이션 시작 시 초기 로딩 시간을 최소화하고, 자원을 효율적으로 관리하여 성능을 향상시킨다. Lazy Loading의 동작 원리 요청 시 로딩: 필요한 데이터나 자원이 사용자에 의해 요청되기 전까지는 로딩되지 않는다. 즉시 로딩 vs. Lazy Loading: 즉시 로딩은 초기에 모든 자원을 로딩하는 반면, Lazy Loading은 필요한 시점에만 로딩하여 초기 로딩 시간을 단축한다. Lazy Loading의 적용 분야 이미지 로딩: 웹 페이지에서 이미지를 Lazy Loading하여 초기 페이지 로딩 속도를 향상시킨다. 데이터베이스 쿼리: 필요한 경우에만 데이터베이스에서 쿼..

keyword 2023.12.16 0

(Project3-Virtual Memory) 페이지 오류(Page Fault)

페이지 폴트는 프로세스가 필요로 하는 페이지가 물리 메모리에 없어서 발생하는 예외 상황을 의미한다. 페이지 폴트의 원인 초기 로딩: 프로그램이 실행될 때 초기에 필요한 페이지들이 메모리에 로딩되지 않은 경우. 페이지 교체: 물리 메모리에 여유 공간이 부족해져 페이지 교체가 필요한 경우. 처음부터 물리 메모리에 없는 페이지에 접근: 처음부터 물리 메모리에 없는 페이지에 접근하는 경우. 페이지 폴트 처리 메커니즘 페이지 폴트 핸들링: 운영체제는 페이지 폴트를 감지하고, 필요한 페이지를 디스크에서 읽어와 물리 메모리에 적재한다. 페이지 교체 알고리즘: 물리 메모리가 가득 찬 상태에서 페이지 폴트가 발생하면 어떤 페이지를 교체할지 결정하기 위해 페이지 교체 알고리즘이 사용된다. 페이지 폴트와 성능 성능 저하: ..

keyword 2023.12.16 0

(Project3-Virtual Memory) 변환 색인 버퍼(TLB)

TLB는 페이지 테이블의 일부를 캐시하는 캐시 메모리로, 페이지 테이블에서 가장 최근에 사용된 페이지 번호와 물리 주소의 매핑을 저장한다. TLB는 태그와 데이터로 구성되어 있으며, 태그는 가상 페이지 번호를, 데이터는 해당 가상 페이지 번호에 대응하는 물리 주소와 제어 정보를 저장한다. TLB의 동작 원리 가상 주소 변환: 프로세스가 가상 주소에 접근하려고 할 때, TLB에 해당 가상 페이지 번호가 있는지 검사하고 있으면 물리 주소를 즉시 제공한다. TLB 미스(TLB Miss): TLB에 가상 페이지 번호가 없는 경우, 페이지 테이블에서 해당 페이지 번호를 검색하고 TLB에 엔트리를 추가한다. TLB와 성능 최적화 적중률 최대화: TLB의 적중률을 높이기 위해 적절한 TLB 크기와 교체 알고리즘을 선..

keyword 2023.12.16 0