Sự khác biệt giữa cuộc gọi hệ thống và ngắt

Sự khác biệt giữa cuộc gọi hệ thống và ngắt
Sự khác biệt giữa cuộc gọi hệ thống và ngắt

Video: Sự khác biệt giữa cuộc gọi hệ thống và ngắt

Video: Sự khác biệt giữa cuộc gọi hệ thống và ngắt
Video: MAZDA CX5 PREMIUM hơn MAZDA CX5 LUXURY những gì / Mazda CX5 2024, Tháng bảy
Anonim

Cuộc gọi hệ thống so với Ngắt

Một bộ xử lý điển hình thực hiện từng lệnh một. Nhưng có thể có những trường hợp khi bộ xử lý phải dừng tạm thời và giữ lệnh hiện tại và thực thi một số chương trình hoặc đoạn mã khác (nằm ở một số nơi khác). Sau khi thực hiện việc này, bộ xử lý trở lại thực thi bình thường và tiếp tục từ nơi nó đã dừng lại. Một cuộc gọi hệ thống và một ngắt là những trường hợp như vậy. Lệnh gọi hệ thống là lệnh gọi đến một chương trình con được tích hợp sẵn trong hệ thống. Ngắt là một sự gián đoạn điều khiển chương trình do các sự kiện phần cứng bên ngoài gây ra.

Cuộc gọi hệ thống là gì?

Lệnh gọi hệ thống cung cấp cho các chương trình chạy trên máy tính một giao diện để nói chuyện với hệ điều hành. Khi một chương trình cần yêu cầu một dịch vụ (mà bản thân nó không có quyền) từ hạt nhân của hệ điều hành, nó sẽ sử dụng một lệnh gọi hệ thống. Các quy trình cấp người dùng không có quyền giống như các quy trình tương tác trực tiếp với hệ điều hành. Ví dụ: để giao tiếp với và thiết bị I / O bên ngoài hoặc để tương tác với bất kỳ quy trình nào khác, một chương trình phải sử dụng lệnh gọi hệ thống.

Ngắt là gì?

Trong quá trình thực thi bình thường chương trình máy tính, có thể có các sự kiện có thể khiến CPU tạm thời dừng lại. Những sự kiện như thế này được gọi là sự gián đoạn. Gián đoạn có thể do lỗi phần mềm hoặc phần cứng. Ngắt phần cứng được gọi là (đơn giản) Ngắt, trong khi ngắt phần mềm được gọi là Ngoại lệ hoặc Bẫy. Khi ngắt (phần mềm hoặc phần cứng) được nâng lên, điều khiển được chuyển đến một chương trình con đặc biệt gọi là ISR (Interrupt Service Routine) có thể xử lý các điều kiện do ngắt đưa ra.

Như đã đề cập ở trên, thuật ngữ Ngắt thường được dành cho các ngắt phần cứng. Chúng là những gián đoạn điều khiển chương trình do các sự kiện phần cứng bên ngoài gây ra. Ở đây, bên ngoài có nghĩa là bên ngoài CPU. Ngắt phần cứng thường đến từ nhiều nguồn khác nhau như chip hẹn giờ, thiết bị ngoại vi (bàn phím, chuột, v.v.), cổng I / O (nối tiếp, song song, v.v.), ổ đĩa, xung nhịp CMOS, card mở rộng (card âm thanh, video. thẻ, v.v.). Điều đó có nghĩa là các ngắt phần cứng hầu như không bao giờ xảy ra do một số sự kiện liên quan đến chương trình đang thực thi. Ví dụ: một sự kiện như người dùng nhấn phím trên bàn phím hoặc bộ hẹn giờ phần cứng bên trong hết thời gian có thể gây ra loại gián đoạn này và có thể thông báo cho CPU rằng một thiết bị nhất định cần được chú ý. Trong tình huống như vậy, CPU sẽ dừng bất cứ điều gì nó đang làm (tức là tạm dừng chương trình hiện tại), cung cấp dịch vụ theo yêu cầu của thiết bị và sẽ quay lại chương trình bình thường.

Sự khác biệt giữa Cuộc gọi Hệ thống và Gián đoạn là gì?

Lệnh gọi hệ thống là lệnh gọi chương trình con được tích hợp sẵn trong hệ thống, còn Ngắt là một sự kiện khiến bộ xử lý tạm thời giữ việc thực thi hiện tại. Tuy nhiên, một sự khác biệt chính là các cuộc gọi hệ thống là đồng bộ, trong khi ngắt thì không. Điều đó có nghĩa là các cuộc gọi hệ thống xảy ra vào một thời điểm cố định (thường do người lập trình xác định), nhưng sự gián đoạn có thể xảy ra bất cứ lúc nào do một sự kiện bất ngờ như người dùng nhấn phím trên bàn phím. Do đó, khi một lệnh gọi hệ thống xảy ra, bộ xử lý chỉ phải nhớ nơi quay lại, nhưng trong trường hợp ngắt, bộ xử lý phải nhớ cả nơi quay lại và trạng thái của hệ thống. Không giống như lệnh gọi hệ thống, ngắt thường không liên quan gì đến chương trình hiện tại.

Đề xuất: