Menu
Secara percuma
Pendaftaran
Rumah  /  Masalah wanita/ Mengganggu jenis gangguan. Perkakasan dan perisian terganggu

Sampukan ialah jenis sampukan. Perkakasan dan perisian terganggu

Dalam seni bina PC, sistem input/output asas (BIOS) menduduki tempat yang istimewa. Ia boleh dianggap, dalam satu tangan, sebagai bahagian penting perkakasan, sebaliknya, sistem ini adalah salah satu modul perisian OS.

Salah satu fungsi penting BSVV ialah melayan panggilan sistem, atau gangguan. Panggilan sistem dijana oleh perisian atau perkakasan untuk melaksanakan pelbagai operasi. Mekanisme gangguan digunakan untuk melaksanakan panggilan sistem. Intipati mekanisme ini ialah operasi semasa mesin, walau apa pun keadaannya, boleh digantung selama masa yang singkat salah satu isyarat yang menunjukkan berlakunya situasi yang memerlukan pemprosesan segera

Nilai yang dikembalikan mengikut masa juga disalin ke dalam pembolehubah integer. Jika panggilan sistem tidak dilaksanakan, tarikh akan mengambil nilai. Lompatan masa yang berlaku pada selang masa yang tetap untuk tujuan pelarasan kalendar tidak ditunjukkan dalam masa sistem.

Katakan bahawa fail boleh laku yang dicipta apabila program 1 disusun dipanggil penggera dan ia dipanggil daripada baris arahan seperti berikut. Sistem penggera kemudiannya dipanggil untuk meminta penggera masa nyata dalam 10 saat. Panggilan sistem jeda dipanggil, yang menghalang proses daripada melaksanakan sehingga ia menerima beberapa isyarat.

menyampuk - ini menghentikan pelaksanaan perintah semasa atau urutan arahan semasa untuk mengendalikan beberapa acara program khas - pengendali gangguan, diikuti dengan kembali kepada pelaksanaan program yang terganggu.

Peristiwa itu boleh disebabkan oleh situasi khas yang timbul semasa pelaksanaan program, atau oleh isyarat daripada peranti luaran. Sampukan digunakan untuk bertindak balas dengan cepat kepada situasi khas yang timbul semasa pelaksanaan program dan interaksi dengan peranti luaran.

Masa pelaksanaan yang berkaitan dengan proses

Kemudian perbezaan antara kandungan akhir tolak kandungan awal disimpan dalam pembolehubah hasil. Akhir sekali, kandungan pembolehubah mengekor dan mengekor dipaparkan dalam mesej berikut. Masa tindak balas = 10. Masa panggilan sistem membolehkan anda mengetahui masa yang digunakan oleh proses semasa melaksanakannya.

Pengiraan sepanjang masa tidak mengambil kira masa yang diperuntukkan oleh proses sistem kepada proses pengguna. Jika masa itu berjaya, maka hasilnya adalah untuk menyimpan masa sebenar yang telah berlalu sejak masa lalu yang sewenang-wenangnya. Detik ini mungkin saat sistem bermula dan tidak berubah dari satu panggilan ke satu panggilan yang lain. Jika masa tidak dipenuhi, hasilnya akan mengandungi nilai.

Apabila terganggu, OS menyimpan keadaan pemproses - daftar nilai dan makna kaunter program (PC)– alamat perintah yang terganggu . Pengendali gangguan dalam OS menentukan daripada kandungan segmen kod objek jenis gangguan yang telah berlaku dan tindakan yang perlu diambil untuk mengendalikannya. Antara jenis gangguan yang mungkin, selain merekodkan pelbagai ralat, terdapat juga pemasa terganggu– gangguan berkala selepas kepingan masa tertentu, bertujuan untuk pengundian peranti– tindakan sistem pengendalian untuk menyemak status semua port dan peranti luaran secara berkala, yang mungkin berubah dari semasa ke semasa: contohnya, pemacu kilat disambungkan ke port USB; pencetak selesai mencetak dan menjadi percuma, dsb. OS melaksanakan konfigurasi semula sistem dan melaraskan jadual sistem yang menyimpan maklumat tentang peranti

Mari kita anggap bahawa fail boleh laku yang dicipta apabila program 2 disusun dipanggil masa dan ia dipanggil dari baris arahan seperti berikut. Apabila gelung selesai, masa panggilan sistem dipanggil semula. Akhirnya, mesej dipaparkan pada skrin.

Pengurus gangguan bertanggungjawab untuk bekerja dengan acara tak segerak. Kebanyakan peristiwa ini berasal daripada peranti persisian. Yang lain sedang dicipta" dunia luar", sebagai contoh, pengguna menekan suis menyebabkan gangguan. Gangguan ialah peristiwa tak segerak yang menyebabkan pelaksanaan kod semasa dihentikan berdasarkan keutamaan.



Mekanisme gangguan disediakan oleh perkakasan dan perisian komputer yang sesuai.

