Apakah hubungan antara benang dan proses?

王林
Lepaskan: 2023-05-22 22:35:13
ke hadapan
1139 orang telah melayarinya

Sesuatu proses mesti mempunyai sekurang-kurangnya satu utas, tetapi boleh mempunyai berbilang utas. Satu utas hanya boleh dilaksanakan dalam ruang alamat satu proses. 2. Sumber diperuntukkan kepada proses, dan semua rangkaian proses yang sama berkongsi semua sumber proses. 3. CPU diperuntukkan kepada benang, iaitu, benang sebenarnya berjalan pada pemproses. Untuk mencapai penyegerakan, pelaksana benang perlu bekerjasama antara satu sama lain, dan urutan silang proses harus menggunakan komunikasi mesej.

Proses ialah unit asas peruntukan sumber, thread ialah unit asas penjadualan dan penghantaran CPU

Thread adalah sebahagian daripada proses, thread hanya boleh dimiliki oleh satu proses, dan satu proses boleh mempunyai Berbilang utas, tetapi sekurang-kurangnya satu utas

Setiap proses mempunyai kod dan ruang data bebas (konteks program Pertukaran antara atur cara boleh dianggap sebagai proses ringan dari jenis yang sama). Benang berkongsi kod dan ruang data Setiap utas mempunyai timbunan berjalan sendiri dan pembilang program (PC) Kos menukar antara utas adalah kecil

Dalam sistem pengendalian, berbilang proses (program) boleh dijalankan di. masa yang sama. Berbilang benang dalam proses yang sama (program) dilaksanakan secara serentak (melalui penjadualan CPU, hanya satu utas dilaksanakan dalam setiap kepingan masa)

Sistem akan memperuntukkan ruang memori yang berbeza untuk setiap proses apabila ia berjalan. Kecuali untuk CPU, sistem tidak memperuntukkan memori untuk utas (sumber yang digunakan oleh utas berasal daripada sumber proses yang menjadi milik kumpulan benang itu hanya boleh berkongsi sumber

Tiada yang sedia). -proses yang dibuat yang boleh dianggap sebagai satu-benang , jika terdapat berbilang utas dalam satu proses, proses pelaksanaan tidak berada dalam satu baris, tetapi berbilang utas (benang) dilengkapkan bersama
Benang adalah sebahagian daripada proses. , jadi utas itu dipanggil proses ringan/proses ringan

Hubungan antara proses dan utas

Sesuatu proses boleh mempunyai berbilang utas, tetapi pada sekurang-kurangnya satu utas; dan satu utas hanya boleh berada dalam satu aktiviti proses dalam ruang alamat.

2. Sumber diperuntukkan kepada proses, dan semua rangkaian proses yang sama berkongsi semua sumber proses.

3. CPU diperuntukkan kepada benang, iaitu, benang sebenarnya berjalan pada pemproses.

4. Benang perlu bekerjasama dan menyegerak semasa pelaksanaan Benang dalam proses yang berbeza mesti menggunakan komunikasi mesej untuk mencapai penyegerakan.

Apakah yang boleh dikongsi antara proses?

Persekitaran yang dikongsi oleh utas termasuk: segmen kod proses, data awam proses (menggunakan data kongsi ini, utas boleh berkomunikasi dengan mudah antara satu sama lain), deskriptor fail dibuka oleh proses dan isyarat pemproses, direktori semasa proses dan ID pengguna proses dan ID kumpulan proses.

Walaupun proses berkongsi banyak persamaan, mereka juga mempunyai personaliti mereka sendiri. Dengan personaliti ini, benang boleh mencapai keselarasan. Ciri-ciri ini termasuk:

1. ID Ulir
Setiap urutan mempunyai ID urutan sendiri, yang unik dalam proses ini. Proses menggunakan ini untuk mengenal pasti urutan.

2. Daftar nilai kumpulan
Memandangkan utas dijalankan serentak, setiap utas mempunyai petunjuk jalannya yang berbeza Apabila bertukar dari satu utas ke satu lagi, , keadaan daftar utas asal set mesti disimpan supaya benang boleh dipulihkan apabila ia ditukar semula pada masa hadapan.

3. Tindanan benang
Tindanan diperlukan untuk memastikan bahawa benang berjalan secara bebas.
Fungsi benang boleh memanggil fungsi, dan fungsi yang dipanggil boleh bersarang lapisan demi lapisan, jadi benang mesti mempunyai tindanan fungsinya sendiri supaya panggilan fungsi boleh dilaksanakan secara normal tanpa dipengaruhi oleh benang lain.

4. Ralat memulangkan kod
Memandangkan terdapat banyak utas berjalan dalam proses yang sama pada masa yang sama, ada kemungkinan benang menetapkan nilai errno selepas membuat panggilan sistem , dan dalam utas itu Ralat ini belum diproses lagi, dan utas lain digunakan oleh penjadual pada masa ini, jadi nilai ralat boleh diubah suai.

