(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呢?我的理...