안녕하세요~
오랫만에 질문 하네요.ㅎㅎ
저번에 세미나는 정말 좋았어요. ^_^
리눅스에서 ps 명령어로 쉽게 프로세스의 상태값은 알 수 있잖아요.
그런데 thread의 상태는 쉽게 알 수 있는 방법이 없을까요?
스케줄러 소스를 조금만 손봐도 쉽게 알 수 있을 것 같은데
혹시 /proc 파일시스템에서 thread의 정보는 알 수 있는 것이 없을까요??
오랫만에 질문 하네요.ㅎㅎ
저번에 세미나는 정말 좋았어요. ^_^
리눅스에서 ps 명령어로 쉽게 프로세스의 상태값은 알 수 있잖아요.
그런데 thread의 상태는 쉽게 알 수 있는 방법이 없을까요?
스케줄러 소스를 조금만 손봐도 쉽게 알 수 있을 것 같은데
혹시 /proc 파일시스템에서 thread의 정보는 알 수 있는 것이 없을까요??
댓글 4
-
원민수
2009.03.10 21:15
-
송선희
2009.03.11 00:18
device driver에서 init_task를 사용한다는 뜻이 무슨말인지 모르겠네요?
따로 devie driver를 만들어서 init_task를 핸들링 한다는 뜻인가요?
-
원민수
2009.03.11 02:53
음.. 일단, 스케쥴러 소스를 수정하시면, kernel을 recompile 해야 하기 때문에, device driver를 가지고 간단히 만드시면 된다는걸 말씀 드린 것입니다. 또한, device driver를 가지고 만드실 경우 init_task를 참조하시라는 뜻이였고요.
일단, kernel의 sched.h에 보시면, for_each_process, while_each_thread 매크로 두개가 있습니다. 이 두개를 참고하셔서 만드시면, 간단히 만드실 수 있으실 겁니다.
심심해서 sample code를 작성해봤는데요. 잘 이해 안가시면, http://powerson.egloos.com/ 여기에 있는 코드 참고하시면서 해보세요.
그럼 수고하세요~! -
송선희
2009.03.11 08:56
우와~~~ 님 쫌 짱인듯?
역시나 여기분들은 쉽게 해결 할 수 있을 거라고 생각했습니다.
우하하하하 감사합니다. ^_^
.
그리고 device driver에서 init_task를 사용하시면, 굳이 스케쥴러를 수정할 필요까진 없을 거 같습니다. 뭐 간단히 생각할 건 아닌 거 같지만, 그렇다고 엄청 복잡할 거 같지도 않습니다. 이 부분도 한번 고려해보시면 될 거 같네요.