검색

4.2. 스레드 동기화

download PDF

sched_yield 명령은 더 낮은 우선 순위 스레드를 실행할 기회를 허용할 수 있는 동기화 메커니즘입니다. 이러한 유형의 요청은 잘못 작성된 애플리케이션 내에서 발행된 경우 오류가 발생하기 쉽습니다.

우선 순위가 높은 스레드는 sched_yield() 를 호출하여 다른 스레드가 실행될 기회를 허용할 수 있습니다. 호출 프로세스가 해당 우선 순위에서 실행되는 프로세스 대기열의 tail으로 이동합니다. 동일한 우선 순위에서 다른 프로세스가 실행되지 않는 경우 호출 프로세스가 계속 실행됩니다. 해당 프로세스의 우선 순위가 높은 경우 사용 중인 루프를 만들어 머신을 사용할 수 없게 될 수 있습니다.

CloudEvent _DEADLINE 작업이 sched_yield() 를 호출하면 구성된 CPU를 제공하며 나머지 런타임은 다음 기간까지 즉시 제한됩니다. sched_yield() 동작을 사용하면 다음 기간이 시작될 때 작업을 시작할 수 있습니다.

스케줄러는 실제로 실행을 기다리는 다른 스레드가 있는 시기를 더 잘 확인할 수 있습니다. 모든 실시간 작업에 sched_yield() 를 사용하지 않도록 합니다.

절차

  • sched_yield() 함수를 호출하려면 다음 코드를 실행합니다.

    for(;;) {
                do_the_computation();
                /*
    	     * Notify the scheduler the end of the computation
                 * This syscall will block until the next replenishment
                 */
    	    sched_yield();
            }

    10.0.0.1 _DEADLINE 작업은 다음 기간(다음 루프 시작)까지 충돌 기반 검색(CBS) 알고리즘에 의해 제한됩니다.

추가 리소스

  • pthread.h(P) 매뉴얼 페이지
  • sched_yield(2) man page
  • sched_yield(3p) man page
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.