Sebarang pengecualian yang menyebabkan gangguan disertakan dengan isyarat yang dipanggil permintaan gangguan (IR). Permintaan gangguan daripada peranti luaran memasuki pemproses melalui talian khas, dan permintaan yang timbul semasa pelaksanaan program datang terus dari dalam mikropemproses. Mekanisme untuk mengendalikan gangguan bagi kedua-dua jenis adalah serupa. Mari kita pertimbangkan fungsi komputer apabila isyarat permintaan gangguan muncul, bergantung terutamanya pada pemprosesan gangguan perkakasan (Gamb. 13).

Fungsi ini digunakan oleh sistem pengendalian dalam masa nyata untuk mewakili konsep tugasan. Tanpa bantuan perkakasan, adalah mustahil untuk mempunyai sistem proaktif sebenar yang membolehkan anda menukar berbilang konteks pelaksanaan tanpa kehilangan benang pelaksanaan semasa secara kekal.

Gangguan boleh berlaku sama ada daripada perkakasan itu sendiri atau daripada perisian. Pemproses tahu di mana untuk mencari rutin ini terima kasih kepada jadual tidak langsung yang mengandungi alamat memori dalam rutin perkhidmatan gangguan.

  • Pengutamaan semula gangguan dinamik.
  • Pengumpulan nilai keutamaan dan entiti.
Pemproses secara automatik menyimpan konteks apabila gangguan berlaku dan kembali ke keadaan ini apabila gangguan berlaku.

nasi. 13. Melakukan gangguan dalam komputer:

tр - masa tindak balas pemproses kepada permintaan gangguan;

tс - masa menyimpan keadaan program yang terganggu dan memanggil pengendali gangguan;

tв ialah masa pemulihan program yang terganggu.

Selepas isyarat permintaan gangguan muncul, komputer meneruskan untuk melaksanakan program - pengendali gangguan. Pengendali melakukan tindakan yang perlu berkaitan dengan situasi luar biasa yang telah timbul. Sebagai contoh, situasi sedemikian mungkin menekan kekunci pada papan kekunci komputer. Kemudian pengendali mesti menghantar kod kekunci yang ditekan dari pengawal papan kekunci kepada pemproses dan mungkin menghuraikan kod ini. Apabila pengendali menyelesaikan kerjanya, kawalan dipindahkan ke program yang terganggu.

Jadual ini boleh didapati dalam manual rujukan dalam Jadual. Rajah 3 menunjukkan sebahagian daripada jadual tersebut yang menawarkan maklumat tentang gangguan sebagai. Alamat ke memori mikropengawal.

  • Kedudukan dalam vektor gangguan.
  • Keutamaan mengganggu.
  • Jenis keutamaan.
  • Nama sampuk.
  • Penerangan ringkas tentang gangguan.
Rajah 5 menunjukkan bagaimana jadual vektor disusun dalam ingatan. Daripada entri kedua dalam jadual ini, kita boleh menemui semua pengecualian dan pengendali gangguan.

Tahap gangguan keutamaan

Walau bagaimanapun, hanya 7 daripada baris ini mempunyai sampukan bebas yang dikaitkan dengannya. Keutamaan gangguan membolehkan anda menentukan dua perkara. Pembangun mempunyai tahap fleksibiliti yang lebih tinggi. Semakin rendah angka ini, semakin tinggi keutamaannya. Jika dua sampukan dilepaskan pada masa yang sama, yang pertama akan diutamakan. Jika pemproses sudah menerima gangguan dan gangguan keutamaan yang lebih tinggi, pelaksanaan gangguan semasa digantung dan kawalan pergi ke gangguan keutamaan tertinggi. Apabila pelaksanaan gangguan keutamaan tinggi selesai, pelaksanaan kembali kepada gangguan sebelumnya melainkan gangguan keutamaan lebih tinggi berlaku.

Masa tindak balas- ini adalah masa antara kemunculan isyarat permintaan gangguan dan permulaan pelaksanaan program gangguan (pengendali gangguan) jika gangguan ini didayakan untuk perkhidmatan.

Masa tindak balas bergantung pada saat pemproses menentukan bahawa permintaan gangguan telah berlaku. Tinjauan permintaan gangguan boleh dijalankan sama ada selepas selesai peringkat seterusnya arahan (contohnya, membaca arahan, membaca operan pertama, dll.), atau selepas melengkapkan setiap arahan dalam program.

Rajah 9 menunjukkan contoh sampukan keutamaan yang berbeza. Proses kawalan gangguan ini dipanggil "bersarang". Imej Bersarang mengganggu. Dalam artikel ini kita akan bercakap tentang ciri menangani gangguan dan tiga cara untuk berkongsi sumber antara gangguan dan rangkaian. Berbeza dengan kernel yang lain, konteks interupsi ialah atomic 2, bermakna kodnya berjalan dalam mod khas pada pemproses keutamaan tinggi, di mana tiada proses, benang dan tiada penjadual 3, jadi gangguan tidak boleh tidur 4 atau kekal. untuk jangka masa yang lama menunggu.

Gangguan boleh dibahagikan kepada tiga kumpulan: perkakasan, logik dan perisian.

