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

[답안]
TLB는 자주 사용되는 주소 변환 정보를 빠르게 참조할 수 있도록 하는 캐시 메모리입니다.
TLB에 원하는 주소 변환 정보가 있으면, 페이지 테이블을 참조하지 않고 바로 물리적 주소를 얻을 수 있어 성능이 향상된다고 합니다.
TLB가 miss일 때 시스템은 페이지 테이블을 조회하여 물리적 주소를 찾고, 이 정보를 TLB에 업데이트 합니다.
페이징 기법을 사용하는 메모리 관리 시스템에서, 페이지 프레임 수를 늘리는데도 page fault가 발생하는 빈도가 오히려 늘어나는 경우가 있습니다. 이를 Belady의 역설(Belady's Anomaly)이라고 하는데, 이런 현상이 발생하는 원인과 이를 방지하는 해결 방법에 대해 설명하세요.

[답안]
Belady의 역설은 특히 FIFO(First-In, First-Out) 페이지 교체 알고리즘에서 관찰됩니다.
페이지 프레임의 수가 증가함에도 불구하고, FIFO 알고리즘은 새로운 페이지가 오래된 페이지보다 덜 필요할 수 있는 상황을 고려하지 않습니다. 이로 인해, 실제로는 자주 사용되는 페이지가 교체될 수 있고, 페이지 폴트가 더 자주 발생합니다.
→ 이를 해결하기 위한 방법으로는 더 진보된 페이지 교체 알고리즘을 사용하는 것입니다.
LRU, LFU 등의 알고리즘들은 페이지를 교체할 때 단순히 페이지의 로드 시간뿐만 아니라 사용 빈도나 최근 사용 기록을 고려합니다. 즉, Locality 개념에 기반한 제약을 더하고, 교체/할당 정책을 보완하는 것이 해결방안이 될 수 있습니다.
스레싱(Thrashing) 현상에 대해 설명하세요.

[답안]
스레싱은 프로세스가 자주 페이지를 교체하여 실제 유용한 작업보다 페이지 교체에 더 많은 시간을 소비하는 현상입니다. 일반적으로 메모리가 포화 상태이고, 멀티태스킹 환경에서 많은 프로세스가 동시에 실행될 때 발생합니다.
운영체제가 Anonymous Page를 0으로 초기화하는 이유는 무엇인가요?

[답안]
익명 페이지는 프로세스에 의해 동적으로 할당되는 메모리 페이지로 이전에 다른 프로세스에 의해 사용되었을 가능성이 있습니다. 이러한 페이지를 0으로 초기화하지 않으면, 새로운 프로세스가 이전 프로세스의 데이터에 접근할 수 있는 보안 취약점이 발생할 수 있습니다.
→ 0으로 초기화하는 과정은 새로운 프로세스가 페이지를 처음 사용할 때 깨끗한, 이전 테이터도 포함하지 않은 상태로 시작할 수 있도록 보장합니다.