進程通信

  進程間通信就是在不同進程之間傳播或交換信息,進程間控制信息的交換稱為低級通信,進程間大批量數據的交換稱為高級通信。

進程通信分為3種:

1.共享存儲器系統:為了傳送大量數據,在存儲器中劃出一塊共享存儲區,諸進程可通過對共享存儲區進行讀數據或寫數據以實現通信。

2.消息傳遞系統:又分為直接通信方式、間接通信方式.

3.管道通信系統:向管道提供輸入的發送進程,以字符流方式將大量的數據送入管道,而接收進程從管道中接收數據

?

消息緩沖隊列通信機制:

  由于消息緩沖機制中所使用的緩沖區為公用緩沖區,因此使用消息緩沖機制傳送數據時,兩通信進程必須滿足如下條件:

第一,在發送進程把寫入消息的緩沖區掛入消息隊列時,應禁止其他進程對該消息隊列的訪問,否則,將引起消息隊列的混亂。同理,當接收進程正從消息隊列中取消息時,也應禁止其他進程對該隊列的訪問。

第二,當緩沖區中無消息存在時,接收進程不能接收到任何消息;而發送進程是否可以發送消息,則只由發送進程是否能夠申請到緩沖區決定。

?

緩沖隊列通信機制中的數據結構:

(1)消息緩沖區

??? typedefstruct message buffer

??? {

?????? sender;? //發送者進程標識符

?????? size;? //消息長度

?????? text;? //消息正文

?????? next;? //指向下一個消息緩沖區的指針

??? }

(2)PCB中有關進程通信的數據項

??? typedefstruct message block

??? {

????? …

????? mq;? //消息隊列隊首指針

????? mutex;//消息隊列互斥信號量,初值為1

????? sm;? //消息隊列資源信號量,用于消息隊列中的消息計數,初值為0

????? …

??? }

轉載于:https://www.cnblogs.com/lihuidashen/p/3460552.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/377480.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/377480.shtml
英文地址,請注明出處:http://en.pswp.cn/news/377480.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

界面邊框圓角

界面邊框圓角的實現方式同樣是在res/drawable中定義一個XML文件&#xff0c;corners.xml的代碼如下&#xff1a; 1<?xml version"1.0" encoding"utf-8"?>2<shape xmlns:android"http://schemas.android.com/apk/res/android"> 3 …

CGPA的完整形式是什么?

CGPA&#xff1a;累積平均績點 (CGPA: Cumulative Grade Point Average) CGPA is an abbreviation of Cumulative Grade Point Average. It is a grading system in education. It is used in measuring the overall academic performance average of a student in schools and…

二、頁面布局

一、界面 我做的界面大概思路&#xff1a;點擊 上傳圖片&#xff0c;顯示待檢驗的照片 點擊 U-net模型檢測 會使用已經訓練好的U-net模型進行預測 點擊 OpenCV統計 會將預測結果進行輪廓檢測&#xff0c;并統計所有輪廓的面積 在 處理結果 這個groupBox中進行顯示 大致界面如…

GNU工具以及GCC對C語言程序的處理流程

GCC是一族工具的集合&#xff0c;包含預處理器、編譯器、匯編器、鏈接器。 對于默認的文件名&#xff0c;GCC可以自動選擇工具自動完成文件處理過程。 從C語言的源程序道可執行文件&#xff0c;實質上是依靠GCC調用一系列工具完成的。 GCC默認處理的文件 文件類型擴展名文件說…

Professional C++讀書筆記05

2012-05-20 Chapter09 1、復制構造函數淺復制時的隱患 若對象中有指針成員&#xff0c;則當對象作為形參傳入時 例如void myFun(Spreadsheet s)…… Spreadsheet s1(5,3); myFun(s1);// s1與s中的指針成員指向同一塊內存&#xff08;s是由s1通過復制構造函數生成的&#xff…

請不要對我說“你要馬上把這個小問題修改好”

“我需要”&#xff0c;“小問題”&#xff0c;“立刻”。你激怒我了。你的每個詞都激怒我了。這種情緒很難翻譯成英語表達&#xff0c;但在荷蘭&#xff0c;有些人就是用這種方式要求你。翻譯成英語&#xff0c;這有點像“你要幾分鐘內把這個東西修改好”。大家都知道的這樣的…

javascript 常量_JavaScript中的常量

javascript 常量JavaScript常數 (JavaScript Constants) Before ES15, the only way to declare variables using the var keyword. JavaScripts inbuilt feature of hoisting variables could be carried out using the var keyword. If youre unfamiliar with variables in J…

GDB與遠程(交叉)GDB調試

