在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統 > 設計應用 > linux操作系統下的進程通信設計

            linux操作系統下的進程通信設計

            作者: 時間:2010-11-27 來源:網絡 收藏


            4. 信號量


            信號量又稱為信號燈,它是用來協調不同間的數據對象的,而最主要的應用是前一節(jié)的共享內存方式的。本質上,信號量是一個計數器,它用來記錄對某個資源(如共享內存)的存取狀況。一般說來,為了獲得共享資源,需要執(zhí)行下列操作:

            (1) 測試控制該資源的信號量。

            (2) 若此信號量的值為正,則允許進行使用該資源。進程將進號量減1。

            (3) 若此信號量為0,則該資源目前不可用,進程進入睡眠狀態(tài),直至信號量值大于0,進程被喚醒,轉入步驟(1)。

            (4) 當進程不再使用一個信號量控制的資源時,信號量值加1。如果此時有進程正在睡眠等待此信號量,則喚醒此進程。

            維護信號量狀態(tài)的是Linux內核而不是用戶進程。我們可以從頭文件/usr/src//include//sem.h中看到內核用來維護信號量狀態(tài)的各個結構的定義。信號量是一個數據集合,用戶可以單獨使用這一集合的每個元素。要調用的第一個函數是semget,用以獲得一個信號量ID。

            #include sys/types.h>

            #include sys/ipc.h>

            #include sys/sem.h>

            int semget(key_t key, int nsems, int flag);

            key是前面講過的IPC結構的關鍵字,它將來決定是創(chuàng)建新的信號量集合,還是引用一個現有的信號量集合。nsems是該集合中的信號量數。如果是創(chuàng)建新集合(一般在服務器中),則必須指定nsems;如果是引用一個現有的信號量集合(一般在客戶機中)則將nsems指定為0。

            semctl函數用來對信號量進行操作。

            int semctl(int semid, int semnum, int cmd, union semun arg);

            不同的操作是通過cmd參數來實現的,在頭文件sem.h中定義了7種不同的操作,實際編程時可以參照使用。

            semop函數自動執(zhí)行信號量集合上的操作數組。

            int semop(int semid, struct sembuf semoparray[], size_t nops);

            semoparray是一個指針,它指向一個信號量操作數組。nops規(guī)定該數組中操作的數量。

            下面,我們看一個具體的例子,它創(chuàng)建一個特定的IPC結構的關鍵字和一個信號量,建立此信號量的索引,修改索引指向的信號量的值,最后我們清除信號量。

            5.套接口

            套接口(socket)編程是實現Linux系統和其他大多數中進程間的主要方式之一。我們熟知的WWW服務、FTP服務、TELNET服務等都是基于套接口編程來實現的。除了在異地的計算機進程間以外,套接口同樣適用于本地同一臺計算機內部的進程間。

            本文引用地址:http://www.biyoush.com/article/151304.htm
            linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

            上一頁 1 2 下一頁

            評論


            相關推薦

            技術專區(qū)

            關閉