말감로그

크래프톤 정글 WEEK10 DAY 79 - 10주차 퀴즈 준비 & 퀴즈 풀이 본문

Krafton jungle

크래프톤 정글 WEEK10 DAY 79 - 10주차 퀴즈 준비 & 퀴즈 풀이

habbn 2024. 3. 26. 13:54
728x90

Virtual Memory

가상 메모리는 컴퓨터 시스템에서 물리적 메모리(RAM)보다 큰 주소 공간을 프로세스에 제공하기 위한 기술이다. 프로그램이 실행되는 동안에는 전체 프로그램이 메모리에 로드되지 않고  필요한 부분만 메모리에 올라가게 된다. 이를 통해 물맂거 메모리 부족으로 인한 프로그램의 실행 문제를 완화하고, 다중 프로그램 실행을 지원한다.

 

Page Table

페이지테이블은 가상 메모리 주소 공간을 물리적 메모리 주소 공간으로 매핑하는 데 사용되는 자료구조이다. 페이지 테이블은 가상 메모리 주소를 물리적 메모리 주소로 변환하는 역할을 한다. 프로세스가 메모리에 접근할 때, 페이지 테이블을 참조하여 해당 가상 주소에 해당하는 물리 주소를 찾아내어 접근할 수 있게 한다.

 

TLB(Translation Lookaside Buffer)

TLB는 페이지 테이블을 더 빠르게 접근하기 위한 캐시 메모리이다. CPU는 매번 메모리 접근 시 페이지 테이블을 검색하는데, 이러한 검색은 비용이 크다. TLB는 페이지 테이블의 일부를 캐싱하여, 자주 사용되는 페이지의 주소 변환을 더 빠르게 수행한다.

 

Page Fault

페이지 폴트는 프로세스가 요청한 페이지가 현재 물리 메모리에 존재하지 않는 경우 발생한다. 이 때 운영체제는 해당 페이지를 물리 메모리로 로드하여 사용 가능하게 만들어야 한다. 페이지 폴트는 가상 메모리와 물리 메모리 간의 데이터 이동을 동적으로 처리함으로써 가상 메모리의 크기를 물리 메모리 크기보다 크게 유지할 수 있게 해준다.

 

Lazy Loading

lazy loading은 가상 메모리 관리에서 사용되는 개념으로, 프로그램이 실행될 때 모든 코드와 데이터를 한 번에 메모리에 로드하는 것이 아니라, 필요한 시점에 필요한 부분만을 메모리에 로드하는 것을 의미한다. 이를 통해 초기 로딩 시간을 단축시키고, 메모리 사용을 최적화할 수 있다.

 

Page Replacement Policy

페이지 교체 정책은 가상 메모리에서 페이지 폴트가 발생했을 때 어떤 페이지를 메모리에서 내보내고(스왑 아웃), 어떤 페이지를 메모리에 적재할 지를 결정하는 알고리즘이다. 일반적인 페이지 교체 정책에는 FIFO, LRU, LFU 등이 있다.

 

Anonymous page

익명페이지는 디스크에 영구적으로 저장되지 않는 페이지로, 주로 프로세스의 스택이나 힙과 같은 동적으로 할당되는 메모리 영역에서 사용된다. 익명 페이지는 프로세스가 종료되면 사라지므로 디스크에 저장되는 것이 아니며, 대신 스왑 공간에 임시로 할당된다.

 

Swap Disk

스왑 디스크는 가상 메모리 관리에서 사용되는 보조 저장 장치로, 메모리에 로드된 페이지 중 일부를 저장하는 용도로 사용된다. 스왑 디스크는 물리적인 하드 디스크 또는 SSD와 같은 장치일 수 있으며, 페이지 교체시에 사용된다.

 

File-backed Page

File-backed page는 디스크에 저장된 파일과 연관된 페이지이다. 주로 프로그램 실행 파일이나 공유 라이브러리와 같은 파일의 내용이 메모리에 로드될 때 사용된다. 메모리에 로드되면 해당 파일의 내용이 메모리에 복사된다.

 

DMA(Direct Memory Access)

DMA는 컴퓨터 시스템에서 주변장치가 메인 메모리에 직접 데이터를 전송할 수 있는 기술을 의미한다. CPU의 개입 없이 주변 장치가 메모리와 직접 통신하여 데이터를 전송함으로써 전송 속도를 향상시키고 시스템 부하를 줄일 수 있다.

 

벨라디의 역설

FIFO 알고리즘에서 페이지 프레임의 수를 늘릴 때마다 페이지 폴트가 줄어들 것으로 예상되지만, 실제로는 페이지 폴트가 증가하는 현상을 의미한다.

