@ Problem
: 'test' 라는 application program을 작성해보자. test는 자신의 process id를 Device Driver를 이용하여 kernel로 전달할 수 있다. Kernel 에서는 process id를 받으면 Kernel Timer를 동작시켜 주기적으로 test 프로세스에게 Signal(SIGUSR1)을 전달하고, Signal을 받으면 Kernel에서 전달한 int형 data를 출력해보자.
@ Answer
1) PID 전달
① character device driver 이용
② copy_from_user를 통해 User -> Kernel 영역으로 data 복사
2) 주기적인 Signal 전달
① Kernel Timer 이용
② Timer Handler에서 kill_proc 함수를 통해 Kernel -> User 특정 프로세스로 signal 전달
③ Timer 대신 Key를 이용하는 경우 Interrupt Handler에서 kill_proc 함수를 사용하면 됨
3) Signal 처리
① 전달받은 signal을 처리할 handler 등록
② Signal Handler에서 원하는 동작을 수행
@ Summary
: 'test' 라는 application program을 작성해보자. test는 자신의 process id를 Device Driver를 이용하여 kernel로 전달할 수 있다. Kernel 에서는 process id를 받으면 Kernel Timer를 동작시켜 주기적으로 test 프로세스에게 Signal(SIGUSR1)을 전달하고, Signal을 받으면 Kernel에서 전달한 int형 data를 출력해보자.
@ Answer
1) PID 전달
① character device driver 이용
② copy_from_user를 통해 User -> Kernel 영역으로 data 복사
2) 주기적인 Signal 전달
① Kernel Timer 이용
② Timer Handler에서 kill_proc 함수를 통해 Kernel -> User 특정 프로세스로 signal 전달
③ Timer 대신 Key를 이용하는 경우 Interrupt Handler에서 kill_proc 함수를 사용하면 됨
3) Signal 처리
① 전달받은 signal을 처리할 handler 등록
② Signal Handler에서 원하는 동작을 수행
@ Summary
No comments:
Post a Comment