일반적으로이 플래그는 인터럽트 및 syscall 리턴 경로에서 검사됩니다 - 인터럽트 또는 시스템 호출에서 복귀 할 때 설정되고 (인터럽트의 경우) 커널이 선점 가능한 경우 커널은 다시 스케줄 중 하나를 호출합니다 반환하기 전에 함수. arch/x86/kernel/entry_32.S 예를 들면
: TI_flags의 비트 플래그이다 need_resched 및 _TIF_WORK_MASK
가 need_resched 대한 것을 포함하여 대부분 TI_flags 비트를 포함
358 ENTRY(resume_userspace)
359 LOCKDEP_SYS_EXIT
360 DISABLE_INTERRUPTS(CLBR_ANY) # make sure we don't miss an interrupt
361 # setting need_resched or sigpending
362 # between sampling and the iret
363 TRACE_IRQS_OFF
364 movl TI_flags(%ebp), %ecx
365 andl $_TIF_WORK_MASK, %ecx # is there any work to be done on
366 # int/exception return?
367 jne work_pending
368 jmp restore_all
369 END(ret_from_exception)
참고. 다른 많은 유사한 검사가 있으며, 커널로 복귀 경로에는 명시적인 검사도 있습니다.