문제

우리 대학에서 나는 커널 프로그래밍과 관련된 프로젝트 하나를 진행하고 있습니다.이것의 한 부분은 특정 인터럽트에 대한 인터럽트 핸들러를 등록하는 로드 가능한 커널 모듈입니다.

이제 인터럽트 처리기와 태스크릿에서 사용되는 공유 데이터 구조가 있고 태스크릿이 예약된 것과 동일한 순서로 실행되는지 아니면 정의되지 않은지 궁금합니다.

예를 들어 내 인터럽트 핸들러는 시간에 호출됩니다. t1 그리고 시간 t2, 각 호출이 실행됩니다. tasklet_schedule(&customTasklet);.이제, 해당 시간에 예정된 태스크릿이 실행되었는지 확인할 수 있나요? t1 먼저 처형될까?

도움이 되었습니까?

해결책

예정됨 tasklet 목록 내에 저장됩니다.시스템은 이 목록을 다음 위치에서 읽습니다. FIFO 주문하세요.예 t1 전에 실행됩니다 t2.

여기 일부 코드 메커니즘을 이해하는 것입니다.

편집하다

상기시켜주듯이 씨엘, 각 CPU에 대한 태스크릿 목록이 있습니다.따라서 태스크릿을 예약할 때 활성 CPU에서 예약하는 것입니다.따라서 태스크릿은 동일한 CPU에서 직렬화됩니다.일정을 잡으면 t1 CPU1 및 t2 CPU2에서는 그런 일이 일어날 수 있습니다 t2 전에 실행됩니다 t1.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top