Apakah keadaan proses linux?

青灯夜游
Lepaskan: 2022-04-12 19:33:14
asal
12919 orang telah melayarinya

Terdapat 5 keadaan: 1. Keadaan boleh dilaksanakan; 2. Keadaan menunggu yang tidak terganggu; Nilai keadaan "keadaan boleh laku" ialah TASK_RUNNING Pada masa ini, program telah diletakkan dalam baris gilir larian dan berada dalam keadaan sedia untuk dijalankan Setelah ia mendapat hak untuk menggunakan pemproses, ia boleh memasuki larian negeri.

Apakah keadaan proses linux?

Persekitaran pengendalian tutorial ini: sistem linux5.9.8, komputer Dell G3.

Contoh struktur data khas yang ditakrifkan oleh sistem pengendalian dan dikawal oleh sistem pengendalian dipanggil proses. Ia disambungkan kepada kod pengguna, mempunyai ruang memori bebas yang diperlukan untuk kod berjalan, dan berjalan di bawah jadual penjadual menggunakan kepingan masa pemproses yang diberikan kepadanya.

5 keadaan proses Linux

Dalam sistem Linux, selepas sesuatu proses dicipta, ia boleh mempunyai 5 keadaan berikut dalam sistem . Keadaan semasa proses direkodkan dalam anggota keadaan blok kawalan proses.

Keadaan sedia dan keadaan berjalan (keadaan boleh laku)

Nilai keadaan bendera negeri bagi keadaan sedia ialah TASK_RUNNING. Pada masa ini, program telah diletakkan dalam baris gilir larian dan sedia untuk dijalankan. Setelah hak untuk menggunakan pemproses diperoleh, ia boleh memasuki keadaan berjalan.

Apabila proses memperoleh pemproses dan berjalan, nilai keadaan masih TASK_RUNNING dan tidak berubah tetapi Linux akan menghalakan arus penunjuk yang digunakan khusus untuk menunjuk kepada tugas yang sedang dijalankan untuk menunjukkan bahawa ia adalah a Proses berjalan.

Keadaan menunggu yang boleh terganggu

Nilai keadaan bendera status ialah TASK_INTERRUPTIBL. Pada masa ini, proses itu dalam keadaan menunggu kerana ia tidak memperoleh sumber yang diminta. Sebaik sahaja sumber tersedia atau terdapat isyarat bangun, proses akan serta-merta tamat menunggu dan memasuki keadaan sedia.

Keadaan menunggu tidak terganggu

Nilai keadaan bendera status ialah TASK_UNINTERRUPTIBL. Pada masa ini, proses itu juga sedang menunggu sumber. Sebaik sahaja sumber tersedia, proses serta-merta memasuki keadaan sedia. Perbezaan antara keadaan menunggu ini dan keadaan menunggu terganggu ialah proses dalam keadaan TASK_UNINTERRUPTIBL tidak boleh dibangkitkan oleh semafor atau gangguan, dan hanya boleh dibangkitkan apabila sumber yang digunakan adalah sah.

Keadaan ini digunakan dalam senario tertentu dalam kernel, seperti apabila proses perlu membaca dan menulis ke cakera, dan data sedang disalin ke memori dalam DMA Jika proses tidur terganggu pada masa ini ( Contohnya, isyarat keluar paksa) maka masalah berkemungkinan akan berlaku, jadi pada masa ini proses akan berada dalam keadaan yang tidak boleh diganggu.

Keadaan berhenti

Nilai keadaan bendera status ialah TASK_STOPPED. Apabila proses menerima isyarat SIGSTOP, ia memasuki keadaan berhenti daripada keadaan berjalan Apabila ia menerima isyarat SIGCONT, ia kembali kepada keadaan berjalan. Keadaan ini digunakan terutamanya untuk penyahpepijatan program, dan juga dipanggil "keadaan jeda" atau "keadaan penangguhan".

Batalkan status

Nilai keadaan bendera status ialah TASK_DEAD. Proses berhenti berjalan atas sebab tertentu, dan semua sumber yang diduduki oleh proses itu akan dikitar semula, kecuali untuk struktur task_struct (dan beberapa sumber), dan sistem tidak lagi akan memberi perhatian kepadanya, jadi keadaan ini juga dipanggil a "keadaan zombie" dan prosesnya menjadi proses Zombie.

Sepanjang keseluruhan kitaran hayat sesuatu proses, ia boleh beralih antara 5 keadaan. Hubungan penukaran antara lima keadaan proses Linux ditunjukkan dalam rajah di bawah:

Apakah keadaan proses linux?

Cadangan berkaitan: "Tutorial Video Linux"

Atas ialah kandungan terperinci Apakah keadaan proses linux?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan