| Hệ điều hành |
| --- |
|  |
| 
Các tính năng chung |
| * Quản lý tiến trình
* Interrupts
* Quản lý bộ nhớ
* Hệ thống tập tin
* Device drivers
* Mạng
* Bảo mật
* I/O
 |
| * x
* t
* s
 |

Trong máy tính, **ngắt** (hay còn gọi là **bẫy**) 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.

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.

Các nguồn ngắt và cách xử lý

Phân loại
---------

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

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 logic của bộ xử lý (ví dụ: bộ hẹn giờ CPU trong IBM System/370), để thông báo rằng thiết bị cần được chú ý từ hệ điều hành, hoặc ít nhất là một chương trình đang kiểm soát 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  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.

### Ngắt phần mềm

Một ngắt phần mềm được yêu cầu bởi chính bản thân bộ xử lý khi nó thực thi một số lệnh đậc biệt hay gặp phải một số điều kiện nhất định. Tất cả các ngắt mềm đều đi kèm với một trình xử lý ngắt đặc biệt.

Có thể tạo ra một ngắt mềm bằng cách thực hiện một câu lênh đặc biệt, chúng hoạt động tương tự với các lời gọi hàm và được sử dụng cho nhiều mục đích như sử dụng các dịch vụ của hệ điều hành hay tương tác với trình điều khiển thiết bị (ví dụ như đọc hay ghi đĩa). Các ngắt mềm cũng có thể bị gây ra bởi các lỗi thực thi chương trình hay bởi hệ thống bộ nhớ ảo.

Thông thường nhân hệ điều hành sẽ tiếp nhận và xử lý các ngắt mềm. Một số ngắt mềm được xử lý mà chuơng trình không hề có ý thức: ví dụ như cách giải quyết thông thường của một lỗi page là làm cho page đó truy cập được trong bộ nhớ thực. Tuy nhiên, trong một số trường hợp khác một lỗi phân đoạn khi đó hệ điều hành sẽ thực thi một callback. Trên các hệ điều hành dạng Unix điều này bao gồm gửi đi một tín hiệu như SIGSEGV, SIGBUS, SIGILL hay SIGFPE, sau đó tín hiệu sẽ gọi một trình xử lý tín hiệu hay thực thi một hành động mặc định (kết thúc chương trình). 

Trong một tiến trình của nhân, thường có một số loại ngắt mềm nào đó không được phép xảy ra. Nếu chúng xảy ra thì khi đó hệ điều hành sẽ bị treo.

Tham khảo
---------

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
--------------

|  |  |
| --- | --- |
|  | Tra ***interrupt*** hoặc ***interruption*** trong từ điển mở tiếng Việt Wiktionary |

* Interrupts Made Easy
* Interrupts for Microchip PIC Microcontroller
* IBM PC Interrupt Table
* University of Alberta CMPUT 296 Concrete Computing Notes on Interrupts, archived from the original on ngày 13 tháng 3 năm 2012

| * x
* t
* s
Hệ điều hành |
| --- |
| Chung | 
* Tuyên truyền
* So sánh
* Công nghệ pháp lý
* Lịch sử hệ điều hành
* Hobbyist development
* Danh sách
* Thời biểu
* Thị phần sử dụng

 |
| Hạt nhân | 

|  |  |
| --- | --- |
| Cấu trúc | 
* Exokernel
* Hybrid kernel
* Microkernel
* Monolithic

 |
| Các thành phần | 
* Chương trình điều khiển
* Loadable kernel module
* Microkernel
* User space

 |

 |
| Quản lý tiến trình | 

|  |  |
| --- | --- |
| Các khái niệm | 
* Context switch
* Ngắt
* Giao tiếp liên tiến trình
* Task
* Tiến trình
* Khối điều khiển tiến trình
* Hệ điều hành thời gian thực
* Luồng (thread)
* Chia sẻ thời gian

 |
| Thuật toánlập kế hoạch | 
* Máy tính đa tác vụ
* Fixed-priority pre-emptive scheduling
* Multilevel feedback queue
* Preemption (computing)
* Round-robin scheduling
* Shortest job next

 |

 |
| Quản lý bộ nhớ và bảo vệ tài nguyên | 
* Bus error
* General protection fault
* Bảo vệ bộ nhớ
* Phân trang
* Protection ring
* Segmentation fault
* Bộ nhớ ảo

 |
| Truy cập lưu trữ và hệ thống tập tin | 
* Khởi động máy tính
* Giải phân mảnh
* Device file
* File attribute
* Inode
* Journaling file system
* Disk partitioning
* Virtual file system
* Virtual tape library

 |
| Danh sách | 
* AmigaOS
* Android
* BeOS
* BSD
* DOS
* GNU Hurd
* iOS
* Linux
* Mac OS
* MorphOS
* OpenVMS
* OS/2
* OSv
* QNX
* ReactOS
* RISC OS
* Solaris
* Transaction Processing Facility
* Unix
* VM (hệ điều hành)
* Microsoft Windows
* Z/OS

 |
| Khái niệm khác | 
* Giao diện lập trình ứng dụng
* Mạng máy tính
* Hardware abstraction
* Live CD
* Live USB
* Operating system shell
	+ Giao diện dòng lệnh
	+ Giao diện đồ họa người dùng
	+ Text-based user interface
	+ Giao diện người dùng giọng nói
* Preboot Execution Environment

 |

|  |  |
| --- | --- |
| Tiêu đề chuẩn Sửa dữ liệu tại Wikidata | 
* BNF: cb12457456k (data)
* GND: 4625501-1
* LCCN: sh94000530

 |