GDB提供的功能 1、啟動的程序&#xff0c;可以按照自定義的要求運行程序 2、可以讓被調試的程序在指定的斷點處停住(斷點可以是條件表達式) 3、當程序被停住時&#xff0c;可以檢查這個時候程序中發生的事 4、動態地改變程序的運行環境。 遠程&#xff08;交叉&#xff09;GD…

OTR-Linux控制臺打印顏色區分.

What I write, what I lost. 對于依靠打印來作debug的主要手段的, 能夠區分打印中的debug信息和error信息便顯得非常重要. 原文的介紹有一篇關于控制臺顏色的文章http://www.ibm.com/developerworks/cn/linux/l-tip-prompt/tip01/ 有定義實現各種顏色的方式. 以此為基礎, 方式挺…

c#異常處理_C#中的異常處理

c#異常處理What an exception is? 有什么例外&#xff1f; An exception is a runtime error; that means an abnormal situation which is created at run time and the program doesn’t execute successfully. Due to the exceptions, our program gets crash. 異常是運行…

(轉)走進AngularJs(六) 服務

原文地址&#xff1a;http://www.cnblogs.com/lvdabao/p/3464015.html 今天學習了一下ng的service機制&#xff0c;作為ng的基本知識之一&#xff0c;有必要做一個了解&#xff0c;在此做個筆記記錄一下。 一、認識服務&#xff08;service&#xff09; 服務這個概念其實并不陌…

Linux驅動程序框架以及概述

目錄驅動程序三種基本類型&#xff08;組成&#xff09;設備驅動程序功能驅動程序的內核模塊機制&#xff08;開發模式&#xff09;驅動程序框架三個主要部分1、字符設備驅動程序框架2、塊設備驅動程序框架2、網絡設備驅動程序框架驅動程序三種基本類型&#xff08;組成&#x…

curl 使用整理(轉載)

我一向以為&#xff0c;curl只是一個編程用的函數庫。 最近才發現&#xff0c;這個命令本身&#xff0c;就是一個無比有用的網站開發工具&#xff0c;請看我整理的它的用法。 curl網站開發指南 阮一峰 整理 curl是一種命令行工具&#xff0c;作用是發出網絡請求&#xff0c;然…

Linux內核邏輯結構

linux內核從邏輯上可以分為5個部分&#xff1a; 1、進程調度 進程調度控制進程對CPU的訪問。當需要選擇下一個進程運行時&#xff0c;由調度程序選擇最值得運行的程序。可運行進程實際上是僅等待CPU資源的進程&#xff0c;如果某個進程在等待其他資源&#xff0c;則該進程是不可…

對批量文件重命名

一、 文件夾下存放各種不同名稱的同類型文件 F:\test 二、重命名格式從a0開始&#xff0c;數字依次遞增&#xff0c;a0,a1,a2,a3… import ospathr"F:\test"#要修改文件的路徑 namer"a"#命名從什么開始 num0#默認從0開始&#xff0c;即a0,a1,a2...... …

替換Quartus 自帶編輯器 (轉COM張)

正文 此處以Quartus II 11.1和Notepad v5.9.6.2為例。 1. 使用QII自動調用Notepad來打開HDL、sdc、txt等文件&#xff1b;并且可以在報錯的時候&#xff0c;Notepad可以直接高亮所報錯的行&#xff08;此模式下&#xff0c;Notepad最大化后效果最佳&#xff09;。 方法&#xf…

scala 方法重載_Scala中的方法重載

scala 方法重載Scala方法重載 (Scala method overloading) Method overloading is a method that is redefined in different ways under the same name. Method overloading is one of the methods used to implement polymorphism in Scala. 方法重載是一種使用相同名稱以不…

C#網頁自動登錄和提交POST信息的多種方法 新人學習中

網頁自動登錄和提交POST信息的核心就是分析網頁的源代碼&#xff08;HTML&#xff09;&#xff0c;在C#中&#xff0c;可以用來提取網頁HTML的組件比較多&#xff0c;常用的用WebBrowser、WebClient、HttpWebRequest這三個。 以下就分別用這三種方法來實現&#xff1a;1、WebBr…

四、采集和制作數據集

一、采集數據 安裝labelme&#xff1a;pip install labelme 打開labelme&#xff1a;labelme 將收集好的照片(320320&#xff0c;png格式)存放到一個文件夾中&#xff0c;例如我的是F:\test&#xff0c;再此文件夾下再創建個文件夾label用于存放標簽文件 使用labelme打開數據…

MTFBWU的完整形式是什么?

MTFBWU&#xff1a;愿力量與您同在 (MTFBWU: May The Force Be With You) MTFBWU is an abbreviation of “May The Force Be With You". MTFBWU是“愿力量與你同在”的縮寫 。 It is an expression, which is commonly used in messaging or chatting on social media n…