freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

進程間同步和通信-展示頁

2024-10-23 08:43本頁面
  

【正文】 一般文件的 I/O函數(shù)都可用于管道,如 close、 read、write等。 ? 管道兩端分別用描述符 filedes[0]和 filedes[1]描述 ? 管道兩端的功能是固定的: ? filedes[0]只能用于讀,稱為管道讀端; ? filedes[1]只能用于寫,稱為管道寫端。進程間同步和通信 Embedded Operating Systems 2 進程間通信 ? IPC, InterProcess Communication ? Unix系統(tǒng)提供的基本的 IPC包括: 管道和 FIFO(有名管道) 消息 信號量 共享內(nèi)存區(qū) 套接字 Embedded Operating Systems 3 管道( pipe) ? 管道是所有 Unix都提供的一種 IPC機制 ? 管道是半雙工的,數(shù)據(jù)只能向一個方向流動; ? 一個進程將數(shù)據(jù)寫入管道, 另一個進程從管道中讀取數(shù)據(jù) ? 數(shù)據(jù)的讀出和寫入: 寫入的內(nèi)容每次都添加在管道緩沖區(qū)的末尾, 每次都是從緩沖區(qū)的頭部讀出數(shù)據(jù)。 ? 需要雙方通信時,需要建立起兩個管道; ? 只能用于父子進程或者兄弟進程之間(具有親緣關(guān)系的進程); Embedded Operating Systems 4 在 shell中使用管道的例子 ? 命令:“ ls | more” 使用 pipeline “|”將兩個命令” ls”和“ more”連接起來,使得 ls的輸出成為 more的輸入 ? 也可以使用如下的兩個命令 ? 命令 1:“ ls tmp” ? 命令 2:” more tmp” 命令 1把 ls的輸出重定向到 tmp文件中; 命令 2把 more的輸入重定向到 tmp文件 Embedded Operating Systems 5 創(chuàng)建一個管道 ? 管道可看成是被打開的文件,但并沒有真實的 文件與之對應(yīng) ? pipe()系統(tǒng)調(diào)用用來創(chuàng)建一個新的管道 include int pipe(int filedes[2])。 ? 若試圖從寫端讀,或者向讀端寫都將導致錯誤發(fā)生。 Embedded Operating Systems 6 使用管道的典型程序 ? ? 管道只能在具有親緣關(guān)系的進程之間進行通信 ? 通過 fork傳遞管道的描述符 ? 任意的兩個進程不可能共享同一個管道 ? 無法打開已經(jīng)存在的管道 Embedded Operating Systems 7 FIFO ? 管道的一個重大限制是它沒有名字,因此 只能用于具有親緣關(guān)系的進程間通信,在 有名管道( named pipe或 FIFO)提出后, 該限制得到了克服。 ? 可以把消息看作一個記錄,具有特定的格式以及特定的優(yōu)先級。 Embedded Operating Systems 14 ? 消息隊列的創(chuàng)建 ? int msgget(key_t key, int msgflg) ? 根據(jù)給定的鍵值,返回對應(yīng)的消息隊列 ? 若能找到,則返回已有的;否則,創(chuàng)建一個新的 Embedd
點擊復制文檔內(nèi)容
教學課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1