입출력을 차단하는 경우 (예 : 드라이버 읽기)에는 몇 가지 조건으로 wait_event_interruptible()을 호출합니다. 조건이 충족되면 읽기가 완료됩니다. wait_event_interruptible() 함수를 살펴본 후 조건을 확인하고 schedule()을 호출합니다. schedule()은 다음 실행 가능한 프로세스를 찾고 컨텍스트 스위치와 다른 프로세스가 실행됩니다. 즉,이 프로세스가 다시 깨어 나면 현재 프로세스에 대해 실행될 다음 명령은 내부 schedule() 함수가됩니다. schedule()이 언제 반환합니까?
여러 프로세스가 자발적으로 일정을 호출하는 경우 예, 모든 프로세스가 다음 명령을 경우
는 잘 일정() 안의 될 것 깨우지됩니다 한 번 한 후에 실행되는?ret_from_interrupt의 경우 schedule()이 호출됩니다. 언제 돌아올까요? 그 후에는 iret가 실행됩니다.
응답 해 주셔서 감사합니다. 여기 _schedule() _이 인터럽트 컨텍스트로 돌아갈 수있는 방법을 이해할 수 없습니까? 어떤 프로세스로도 실행되지 않기 때문입니다. – Krishna
인터럽트 컨텍스트 자체는별로 없으며 인터럽트가 발생하는 현재 프로세스의 스레드 컨텍스트의 일부입니다. ['그림 4-6. "Understanding the Linux Kernel, 3rd Edition"절의 "4.9. 인터럽트 및 예외에서 복귀"섹션의 "인터럽트 및 예외에서 복귀"(http://www.makelinux.net/books/ulk3/understandlk-CHP-4) -SECT-9). 관련 섹션을 읽으십시오. –