13장. RHEL에서 실시간 시스템 호출
실시간 시스템 호출은 애플리케이션 프로그램에서 커널과 통신하는 데 사용하는 함수입니다. 이는 프로그램이 커널에서 리소스를 정렬하는 메커니즘입니다.
13.1. sched_yield() function
sched_yield()
함수는 프로세서가 실행중인 프로세스 이외의 프로세스를 선택하도록 설계되었습니다. 이러한 유형의 요청은 잘못 작성된 애플리케이션 내에서 발행된 경우 오류가 발생하기 쉽습니다.
sched_yield()
함수가 실시간 우선 순위가 있는 프로세스 내에서 사용되는 경우 예기치 않은 동작을 표시할 수 있습니다. sched_yield()
를 호출하는 프로세스는 동일한 우선 순위로 실행되는 프로세스 대기열의 tail으로 이동합니다. 동일한 우선 순위로 실행되는 다른 프로세스가 없는 경우 sched_yield()
라는 프로세스가 계속 실행됩니다. 해당 프로세스의 우선 순위가 높은 경우 사용 중인 루프를 만들어 머신을 사용할 수 없게 될 수 있습니다.
일반적으로 실시간 프로세스에서 sched_yield()
를 사용하지 마십시오.