Rumah masalah biasa Apakah hubungan antara benang dan proses?

Apakah hubungan antara benang dan proses?

Jan 31, 2023 pm 02:18 PM
proses benang

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.

Apakah hubungan antara benang dan proses?

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!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Terangkan apakah proses explorer.exe Terangkan apakah proses explorer.exe Feb 18, 2024 pm 12:11 PM

Apakah proses explorer.exe? Apabila kita menggunakan sistem pengendalian Windows, kita sering mendengar istilah "explorer.exe". Jadi, adakah anda ingin tahu apakah proses ini? Dalam artikel ini, kami akan menerangkan secara terperinci apakah proses explorer.exe dan fungsi serta kesannya. Pertama sekali, explorer.exe ialah proses utama sistem pengendalian Windows Ia bertanggungjawab untuk mengurus dan mengawal Windows Explorer (Window

Apakah jenis proses ccsvchst.exe? Apakah jenis proses ccsvchst.exe? Feb 19, 2024 pm 11:33 PM

ccsvchst.exe ialah fail proses biasa yang merupakan sebahagian daripada perisian Symantec Endpoint Protection (SEP), dan SEP ialah penyelesaian perlindungan titik akhir yang dibangunkan oleh syarikat keselamatan rangkaian terkenal Symantec. Sebagai sebahagian daripada perisian, ccsvchst.exe bertanggungjawab untuk mengurus dan memantau proses berkaitan SEP. Pertama, mari kita lihat SymantecEndpointProtection(

Bagaimana untuk membunuh proses zombi dengan betul di Linux Bagaimana untuk membunuh proses zombi dengan betul di Linux Feb 19, 2024 am 10:40 AM

Dalam sistem Linux, proses zombi adalah proses khas yang telah ditamatkan tetapi masih kekal dalam sistem. Walaupun proses zombi tidak menggunakan banyak sumber, jika terlalu banyak, ia boleh menyebabkan kehabisan sumber sistem. Artikel ini akan memperkenalkan cara mengalih keluar proses zombi dengan betul untuk memastikan operasi normal sistem. Proses zombi 1Linux Selepas proses anak menyelesaikan tugasnya, jika proses induk tidak menyemak status dalam masa, proses anak akan menjadi proses zombi. Proses anak sedang menunggu pengesahan daripada proses induk, dan sistem tidak akan mengitar semulanya sehingga ia selesai. Jika tidak, proses zombi akan terus tergantung dalam sistem. Untuk menyemak sama ada terdapat proses zombi dalam sistem, anda boleh menjalankan arahan atas untuk melihat semua proses yang sedang berjalan dan kemungkinan proses zombi. Hasil daripada arahan 'atas' boleh dilihat dari rajah di atas dalam Linux.

Penjelasan terperinci tentang kaedah pelarasan keutamaan proses Linux Penjelasan terperinci tentang kaedah pelarasan keutamaan proses Linux Mar 15, 2024 am 08:39 AM

Penjelasan terperinci tentang kaedah pelarasan keutamaan proses Linux Dalam sistem Linux, keutamaan proses menentukan susunan pelaksanaannya dan peruntukan sumber dalam sistem. Melaraskan keutamaan proses secara munasabah boleh meningkatkan prestasi dan kecekapan sistem. Artikel ini akan memperkenalkan secara terperinci cara melaraskan keutamaan proses dalam Linux dan memberikan contoh kod khusus. 1. Gambaran keseluruhan keutamaan proses Dalam sistem Linux, setiap proses mempunyai keutamaan yang berkaitan dengannya. Julat keutamaan biasanya -20 hingga 19, di mana -20 mewakili keutamaan tertinggi dan 19 mewakili

Bagaimana untuk menghentikan kemas kini proses Pengurus Tugas dan mematikan tugas dengan lebih mudah dalam Windows 11 Bagaimana untuk menghentikan kemas kini proses Pengurus Tugas dan mematikan tugas dengan lebih mudah dalam Windows 11 Aug 20, 2023 am 11:05 AM

Cara Menjeda Kemas Kini Proses Pengurus Tugas dalam Windows 11 dan Windows 10 Tekan CTRL+Kekunci Tetingkap+Padam untuk membuka Pengurus Tugas. Secara lalai, Pengurus Tugas akan membuka tetingkap Proses. Seperti yang anda lihat di sini, semua apl bergerak tanpa henti dan sukar untuk menunjukkannya apabila anda ingin memilihnya. Jadi, tekan CTRL dan tahan, ini akan menjeda pengurus tugas. Anda masih boleh memilih aplikasi dan juga tatal ke bawah, tetapi anda mesti menahan butang CTRL pada setiap masa.

Mengapa proses dalam Linux tidur? Mengapa proses dalam Linux tidur? Mar 20, 2024 pm 02:09 PM

Mengapa proses dalam Linux tidur? Dalam sistem pengendalian Linux, sesuatu proses boleh menjadi tidak aktif disebabkan oleh beberapa sebab dan keadaan yang berbeza. Apabila sesuatu proses berada dalam keadaan tidak aktif, ini bermakna proses itu digantung buat sementara waktu dan tidak boleh meneruskan pelaksanaan sehingga syarat-syarat tertentu dipenuhi sebelum ia boleh dibangkitkan untuk meneruskan pelaksanaan. Seterusnya, kami akan memperkenalkan secara terperinci beberapa situasi biasa apabila proses memasuki hibernasi dalam Linux, dan menggambarkannya dengan contoh kod tertentu. Menunggu I/O selesai: Apabila proses memulakan operasi I/O (seperti membaca

Pengaturcaraan Serentak C++: Bagaimana untuk mengelakkan kebuluran benang dan penyongsangan keutamaan? Pengaturcaraan Serentak C++: Bagaimana untuk mengelakkan kebuluran benang dan penyongsangan keutamaan? May 06, 2024 pm 05:27 PM

Untuk mengelakkan kebuluran benang, anda boleh menggunakan kunci yang adil untuk memastikan peruntukan sumber yang adil, atau menetapkan keutamaan benang. Untuk menyelesaikan penyongsangan keutamaan, anda boleh menggunakan warisan keutamaan, yang meningkatkan keutamaan utas yang memegang sumber buat sementara waktu atau menggunakan promosi kunci, yang meningkatkan keutamaan utas yang memerlukan sumber.

Bagaimana untuk mengesan jika tiada proses PHP dalam sistem Linux Bagaimana untuk mengesan jika tiada proses PHP dalam sistem Linux Mar 16, 2024 am 11:42 AM

"Kaedah pengesanan tiada proses PHP dalam sistem Linux, contoh kod khusus diperlukan" Apabila menggunakan sistem Linux untuk pembangunan web, kami sering bergantung pada proses PHP untuk mengendalikan halaman dinamik dan logik, dan kadangkala kami mungkin perlu memantau sama ada terdapat PHP proses pada pelayan. Artikel ini akan memperkenalkan kaedah untuk mengesan sama ada terdapat proses PHP dalam sistem Linux dan memberikan contoh kod tertentu. Mengapakah proses PHP perlu dikesan dalam pembangunan web, proses PHP memainkan peranan penting untuk menghurai dan melaksanakan proses PHP.