Đề XuấT, 2020

Editor Choice

Sự khác biệt giữa ngắt và bỏ phiếu trong hệ điều hành

Chúng tôi có nhiều thiết bị bên ngoài được gắn vào CPU như chuột, bàn phím, máy quét, máy in, v.v ... Những thiết bị này cũng cần sự chú ý của CPU. Giả sử, CPU đang bận hiển thị tệp PDF và bạn nhấp vào biểu tượng trình phát phương tiện cửa sổ trên màn hình nền. Mặc dù CPU không có ý tưởng nào khi một sự kiện như thế này xảy ra, nhưng nó phải đáp ứng với các đầu vào như vậy từ các thiết bị I / O. Ngắt và bỏ phiếu là hai cách để xử lý các sự kiện được tạo bởi các thiết bị có thể xảy ra bất cứ lúc nào trong khi CPU đang bận thực hiện quy trình khác.

Bỏ phiếu và ngắt cho phép CPU dừng những gì hiện đang làm và đáp ứng với nhiệm vụ quan trọng hơn. Bỏ phiếu và Ngắt khác nhau về nhiều mặt. Nhưng điểm cơ bản để phân biệt Bỏ phiếu và Ngắt là trong việc bỏ phiếu, CPU tiếp tục kiểm tra các thiết bị I / O đều đặn xem có cần dịch vụ CPU hay không, trong khi đó, thiết bị I / O làm gián đoạn CPU và thông báo cho CPU rằng nó cần dịch vụ CPU . Tôi đã thảo luận về một số khác biệt giữa Ngắt và Bỏ phiếu trong biểu đồ so sánh bên dưới, xin vui lòng xem xét.

Biểu đồ so sánh

Cơ sở để so sánhLàm gián đoạnBỏ phiếu
Căn bảnThiết bị thông báo cho CPU rằng nó cần CPU chú ý.CPU liên tục kiểm tra trạng thái thiết bị xem nó có cần sự chú ý của CPU không.
Cơ chếMột ngắt là một cơ chế phần cứng.Bỏ phiếu là một Nghị định thư.
Phục vụTrình xử lý ngắt dịch vụ Thiết bị.CPU phục vụ thiết bị.
Chỉ địnhDòng yêu cầu ngắt cho biết thiết bị cần được bảo trì.Comand-bit cho biết thiết bị cần được bảo trì.
CPUCPU chỉ bị xáo trộn khi một thiết bị cần bảo trì, giúp tiết kiệm chu kỳ CPU.CPU phải chờ và kiểm tra xem một thiết bị có cần bảo trì hay không, làm lãng phí rất nhiều chu kỳ CPU.
Xảy raMột gián đoạn có thể xảy ra bất cứ lúc nào.CPU thăm dò các thiết bị ở khoảng thời gian thường xuyên.
Hiệu quảNgắt trở nên không hiệu quả khi các thiết bị liên tục làm gián đoạn CPU.
Việc bỏ phiếu trở nên không hiệu quả khi CPU hiếm khi tìm thấy một thiết bị sẵn sàng phục vụ.
Thí dụĐể chuông reo rồi mở cửa để kiểm tra xem ai đã đến.Liên tục mở cửa để kiểm tra xem có ai đến không.

Định nghĩa ngắt

Ngắt là một cơ chế phần cứng cho phép CPU phát hiện ra rằng thiết bị cần sự chú ý của nó. CPU có một dòng yêu cầu ngắt dây được CPU kiểm tra sau khi thực hiện mỗi lệnh đơn. Khi CPU cảm nhận được tín hiệu ngắt trên dòng yêu cầu ngắt, CPU sẽ dừng tác vụ hiện đang thực thi của nó và phản hồi lại việc gửi bởi thiết bị I / O ngắt bằng cách chuyển điều khiển đến trình xử lý ngắt . Trình xử lý ngắt giải quyết ngắt bằng cách bảo trì thiết bị.

Mặc dù CPU không biết khi nào một ngắt sẽ xảy ra vì nó có thể xảy ra bất cứ lúc nào, nhưng nó phải đáp ứng với ngắt bất cứ khi nào nó xảy ra.

Khi trình xử lý ngắt kết thúc việc thực hiện ngắt, sau đó CPU sẽ tiếp tục thực hiện tác vụ mà nó đã dừng để đáp ứng ngắt. Phần mềm, phần cứng, người dùng, một số lỗi trong chương trình, vv cũng có thể tạo ra một ngắt. Làm gián đoạn tính chất xử lý của CPU dẫn đến đa nhiệm, tức là người dùng có thể thực hiện một số tác vụ khác nhau cùng một lúc.

