Câu trả lời ngắn
Cả hai bàn phím sẽ thực hiện hoàn toàn như nhau cho mã cấp độ người dùng. Có thể có những khác biệt nhỏ (từ nano đến micro giây trên PC hiện đại) nếu bạn viết trình điều khiển thiết bị. Nếu hệ thống bị treo, cả hai bàn phím sẽ không giải quyết được vấn đề. Đi để khởi động lại cứng.
Câu trả lời dài TL; DR;
Ngắt là gì?
Khi phần cứng (hoặc một phần quan trọng của phần mềm nội bộ hệ điều hành, như kernel) yêu cầu dịch vụ xử lý, nó sẽ kích hoạt một thông báo hoặc ngắt , yêu cầu bộ xử lý hoãn bất cứ điều gì đang làm và xử lý yêu cầu này.
Làm thế nào nó hoạt động?
Khi phần cứng tạo ra một ngắt (ví dụ: nhấn phím), yêu cầu này sẽ đi vào bộ điều khiển ngắt. Bộ điều khiển sau đó ngay lập tức ngắt CPU trên một dòng mã máy của nó (CPU vẫn thực thi dòng cuối cùng này). Khi bộ xử lý sẵn sàng phục vụ yêu cầu này, nó sẽ yêu cầu bộ điều khiển ngắt cho Yêu cầu ngắt (IRQ) và quy trình xử lý. Bộ điều khiển ngắt có cấu trúc dữ liệu bên trong - Bảng phân phối ngắt có chứa một con trỏ tới một thường trình được CPU thực thi cho một IRQ cụ thể.
Tất cả các ngắt khác nhau tương ứng với Mức yêu cầu ngắt giới hạn (IRQL) được xác định rõ . Ví dụ: trên các hệ thống x86 có 32 IRQL và trên x64 và IA64 thực tế có ít hơn - 16 IRQL. Rõ ràng, có nhiều thiết bị phần cứng và dịch vụ phần mềm hơn IRQL, điều đó có nghĩa là tất cả một số đối tượng hệ thống sẽ chia sẻ IRQL.
Bảng IRQL cho x64
IRQL | Sự miêu tả
--------------------------------------------
15 | Tầm cỡ
14 | Ngắt bộ xử lý / Nguồn
13 | Đồng hồ
12 | Đồng bộ hóa
11 | Thiết bị N
.. | ...
3 | Thiết bị 1
2 | Công văn / DPC
1 | APC
0 | Thụ động / Thấp
IRQL cao hơn (với số lượng lớn hơn) có mức độ ưu tiên cao hơn. Tất cả các thành phần của hệ thống cố gắng giữ IRQL hiện tại của bộ xử lý ở mức thấp nhất có thể - 0. Nếu xảy ra ngắt cấp cao hơn, thì mức IRQL hiện tại của bộ xử lý được nâng lên và các ngắt với mức thấp hơn sẽ không được xử lý cho đến khi tất cả các ngắt với mức cao hơn được giải quyết. IRQ có thể được xử lý hàng loạt nếu bộ lập lịch IRQ có thể xếp hàng một số IRQ cùng cấp để thực hiện bộ xử lý.
Điểm là gì?
Tất cả điều này đã được thiết kế thực sự tốt để tách người dùng cuối khỏi sự phức tạp của phần cứng và tạo ra một kiến trúc phổ quát có thể hoạt động với nhiều loại phần cứng / phần mềm.
Mã cấp độ người dùng (tức là không phải cấp độ kernel) chỉ được thực thi khi bộ xử lý ở IRQL thụ động / thấp (0). Vấn đề là, bạn chỉ có thể xử lý một sự kiện nhấn phím trong ứng dụng của mình sau khi tất cả các IRQL đã được xử lý. Do đó, đối với bàn phím, IRQL không được gán cho ngắt phần cứng.
IRQL chỉ là trừu tượng hóa hệ điều hành và không được thiết lập . IRQ và IRQL tương ứng được lưu trữ trong sổ đăng ký Windows (ví dụ) và bất kỳ người dùng nhiệt tình nào cũng có thể thay đổi chúng theo cách thủ công.
Kết luận
Trích dẫn từ câu hỏi
Vì bàn phím USB dựa trên trình điều khiển chung và kiến trúc USB chỉ có quyền truy cập vào một số kênh IRQ, nên nó không thể cấp cho bàn phím quyền truy cập vào IRQ ở mức ưu tiên cao như bộ điều khiển khác (giả sử là PS2).
Có lẽ tác giả có nghĩa là IRQL thấp hơn thay vì các kênh IRQ ít hơn . Dù sao, nó không thực sự quan trọng vì nó không hiển thị cho người dùng trên bất kỳ PC hiện đại nào. Sự khác biệt có thể là ở cấp độ nano đến micro giây và chúng chỉ xảy ra ở cấp độ hạt nhân. Trong cả hai trường hợp, mã cấp người dùng bị chặn bởi nhân hệ điều hành.
Điều này (nếu nó đúng) có nghĩa là bàn phím USB sẽ ít phản hồi hơn so với bàn phím được cắm vào loại cổng khác?
Điều đó không đúng vì cách thiết kế HĐH. Nếu hệ điều hành bận rộn với một cái gì đó và "chậm", cả hai bàn phím sẽ hoạt động giống hệt nhau.
Ví dụ, bàn phím USB được ánh xạ tới IRQ ưu tiên trung bình, trên hệ thống bị lỗi bị kẹt trên một thói quen ngắt ưu tiên trung bình khác
Trong trường hợp này, hệ thống sẽ BSOD, các quy trình xử lý IRQ phải được thiết kế theo một tiêu chuẩn nhất định (chẳng hạn như chúng phải nhanh, đồng bộ, không chặn như vậy). Bất kỳ sai lệch nào từ điều này và kernel sẽ BSOD.
Do mức độ ưu tiên tương đối bằng nhau, các sự kiện bàn phím sẽ bị bỏ qua và bạn sẽ không thể gửi Ctrl-Alt-del hoặc bất kỳ tổ hợp phím khẩn cấp nào khác.
Nếu hệ thống bị treo, có rất nhiều thứ có thể sai, nhưng rất có thể IRQL nhấn phím sẽ được xử lý ở cấp trình điều khiển. Vấn đề là, nó sẽ không được gửi đến ứng dụng đã đăng ký thông báo như vậy, vì HĐH đang bận làm việc khác.