Perbezaan antara penjadualan preemptive dan bukan preemptive dalam sistem pengendalian

Perbezaan antara penjadualan preemptive dan bukan preemptive dalam sistem pengendalian

Penjadualan pemproses (atau Penjadualan CPU) menentukan proses mana yang diberikan kepada, dan dikeluarkan dari CPU, berdasarkan model penjadualan seperti Preemptive dan Penjadualan yang tidak terpilih (juga dikenali sebagai Penjadualan koperasi).

Sistem yang lebih tua boleh beroperasi dalam mod yang mudah berdiri tetapi dengan keperluan yang semakin meningkat untuk sistem yang responsif, fleksibel, serta virtualisasi, menguruskan pemprosesan multi-pemprosesan dengan cekap memberikan respons yang cepat kepada semua permintaan pemprosesan tugas.

Unit penjadualan sering dirujuk sebagai tugas Dan ia adalah tugas penjadual untuk menjalankan dan menguruskan tugas -tugas ini apabila diperlukan; Penjadual memilih tugas yang akan dikeluarkan dan diberikan kepada CPU untuk diproses, mengikut model penjadualan yang digunakan.

Bagaimana penjadual mengetahui tugas mana yang menjadi keutamaan?

Penjadual perlu menjalankan proses pemilihan yang adil dan cekap, dengan mengambil kira pembolehubah, permintaan pemprosesan dinamik, dan memanfaatkan sepenuhnya kitaran CPU.

Tugas boleh berada di dua negeri semasa diproses:

  1. Didalam CPU pecah Di mana CPU melakukan pengiraan untuk memproses tugas (tempoh untuk pecah CPU berbeza dari tugas ke tugas, dan program ke program).
  2. Dalam Input/output (I/O) pecah menunggu data diterima atau dihantar dari sistem.

Apabila CPU terbiar, penjadual membaca Giliran siap, dan memilih tugas seterusnya untuk dijalankan.  Kemudian, itu adalah Dispatcher yang memberikan kawalan tugas yang dipilih CPU, jadi perlu cepat!  Bila -bila masa yang diambil oleh penghantar dikenali sebagai Latihan penghantaran.

Terdapat pelbagai struktur dan parameter tersuai untuk menentukan Giliran siap, serta beberapa kaedah yang boleh digunakan untuk menguruskan kerumitan proses penjadualan.

Umumnya, mengenai mengoptimumkan dan memaksimumkan penggunaan CPU, throughput, dll.

Penjadual perlu membuat keputusan semasa salah satu peringkat berikut:

  1. Apabila tugas berubah dari a Berlari ke a Menunggu keadaan (contohnya, menunggu semasa permintaan I/O).
  2. Apabila tugas berubah dari Berlari ke Bersedia (contohnya bertindak balas terhadap gangguan).
  3. Apabila tugas berubah dari Menunggu ke Bersedia (contohnya permintaan I/O selesai).
  4. Apabila Tugas

Tugas baru mesti dipilih jika tahap 1 atau 4 berlaku untuk memastikan penggunaan penuh CPU, dan di peringkat 2 dan 3, tugas itu dapat terus berjalan atau yang baru dipilih.

Setelah memahami bagaimana tugas diproses, mari kita lihat dua model penjadualan yang menangani gangguan CPU.

Kedua -duanya mempunyai ciri yang sama dengan tugas, negeri tugas, beratur, dan keutamaan (statik atau dinamik):

  • Penjadualan yang tidak terpilih adalah ketika tugas berjalan sehingga ia berhenti (secara sukarela), atau selesai. Windows® mempunyai penjadualan yang tidak sesuai sehingga Windows 3.x, selepas itu ia berubah menjadi preemptive dari Windows 95.
  • Penjadualan Preemptive di mana tugas boleh digantung secara paksa oleh gangguan CPU, tidak seperti tidak preemptive di mana tugas berjalan sehingga ia melepaskan kawalan CPU.

Penjadualan yang tidak terpilih

Tugas dalam sistem yang tidak preemptive akan dijalankan sehingga selesai.

Penjadual kemudian memeriksa semua negeri tugas dan menjadualkan tugas keutamaan tertinggi seterusnya dengan Bersedia Negeri.

Dengan penjadualan yang tidak sesuai, apabila tugas mempunyai tugasannya kepada CPU, ia tidak dapat diambil, walaupun tugas pendek perlu menunggu tugas yang lebih lama untuk menyelesaikannya.

Pengurusan penjadualan di semua tugas adalah "adil" dan masa tindak balas dapat diramalkan sebagai tugas keutamaan yang tinggi tidak dapat menundukkan tugas menunggu lebih jauh ke bawah.

Penjadual memastikan setiap tugas mendapat 'bahagian CPU, mengelakkan sebarang kelewatan dengan sebarang tugas.  'Jumlah masa' yang diperuntukkan kepada CPU tidak semestinya sama, kerana ia bergantung pada berapa lama tugas yang diperlukan untuk diselesaikan.

Penjadualan Preemptive

Model penjadualan ini membolehkan tugas-tugas terganggu-berbeza dengan penjadualan yang tidak sesuai yang mempunyai pendekatan "run-to-siap".

Gangguan, yang boleh dimulakan dari panggilan luaran, memanggil penjadual untuk menjeda tugas yang sedang berjalan untuk menguruskan tugas keutamaan yang lebih tinggi - jadi kawalan CPU dapat dipulihkan.

Tugas keutamaan tertinggi dalam a Bersedia Negeri dilaksanakan, membenarkan tindak balas yang cepat terhadap peristiwa masa nyata.

Beberapa keburukan dengan penjadualan preemptive melibatkan peningkatan overhed pada sumber apabila menggunakan gangguan dan isu boleh berlaku dengan dua tugas perkongsian data, kerana seseorang mungkin terganggu semasa mengemas kini struktur data yang dikongsi, dan boleh menjejaskan integriti data negatif.

Sebaliknya, adalah praktikal untuk dapat menjeda tugas untuk menguruskan yang lain yang boleh menjadi kritikal.

Ringkasnya

Banyak variasi dan kebergantungan dalam dasar yang berbeza dapat ditakrifkan, seperti menggunakan a "Polisi Round Robin [i]" di mana setiap tugas (dengan keutamaan yang sama) berjalan sekali, dan kemudian diletakkan pada akhir barisan, untuk kitaran seterusnya.

Dasar lain termasuk Pertama masuk, pertama keluar, Paling Job-Job-First, Singkat-Job-Next, Masa yang singkat, dan lain-lain.

Analisis data sejarah dapat memberikan maklumat mengenai aspek, seperti kadar di mana tugas -tugas baru tiba, CPU dan I/O pecah dan lain -lain supaya pengagihan kebarangkalian dapat mengira ciri -ciri waktu menunggu tugas, sehingga pentadbir mempersenjatai dengan data yang relevan untuk menentukan model penjadualan.