Sumber gangguan perkakasan – penurunan voltan bekalan, menekan kekunci pada papan kekunci, ketibaan nadi seterusnya dari pembilang masa, kejadian isyarat khas daripada cakera liut atau cakera keras, dsb.

Logik, atau pemproses, mengganggu timbul dalam pelbagai situasi bukan standard dalam operasi mikropemproses utama - pembahagian dengan sifar, limpahan daftar, penampilan "titik putus", dsb.

Ia wujud untuk menyampaikan permintaan daripada perkakasan dan perisian, kadangkala dengan kependaman rendah dan tempoh yang singkat. Sampukan tidak boleh memanggil mana-mana fungsi yang sedang tidur, berisiko menyebabkan tingkah laku tidak ditentukan kerana proses langkah tidak berjalan, sampukan tidak boleh menunggu kunci, jika tidak, ia akan menyebabkan kunci 5, kerana sampukan tidak boleh dialih keluar dari CPU Dalam konteks ini, sampukan pemproses tidak akan mempunyai keupayaan untuk melaksanakan benang yang mempunyai kunci yang menyebabkan gangguan itu digantung. Oleh itu, tidak dibenarkan memanggil mana-mana fungsi itu.

Perisian mengganggu– kategori yang paling luas. Ia dihasilkan apabila satu program ingin menerima perkhidmatan tertentu daripada program lain, dan perkhidmatan ini biasanya dikaitkan dengan pengendalian perkakasan.

Setiap sampukan mempunyai nombor unik dan boleh dikaitkan dengan subrutin tertentu yang direka untuk menangani situasi yang telah timbul. Subrutin perkhidmatan itu sendiri, secara amnya, juga boleh digantung oleh gangguan lain; tetapi lebih kerap daripada tidak, semasa tempoh operasi subrutin yang menservis gangguan tertentu, gangguan lain "bertopeng," iaitu, ia tidak diservis serta-merta, tetapi beratur.

Mekanisme ini, yang melumpuhkan gangguan, adalah penting kerana memandangkan kod gangguan tidak boleh menunggu, ia tidak sepatutnya berlaku sama sekali jika penyekatan didayakan akses awam. Kaedah ini menangguhkan pelaksanaan semua gangguan sistem, meningkatkan kependaman sistem, dan oleh itu jumlah masa kunci dipegang harus diminimumkan. Kemudian, jika memori yang dikongsi antara benang dan sampukan hanyalah satu pembolehubah, anda boleh menggunakan keluarga atom fungsi yang ditakrifkan dalam fail.

Fungsi ini selamat untuk dijalankan dalam konteks atom, mengelakkan sebarang masalah perlumbaan apabila berkongsi pembolehubah ini. Akhir sekali, pilihan memori kongsi terakhir yang dibentangkan dalam artikel ini adalah untuk berkongsi aliran data.

Dalam komponen perkakasan mesin, dalam DOS itu sendiri dan dalam program aplikasi, gangguan boleh dihasilkan yang perlu diservis. BSVV diamanahkan dengan tugas untuk menservis gangguan peringkat rendah - yang memerlukan kawalan terus komponen perkakasan. Gangguan ini bernombor 0 hingga 31 (nombor hex 0 - 1F). Gangguan lain - nombor 32 - 63 (nombor hex 20 - 3F) - tergolong dalam tahap yang lebih tinggi, dan penyelenggaraannya diberikan kepada modul OS lain.

Perlu diingat bahawa 6 talismans terdapat dalam gangguan, dan semua peraturan yang dibentangkan dalam artikel ini juga terpakai kepada mereka. Berguna untuk melaksanakan pemprosesan tertunda. Papan kekunci ialah peranti input yang sangat mudah: hanya kerana ia menjana sejumlah kecil data dengan sangat perlahan. Apabila anda menekan atau melepaskan kekunci, nilai acara ini diberi isyarat menggunakan kabel papan kekunci untuk mencetuskan gangguan perkakasan.

Tugas sistem pengendalian adalah untuk berwaspada terhadap gangguan ini. Perkara yang sebenarnya dilakukan oleh pengendali gangguan ialah nilai kunci dalam kawasan sistem di bahagian bawah memori. Peranti input yang lebih kompleks, seperti cakera atau kad rangkaian, berfungsi dengan cara yang sama. Di atas kami membuat kes pengawal cakera yang menggunakan bas untuk memberi isyarat bahawa permintaan cakera telah selesai. Cakera sebenarnya menyebabkan gangguan. Pengendali gangguan cakera kemudian menyalin data yang diterima ke dalam memori untuk digunakan kemudian oleh program yang membuat permintaan.

