国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Unix > 正文

《Unix網(wǎng)絡(luò)編程》卷2 讀書筆記 第1章-簡介

2024-06-28 13:24:23
字體:
供稿:網(wǎng)友
《Unix網(wǎng)絡(luò)編程》卷2 讀書筆記 第1章-簡介1. 概述2. 進(jìn)程、線程與信息共享

Unix進(jìn)程間的信息共享有多種方式:注意下圖中內(nèi)核的位置

  • 左邊的兩個進(jìn)程共享存留于文件系統(tǒng)中某個文件上的某些信息。為訪問這些信息,每個進(jìn)程都得穿越內(nèi)核。
  • 中間的兩個進(jìn)程共享存留于內(nèi)核中的某些信息。管道、System V消息隊列和System V信號量都是這種共享類型。
  • 右邊的兩個進(jìn)程有一個雙方都能訪問的共享內(nèi)存區(qū)。每個進(jìn)程一旦設(shè)置好該共享內(nèi)存區(qū),就能根本不涉及內(nèi)核而訪問其中的數(shù)據(jù)。
  • 注意:以上的ipC技術(shù)可以作用于任意數(shù)目的進(jìn)程
線程
  • 多個進(jìn)程間的IPC、單個進(jìn)程中多個線程的IPC
  • 從IPC角度來看,一個給定進(jìn)程內(nèi)的所有線程共享共享的全局變量(也就是說共享內(nèi)存區(qū)的概念對這種模型來說是內(nèi)置的)。
  • 然而我們必須關(guān)注的是各個線程間對全局?jǐn)?shù)據(jù)的同步訪問。
  • 同步盡管不是一種明確的IPC形式,但它確實伴隨許多形式的IPC使用,以控制對某些共享數(shù)據(jù)的訪問。
3. IPC對象的持續(xù)性
  • 下圖展示了三種類型的持續(xù)性:決定了IPC對象存在時間的長短
  • 1、隨進(jìn)程持續(xù)的IPC對象一直存在到打開該對象的最后一個進(jìn)程關(guān)閉該對象為止。如管道、FIFO
  • 2、隨內(nèi)核持續(xù)的IPC對象一直存在到內(nèi)核重新自舉或顯式刪除該對象為止。如System V的消息隊列、信號量和共享內(nèi)存區(qū)。Posix的消息隊列、信號量和共享內(nèi)存區(qū)則必須至少是隨內(nèi)核持續(xù)的,但也可以是隨文件系統(tǒng)持續(xù)的,取決于實現(xiàn)。
  • 3、隨文件系統(tǒng)持續(xù)的IPC對象一直存在到顯式刪除該對象為止。即使內(nèi)核重新自舉了,該對象還是保持其值。Posix消息隊列、信號量和共享內(nèi)存區(qū)如果是使用映射文件實現(xiàn)的,那么它們就是隨文件系統(tǒng)持續(xù)的。

    多數(shù)形式的IPC并沒有在系統(tǒng)重新自舉后繼續(xù)存在的打算,因為進(jìn)程不可能跨越重新自舉繼續(xù)存活。另外,要求它具備隨文件系統(tǒng)的持續(xù)性可能會降低其性能,而IPC的一個基本設(shè)計目標(biāo)就是高性能。

4. 名字空間
  • 當(dāng)兩個或多個無親緣關(guān)系的進(jìn)程使用某種類型的IPC對象來彼此交換信息時,該IPC對象必須有一個某種形式的名字或標(biāo)識符。這樣,其中一個進(jìn)程(往往是服務(wù)器)可以創(chuàng)建該IPC對象,其他進(jìn)程則可以指定同一個IPC對象。
  • 管道沒有名字(故不能用于無親緣關(guān)系的進(jìn)程間)。
  • FIFO有一個在文件系統(tǒng)中的Unix路徑名作為其標(biāo)識符(故可用于無親緣關(guān)系的進(jìn)程間)。
  • 對于一種給定的IPC類型,其可能的名字的集合稱為它的名字空間。名字空間非常重要,對于除普通管道以外的所有形式的IPC來說,名字是客戶與服務(wù)器彼此連接以交換消息的手段。

  • 下圖匯總了不同形式的IPC所用的命名約定

5. fork、exec、exit對IPC對象的影響

  • 1、考慮到無名同步變量(互斥鎖、條件變量、讀寫鎖、Posix基于內(nèi)存的信號量),從一個具有多個線程的進(jìn)程中調(diào)用fork將變得混亂不堪。
  • 2、System V IPC的三種形式?jīng)]有打開或關(guān)閉的說法。訪問這三種形式的IPC對象只需要知道其標(biāo)識符,因此知道該標(biāo)識符的任何進(jìn)程都能訪問它們。
6. 書中IPC例子索引表
  • 文件服務(wù)器:客服-服務(wù)器應(yīng)用程序,客戶向服務(wù)器發(fā)送一個路徑名,服務(wù)器把該文件的內(nèi)容返回給客戶

  • 生產(chǎn)者-消費者:一個或多個線程或進(jìn)程(生產(chǎn)者)把數(shù)據(jù)放到一個共享緩沖區(qū)中,另有一個或多個線程或進(jìn)程(消費者)對該共享緩沖區(qū)中的數(shù)據(jù)進(jìn)行操作。

  • 序列號持續(xù)增1:一個或多個線程或進(jìn)程給一個共享的序列號持續(xù)增1。該序列號有時在一個共享文件中,有時在共享內(nèi)存中。
7. 小結(jié)
  • 4個主要領(lǐng)域:
    1. 消息傳遞:管道、FIFO、消息隊列
    2. 同步:互斥鎖、條件變量、讀寫鎖、信號量
    3. 共享內(nèi)存區(qū):匿名共享內(nèi)存區(qū)、有名共享內(nèi)存區(qū)
    4. 過程調(diào)用:Solaris門、Sun RPC

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 定远县| 钟祥市| 辽中县| 东莞市| 祁门县| 建湖县| 许昌县| 南昌县| 法库县| 自贡市| 承德市| 伊宁县| 忻城县| 尚义县| 北宁市| 伊川县| 水城县| 乌苏市| 石屏县| 镇坪县| 盐池县| 汨罗市| 龙南县| 锡林浩特市| 宁都县| 台州市| 花垣县| 瓦房店市| 宜丰县| 都匀市| 桐庐县| 万宁市| 遵义市| 镇坪县| 合肥市| 上饶市| 台北县| 洛川县| 锦屏县| 晋城| 什邡市|