안녕하세요.
처음으로 글을 올리는 데요.
이와 같은 사이트가 있다는것에 감사드립니다.
다름이 아니라 문의 드릴께 있어서 그러는데요.
일반적으로
Parent process에서 fork() 시스템 콜에 의해 child process가 생성이 되고 exec() 시스템 콜에 의해 child process가 실행이 되는데
여기서 exec()와 기능이 하나더 추가된 시스템 콜(exec_my())을 만들어 특정 child process가 exec()대신 exec_my()시스템 콜을 불러
특정 child process를 실행을 시키고 싶습니다.
그런데 문제는 특정 child process를 어떻게 구분하여 exec_my() 시스템 콜을 할당하는것입니다.
즉 일반적인 process는 exec(), 특정 process를 running하기 위해서 exec_my() 시스템 콜을 할당하는 방법입니다.
아시는분 답변 좀 부탁드립니다.
질문이 명확하지 못하다면 제가 다시 정리해서 여쭙겠습니다.
.
안녕하세요.
특정 프로세스라 함은 무엇을 말씀하시는 건지요?
pid가 일정 구간에 존재하는 경우를 말하는건지 혹은 process name으로 구별이 가능한지....
구별 방법에 따라 적용 방법이 달라질 것 같습니다.
단순하게 보면 exec system call 호출이후 커널로 제어권이 넘어가면 일반적으로 do_execve() 함수 같은데서 process를 구별하도록 할 수 있을 것입니다. 다만 exec system call이 호출 될 때 마다 비교문이 수행되니 성능이 아주 조금은 떨어질지도 모릅니다.(아마 큰 영향은 아니기에 무시하셔도 될듯합니다.)
또 다른 방법으로는 해당 프로세스에 동작하는 코드를 직접 만드신 거라면 exec system call을 exec_my system call로 치환 하셔도 될 듯 합니다.
복많이 받으세요.