FIFO 알고리즘은 가장 오래된 페이지를 우선적으로 교체한다. 페이지 프레임 수가 증가하더라도, 새로운 페이지가 캐시되는 비율은 증가하지 않아서 시간이 지남에 따라 더 오래된 페이지가 계속해서 교체되어 페이지 부재율이 증가한다.

 

Clock Algorithm

페이지 교체 알고리즘 중 하나로, 주로 페이징된 메모리의 순환 목록을 관리하는 데 사용된다. 각 페이지에 대한 참조비트를 사용하여 페이지가 최근에 참조되었는지 여부를 추적한다. 순환 목록을 따라가면서 참조 비트를 검사하고, 비트가 0인 페이지를 찾아서 교체하는 방식으로 동작한다. 이 과정에서 한 바퀴를 돌아도 교체할 페이지가 없으면 다시 한 번 돌아가면서 페이지를 검사한다. 간단하면서도 효율적인 페이지 교체 방법 중 하나이다.

 

스래싱

너무 많은 페이지 폴트가 발생하여 시스템의 성능이 급격하게 저하되는 상황을 말한다.

과도한 페이지 폴트(시스템에 할당된 물리적 메모리의 양이 실제 필요한 메모리보다 부족한 경우 발생) 와

페이지 교체 오버헤드(페이지를 잘못 선택하여 불필요하게 페이지 교체 발생) 상황 시 발생한다.

 

 

10주차 퀴즈 풀이

 

 

1. 페이지 테이블 접근 시 TLB가 어떻게 페이지 테이블의 성능을 향상시키는지 설명하고, TLB miss가 발생하면 시스템이 어떤 과정을 거쳐 메모리에 접근하는지 설명하세요.

 

TLB는 자주 사용되는 주소 변환 정보를 빠르게 참조할 수 있도록 하는 캐시 메모리다. TLB에 원하는 주소 변환 정보가 있으면, 페이지 테이블을 참조하지 않고 바로 물리적 주소를 얻을 수 있어 성능이 향상된다.

TLB miss일 때 시스템은 페이지 테이블을 조회하여 물리적 주소를 찾고, 이 정보를 TLB에 업데이트한다.

 

2. 페이징 메모리 시스, 이지 데도 page fault 나는 니다. Belady (Belady's Anomaly), 원인 방법 .

 

Belady's Anomaly는 특히 FIFO 페이지 교체 알고리즘에서 관찰된다. 페이지 프레임의 수가 증가함에도 불구하고, FIFO 알고리즘은 새로운 페이지가 오래된 페이지보다 덜 필요할 수 있는 상황을 고려하지 않는다. 이로 인해, 실제로는 자주 사용되는 페이지가 교체될 수 있고, 그 결과 페이지 폴트가 더 자주 발생한다.

 

이를 해결하기 위한 방법으로는 더 진보된 페이지 교체 알고리즘을 사용하는 것이다. LRU,LFU 등의 알고리즘들을 페이지를 교체할 때 단순히 페이지의 로드 시간뿐만 아니라 사용 빈도나 최근 사용 기록을 고려한다. 즉, 지역성 개념에 기반한 제약을 가미하고, 교체/할당 정책을 보완하는 것이 해결방안이 될 수 있다.

 

3. 스레싱(Thrashing) 현상에 대해 설명하세요.

 

스레싱은 프로세스가 너무 자주 페이지를 교체하여 실제 유용한 작업보다 페이지 교체에 더 많은 시간을 소비하는 현상이다. 이는 일반적으로 메모리가 포화 상태이고, 멀티 태스킹 환경에서 너무 많은 프로세스가 동시에 실행될 때 발생한다.

 

4. 운영체제가 anonymous page를 0으로 초기화하는 이유는 무엇인가요?

 

anonymous page는 프로세스에 의해 동적으로 할당되는 메모리 페이지로, 이전에 다른 프로세스에 의해 사용되었을 가능성이 있다. 이러한 페이지를 0으로 초기화하지 않으면, 새로운 프로세스가 이전 프로세스의 데이터에 접근할 수 있는 보안 취약점이 발생할 수 있다.

 

0으로 초기화하는 과정은 새로운 프로세스가 페이지를 처음 사용할 때 "깨끗한" 상태 즉, 어떠한 이전 데이터도 포함하지 않는 상태로 시작할 수 있도록 보장한다.

 

5. 1) LRU (Least Recently Used) 캐시 알고리즘을 시스 , 4 니다. 따라 .

 

2) 시스 이지 4니다. 이지 퀀 니다: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5. 이지의 0 니다. Clock 즘을 이지 이지 .

 

 

 

728x90