Programming/[Operation System]

    멀티 프로세서 스케줄링

    개요 멀티 코어 프로세서 하나의 칩에 여러 CPU 코어가 내장 CPU를 더 추가해도 단일 애플리캐이션이 더 빨리 실행되는 것은 아니다. threads 를 이용하여 병렬 실행되도록 작성해야 한다. 캐시 작고, 빠른 메모리 캐시에 저장된 공유 리소스 데이터의 일관성 문제 버스 스누핑 각 캐시는 자신과 메모리를 연결하는 버스의 통신 상황을 계속 모니터링 CPU가 캐시에 보유한 데이터 항목에 대한 업데이트를 발견하면 변경 사항을 인식하고 복사본을 무효화하거나 업데이트 함 → CPU를 통해 공유된 데이터에 접근할 때는 정확성을 보장하기 위해 상호 배제가 필요하다. 락(lock)을 사용하여 해결한다. → 가능한 동일한 CPU에 프로세스를 유지시킨다. 다중 프로세서 스케줄러는 캐쉬 친화성을 고려해야 한다. 단일 큐 ..

    싱글 프로세서 스케줄링

    제한적 직접 실행 원리 OS는 시간 공유를 통해 물리적 CPU를 공유한다. 이를 이용하여 여러 작업들이 동시에 실행되는 것처럼 보이도록한다. 이를 구현하기 위해서 성능 저하, 제어 문제 를 해결해야 한다. 제한적 직접 실행 프로그램을 빠르게 실행하기 위하여 제한적 직접 실행 기법을 사용한다. 이는 단순히, 프로그램을 CPU 상에서 그냥 직접 실행시키는 것이다. 문제점 사용자가 잘못된 일을 한다면 판단하기가 쉽지 않음 OS가 CPU의 제어 권한을 얻는 것이 쉽지 않음 개요 스캐줄링 현재 프로세스를 중단하고 다른 프로세스를 실행하기로 결정 → 운영체제는 문맥교환(Context Switch)코드를 실행 워크로드 프로세스가 동작하는 일련의 행위 아래 스케줄링 방법은 다음을 가정한다. 작업은 동일한 시간 동안 실..