日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

操作系统原理:进程间通信 IPC

發布時間:2024/10/14 windows 93 豆豆
生活随笔 收集整理的這篇文章主要介紹了 操作系统原理:进程间通信 IPC 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? ?操作系統通信方式可以分為兩種方式直接通信和間接通信,對于直接通信進程A將通知進程B ,進程必須指明發送方或者接收方來發送/獲取消息。對于間接通信進程A將通知消息發送操作系統內存種的某個區域,由進程B從該區域獲取消息,發送消息方只負責把消息放到指定位置,接收方只負責在對應的位置不斷地檢查是否有新消息進入,從而觸發事件。消息傳遞可以是阻塞/同步的。A確認完B接收到了消息才會繼續執行A的任務,也可以是非阻塞/異步的A發送消息給B 可以繼續執行A的任務。

目錄

? ? ?一、信號 Signal

? ? 二、管道

? ? 三、消息隊列 按FIFO來管理消息

? ? 四、共享內存


? ? ?一、信號 Signal

? ? ?信號是一個很小的一個bit,不能傳遞數據。通過通知應用程序有一個緊急的事情需要處理,中斷應用程序,這個中斷不是硬件中斷而是軟件意義上的信號中斷。信號有多種類型例如進程終止相關的信號,異常信號,kill 信號,鍵盤中斷信號等。接收該信號的進程B可以使用操作系統的默認操作,也可以用catch捕捉信號等。進程A通過操作系統給B發送信號的過程中。操作系統確認PCB和信號處理函數,找到進程B,修改進程B的??臻g,退出對應棧幀執行信號處理函數。由于要修改別的進程的??臻g,通常正常的應用程序不允許這么操作,除了木馬和病毒。

? ? 二、管道

? ?在Unix設計過程中,一個小的應用程序完成一個小的功能,但是Unix科學家想要把這些小的功能靈活地組合起來,把前面一個功能的輸出,定向程下一個功能的輸入。之后才有了Unix和Linux的管道符“|”。例如Linux命令? ?history | grep java?

? 管道實際上是一個緩存區。每一個功能之間有一個管道。上一個功能負責往管道里傳消息,不關心下一個功能要怎么做,下一個功能負責從管道里讀數據,不關系上一個功能是怎么做的。管道傳輸的是一群字節流。管道的讀寫需要對字節流進行解析。

?

? ? 三、消息隊列 按FIFO來管理消息

? 消息隊列也是一個內存區,只不過是先進先出進行管理消息,消息隊列可以傳遞有意義的數據結構。

? ??

? ? 四、共享內存

? ? 共享內存是一種直接的通信方式,共享內存是指兩個或多個進程都有權訪問的相同內存塊。通過讀進程里的共享空間的數據進行進程間通信。沒有數據復制,沒有系統調用,能夠快速、方便地訪問共享資源,但是這個訪問需要程序員提供同步機制。

總結

以上是生活随笔為你收集整理的操作系统原理:进程间通信 IPC的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。