2017-11-14 1 views
0

"Linux 커널 개발"을 읽었습니다. "TASK_RUNNING"에 대한 정의가 있습니다.TASK_RUNNING 프로세스 상태

"TASK_RUNNING- 프로세스가 실행 가능하며 현재 실행 중이거나 실행 대기중인 대기열에"입니다. 내 질문은 왜 우리는 "현재 실행 중"과 "실행 대기중인 실행 대기 중"에 대해 두 개의 분리 된 상태가 없는지입니다. TASK__RUNNING 및 TASK_READYTORUN과 같습니다.

그냥 실행중인 프로세스를 의미 내가 처음 단어 "TASK_RUNNING"볼 때, 내가 생각했기 때문에

1) 상태 2) 더 정확한 정의는 피할 것이다 많은 문제

그래서 우리가 할 수없는 강력한 이유가 할 이 ??

답변

1

과정은 실행 가능입니다.

이 상태의 사용자보기에서 더 먼 상태 분리가 발생하지 않습니다.

해당 상태의 사용자가 스케줄러와 상호 작용하지 않으므로 프로세스가 예약되어 있는지 여부를 알고 있기 때문에 쓸모가 없습니다. 해당 지식을 얻은 직후 스케줄러가 해당 속성을 변경하여 지식이 무효화 될 수 있습니다.


이름이 TASK_RUNNING 인 경우 Linux 개발자 만이 그 이유를 알고 있습니다. 이는 역사적인 이유 일 수도 있고 의도적 인 것일 수도 있습니다. "프로세스가 마치 인 것처럼 생각하십시오."

관련 문제