Dalam jadual 3 diberi senarai umum gangguan yang diservis oleh BSVV. Dalam program bahasa himpunan sebenar dan dalam literatur OS teknikal, gangguan dikenal pasti oleh kod perenambelasan. Daripada analisis jadual. 3 dapat dilihat bahawa gangguan yang diservis oleh BSVM sepadan dengan operasi asas untuk mengawal peranti luaran - paparan, papan kekunci, pemacu apungan, pencetak, saluran komunikasi. Dalam kes ini, subrutin yang disertakan dalam BSVM melaksanakan operasi peringkat rendah. Sebagai contoh, menservis pemacu cakera liut termasuk keupayaan untuk memasang kepala magnet pada mulanya, menyemak status semasa peranti, terus membaca dan menulis sektor cakera tertentu, mengesahkan data baca atau bertulis, dan, akhirnya, memformat (susun atur awal) cakera.

Setiap jenis sampukan dikaitkan dengan tahap keutamaan. Gangguan keutamaan yang lebih rendah mesti memberi keutamaan kepada gangguan keutamaan yang lebih tinggi. Pada masa but, sistem pengendalian perlu mengetahui gangguan bernombor yang akan digunakan oleh setiap peranti perkakasan, supaya anda boleh mengaitkan pengurus yang sesuai dengan setiap peranti.

Kami juga akan menerangkan apa itu gangguan dan cara ia bagus untuk digunakan. Jika anda tahu apa itu gangguan dan apa yang baik, anda boleh teruskan ke bahagian seterusnya. Setiap pemproses berfungsi dengan membaca arahan individu dan kemudian memprosesnya. Pemuatan ini adalah segerak, bermakna arahan diproses mengikut susunan di mana ia disimpan dalam ingatan.

Jadual 3. Gangguan dilayan oleh BSVV

Nombor perpuluhan Nombor heksadesimal
Pembahagian dengan sifar
Menukar mikropemproses kepada mod langkah
Kejatuhan voltan bekalan
Menampilkan titik putus dalam urutan arahan
Limpahan daftar unit aritmetik
Mencetak salinan grafik skrin
Terpelihara
Terpelihara
Isyarat dari pembilang masa - pemasa
Isyarat daripada menekan kekunci pada papan kekunci
A Terpelihara
Nombor perpuluhan Nombor heksadesimal Situasi yang dihidangkan atau fungsi yang dilakukan
DALAM Terpelihara
DENGAN Terpelihara
D Terpelihara
E Isyarat tentang tamatnya pertukaran dengan NMD
F Dikhaskan untuk penyelenggaraan pencetak
Kawalan paparan
Minta senarai peralatan yang disambungkan
Menyoal saiz memori fizikal
Pengurusan NMD
Pengurusan penyesuai komunikasi
Mengawal perakam pita dan peranti lain
Kawalan papan kekunci
Pengurusan pencetak
Mengakses BASIC terbina dalam ROM
Memulakan semula sistem
1A Pertanyaan/tetapkan masa dan tarikh semasa
1B
1C
1D Alamat jadual parameter permulaan paparan.
1E Alamat jadual parameter NGMD
1F Alamat jadual simbol dengan kod 128-255

Sebahagian daripada yang disenaraikan dalam jadual. 3 sampukan menyediakan akses kepada beberapa fungsi yang saling berkaitan. Setiap fungsi dikenal pasti melalui nombor perenambelasannya (kod) dan melakukan beberapa operasi tertentu.

Tetapi bagaimana jika kita mahu program berhenti mengira apabila pengguna menekan butang? Peristiwa ini dicerminkan oleh perubahan dalam nilai pada pin input. Jika kita menterjemah contoh ini dan menjalankannya, ia mungkin akan berfungsi sebagaimana mestinya. Bagaimana jika program dalam gelung utama mengambil masa lebih lama?

Tetapi ini bermakna bahawa program akan menyemak status butang setiap saat ketiga. Menggunakan gangguan perkakasan. Gangguan ialah cara untuk melayan acara penting secara tidak segerak. Ini bermakna jika peristiwa berlaku yang mesti dijawab dengan segera, pemproses mengganggu pemuatan arahan program utama dan mula memuatkan atur cara untuk mengendalikan gangguan. Kami mengatakan bahawa ia akan melaksanakan pengendali gangguan. Apabila penyataan sampukan selesai, pemproses kembali kepada operasi asal.

Jadi, sebagai contoh, interrupt 19 (kawalan NGMD dan NMD) menyediakan akses kepada 18 fungsi dengan kod 0-17):

0 - pemasangan awal (set semula cakera),

1 - memaparkan status cakera semasa,

2 - membaca kumpulan (blok) sektor dari satu trek,

3 - merekodkan sekumpulan sektor pada satu trek,

4 - pengesahan selepas membaca atau menulis,

5 - pemformatan trek (marka sektor rakaman),

Untuk menggunakan sifat ini, pemproses gangguan mesti dilaksanakan dalam perkakasan. Ini boleh dijawab beberapa kali. Dalam contoh di atas, adalah berguna untuk menggunakan gangguan perkakasan. Tetapi kadang-kadang kita mungkin mahu bertindak balas kepada peristiwa lain, contohnya kita ingin menjalankan pengiraan semula selepas tempoh masa tertentu. Untuk melakukan ini, kami akan menggunakan gangguan pemasa. Atau, sekiranya ralat perisian, kami mahu pemproses menghasilkan gangguan, dan kami sensitif terhadap ralat ini.

Sebagai alternatif, kami ingin membalas dengan gangguan apabila pemproses ditetapkan kepada sifar. Untuk pemproses bertindak balas kepada gangguan, ia mesti dihidupkan. Kadang-kadang ia berlaku bahawa kami melakukan beberapa operasi yang tidak remeh dan kami tidak mahu ia terganggu. Dalam kes ini, gangguan mungkin dilumpuhkan dan pemproses akan mengabaikan semua acara luaran. Walau bagaimanapun, jika gangguan didayakan, pemproses berhenti memuatkan arahan program utama apabila gangguan berlaku. peristiwa penting, menyimpan nilai buku kerja pada tindanan dan melompat ke alamat tempat rutin gangguan kami berada.

8 - paparan parameter pemacu semasa,

9 - permulaan jadual parameter cakera tetap,

A - bacaan "panjang",

B - rekod "panjang",

C - cari trek yang dikehendaki,

D - permulaan pemasangan cakera,

10 - menyemak kesediaan cakera,

11 - penentukuran cakera,

14 - diagnostik pengawal,

15 - paparan jenis pemacu,

Alamat ini dipanggil vektor gangguan. Ia bernombor 0 dan 1 dan terdapat pada pin digital 2 dan 3. Pin ini boleh diikuti dengan sejumlah 4 jenis yang berbeza peristiwa. Sebagai contoh, jika kita ingin membalas tekan butang, kita akan memerhatikan tepi naik atau turun isyarat.

Mikropemproses ialah mesin kompleks yang boleh melakukan beberapa ratus operasi mudah, i.e. pesanan mesin. Setiap arahan mempunyai kodnya sendiri, nombor yang ditulis dalam satu atau lebih bait. Pemproses mendapatkan semula bait berikutnya daripada memori, menganggapnya sebagai arahan atau data, dan melaksanakan operasi yang diprogramkan. Semua mikropemproses mengandungi elemen yang serupa.

16 - tukar status cakera,

17 - menetapkan jenis pemacu.

Kedalaman gangguan- bilangan maksimum program yang boleh mengganggu satu sama lain. Kedalaman gangguan biasanya sepadan dengan bilangan tahap keutamaan yang diiktiraf oleh sistem gangguan. Operasi sistem gangguan pada kedalaman gangguan yang berbeza (n) ditunjukkan dalam Rajah. 10. Diandaikan di sini bahawa apabila bilangan permintaan gangguan meningkat, keutamaannya meningkat.


nasi. 14. Pengendalian sistem gangguan pada kedalaman gangguan yang berbeza

Apabila permintaan gangguan diterima, komputer melakukan urutan tindakan berikut:

1) penentuan keutamaan tertinggi permintaan gangguan terbuka (jika beberapa permintaan diterima serentak);

2) menentukan jenis permintaan yang dipilih;

3) penjimatan keadaan semasa kaunter program dan daftar bendera;

4) menentukan alamat pengendali gangguan mengikut jenis gangguan dan memindahkan kawalan kepada arahan pertama pengendali ini;

5) pelaksanaan program - pengendali gangguan;

6) memulihkan nilai tersimpan pembilang program dan daftar bendera program yang terganggu;

7) penerusan pelaksanaan program yang terganggu.

Peringkat 1-4 dilakukan secara automatik oleh perkakasan komputer apabila permintaan gangguan muncul. Peringkat 6 juga dilaksanakan dalam perkakasan pada arahan pulangan daripada pengendali gangguan.

Peralihan kepada pengendali gangguan yang sepadan dijalankan (dalam mod operasi sebenar mikropemproses) melalui jadual vektor gangguan. Jadual ini terletak di alamat paling rendah RAM, mempunyai kelantangan 1 KB dan mengandungi nilai daftar segmen perintah (CS) dan penunjuk arahan (IP) untuk 256 pengendali gangguan.

Vektor gangguan– sel memori yang mengandungi alamat pengendali gangguan.

Vektor sampukan digabungkan menjadi jadual vektor sampukan. Lokasi jadual bergantung pada jenis dan mod operasi mikropemproses.

Fungsi utama mekanisme gangguan:

1.Pengiktirafan atau klasifikasi gangguan.

2. Pemindahan kawalan kepada pengendali gangguan.

3. Betulkan kembali ke program yang terganggu

Peralihan dari program yang terganggu kepada pengendali dan belakang harus dilakukan secepat mungkin. Satu kaedah pantas ialah menggunakan jadual yang mengandungi senarai semua gangguan yang dibenarkan untuk komputer dan alamat pengendali yang sepadan. Untuk kembali ke program yang terganggu dengan betul, sebelum memindahkan kawalan kepada pengendali, kandungan daftar pemproses disimpan sama ada dalam memori akses langsung atau pada timbunan sistem.

Oleh kerana isyarat sampukan berlaku pada masa rawak, pada masa sampukan mungkin terdapat beberapa isyarat sampukan yang hanya boleh diproses secara berurutan. Untuk memproses isyarat gangguan dalam susunan yang munasabah, ia diberikan keutamaan. Program, dengan menguruskan daftar topeng khas, membolehkan anda melaksanakan pelbagai disiplin perkhidmatan:

Gangguan bersarang.

Dengan gangguan bersarang, rutin gangguan semasa boleh terganggu (ditunda) apabila permintaan gangguan tiba yang mempunyai tahap keutamaan yang lebih tinggi. Selepas memproses gangguan dengan lebih banyak lagi tahap tinggi keutamaan, pemproses kembali kepada prosedur yang terganggu dan terus memproses gangguan ini sehingga ia tamat atau sehingga gangguan baru berlaku. Jelas sekali, rutin perkhidmatan gangguan dengan tahap keutamaan yang lebih tinggi seterusnya boleh diganggu oleh gangguan dengan tahap keutamaan yang lebih tinggi, dan seterusnya. Pada masa yang sama, sampukan yang mempunyai lebih banyak tahap rendah keutamaan berbanding yang sekarang biasanya dilarang (bertopeng).

Daya penggerak yang mengubah keadaan proses ialah peristiwa. Salah satu jenis acara utama ialah gangguan. Gangguan ialah mekanisme yang membolehkan anda menyelaraskan operasi selari peranti individu dalam sistem komputer dan bertindak balas kepada keadaan khas yang timbul semasa operasi pemproses. Oleh itu, gangguan ialah pemindahan kawalan paksa daripada program pelaksana kepada sistem (dan melaluinya ke program pengendalian gangguan yang sepadan), yang berlaku apabila peristiwa tertentu berlaku.

Idea gangguan telah dicadangkan pada pertengahan 50-an dan boleh dikatakan tanpa keterlaluan bahawa ia memberikan sumbangan paling penting kepada pembangunan teknologi komputer. Tujuan utama memperkenalkan gangguan adalah untuk melaksanakan mod operasi tak segerak dan menyelaraskan operasi peranti individu kompleks pengkomputeran.

Mekanisme gangguan dilaksanakan dalam perkakasan dan perisian. Struktur sistem gangguan (bergantung pada seni bina perkakasan) boleh sangat berbeza, tetapi semuanya mempunyai satu ciri umum– gangguan pastinya memerlukan perubahan dalam susunan arahan yang dilaksanakan oleh pemproses.

Mekanisme pengendalian gangguan, tanpa mengira seni bina sistem komputer, termasuk elemen berikut:

1. Menetapkan fakta gangguan (menerima isyarat untuk mengganggu) dan mengenal pasti gangguan (dalam sistem pengendalian, ini kadangkala dilakukan sekali lagi, dalam langkah 4).

2. Mengingati keadaan proses yang terganggu. Keadaan proses ditentukan terutamanya oleh nilai pembilang program, kandungan daftar pemproses, dan mungkin juga termasuk spesifikasi mod (contohnya, pengguna atau mod istimewa) dan maklumat lain.

3. Kawalan dipindahkan oleh perkakasan kepada subrutin pengendalian gangguan.

4. Menyimpan maklumat tentang program yang terganggu yang tidak dapat disimpan dalam langkah 2 menggunakan tindakan perkakasan. Sesetengah sistem pengkomputeran menyediakan untuk menyimpan sejumlah besar maklumat tentang keadaan proses yang terganggu.

5. Mengganggu pengendalian. Kerja ini boleh dilakukan oleh subrutin yang sama yang mana kawalan telah dipindahkan dalam langkah 3, tetapi dalam OS ia paling kerap dilaksanakan dengan memanggil subrutin yang sesuai kemudiannya.

6. Memulihkan maklumat yang berkaitan dengan proses yang terganggu (peringkat terbalik ke langkah 4).

7. Kembali ke program yang terganggu.

Langkah 1-3 dilaksanakan dalam perkakasan, dan langkah 4-7 dalam perisian.

nasi. 13. Mengganggu pengendalian

Rajah 13 menunjukkan bahawa apabila permintaan gangguan berlaku, aliran semula jadi pengiraan terganggu dan kawalan dipindahkan ke program untuk memproses gangguan yang berlaku. Dalam kes ini, kedai perkakasan (sebagai peraturan, menggunakan mekanisme memori tindanan) alamat arahan yang mana pelaksanaan program yang terganggu harus diteruskan. Selepas pelaksanaan program perkhidmatan gangguan, kawalan dikembalikan kepada program yang terganggu sebelum ini dengan memasukkan alamat arahan yang disimpan ke dalam indeks arahan. Walau bagaimanapun, skim ini hanya digunakan dalam persekitaran perisian yang paling mudah.

Jadi, fungsi utama mekanisme gangguan:

Pengiktirafan atau pengelasan gangguan;

Pemindahan kawalan kepada pengendali gangguan dengan sewajarnya;

Kembali ke program yang terganggu.

