Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Apakah tiga kaedah komunikasi antara proses Linux?

Apakah tiga kaedah komunikasi antara proses Linux?

青灯夜游
青灯夜游asal
2021-07-23 16:46:407280semak imbas

Tiga cara untuk berkomunikasi antara proses Linux: 1. Komunikasi paip Proses yang menghantar maklumat dipanggil proses menulis, dan proses yang menerima maklumat dipanggil proses membaca. 2. Komunikasi penimbal mesej menggunakan penimbal mesej sebagai medium perantaraan, dan operasi penghantaran dan penerimaan kedua-dua pihak yang berkomunikasi adalah berdasarkan mesej. 3. Komunikasi memori yang dikongsi.

Apakah tiga kaedah komunikasi antara proses Linux?

Persekitaran pengendalian tutorial ini: sistem Ubuntu 16.04, komputer Dell G3.

3 cara komunikasi antara proses dalam Linux

Kerana proses yang berbeza dijalankan dalam ruang memori yang berbeza. Pengubahsuaian pembolehubah oleh satu pihak tidak dapat dilihat oleh pihak yang lain. oleh itu. Pemindahan maklumat antara proses tidak boleh dijalankan secara langsung melalui pembolehubah atau struktur data lain, tetapi hanya boleh dicapai melalui komunikasi antara proses.

Mengikut perbezaan dalam jumlah maklumat semasa komunikasi proses, komunikasi proses boleh dibahagikan kepada dua jenis utama: komunikasi maklumat kawalan dan komunikasi jumlah maklumat data yang besar. Yang pertama dipanggil komunikasi peringkat rendah, dan yang kedua dipanggil komunikasi peringkat tinggi.

Komunikasi peringkat rendah digunakan terutamanya untuk pemindahan maklumat kawalan seperti penyegerakan, pengecualian bersama, penamatan, penggantungan, dll. antara proses.

Komunikasi lanjutan digunakan terutamanya untuk pertukaran dan perkongsian blok data antara proses Komunikasi lanjutan biasa termasuk saluran paip (PIPE), baris gilir mesej (MESEJ), memori dikongsi (SHARED MEM0RY), dll.

Di sini kami terutamanya membandingkan ciri-ciri ketiga-tiga kaedah komunikasi lanjutan ini.

Komunikasi Saluran Paip (PIPE)

Apabila dua proses berkomunikasi menggunakan paip. Proses yang menghantar maklumat dipanggil proses menulis. Proses yang menerima maklumat dipanggil proses membaca. Media perantaraan komunikasi saluran paip ialah fail. Fail jenis ini biasanya dipanggil fail saluran paip. Ia menghubungkan proses menulis dan proses membaca bersama-sama seperti paip untuk mencapai komunikasi antara dua proses. Proses penulisan menulis maklumat ke dalam fail paip melalui hujung penulisan (penghujung menghantar); Kedua-dua proses menyelaras dan menulis dan membaca secara berterusan, membentuk saluran paip di mana kedua-dua pihak memindahkan maklumat melalui paip.

Gunakan panggilan sistem PIPE() untuk mencipta fail paip tanpa nama, biasanya dipanggil paip tidak dinamakan atau PIPE gunakan panggilan sistem MKNOD() untuk mencipta fail paip bernama. Selalunya dipanggil paip bernama atau FIFO. Paip tanpa nama ialah mekanisme komunikasi paip

tidak kekal. Ia akan dibuat asal apabila semua proses yang diakses ditamatkan. Paip yang tidak dinamakan hanya boleh digunakan antara proses dengan hubungan keluarga. Paip yang terkenal boleh wujud dalam sistem untuk masa yang lama. Ia juga disediakan untuk digunakan oleh proses mana-mana hubungan, tetapi penggunaan yang tidak betul boleh membawa kepada ralat dengan mudah. Oleh itu, sistem pengendalian menyerahkan hak pengurusan paip yang dinamakan kepada sistem untuk kawalan Selepas fail paip dibuat, operasi baca dan tulis pada paip boleh direalisasikan dengan panggilan sistem WRITE() dan READ(); komunikasi selesai, CLOSE() boleh digunakan untuk Fail saluran paip ditutup.

Komunikasi penimbal mesej (MESSAGE)

