2 cara interupsi pada processor :
1. Interupsi langsung
Berasal dari luar prosesor (peripheral / alat mengirim sinyal kepada prosesor untuk meminta pelayanan)
2. Interupsi Tanya / Polling
Berasal dari prosesor (prosesor secara bergiliran mengecek apakah ada peripheral yang memerlukan pelayanan atau tidak)
Interupsi dapat di-enable dan disable tergantung pada levelnya.
Pembangkit interupsi dapat berasal dari :
o Program, di dalam program telah dirancang pada bagian tertentu akan terjadi pensaklaran konteks, yang menimbulkan interupsi, contohnya pada saat penggunaan alat / prosesor secara bergantian.
o Prosesor, prosesor sendiri dapat membangkitkan interupsi, yang biasa mengolah logika dan aritmatika. Jika melampoi ukuran tampung register di dalam prosesor, maka terjadi kekeliruan yang akan menginterupsi kerjanya sendiri dan menyerahkan kendali prosesor pada sistem operasi. Misalnya pembagian dengan bilangan nol.
o Satuan kendali, tugas untuk melaksanakan interupsi terletak pada satuan kendali, sehingga satuan kendali dapat membangkitkan interupsi. Misalnya kekeliruan instruksi
o Kunci waktu / clock, menggunakan interupsi berkala. Misalnya pada program looping yang tak terhingga, diinterupsi pada setiap selang waktu 60 detik.
o Peripheral I/O, I/O jika akan bekerja memberitahukan pada prosesor dengan interupsi prosesor dan juga ketika pekerjaan selesai atau pada saat terjadi kekeliruan paritas.
o Memori, karena terjadi kekeliruan, misalnya ketika prosesor ingin mencapai alamat memori yang terletak di luar bentangan alamat memori yang ada.
o Sumber daya lain, misal dibangkitkan oleh operator sistem komputer yang mengerti cara interupsi.
Interupsi vector : Berisi alamat prosedur service interupsi
Penerimaan interupsi dan interupsi berganda : ada kalanya interupsi ditolak oleh prosesor atau interupsi yang datang tidak hanya satu sehingga diperlukan prioritas.
Tindak lanjut interupsi :
1. Penata interupsi / interrupt handler
jika terjadi interupsi, maka kendali prosesor diserahkan ke bagian penata interupsi pada sistem operasi, maka penata interupsi inilah yang melaksanakan interupsi.
a. Instruksi yang sedang diolah oleh prosesor dibiarkan sampai selesai program.
b. Penata interupsi merekam semua informasi proses ke dalam blok kendali proses.
c. Penata interupsi mengidentifikasi jenis dan asal interupsi.
d. Penata interupsi mengambil tindakan sesuai dengan yang dimaksud interupsi.
e. Penata interupsi mempersiapkan segala sesuatu untuk pelanjutan proses yang diinterupsi.
2. Penata keliru / error handler
yaitu interupsi karena kekeliruan pada pengolahan proses dan bagian pada sistem operasi yang menata kegiatan akibat kekeliruan adalah penata keliru.
a. Pemulihan, komputer telah dilengkapi dengan sandi penemuan dan pemulihan kekeliruan, contohnya telah dilengkapi dengan sandi Hamming sehingga ketika menemukan kekeliruan sandi akan mengoreksi kekeliruan itu, proses pulih ke bentuk semula sebelum terjadi kekeliruan.
b. Pengulangan, mengatur agar proses yang membangkitkan interupsi keliru dikerjakan ulang, jika kekeliruan dapat diatasi maka proses akan berlangsung seperti biasa, jika tidak teratasi maka interupsi akan menempuh tindak lanjut keluar dari proses.
c. Keluar dari proses, penata keliru menyiapkan tampilan berita keliru dari monitor, setelah itu prosesor keluar dari proses, ini adalah tindakan terakhir jika tidak dapat menolong proses yang keliru tersebut.
Keterangan :
1. Rampung
Program selesai dilaksanakan oleh prosesor sehingga penyerahan kendali proses ke pekerjaan baru / perintah baru karena proses yang dikerjakan oleh prosesor telah selesai.
2. Keliru
Jika menemukan kekeliruan akan ditampilkan, kemudian kendali prosesor diserahkan pada perintah berikutnya.
3. Permintaan bukan dari alat I/O
Setelah interupsi selesai dilayani, kendali prosesor dikembalikan pada proses semula, misalnya interupsi berkala.
4. Permintaan dari alat I/O
Setelah interupsi selesai dilayani, kendali prosesor dikembalikan pada proses sebelumnya, tetapi ada kalanya prosesor ikut campur dalam kerja alat I/O sehingga pengembalian kendali proses semula, tidak berlangsung segera / tunggu.
5. Rampung dari alat I/O
Setelah interupsi selesai dilayani dan tanda rampung dicatat, kendali prosesor dikembalikan ke proses semula. Biasanya untuk alat I/O yang tidak diikut campuri oleh prosesor.
Catt:
1 & 2 tidak mengembalikan prosesor ke proses yang terinterupsi, sedangkan
3,4,5 mengembalikan prosesor ke proses yang terinterupsi.
Langkah-langkah yang dilakukan sistem operasi pada saat terjadi interupsi :
1. hardware memasukkan program counter, dl.l.
memasukkan ke dalam stack pencacah program
2. Hardware memuatkan (load) program counter baru dari vector interrupsi
3. Prosedur bahasa rakitan menyimpan isi register
4. Prosedur bahasa rakitan men-set stack yang baru
5. Prosedur C menandai proses servis siap (ready)
6. Scheduler / penjadwalan menentukan proses mana yang akan jalan berikutnya
7. Prosedur C kembali ke modus bahasa rakitan
8. Prosedur bahasa rakitan memulai proses yang sedang dilaksanakan.
Beberapa proses biasanya berkomunikasi dengan proses lainnya.
Contohnya pada shell pipe line : output dari proses pertama harus diberikan kepada proses ke dua dan seterusnya.
Pada beberapa sistem operasi, proses-proses yang bekerja bersama sering sharing (berbagi) media penyimpanan, dimana suatu proses dapat membaca dan menulis pada shared storage (main memory atau files)