Peralihan daripada program yang terganggu kepada pengendali dan belakang harus dilakukan secepat mungkin. Satu kaedah pantas ialah menggunakan jadual yang mengandungi senarai semua gangguan yang dibenarkan untuk komputer dan alamat pengendali yang sepadan. Untuk kembali ke program yang terganggu dengan betul, sebelum memindahkan kawalan kepada pengendali gangguan, kandungan daftar pemproses disimpan sama ada dalam memori akses langsung atau dalam timbunan sistem.

Gangguan yang berlaku semasa operasi sistem pengkomputeran boleh dibahagikan kepada dua kelas utama: luaran (kadang-kadang dipanggil tak segerak) dan dalaman (segerak).

Gangguan luaran disebabkan oleh peristiwa tak segerak yang berlaku di luar proses yang terganggu, contohnya:

Pemasa terganggu;

Gangguan daripada peranti luaran (gangguan input/output);

Gangguan akibat kegagalan kuasa;

Gangguan daripada konsol pengendali sistem komputer;

Gangguan daripada pemproses lain atau sistem komputer lain.

Gangguan dalaman disebabkan oleh peristiwa yang berkaitan dengan operasi pemproses dan serentak dengan operasinya. Contohnya ialah permintaan gangguan berikut:

Sekiranya menangani pelanggaran (alamat yang dilarang atau tidak wujud ditunjukkan dalam bahagian alamat perintah yang dilaksanakan, akses kepada segmen atau halaman yang hilang semasa mengatur mekanisme memori maya);

Jika terdapat kombinasi binari yang tidak digunakan dalam medan kod operasi;

Apabila dibahagikan dengan sifar;

Apabila pesanan melimpah atau hilang;

Apabila ralat pariti dan ralat dalam pengendalian pelbagai peranti perkakasan dikesan dengan cara pemantauan.

Mungkin masih terdapat gangguan semasa mengakses penyelia OS - pada sesetengah komputer, beberapa arahan hanya boleh digunakan oleh OS, dan bukan oleh pengguna. Sehubungan itu, perkakasan menyediakan pelbagai mod operasi, dan program pengguna dilaksanakan dalam mod di mana arahan istimewa ini tidak dilaksanakan. Jika anda cuba menggunakan perintah yang dilarang dalam mod ini, gangguan dalaman berlaku dan kawalan dipindahkan kepada penyelia OS. Perintah istimewa juga termasuk arahan untuk menukar mod pengendalian pemproses pusat.

Sebenarnya terdapat gangguan perisian. Gangguan ini berlaku sebagai tindak balas kepada arahan gangguan yang sepadan, iaitu, dengan arahan ini, pemproses melakukan tindakan yang hampir sama seperti gangguan dalaman biasa.

Isyarat penyebab gangguan dijana di luar pemproses atau dalam pemproses itu sendiri; ia boleh berlaku serentak. Pemilihan salah satu daripada mereka untuk pemprosesan dijalankan berdasarkan keutamaan yang diberikan kepada setiap jenis gangguan. Jelas sekali, gangguan daripada litar kawalan pemproses harus mempunyai keutamaan tertinggi (jika perkakasan tidak berfungsi dengan betul, maka tidak ada gunanya meneruskan memproses maklumat). Kaedah kedua, melengkapkan yang pertama, membolehkan penggunaan pelbagai disiplin servis gangguan.

Kehadiran isyarat gangguan tidak semestinya menyebabkan program berjalan terganggu. Pemproses mungkin mempunyai cara perlindungan terhadap gangguan: melumpuhkan sistem gangguan, menutup (menghalang) isyarat gangguan individu. Kawalan perisian alat ini membolehkan sistem pengendalian mengawal selia pemprosesan isyarat gangguan, memaksa pemproses memprosesnya serta-merta semasa ketibaan, menangguhkan pemprosesannya untuk seketika, atau mengabaikannya sepenuhnya. Biasanya, operasi sampukan dilakukan hanya selepas arahan semasa telah menyelesaikan pelaksanaan.

Kawalan perisian daftar topeng khas (menolong isyarat gangguan) membolehkan anda melaksanakan pelbagai disiplin perkhidmatan:

Dengan keutamaan relatif, iaitu perkhidmatan tidak terganggu walaupun terdapat permintaan dengan keutamaan yang lebih tinggi. Selepas penyampaian permintaan yang diberikan selesai, permintaan dengan keutamaan tertinggi akan dilayani. Untuk mengatur disiplin sedemikian, adalah perlu dalam program untuk melayani permintaan ini untuk menggunakan topeng pada semua isyarat gangguan lain atau hanya melumpuhkan sistem gangguan;

Dengan keutamaan mutlak, iaitu gangguan dengan keutamaan tertinggi sentiasa diservis. Untuk melaksanakan mod ini, adalah perlu untuk menutup semua permintaan dengan keutamaan yang lebih rendah semasa pemprosesan gangguan. Dalam kes ini, gangguan pelbagai peringkat adalah mungkin, iaitu gangguan program pemprosesan gangguan.

