Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Dalam keadaan apakah penjadualan proses Linux berlaku?

Dalam keadaan apakah penjadualan proses Linux berlaku?

WBOY
WBOYasal
2022-07-27 15:32:322789semak imbas

Apa yang berlaku dalam penjadualan proses di Linux: 1. Pada saat peralihan keadaan proses, penamatan proses, tidur proses, proses itu perlu memanggil fungsi seperti "sleep()" atau "exit()" ke melaksanakan peralihan keadaan pemacu peranti melaksanakan tugas yang panjang dan berulang , hubungi terus penjadual 4. Apabila proses kembali ke mod pengguna daripada gangguan, pengecualian dan panggilan sistem.

Dalam keadaan apakah penjadualan proses Linux berlaku?

Persekitaran pengendalian tutorial ini: sistem linux7.3, komputer Dell G3.

Dalam keadaan apakah penjadualan proses Linux berlaku

Penjadual Linux ialah fungsi yang dipanggil Jadual(), yang menentukan sama ada untuk menukar proses. Apa yang dipanggil pemasaan penjadualan merujuk kepada keadaan di mana penjadual dilaksanakan.

Penjadualan proses Linux menggunakan multitasking preemptive, jadi penggantungan dan proses yang berterusan tidak memerlukan kerjasama antara satu sama lain.

Terdapat terutamanya situasi berikut:

  • Detik peralihan keadaan proses: penamatan proses, proses tidur;

    Proses perlu memanggil fungsi seperti sleep() atau exit() untuk peralihan keadaan. Fungsi ini akan secara aktif memanggil penjadual untuk penjadualan proses; >Proses semasa Apabila hirisan masa tamat (semasa->counter=0); situasi dan masa 4 adalah sama.

    Pemandu peranti
  • Apabila pemandu peranti melakukan tugas yang panjang dan berulang, penjadual dipanggil terus. Dalam setiap gelung berulang, pemandu menyemak nilai need_resched dan, jika perlu, memanggil jadual penjadual() untuk melepaskan CPU secara aktif.

    Apabila proses kembali ke mod pengguna daripada gangguan, pengecualian dan panggilan sistem; perkara Sama ada ia kembali daripada gangguan, pengecualian atau panggilan sistem, ret_from_sys_call() akhirnya akan dipanggil Fungsi ini akan mengesan bendera penjadualan dan, jika perlu, memanggil penjadual.
  • Pengetahuan lanjutan

Dalam Linux, proses tidak boleh berjalan lebih lama daripada hirisan masa yang diberikan kepada mereka. Proses ini boleh digantung dan diteruskan berjalan tanpa sebarang kerjasama antara mereka.

Dalam sistem berbilang tugas seperti Linux, berbilang program mungkin bersaing untuk menggunakan sumber yang sama Dalam kes ini, kami percaya bahawa melakukan kerja jangka pendek dan berhenti sebentar untuk menunggu input adalah lebih baik daripada a program yang secara berterusan menduduki pemproses untuk pengiraan atau sentiasa meninjau sistem untuk melihat sama ada sebarang input telah tiba. Kami memanggil program yang berprestasi baik sebagai program yang bagus, dan dalam erti kata lain, kebaikan ini boleh dikira. Sistem pengendalian menentukan keutamaan proses berdasarkan nilai bagusnya Nilai bagus proses menjadi lalai kepada 0 dan akan terus berubah berdasarkan prestasi program. Program yang berjalan secara berterusan untuk masa yang lama umumnya mempunyai keutamaan yang lebih rendah.
  • Mengapa penjadual dipanggil apabila kembali daripada panggilan sistem?

    Sudah tentu ini adalah atas sebab kecekapan. Kembali daripada panggilan sistem bermakna meninggalkan keadaan kernel dan kembali ke keadaan pengguna, dan peralihan keadaan mengambil masa tertentu Oleh itu, sebelum kembali ke keadaan pengguna, sistem telah menyelesaikan semua perkara yang perlu diproses dalam keadaan kernel.
Mari kita lihat secara ringkas apa yang kernel lakukan apabila setiap gangguan jam berlaku Pertama, kita mempunyai pemahaman umum tentang peluang penjadualan yang paling kerap ini, dan kemudian kita membincangkan proses kerja khusus penjadual secara terperinci.

Apabila setiap gangguan pemasa berlaku, tiga fungsi berfungsi bersama untuk menyelesaikan pemilihan dan penukaran proses ia adalah: schedule(), do_timer() dan ret_form_sys_call().

jadual(): Fungsi penjadualan proses, yang melengkapkan pemilihan proses (penjadualan); ialah komponen utama rutin perkhidmatan gangguan jam Kekerapan di mana fungsi ini dipanggil ialah kekerapan gangguan jam, iaitu 100 kali sesaat (dirujuk sebagai 100 Hz atau 100Hz); (): panggilan sistem Fungsi kembali.
Apabila panggilan sistem atau gangguan selesai, fungsi ini dipanggil untuk mengendalikan beberapa kerja penamat, seperti pemprosesan isyarat, tugas teras, dsb.

Pembelajaran yang disyorkan:

Tutorial video Linux

Atas ialah kandungan terperinci Dalam keadaan apakah penjadualan proses Linux berlaku?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Adakah procinfo arahan linux?Artikel seterusnya:Adakah procinfo arahan linux?