Interrupt trong hệ điều hành

Trong hệ điều hành, “Interrupt” được hiểu là “ngắt” hoặc “sự gián đoạn”. Đây là một sự kiện xảy ra ngẫu nhiên trong máy tính, gây sự gián đoạn trong quá trình thực thi tuần tự của chương trình.

Interrupt trong hệ điều hành là ngắt quãng. Ngắt quãng là sự kiện dừng công việc hiện tại của CPU, buộc CPU thực hiện một việc nào đó rồi mới quay trở lại thực hiện tiếp công việc cũ.

Chương trình này được gọi là chương trình phục vụ ngắt (ISR – Interrupt Service Routine). ISR hoàn toàn giống với một chương trình bình thường trên máy tính, nghĩa là nó có khả năng truy xuất đến tất cả các lệnh ngôn ngữ máy của μP.

Phần lớn các nhà sản xuất máy tính dùng từ ngắt quãng để ám chỉ sự kiện này, tuy nhiên một số nhà sản xuất khác dùng từ ngoại lệ, lỗi, bẩy để chỉ định hiện tượng này.

Người ta đã nghĩ ra ngắt quãng là để nhận biết các sai sót trong tính toán số học, và để ứng dụng cho những hiện tượng thời gian thực.

Hiện tại, ngắt quãng được dùng trong các công việc khác như.

Ngoại vi đòi hỏi nhập hoặc xuất số liệu.

Người lập trình muốn dùng dịch vụ của hệ điều hành.

Cho một chương trình chạy từng lệnh.

Làm điểm dừng của một chương trình.

Báo tràn số liệu trong tính toán số học.

Trang bộ nhớ thực sự không có trong bộ nhớ.

Báo vi phạm vùng cấm của bộ nhớ.

Báo dùng một lệnh không có trong tập lệnh.

Báo phần cứng máy tính bị hư.

Báo điện bị cắt.

Interrupt được chia làm 2 loại:

Ngắt đồng bộ: Ngắt được tạo ra bởi bộ điều khiển trung tâm – Central Processing Unit . Ngắt được gọi là đồng bộ vì trong quá trình CPU thực thi các câu lệnh, bộ điều khiển gọi ngắt sau khi kết thúc thực thi của một lệnh. CPU là thiết bị chủ động tạo ra ngắt.

Ngắt không đồng bộ: Ngắt được tạo ra bởi các thiết bị phần cứng khác, và được tạo ra ở bất kỳ thời điểm nào mà không liên quan đến các câu lệnh hiện tại đang được CPU thực thi. CPU không là thiết bị chủ động tạo ra ngắt, ngắt được tạo ra ở thời điểm CPU không đoán trước được bởi thiết bị khác.

Các quá trình ngắt quãng trong hệ điều hành.

Ngắt mềm và ngắt cứng.

Ngắt mềm : là ngắt được gọi bằng một lệnh trong chương trình ngôn ngữ máy. Ngắt mềm được
thực hiện trên hợp ngữ thông qua lệnh INT.

Đối với các ngôn ngữ bậc cao hơn, vẫn cho phép thực hiện gọi ngắt nhưng phải được biên dịch thành lệnh INT trong hợp ngữ rồi mới thực hiện.

Ngắt cứng :khác với ngắt mềm, ngắt cứng không được khởi động bên trong máy tính mà do các
linh kiện điện tử tác động lên hệ thống.

Ngắt cứng cũng được chia thành 2 loại: ngắt che được và ngắt không che được. Ngắt che được là ngắt có thể cho phép hay không cho phép thực thi bằng phần mềm thông qua cờ ngắt IF (Interrupt Flag): lệnh CLI (Clear Interrupt Flag) sẽ cấm ngắt và lệnh STI (Set Interrupt Flag) sẽ cho phép các ngắt này hoạt động.

Khi thực hiện lệnh gọi một ngắt nào đó, chương trình con phục vụ cho ngắt sẽ được
gọi. Để thực hiện các ngắt tương ứng, địa chỉ thực hiện các chương trình con phục vụ ngắt được đặt trong một bảng, gọi là bảng vector ngắt.

Gọi ngắt và chặn ngắt.

Quá trình gọi ngắt từ hợp ngữ đơn giản là thực hiện lệnh INT STT ngắt sau khi nạp
các tham số cần thiết cho ngắt. Khi thực hiện lệnh gọi ngắt, CPU sẽ tìm kiếm trong bảng vector ngắt địa chỉ của chương trình phục vụ ngắt.

Người sử dụng cũng có thể xây dựng một chương trình cơ sở như các chương trình xử lý ngắt. Sau đó, các chương trình khác có thể gọi ngắt ra để sử dụng. Một chương trình có thể gọi chương trình con loại này mà không cần biết địa chỉ của nó.

Bài viết interrupt trong hệ điều hành được tổng hợp bởi Canhosunwahpearl.edu.vn.

Xem thêm thông tin:

0913.756.339