[완료]사용자 역역에서 인터럽트를 비활성화 시킬수 있는 방법이 있나요???

thewarparty의 이미지

사용자 영역에서 어떠한 일을 처리하는 동안 인터럽트를 비활성화 시켜야 하는 문제가 있습니다.

하지만 여기저기 뒤져봐도 사용자 영역에서 인터럽트를 비활성화 시킬수 있는 방법이 없는것 같더군요

혹시 사용자 영역에서는 인터럽트를 비활성화 시킬 수 없나요??

kaeri17의 이미지

http://en.wikibooks.org/wiki/X86_Assembly/Advanced_Interrupts#Disabling_Interrupts 여기 보면 IOPL 권한 이하인 경우 intterupt를 중지시키려면 예외가 발생한다고 되어 있네요... 저도 잘은 모르겠습니다.

jick의 이미지

http://www.kernel.org/doc/man-pages/online/pages/man2/iopl.2.html

이런 게 있네요.

In addition to granting unrestricted I/O port access, running at a higher I/O
privilege level also allows the process to disable interrupts. This will
probably crash the system, and is not recommended.

흠...

thewarparty의 이미지

관심 가져 주셔서 감사합니다.

그냥 ioctl을 써서 커널로 가서 인터럽트를 비활성화 하는 방법으로 해결했습니다.