Rumah >Operasi dan penyelenggaraan >operasi dan penyelenggaraan linux >Apakah mekanisme penjadualan tugas linux

Apakah mekanisme penjadualan tugas linux

WBOY
WBOYasal
2022-07-12 11:17:212738semak imbas

Mekanisme penjadualan tugas Linux merujuk kepada arahan atau program khusus yang dilaksanakan oleh sistem pada acara tertentu; setiap CPU akan mempunyai baris gilir untuk menyimpan tugas dalam keadaan "TASK_RUNNING", dan penjadualan tugas dikeluarkan; daripada baris gilir ini Tugas dengan keutamaan tertinggi diletakkan di sebelah CPU untuk pelaksanaan.

Apakah mekanisme penjadualan tugas linux

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

Apakah mekanisme penjadualan tugas Linux

merujuk kepada arahan atau program tertentu yang dilaksanakan oleh sistem pada masa tertentu

Di Linux? , setiap CPU akan mempunyai baris gilir untuk menyimpan tugas dalam keadaan TASK_RUNNING Penjadualan tugas adalah untuk mengeluarkan tugas keutamaan tertinggi daripada baris gilir ini sebagai tugas seterusnya yang akan dimasukkan ke dalam CPU untuk dilaksanakan.

Penjadualan tugas memerlukan dua proses: penukaran konteks dan algoritma pemilihan

Penukaran konteks

Penukaran konteks daripada proses Kepada konteks yang lain proses, kerana ia berlaku begitu kerap, ia sering menjadi kunci kepada kecekapan penjadual.

fungsi schedule() memanggil suis_ke makro ini melaksanakan penukaran sebenar antara proses Kodnya disimpan dalam include/i386/system.h .

Suis_ke makro ditulis dalam pemasangan terbenam dan sukar difahami.

Fungsi switch_to() kembali seperti biasa Alamat pemulangan pada tindanan ialah task_struct::thread::eip proses baharu, iaitu kedudukan berterusan yang ditetapkan apabila proses baharu digantung kali terakhir (the kali terakhir switch_to telah dilaksanakan) () label kedudukan "1:").

Kini ia dipindahkan ke konteks proses baharu untuk dijalankan. Ini melibatkan wakeup, sleepon dan fungsi lain untuk tidur dan membangunkan proses.

Algoritma pemilihan

Fungsi schedule() Linux akan merentasi semua proses dalam baris gilir sedia dan memanggil fungsi goodness() untuk mengira berat setiap proses , pilih proses dengan berat terbesar dan gunakannya. Penjadual Linux dilaksanakan terutamanya dalam fungsi schedule().

Langkah penjadualan:

Jadualkan aliran kerja fungsi adalah seperti berikut:

(1) Bersihkan proses yang sedang berjalan
(2) Pilih Satu proses untuk dijalankan (pick_next_task)
(3) Tetapkan persekitaran berjalan bagi proses baharu
(4) Proses penukaran konteks

Penjadual Linux membahagikan proses kepada tiga kategori

Penjadualan proses ialah fungsi teras sistem pengendalian.

Penjadual hanyalah sebahagian daripada proses penjadualan Penjadualan proses ialah proses yang sangat kompleks yang memerlukan berbilang sistem untuk bekerja bersama-sama untuk diselesaikan.

Artikel ini hanya menumpukan pada penjadual Tugas utamanya ialah memilih yang paling sesuai antara semua proses BERJALAN.

Sebagai sistem pengendalian umum, penjadual Linux membahagikan proses kepada tiga kategori:

Proses interaktif

Proses jenis ini mempunyai banyak interaksi manusia-komputer , Jadi proses itu sentiasa tidur, menunggu input pengguna. Aplikasi biasa ialah editor vi. Proses jenis ini mempunyai keperluan yang agak tinggi pada masa tindak balas sistem, jika tidak, pengguna akan merasakan bahawa sistem lambat bertindak balas.

Proses Kelompok

Proses jenis ini tidak memerlukan interaksi manusia-komputer, berjalan di latar belakang dan menggunakan banyak sumber sistem. Tetapi boleh bertolak ansur dengan kelewatan tindak balas. Seperti penyusun.

Proses masa nyata

Masa nyata mempunyai keperluan tertinggi untuk kelewatan penjadualan Proses ini sering melakukan operasi yang sangat penting dan memerlukan tindak balas serta pelaksanaan segera. Contohnya, perisian main balik video atau sistem kawalan penerbangan pesawat Jelas sekali bahawa program sedemikian tidak boleh bertolak ansur dengan kelewatan penjadualan yang lama, ia akan menjejaskan kesan tayangan filem, dan paling teruk, pesawat akan musnah dan orang akan mati

Pembelajaran yang disyorkan:

Tutorial video Linux

Atas ialah kandungan terperinci Apakah mekanisme penjadualan tugas linux. 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:Apakah jumlah dalam linuxArtikel seterusnya:Apakah jumlah dalam linux