Perhubungan: 1. Proses boleh mempunyai berbilang rangkaian, tetapi terdapat sekurang-kurangnya satu utas dan satu utas hanya boleh aktif 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. 4. Benang perlu bekerjasama dan menyegerak semasa pelaksanaan Benang dalam proses yang berbeza mesti menggunakan komunikasi mesej untuk mencapai penyegerakan.
Persekitaran pengendalian tutorial ini: sistem Windows 7, komputer Dell G3.
Proses ialah unit asas peruntukan sumber, thread ialah unit asas penjadualan dan penghantaran CPU
Thread ialah sebahagian daripada proses, thread hanya boleh dimiliki oleh satu proses dan satu proses boleh mempunyai berbilang utas, tetapi terdapat sekurang-kurangnya satu utas
Setiap proses mempunyai kod bebas dan ruang data (konteks program), menukar antara atur cara adalah mahal, utas boleh dianggap sebagai proses ringan dan urutan yang sama taip kod kongsi 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. Dalam masa yang sama. Dalam proses yang sama Berbilang benang dalam (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 semasa berjalan. . Benang kecuali CPU Selain itu, sistem tidak memperuntukkan memori untuk utas (sumber yang digunakan oleh utas berasal daripada sumber proses yang menjadi miliknya), dan kumpulan utas hanya boleh berkongsi sumber
Tiada proses sedia ada boleh dianggap sebagai benang tunggal Jika terdapat berbilang benang dalam proses, proses pelaksanaan bukan satu baris Berbilang benang (benang) dilengkapkan bersama
Benang adalah sebahagian daripada proses, jadi benang dipanggil ringan. -proses berat/proses ringan
Hubungan antara proses dan utas
1 sekurang-kurangnya satu utas; dan utas hanya boleh Aktiviti dalam ruang alamat 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.
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 tersebut (menggunakan data kongsi ini, utas boleh berkomunikasi dengan mudah antara satu sama lain) dan penerangan fail dibuka oleh proses simbol, pengendali isyarat, 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 Thread
Setiap urutan mempunyai ID utas sendiri, yang unik dalam proses ini. Proses menggunakan ini untuk mengenal pasti urutan.
2. Daftarkan 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 mengembalikan kod
Memandangkan terdapat banyak utas berjalan dalam proses yang sama pada masa yang sama, ada kemungkinan bahawa utas 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 setiap utas berminat dengan isyarat yang 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 ini.
Lima cara komunikasi antara proses
1 (Tanpa Nama) Paip
Separuh Dupleks, iaitu data tidak boleh dihantar dalam kedua-dua arah pada masa yang sama. Sesetengah sistem mungkin menyokong dupleks penuh.
Hanya antara proses ibu bapa dan anak. Bentuk klasik ialah paip dicipta oleh proses induk Selepas proses memotong proses anak, ia boleh digunakan 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 dipautkan, yang merupakan senarai siri mesej yang disimpan dalam kernel. 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 tersuai syarat.
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
Semaphore ialah pembilang, yang digunakan terutamanya apabila pelbagai proses perlu mengakses data kongsi. Memandangkan keadaan ini, dua proses tidak boleh mengakses data yang sama pada masa yang sama, jadi perkara sedemikian boleh dicapai dengan bantuan 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. Kandungan dalam memori kongsi selalunya ditulis kembali ke fail apabila ia tidak dipetakan Oleh itu, kaedah komunikasi menggunakan memori dikongsi 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 peristiwa telah berlaku
Untuk lebih lanjut pengetahuan berkaitan, sila lawati ruangan Soalan Lazim!
Atas ialah kandungan terperinci Apakah hubungan antara benang dan proses?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!