질문에 대답이 없는것은 보통 질문패턴에서 벗어난 독특한 질문이기 때문에 대답하기가 어려워서겠죠.
보통 말하는 lock 이나 mutex 등은 한 코드의 여러 인스턴스가 변수를 동시에 액세스하는것을 막기위한 장치이구요. 여러개의 코드가 변수를 동시에 액세스하는것을 막는 장치같은것은 실제 구현예에서는 무척 보기 힘들답니다.
왜냐하면 보통 커널/디바이스 드라이버가 자신만이 액세스하는 변수를 lock/mutex로 보호하는것조차도 성능을 최대화하면서, 안전하게 하려면 꽤나 까다롭거든요. 원리원칙을 다 안다하더라도 가끔 실수를 하죠. 그런데 다른 프로세스가 자신도 모르는 사이에 자신의 변수를 건드린다고 생각하면 얼마나 더 디자인/구현이 골치아파지겠습니까?
그래서 차라리 표준 IO 모델을 따라서, IOCTL 등을 통해서 원하는 프로세스가 디바이스 파일을 열어서 변수값을 액세스할수 있도록 해주는 방법을 사용하는것이 보통이죠.
kernel_thread 를 이용하면,thread간 변수를 공유할 수
kernel_thread 를 이용하면,
thread간 변수를 공유할 수 있지 않을까요?
질문에 대답이 없는것은 보통 질문패턴에서 벗어난 독특한 질문이기 때문에
질문에 대답이 없는것은 보통 질문패턴에서 벗어난 독특한 질문이기 때문에 대답하기가 어려워서겠죠.
보통 말하는 lock 이나 mutex 등은 한 코드의 여러 인스턴스가 변수를 동시에 액세스하는것을 막기위한 장치이구요. 여러개의 코드가 변수를 동시에 액세스하는것을 막는 장치같은것은 실제 구현예에서는 무척 보기 힘들답니다.
왜냐하면 보통 커널/디바이스 드라이버가 자신만이 액세스하는 변수를 lock/mutex로 보호하는것조차도 성능을 최대화하면서, 안전하게 하려면 꽤나 까다롭거든요. 원리원칙을 다 안다하더라도 가끔 실수를 하죠. 그런데 다른 프로세스가 자신도 모르는 사이에 자신의 변수를 건드린다고 생각하면 얼마나 더 디자인/구현이 골치아파지겠습니까?
그래서 차라리 표준 IO 모델을 따라서, IOCTL 등을 통해서 원하는 프로세스가 디바이스 파일을 열어서 변수값을 액세스할수 있도록 해주는 방법을 사용하는것이 보통이죠.
댓글 달기