후니의 IT인프라 사전

[오독완 챌린지] 기술 면접 대비 CS 전공 핵심 요약집 (2일차) 본문

도서리뷰/IT 도서

[오독완 챌린지] 기술 면접 대비 CS 전공 핵심 요약집 (2일차)

james_janghun 2023. 9. 7. 20:59

 

오늘도 독서 완료!

 

오늘은 1.3 스케쥴링부터 학습을 했습니다.

 

스케줄링은 모든 프로세스를 공평하게 실행해 한정된 자원을 효율적으로 사용하기 위한 전략입니다.

 

단계로는 장기 / 중기 / 단기로 나눠지게됩니다.

 

스케줄링 알고리즘의 경우 CPU 스케줄러(단기 스케줄러)가 준비 큐에 있는 프로세스 중 어떤 프로세스를 실행시킬지 결정하는데 사용합니다. 선점형과 비선점형으로 분류하게 되는데, 선점형 스케줄링은 스케줄러가 실행 중인 프로세스를 중단시키고 다른 프로세스를 실행할 수 있음을 의미합니다. 비선점형 스케줄링은 실행 중인 프로세스가 종료될 때 까지 다른 프로세스가 실행되지 못하는 것을 말합니다.

 

가상 메모리는 프로세스의 일부만 메모리에 로드하고 나머지는 디스크에 둔 상태로 프로세스를 실행하는 방식입니다. 따라서 사용자에게는 프로세스 전체가 메모리에 로드 된 것처럼 보이지만, 실제로는 전체가 로드된 것이 아니므로 가상 메모리라고 합니다.

 

요구 페이징(demand paging)은 프로세스에서 필요한 페이지만 메모리에 로드하는 방식으로 모두 메모리에 로드하지 않고 초기에 필요한 영역만 로드한 후 다른 영역은 요청이 올 때 메모리에 로드하게 됩니다. 프로그램을 실행하다가 물리 메모리에 필요한 페이지가 없을 때 이를 페이지 폴트라고 합니다.

 

스레싱은 동시에 일정 수 이상의 프로그램을 실행할 때 오히려 CPU 이용률이 떨어지는 것을 말합니다. 이러한 스레싱을 예방하기 위해서는 위킹세트를 설정합니다. 워킹 세트란 지역성을 기반으로 자주 사용하는 페이지를 저장해 두는 것을 말합니다.

 

CPU가 메모리에 접근해 많은 데이터를 처리하기 때문에 시간을 단축하기 위해서 메모리도 캐시를 사용합니다. 이를 캐시메모리라고 합니다.

캐시 메모리는 CPU와 메인 메모리 간에 데이터 접근 시 속도 차이를 줄이기 위해서 사용하게 됩니다. 여기에 어떤 데이터를 저장할지는 지역성(locality)을 통해서 판별하는데, 지역성은 CPU가 자주 참조하는 데이터가 고르게 분포되지 않고 특정 부분에 몰려 있는 것을 나타냅니다.