Ngắt

Bách khoa toàn thư mở Wikipedia
Bước tới điều hướng Bước tới tìm kiếm

Trong máy tính, ngắt là một phản ứng của bộ xử lý đối với một sự kiện cần được phần mềm chú ý. Điều kiện ngắt cảnh báo bộ xử lý và phục vụ như một yêu cầu bộ xử lý ngắt đoạn mã đang thực thi khi được phép, để sự kiện có thể được xử lý kịp thời. Nếu yêu cầu được chấp nhận, bộ xử lý sẽ phản hồi bằng cách tạm dừng các hoạt động hiện tại của nó, lưu trạng thái của nó và thực thi một chức năng được gọi là trình xử lý ngắt (hoặc quy trình dịch vụ ngắt, ISR) để đối phó với sự kiện. Sự gián đoạn này là tạm thời và, trừ khi ngắt chỉ ra một lỗi nghiêm trọng, bộ xử lý sẽ tiếp tục các hoạt động bình thường sau khi trình xử lý ngắt kết thúc.[1]

Ngắt thường được sử dụng bởi các thiết bị phần cứng để chỉ ra những thay đổi trạng thái vật lý hoặc điện tử cần được chú ý. Ngắt cũng thường được sử dụng để thực hiện đa nhiệm máy tính, đặc biệt là trong tính toán thời gian thực. Các hệ thống sử dụng ngắt theo những cách này được cho là điều khiển ngắt.[2]

Nguồn ngắt và xử lý bộ xử lý

Phân loại[sửa | sửa mã nguồn]

Các tín hiệu ngắt có thể được phát ra để đáp ứng với các sự kiện phần cứng hoặc phần mềm. Chúng được phân loại là ngắt phần cứng hoặc ngắt phần mềm, tương ứng. Đối với bất kỳ bộ xử lý cụ thể nào, số lượng kiểu ngắt bị giới hạn bởi kiến trúc của máy.

Ngắt phần cứng[sửa | sửa mã nguồn]

Ngắt phần cứng là một điều kiện liên quan đến trạng thái của phần cứng có thể được báo hiệu bởi thiết bị phần cứng bên ngoài, ví dụ: dòng yêu cầu ngắt (IRQ) trên PC hoặc được phát hiện bởi các thiết bị nhúng trong bộ xử lý logic (ví dụ: bộ hẹn giờ CPU trong Hệ thống IBM / 370), để thông báo rằng thiết bị cần được chú ý từ hệ điều hành (OS) [3] hoặc, nếu không có hệ điều hành, từ chương trình "bare-metal" đang chạy trên CPU. Các thiết bị bên ngoài như vậy có thể là một phần của máy tính (ví dụ: bộ điều khiển đĩa) hoặc chúng có thể là thiết bị ngoại vi bên ngoài. Ví dụ: nhấn phím bàn phím hoặc di chuyển chuột được cắm vào cổng PS / 2 sẽ kích hoạt ngắt phần cứng khiến bộ xử lý đọc vị trí phím hoặc chuột.

Các ngắt phần cứng có thể đến không đồng bộ đối với xung nhịp của bộ xử lý và bất kỳ lúc nào trong khi thực hiện lệnh. Do đó, tất cả các tín hiệu ngắt phần cứng được điều hòa bằng cách đồng bộ hóa chúng với đồng hồ bộ xử lý và chỉ hoạt động ở các ranh giới thực thi lệnh.

Trong nhiều hệ thống, mỗi thiết bị được liên kết với một tín hiệu IRQ cụ thể. Điều này giúp bạn có thể nhanh chóng xác định thiết bị phần cứng nào đang yêu cầu dịch vụ và tiến hành bảo dưỡng thiết bị đó.

Trên một số hệ thống cũ hơn [4] tất cả các ngắt đều đến cùng một vị trí và Hệ điều hành sử dụng một lệnh chuyên biệt để xác định mức ưu tiên cao nhất của ngắt chưa được che dấu. Trên các hệ thống hiện đại thường có một quy trình ngắt riêng biệt cho từng loại ngắt hoặc cho từng nguồn ngắt, thường được thực hiện dưới dạng một hoặc nhiều bảng vectơ ngắt.

Tham khảo[sửa | sửa mã nguồn]

  1. ^ Jonathan Corbet; Alessandro Rubini; Greg Kroah-Hartman (2005). Linux Device Drivers, Third Edition, Chapter 10. Interrupt Handling” (PDF). O'Reilly Media. tr. 269. Truy cập ngày 25 tháng 12 năm 2014. Then it's just a matter of cleaning up, running software interrupts, and getting back to regular work. The "regular work" may well have changed as a result of an interrupt (the handler could wake_up a process, for example), so the last thing that happens on return from an interrupt is a possible rescheduling of the processor.
  2. ^ Rosenthal, Scott (tháng 5 năm 1995). “Basics of Interrupts”. Bản gốc lưu trữ ngày 26 tháng 4 năm 2016. Truy cập ngày 11 tháng 11 năm 2010.
  3. ^ “Hardware interrupts”. Truy cập ngày 9 tháng 2 năm 2014.
  4. ^ “Interrupt Instructions”. Control Data 3600 Computer System Reference Manual (PDF). Control Data Corporation. tháng 7 năm 1964. tr. 4-6. 60021300.

Liên kết ngoài[sửa | sửa mã nguồn]