Jadi, urutan yang berbeza harus mempunyai pembolehubah kod pulangan ralatnya sendiri.

5. Kod penutup isyarat benang
Memandangkan isyarat yang diminati oleh setiap utas adalah berbeza, kod penutup isyarat benang harus diuruskan oleh utas itu sendiri. Tetapi semua benang berkongsi pengendali isyarat yang sama.

6. Keutamaan utas
Memandangkan utas perlu dijadualkan seperti proses, mesti ada parameter yang tersedia untuk penjadualan Parameter ini adalah keutamaan.

Lima cara komunikasi antara proses

1. bukan serentak Memindahkan data dalam kedua-dua arah. Sesetengah sistem mungkin menyokong dupleks penuh.

Hanya antara proses ibu bapa dan anak. Dalam bentuk klasiknya, proses induk mencipta paip dan kemudian menghentikan proses anak, dengan itu membolehkan penggunaan antara proses ibu bapa dan anak.

2. Paip bernama (FIFO)

Proses yang tidak berkaitan juga boleh bertukar-tukar data.

3. Baris Gilir Mesej

Baris gilir mesej ialah senarai mesej yang disimpan dalam kernel, serupa dengan senarai mesej yang dipautkan. Proses pengguna boleh menambah mesej pada baris gilir mesej dan membaca mesej daripada baris gilir mesej.

Berbanding dengan komunikasi saluran paip, kelebihan baris gilir mesej adalah untuk menentukan jenis mesej tertentu untuk setiap mesej, anda tidak perlu mengikut susunan baris gilir, tetapi boleh menerima jenis mesej tertentu berdasarkan syarat tersuai.

Anda boleh menganggap mesej sebagai rekod, dengan format tertentu dan keutamaan tertentu. Proses dengan kebenaran menulis pada baris gilir mesej boleh menambah mesej baharu pada baris gilir mesej mengikut peraturan tertentu dan proses dengan kebenaran baca pada baris gilir mesej boleh membaca mesej daripada baris gilir mesej.

4. Semaphore

Apabila berbilang proses perlu mengakses data kongsi, semaphore ialah pembilang dan digunakan terutamanya untuk tujuan ini. Jika anda perlu memastikan bahawa data yang sama tidak diakses oleh dua proses pada masa yang sama, anda boleh menggunakan semaphore.

Proses utamanya adalah seperti berikut:

Semak semaphore yang mengawal sumber

Jika nilai semaphore lebih besar daripada 0, sumber itu tersedia dan ia dikurangkan dengan 1, menunjukkan bahawa arus Sudah digunakan

Jika nilai semaphore ialah 0, proses tidur sehingga nilai semaphore lebih besar daripada 0

Dengan kata lain, ia sebenarnya menyediakan proses yang berbeza atau benang proses yang berbeza cara penyegerakan akses antara

5 Memori yang dikongsi

Memori yang dikongsi membolehkan dua atau lebih proses berkongsi kawasan storan ini boleh digunakan oleh dua atau lebih proses di atas proses dipetakan ke ruang alamatnya sendiri Maklumat yang ditulis oleh satu proses ke memori yang dikongsi boleh dibaca oleh proses lain menggunakan memori yang dikongsi ini melalui bacaan memori yang mudah, dengan itu merealisasikan komunikasi antara proses.

Salah satu faedah utama menggunakan memori bersama untuk komunikasi adalah kecekapan tinggi, kerana proses itu boleh terus membaca dan menulis memori tanpa sebarang salinan data Untuk kaedah komunikasi seperti paip dan baris gilir mesej, kernel perlu be Data disalin empat kali ke ruang pengguna, manakala memori kongsi disalin hanya dua kali: sekali dari fail input ke kawasan memori kongsi, dan masa lain dari memori kongsi ke fail output.

Secara umumnya, apabila proses berkongsi memori, mereka tidak selalu menyahpeta selepas membaca dan menulis sejumlah kecil data Apabila terdapat komunikasi baharu, kawasan memori yang dikongsi diwujudkan semula dikekalkan sehingga Sehingga komunikasi selesai, kandungan data disimpan dalam memori kongsi dan tidak ditulis kembali ke fail. Oleh kerana kandungan memori yang dikongsi biasanya ditulis kembali ke fail apabila ia tidak dipetakan, kaedah menggunakan memori yang dikongsi untuk komunikasi adalah sangat cekap.

6. Soket:

Soket juga merupakan mekanisme komunikasi antara proses, tidak seperti mekanisme komunikasi yang lain, ia boleh digunakan antara komunikasi proses yang berbeza.

7. Isyarat (sinal)

Isyarat ialah kaedah komunikasi yang agak kompleks yang digunakan untuk memberitahu proses penerimaan bahawa sesuatu peristiwa telah berlaku

Atas ialah kandungan terperinci Apakah hubungan antara benang dan proses?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
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