Pelbagai proses bebas boleh berkomunikasi antara satu sama lain melalui mekanisme penimbal mesej. Komunikasi jenis ini direalisasikan dengan penampan mesej sebagai medium perantaraan. Operasi penghantaran dan penerimaan kedua-dua pihak yang berkomunikasi adalah berdasarkan mesej. Dalam ingatan, penimbal mesej disusun dalam baris gilir, selalunya dipanggil baris gilir mesej. Setelah dibuat, baris gilir mesej boleh dikongsi oleh berbilang proses. Proses yang menghantar mesej boleh menghantar sebarang bilangan mesej ke baris gilir mesej yang ditentukan pada bila-bila masa dan menyemak sama ada terdapat proses penerimaan menunggu mesej yang dihantar. Jika ada, bangunkannya: dan proses menerima mesej boleh mendapatkan mesej daripada baris gilir mesej yang ditetapkan apabila ia memerlukan mesej itu. Jika berita belum sampai. Kemudian ia pergi ke keadaan tidur dan menunggu.

Komunikasi Memori Dikongsi (HAFARAN BERKONGSI)

Mensasarkan kelemahan penimbalan mesej yang memerlukan CPU menyalin mesej. OS menyediakan kaedah komunikasi untuk pertukaran data langsung antara proses - memori yang dikongsi. Kaedah komunikasi ini membenarkan pelbagai proses untuk berkomunikasi menggunakan segmen memori yang sama (sebagai medium perantaraan) dengan sokongan protokol komunikasi luaran atau penyegerakan dan mekanisme pengecualian bersama. Ia adalah salah satu kaedah komunikasi data yang paling berkesan, dan cirinya ialah tiada pautan perantaraan. Lampirkan terus halaman memori yang dikongsi melalui. Petakan ke dalam ruang alamat maya masing-masing bagi proses yang berkomunikasi antara satu sama lain. Ini membolehkan berbilang proses mengakses terus halaman memori fizikal yang sama. Sama seperti mengakses ruang peribadi anda sendiri (tetapi pada dasarnya ia bukan peribadi tetapi dikongsi). Oleh itu, kaedah komunikasi antara proses ini adalah cara terpantas untuk mencapai komunikasi antara proses dalam sistem komputer yang sama. Dan di dalamnya terdapat batasannya. Iaitu, proses yang berkongsi memori mesti wujud bersama pada sistem komputer yang sama. Hanya ingatan fizikal boleh dikongsi.

Ciri-ciri (kelebihan dan keburukan) daripada tiga kaedah:

1. Tetapi ia terhad kepada mod kerja komunikasi sehala. Dan perkongsian paip hanya boleh dicapai antara proses yang menciptanya dan proses turunannya: walaupun paip bernama boleh diberikan kepada proses mana-mana hubungan. Walau bagaimanapun, kerana ia wujud dalam sistem untuk masa yang lama, ia terdedah kepada ralat jika digunakan secara tidak wajar.

2. Penimbalan mesej tidak lagi boleh dihadkan kepada proses ibu bapa-anak. Ia membenarkan sebarang proses untuk mencapai komunikasi antara proses melalui baris gilir mesej yang dikongsi. Dan fungsi panggilan sistem untuk mencapai penyegerakan antara penghantaran dan penerimaan mesej. Akibatnya, pengguna tidak perlu lagi mempertimbangkan isu penyegerakan apabila menggunakan penimbal mesej untuk komunikasi. Ia mudah digunakan, tetapi menyalin maklumat memerlukan masa CPU tambahan. Tidak sesuai untuk situasi dengan jumlah maklumat yang banyak atau operasi yang kerap.

3 Memori yang dikongsi menggunakan penimbal memori untuk bertukar-tukar maklumat secara langsung berdasarkan kekurangan penimbal mesej Tiada penyalinan diperlukan. Walau bagaimanapun, komunikasi memori dikongsi dicapai dengan melampirkan penimbal memori dikongsi terus ke ruang alamat maya proses tersebut. Oleh itu, masalah penyegerakan operasi baca dan tulis antara proses ini tidak dapat direalisasikan oleh sistem pengendalian. Ini mesti diselesaikan oleh setiap proses menggunakan alat penyegerakan lain. Di samping itu, kerana entiti memori wujud dalam sistem komputer. Oleh itu, ia hanya boleh dikongsi oleh proses dalam sistem komputer yang sama. Menyusahkan untuk komunikasi rangkaian.

Cadangan berkaitan: "Tutorial Video Linux"

Atas ialah kandungan terperinci Apakah tiga kaedah komunikasi antara proses 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:linux同步时间命令有哪些Artikel seterusnya:linux echo命令怎么用