Linux 스케줄링 오버헤드는 몇 자릿수입니까?

Linux 스케줄링 오버헤드는 몇 자릿수입니까?

Linux에 O(1) 스케줄러가 있다는 내용을 읽었지만 컨텍스트 전환에 실제로 걸리는 시간은 알 수 없습니다. 현재 숫자를 아는 사람이 있나요?

CPU 유형, 주파수, DRAM 연결, 캐시 등과 같은 많은 요소에 따라 달라진다는 것을 알고 있지만 밀리초, 마이크로초, 나노초 단위 또는 필요한 대략적인 프로세서 사이클 수를 알고 싶습니다. 프로세스를 선점하고 실행할 다음 프로세스를 결정하고 실제로 시작합니다.

답변1

Linux의 기본 스케줄러는 아직 지원되지 않습니다.복잡성(1)지난 10년간의 스케줄러는완전히 공정한 스케줄러,지금 바로오(로그인)실행 대기열의 작업 수입니다. 특정 시스템 및 작업 부하에 대해 관심 있는 특정 시나리오를 벤치마킹해야 합니다. 일반적으로 숫자와 함께 인터넷에서 벤치마크를 찾을 수 있습니다.약 0.5~2μs 컨텍스트 스위치당, 이전에 CPU에서 예약되지 않은 작업으로 전환하는 경우에도 마찬가지입니다.

말씀하신 대로 오버헤드는 다양한 캐시에 코드와 데이터가 있는지 등 상황에 따라 크게 달라집니다. 오늘날 오버헤드는 커널 버전 및 구성, 특히 어떤 보안 대책이 활성화되어 있고 CPU가 이를 얼마나 잘 지원하는지에 따라 달라집니다.최근 논문후자에 대한 상대 수치가 제공되며, 4.0 기준선과 비교하여 -14%에서 +98% 범위의 변화가 있습니다.

관련 정보