Mengikut prinsip timbunan, atau, seperti yang kadang-kadang mereka katakan, menurut disiplin LCFS (terakhir didahulukan), iaitu, permintaan dengan keutamaan yang lebih rendah boleh mengganggu pemprosesan gangguan dengan keutamaan yang lebih tinggi. Untuk melakukan ini, anda tidak boleh menggunakan topeng pada sebarang isyarat gangguan dan jangan matikan sistem gangguan.

Untuk pelaksanaan yang betul bagi dua disiplin terakhir, adalah perlu untuk memastikan penutupan lengkap sistem gangguan apabila melakukan langkah 1-4 dan 6-7, i.e. sistem gangguan hanya boleh dihidupkan semasa memproses masuk gangguan awal. Gangguan berbilang peringkat harus berlaku pada peringkat pemprosesan gangguan sebenar (langkah 5), dan bukan pada peringkat peralihan daripada satu proses ke proses yang lain.

Punca gangguan ditentukan oleh OS (modul yang dipanggil penyelia gangguan), dan ia juga melaksanakan tindakan yang diperlukan untuk gangguan tertentu dan dalam situasi tertentu. Oleh itu, mana-mana OS masa nyata, pertama sekali, termasuk program untuk mengurus sistem gangguan, memantau keadaan dan peristiwa tugas, penyegerakan tugas, cara untuk peruntukan dan pengurusan memori, dan hanya kemudian cara untuk mengatur data.

Rutin perkhidmatan gangguan mempunyai dua bahagian perkhidmatan. Ini ialah bahagian pertama, di mana konteks tugas yang terganggu, yang tidak dapat disimpan dalam langkah ke-2, disimpan, dan bahagian terakhir, yang terakhir, di mana, sebaliknya, konteks dipulihkan.

Untuk mengelakkan sistem sampukan daripada bertindak balas semula kepada isyarat permintaan sampukan, ia biasanya secara automatik "menutup" (mematikan) sampukan, jadi ia perlu untuk mendayakan semula sistem sampukan dalam rutin pengendalian sampukan. Pemasangan mod pemprosesan gangguan yang dipertimbangkan dijalankan pada penghujung bahagian pertama subrutin pemprosesan. Oleh itu, gangguan pusat didayakan untuk tempoh pelaksanaan. Semasa bahagian akhir subrutin pemprosesan sedang berjalan, sistem gangguan mesti dilumpuhkan dan didayakan semula selepas konteks dipulihkan.

Dalam banyak sistem pengendalian, bahagian perkhidmatan program pengendalian gangguan diperuntukkan kepada modul perisian sistem khas - penyelia gangguan.

Penyelia gangguan, pertama sekali, menyimpan dalam deskriptor tugas semasa daftar kerja pemproses, yang menentukan konteks proses pengkomputeran yang terganggu. Seterusnya, ia mentakrifkan subrutin yang mesti melakukan tindakan yang berkaitan dengan melayan permintaan gangguan semasa (semasa). Akhir sekali, sebelum memberikan kawalan kepada subrutin ini, penyelia gangguan menetapkan mod pemprosesan gangguan yang diperlukan. Selepas melaksanakan subrutin pengendalian gangguan, kawalan sekali lagi dipindahkan kepada penyelia, kali ini kepada modul yang menghantar tugasan. Dan pengurus tugas pula, mengikut mod yang diterima untuk mengagihkan masa pemproses (antara proses yang sedang berjalan), akan memulihkan konteks tugas yang akan diputuskan untuk memperuntukkan pemproses (Rajah 14).


nasi. 14. Mengganggu pengendalian dengan penyertaan penyelia OS

Seperti yang dapat kita lihat dari Rajah 14, tidak ada pulangan langsung kepada program yang telah terganggu sebelumnya secara langsung dari rutin gangguan itu sendiri.

Untuk pemulangan segera langsung, sudah cukup untuk menyimpan alamat pemulangan pada timbunan, iaitu apa yang dilakukan oleh perkakasan pemproses. Pada masa yang sama, timbunan dengan mudah memberikan keupayaan untuk kembali sekiranya berlaku gangguan bersarang, kerana ia sentiasa melaksanakan disiplin LCFS (sampaian terakhir – dilayan dahulu).

Walau bagaimanapun, jika konteks proses disimpan hanya pada timbunan, seperti yang biasanya dilaksanakan dalam perkakasan, dan bukannya dalam deskriptor tugas yang diterangkan di atas, maka kami tidak akan mempunyai peluang untuk menjadi fleksibel dalam memilih tugasan yang hendak dipindahkan ke pemproses selepas rutin perkhidmatan gangguan selesai. Sememangnya, ini hanya prinsip umum. Dalam pemproses tertentu dan dalam OS tertentu, mungkin terdapat beberapa penyelewengan daripada skim yang dipertimbangkan dan/atau penambahan padanya. Sebagai contoh, pemproses moden selalunya mempunyai keupayaan perkakasan khas untuk menyimpan konteks proses yang terganggu secara langsung dalam pemegangnya, iaitu, pemegang proses (sekurang-kurangnya sebahagian daripadanya) menjadi struktur data yang diselenggara oleh perkakasan.