어떤 이유에서인지 저는 10개의 프로세스가 선호도를 통해 동일한 CPU 코어를 공유하기를 원합니다.
아시다시피 프로세스 간 CPU 공유를 달성하기 위해 Linux RR(라운드 로빈) 스케줄링 정책을 활용할 수 있습니다.
Linux 커널 3.9 이상의 경우 파일을 변경하여 RR 스케줄링 간격을 설정할 수 있습니다 /proc/sys/kernle/sched_rr_timeslice_ms
. 기본 RR 스케줄링 간격은 100ms입니다.
내 질문은 다음과 같습니다
나는 RR 스케줄링 간격을 100μs로 설정하고 싶습니다. 즉, 한 프로세스가 100μs 동안 실행되고 다른 프로세스가 실행됩니다. 그런데 값을
/proc/sys/kernle/sched_rr_timeslice_ms
1ms 미만으로 설정하지 못했습니다 . 현재 Linux 커널에서 지원하는 최소 RR 스케줄링 간격이 1ms인지 알고 싶습니다.Windriver Linux에서 지원하는 최소 RR 스케줄링 간격이 무엇인지 아는 사람이 있습니까? Windriver Linux는 임베디드 시스템에서 널리 사용되므로 운영 체제에 대한 실시간 요구 사항이 높습니다.
뮤텍스를 사용하여 10개의 프로세스가 모두 1밀리초 내에 적어도 한 번 실행되도록 할 수 있는지 궁금합니다. 즉, 한 프로세스는 100μs 동안 실행된 다음 다른 프로세스가 잠기고 실행될 수 있도록 뮤텍스를 잠금 해제합니다. 이 메커니즘이 작동합니까?
위 방법으로 안되면 프로세스 10개를 쓰레드 10개로 변경하면 어떻게 해야 하나요? 효율적인 스레드 전환 메커니즘이 있습니까?