Nếu có nhiều hơn một ngắt được gửi đến CPU, trình xử lý ngắt sẽ giúp quản lý các ngắt đang chờ xử lý. Khi trình xử lý ngắt được kích hoạt bởi sự tiếp nhận của một ngắt, nó ưu tiên các ngắt đang chờ để được xử lý bởi CPU và sắp xếp chúng trong một hàng đợi để được bảo trì.

Định nghĩa về bỏ phiếu

Như chúng ta đã thấy trong các ngắt, đầu vào từ thiết bị I / O có thể đến bất cứ lúc nào yêu cầu CPU xử lý nó. Bỏ phiếu là một giao thức thông báo cho CPU rằng thiết bị cần sự chú ý của nó. Không giống như trong ngắt, nơi thiết bị nói với CPU rằng nó cần xử lý CPU, trong khi bỏ phiếu, CPU tiếp tục hỏi thiết bị I / O xem nó có cần xử lý CPU không.

CPU liên tục kiểm tra từng thiết bị được gắn vào nó để phát hiện xem có thiết bị nào cần sự chú ý của CPU hay không. Mỗi thiết bị đều có một bit sẵn sàng lệnh cho biết trạng thái của thiết bị đó, tức là liệu nó có một số lệnh được CPU thực thi hay không. Nếu bit lệnh được đặt 1, thì nó có một số lệnh được thực thi khác nếu bit bằng 0, thì nó không có lệnh. CPU có một bit bận cho biết trạng thái của CPU dù bận hay không. Nếu bit bận được đặt 1, thì nó đang bận thực thi lệnh của một số thiết bị, nếu không nó là 0 .

Thuật toán bỏ phiếu

  • Khi một thiết bị có một số lệnh được CPU thực thi, nó sẽ liên tục kiểm tra bit bận rộn của CPU cho đến khi nó rõ ràng (0).
  • Khi bit bận trở nên rõ ràng, thiết bị sẽ thiết lập bit ghi trong thanh ghi lệnh của nó và ghi một byte vào thanh ghi dữ liệu.
  • Bây giờ thiết bị đặt (1) bit sẵn sàng lệnh.
  • Khi CPU kiểm tra bit sẵn sàng lệnh của thiết bị và tìm thấy nó được đặt (1), nó sẽ đặt (1) bit bận của nó.
  • CPU sau đó đọc thanh ghi lệnh của thiết bị và thực hiện lệnh của thiết bị.
  • Sau khi thực hiện lệnh, CPU sẽ xóa (0) bit sẵn sàng lệnh, bit lỗi của thiết bị để chỉ thị thực hiện thành công lệnh của thiết bị và hơn nữa nó cũng xóa (0) bit bận rộn của nó để cho biết CPU có thể thực thi lệnh của một số thiết bị khác.

Sự khác biệt chính giữa gián đoạn và bỏ phiếu trong hệ điều hành

  1. Khi bị gián đoạn, thiết bị sẽ thông báo cho CPU rằng nó cần bảo trì trong khi đó, trong quá trình bỏ phiếu, CPU sẽ kiểm tra xem thiết bị có cần bảo trì hay không.
  2. Ngắt là một cơ chế phần cứng vì CPU có một dây yêu cầu ngắt, tín hiệu ngắt đã xảy ra. Mặt khác, Polling là một giao thức tiếp tục kiểm tra các bit điều khiển để thông báo liệu một thiết bị có gì đó để thực thi hay không.
  3. Trình xử lý ngắt xử lý các ngắt được tạo bởi các thiết bị. Mặt khác, trong việc bỏ phiếu, CPU sẽ phục vụ thiết bị khi họ yêu cầu.
  4. Ngắt được báo hiệu bởi dòng yêu cầu ngắt . Tuy nhiên, bit sẵn sàng cho biết thiết bị cần được bảo trì.
  5. Trong các ngắt, CPU chỉ bị xáo trộn khi bất kỳ thiết bị nào làm gián đoạn nó. Mặt khác, trong quá trình bỏ phiếu, CPU lãng phí rất nhiều chu kỳ CPU bằng cách liên tục kiểm tra bit sẵn sàng lệnh của mọi thiết bị.
  6. Một ngắt có thể xảy ra bất cứ lúc nào trong khi đó, CPU tiếp tục thăm dò thiết bị theo định kỳ .
  7. Việc bỏ phiếu trở nên không hiệu quả khi CPU tiếp tục bỏ phiếu cho thiết bị và hiếm khi tìm thấy bất kỳ thiết bị nào sẵn sàng phục vụ. Mặt khác, các ngắt trở nên kém hiệu quả khi các thiết bị liên tục làm gián đoạn quá trình xử lý CPU liên tục.

Phần kết luận:

Cả Bỏ phiếu và Ngắt đều hiệu quả khi tham dự các thiết bị I / O. Nhưng chúng có thể trở nên kém hiệu quả ở điều kiện nhất định như đã thảo luận ở trên.

Top