linux作業系統理解 IPC

2021-08-20 19:56:05 字數 615 閱讀 3308

(ipc指程序間通訊方式,注意不是執行緒間,執行緒之間同步只有訊號量和互斥量)

1.管道pipe

shell的管道就是這個原理

程序管道:popen/pclose函式

1.2命名管道fifo,是一種特殊的檔案,在檔案系統中以檔案的形式存在

2.訊號量:

(備註:學習多程序的同步與互斥,和多線的同步與互斥時,發現他們都有sem訊號量,很困惑就查了一下區別才發現: 

訊號量分為有名與無名

2.1有名:

初始化並開啟有名訊號量:sem_open()

退出有名訊號量:sem_close()

銷毀有名訊號量:sem_unlink()

公共:操作訊號量:sem_wait()/sem_trywait()/sem_timedwait()/sem_post()/sem_getvalue()

無名:建立/獲得無名訊號量:sem_init()

銷毀無名訊號量:sem_destroy()

3.共享記憶體

不同的程序邏輯位址空間,對映到同一塊物理記憶體,這個物理記憶體就是共享記憶體

shmget

shmat

shmdt

shmctl

4.訊息佇列

作業系統 理解訊號量

訊號量是一種常用的併發機制。基本原理 兩個或多個程序可以通過簡單的訊號合作,可以強迫乙個程序在某個位置停止,直到它接收到乙個特定的訊號。任何複雜的合作都可以通過適當的訊號結構得到滿足。為了發訊號,需要使用到乙個訊號量的特殊變數。要通過訊號量s傳送訊號,程序必須執行semsignal s v操作 要通...

作業系統理論

作業系統理論 1.作業系統是什麼?作業系統是乙個協調 管理 控制計算機硬體資源與應用軟體資源的一段控制程式 有兩大功能 1.將複雜的硬體操作封裝成簡單的介面給應用程式或者使用者去使用 2.將多個程序對硬體的競爭變得有序 作業系統發展史 併發 多個任務看起來是同時執行的 序列 乙個任務完完整整地執行完...

作業系統IPC

最近學習作業系統,我在課堂上基本上沒怎麼認真的聽老師講課,只是明白她講的的核心思想,但是對於老師講的具體例子我沒聽懂,原因不想在此陳述。我想說一下我對對ipc interprocess communication 的一點總結。我們在學習新事物的時候,我總想先知道為啥有這個東西。為啥有ipc呢?我的理...