짧은 답변
두 키보드 모두 사용자 수준 코드에서 완전히 동일하게 작동합니다. 장치 드라이버를 작성하면 약간의 차이 ( 현대 PC에서는 나노초 에서 마이크로 초 까지 )가있을 수 있습니다. 시스템이 중단되면 두 키보드 모두 문제를 해결하지 못합니다. 하드 재부팅으로 이동하십시오.
긴 답변 TL; DR;
인터럽트 란 무엇입니까?
하드웨어 (또는 커널과 같은 중요한 OS 내부 소프트웨어 일부)에 프로세서 서비스가 필요한 경우 프로세서가 메시지 또는 인터럽트를 발생 시켜 프로세서가 수행하는 작업을 연기하고이 요청을 처리하도록 요청합니다.
어떻게 작동합니까?
하드웨어가 인터럽트 (예 : 키 누름)를 생성하면이 요청은 인터럽트 컨트롤러로 들어갑니다. 그런 다음 컨트롤러는 머신 코드의 한 줄에서 CPU를 즉시 중단합니다 (CPU는 여전히이 마지막 줄을 실행합니다). 프로세서가이 요청을 처리 할 준비가되면 인터럽트 컨트롤러 (IRQ) 및 처리 루틴을 요청 합니다. 인터럽트 컨트롤러 는 특정 IRQ에 대해 CPU에 의해 실행되어야하는 루틴에 대한 포인터를 포함 하는 내부 데이터 구조- 인터럽트 디스패치 테이블 을 갖습니다 .
모든 다른 인터럽트는 잘 정의 된 제한된 IRQL ( Interrupt Request Level )에 해당합니다. 예를 들어 x86 시스템에는 32 개의 IRQL이 있으며 x64 및 IA64에는 실제로 16 개의 IRQL이 적습니다. 분명히 IRQL보다 더 많은 하드웨어 장치와 소프트웨어 서비스가 있다는 것은 모든 시스템 개체가 IRQL을 공유한다는 것을 의미합니다.
x64에 대한 IRQL 테이블
IRQL | 기술
--------------------------------------------
15 | 높음 / 프로필
14 | 인터 프로세서 인터럽트 / 전원
13 | 시계
12 | 동조
11 | 장치 N
.. | ...
3 | 장치 1
2 | 파견 / DPC
1 | APC
0 | 수동 / 낮음
IRQL이 높을수록 (숫자가 많을수록) 우선 순위가 높습니다. 시스템의 모든 구성 요소는 프로세서의 현재 IRQL을 가능한 가장 낮은 수준 (0)으로 유지하려고합니다. 높은 수준의 인터럽트가 발생하면 프로세서의 현재 IRQL 수준이 높아지고 낮은 수준의 인터럽트는 처리되지 않습니다. 더 높은 레벨의 모든 인터럽트가 해결됩니다. IRQ 스케줄러가 프로세서 실행을 위해 동일한 수준의 여러 IRQ를 대기열에 넣을 수있는 경우 IRQ를 일괄 처리 할 수 있습니다.
요점이 뭐야?
이 모든 것은 최종 사용자를 복잡한 하드웨어와 분리하고 많은 유형의 하드웨어 / 소프트웨어와 작동 할 수있는 범용 아키텍처를 만들기 위해 실제로 잘 설계되었습니다.
사용자 수준 코드 (즉, 커널 수준이 아님)는 프로세서가 수동 / 낮음 (0) IRQL에있을 때만 실행됩니다. 요점은 모든 IRQL이 처리 된 후에 만 응용 프로그램에서 키 누름 이벤트 만 처리 할 수 있다는 것입니다. 따라서 키보드의 경우 IRQL이 하드웨어 인터럽트에 할당되는 것은 중요하지 않습니다.
IRQL은 OS 추상화 일 뿐이며 스톤에는 설정되지 않습니다 . 해당 IRQ 및 IRQL은 Windows 레지스트리 (예 :)에 저장되며 모든 열정적 인 사용자는 수동으로 변경할 수 있습니다.
결론
질문에서 인용
USB 키보드는 일부 IRQ 채널에만 액세스 할 수있는 USB 일반 드라이버 및 아키텍처에 의존하기 때문에 다른 PSQ 컨트롤러와 같이 IRQ에 키보드 액세스 권한을 부여 할 수 없습니다.
아마도 저자 는 더 적은 IRQ 채널 대신 더 낮은 IRQL을 의미했을 것이다 . 어쨌든, 그것은 현대 PC에서 사용자에게 보이지 않기 때문에 실제로 중요하지 않습니다. 가능한 차이는 나노초 에서 마이크로 초 수준이며 커널 수준에서만 발생합니다. 두 경우 모두 사용자 수준 코드는 OS 커널에 의해 차단됩니다.
이것이 사실이라면 USB 포트가 다른 포트 유형에 연결된 키보드보다 응답 성이 떨어질 것입니까?
OS가 설계된 방식으로 인해 사실이 아닙니다. OS가 무언가에 바쁘고 "느린"경우 두 키보드는 동일하게 동작합니다.
다른 중간 우선 순위 인터럽트 루틴에 걸린 결함이있는 시스템에서 중간 우선 순위 IRQ에 맵핑 된 USB 키보드를 예로들 수 있습니다.
이 경우 시스템은 BSOD가되고 IRQ 처리 루틴은 특정 표준 (예 : 고속, 동기식, 비 블로킹 등)으로 설계되어야합니다. 이것과 커널과의 편차는 BSOD입니다.
상대적으로 동일한 우선 순위로 인해 키보드 이벤트가 무시되고 Ctrl-Alt-del 또는 기타 비상 키 입력을 보낼 수 없습니다.
시스템이 정지하면 잘못 될 수있는 많은 것들이 있지만, 키 입력 IRQL은 드라이버 레벨에서 처리 될 것입니다. 문제는 OS가 다른 작업을 수행하고 있기 때문에 그러한 알림을 신청 한 응용 프로그램에 전달되지 않는다는 것입니다.