모든 프로세스의 다음 및 이전 프로세스를 알고 싶습니다. 상태는 "TASK_RUNNING"입니다. 이전 커널에는 task_struct의 멤버로서 run_list 구조체가 있습니다. 커널 3에서 어떻게하면됩니까? 예를 들어, 실행중인 프로세스 목록을 추적하는 중, 커널 3에서 어떤 구조체가 그러한 목록으로 정의되어 있는지 알 수 없습니다.커널 3의 연결된 프로세스 목록 *
2
A
답변
3
최신 커널에서 Linux는 실행중인 모든 프로세스의 목록을 유지 관리하지 않습니다. 대신 CFS는 실행중인 프로세스에 대한 정보를 저장하기 위해 sched_entity
의 red-black 트리를 사용합니다.
task_struct
에는 sched_entity
유형의 회원 se
이 포함되어 있습니다. Sched 엔티티에는 struct rb_node
유형의 구성원 run_node
이 포함되어 있습니다. 이것이 당신이 찾고있는 것입니다.
rbtree의 인터페이스는 include/linux/rbtree.h
와 상담하십시오. task_struct
을 sched_entity
에서 추출하려면 (task_of()
과 kernel/sched/fair.c
)을 사용할 수 있습니다.
관련 문제
- 1. 커널 연결된 목록 커널 귀찮음
- 2. 리눅스 프로세스 커널 커널
- 3. Linux의 커널 공간에서 프로세스 목록 가져 오기
- 4. 커널 및 일반 프로세스
- 5. 커널 링크 목록 초기화
- 6. 템플릿이있는 연결된 목록 내부의 연결된 목록
- 7. ActionScript-3의 문자열 목록?
- 8. 중단 프로세스 용 커널 디버그?
- 9. 커널 레벨에서 대화식 프로세스 감지
- 10. 리눅스 커널 프로세스 서적 유지
- 11. 리눅스의 컨텍스트 스위칭 커널 프로세스
- 12. 부팅 프로세스 초기 커널 디버깅
- 13. 리눅스 프로세스 용 커널 스택
- 14. 커널 레벨의 런타임시 프로세스 정보
- 15. 메이플 커널 함수 목록
- 16. 어린이 목록 - Sched.h - 커널
- 17. MVC 3의 드롭 다운 목록
- 18. 파이썬 3의 스레드 프로세스 함수에서 변수를 반환했습니다.
- 19. 스파르탄 3의 프로세스 간 데이터 이동
- 20. 연결된 목록 노드 복사 및 연결된 목록 중간에 삽입
- 21. 비즈니스 프로그래밍에서 연결된 목록, 이중 연결된 목록 등을 사용합니까?
- 22. 다른 연결된 목록 및 무료 포함 된 연결된 목록
- 23. 파일에서 연결된 목록 유지하기
- 24. 연결된 목록 서수 재설정
- 25. 연결된 목록 변경
- 26. 연결된 목록 추가 메서드
- 27. 연결된 목록 인쇄?
- 28. 연결된 목록 구현 디버깅
- 29. 커널의 연결된 목록 통과
- 30. C에서 연결된 목록 구현
당신은'rb tree '를 실행중인 프로세스 목록으로 트래버스해야한다는 것을 의미합니까? – Mjina
예. 그것이 내가 의미하는 바입니다. –
작업 목록에있는 작업의 상태가 1 (인터럽트 가능)이면 'sched_entity'가 없습니다. 또는'sched_entity'을 가지고 있지만 비어 있습니다. – Mjina