tyle="margin:20px 0px 0px; font-size:14px; line-height:26px; font-family:Arial; color:rgb(51,51,51)">
資料段及所擁有的系統資源,如已打開的檔案、I/O裝置等。
4) 系統開銷
建立和撤銷時,程序開銷比線程高。同步通信線程比程序容易。
進階通信可歸結為三類:共享存儲器系統、消息傳遞系統、管道通信系統。
管道可用于具有親緣關系程序間的通信,有名管道克服了管道沒有名字的限制,是以,除具有管道所具有的功能外,它還允許無親緣關系程序間的通信;
信号是比較複雜的通信方式,用于通知接受程序有某種事件發生,除了用于程序間通信外,程序還可以發送信号給程序本身;linux除了支援Unix早期信号語義函數sigal外,還支援語義符合Posix.1标準的信号函數sigaction(實際上,該函數是基于BSD的,BSD為了實作可靠信号機制,又能夠統一對外接口,用sigaction函數重新實作了signal函數);
消息隊列是消息的連結表,包括Posix消息隊列system V消息隊列。有足夠權限的程序可以向隊列中添加消息,被賦予讀權限的程序則可以讀走隊列中的消息。消息隊列克服了信号承載資訊量少,管道隻能承載無格式位元組流以及緩沖區大小受限等缺點。
使得多個程序可以通路同一塊記憶體空間,是最快的可用IPC形式。是針對其他通信機制運作效率較低而設計的。往往與其它通信機制,如信号量結合使用,來達到程序間的同步及互斥。
主要作為程序間以及同一程序不同線程之間的同步手段。
更為一般的程序間通信機制,可用于不同機器之間的程序間通信。起初是由Unix系統的BSD分支開發出來的,但現在一般可以移植到其它類Unix系統上:Linux和SystemV的變種都支援套接字。
(1) 先來先服務排程算法(FCFS)
(2) 短作業(程序)優先排程算法(SJ(P)F)
a) 不利于長作業
b) 未考慮作業的緊迫程度
c) 由于作業(程序)的長度隻是根據使用者估計,不一定能真正做到短作業優先排程
優先權排程算法的類型
(1) 非搶占式優先權算法
(2) 搶占式優先權排程算法
優先權類型
1) 靜态優先權
在建立程序時确定,且在程序的整個運作期間保持不表。
确定程序優先權的依據有如下三個方面:
(1) 程序類型
(2) 程序對資源的要求
(3) 使用者要求
2)動态優先權
在建立程序時所賦予的優先權,是可以随着程序的推進或随其等待時間的增加而改變的,以便獲得更好的排程性能。
優先權 = (等待時間+要求服務時間)/要求服務時間
作業随着等待時間變長使響應比增加,但每次排程之前,都需要先做響應比的計算,會增加系統開銷。
時間片大小的确定,太短有利于短作業,但是頻繁的發生中斷,程序上下文的切換,增加系統的開銷;太長算法退化成FCFS算法。
不事先知道各個程序所需的執行時間,而且還可以滿足各種類型程序的需要,被公認程序排程算法較好。
(1) 設定多個就緒隊列,并為各個隊列賦予不同的優先級。
(2) 當一個新程序進入記憶體後,首先放在第一個隊列末尾,按FCFS原則排隊等待排程,如果排程後還沒完成,将其放到第二個就緒隊列末尾。
(3) 僅當第一個隊列空閑時,排程程式才開始排程第二隊列中的程序運作。
多級回報隊列排程算法的性能
(1) 終端型作業使用者
(2) 短批處理作業使用者
(3) 長批處理作業使用者
要對檔案進行讀寫,系統首先開辟一塊記憶體區來儲存檔案資訊,儲存這些資訊用的是一個結構體,将這個結構體typedef為FILE類型。我們首先要定義一個指向這個結構體的指針,當程式打開一個檔案時,我們獲得指向FILE結構的指針,通過這個指針,我們就可以對檔案進行操作。
size_tfread(void *buffer,size_t size,size_t count,FILE *stream);
功 能:從一個檔案流中讀資料,讀取count個元素,每個元素size位元組.如果調用成功傳回count。如不成功,傳回實際讀取的元素個數,小于count.
參 數:buffer用于接收資料的記憶體位址,大小至少是size*count位元組.
size單個元素的大小,機關是位元組
count元素的個數,每個元素是size位元組.
stream輸入流
傳回值:實際讀取的元素個數.如果傳回值與count不相同,則可能檔案結尾或發生錯誤.
從ferror和feof擷取錯誤資訊或檢測是否到達檔案結尾.
中繼資料(Metadata)是描述其它資料的資料(data about other data),或者說是用于提供某種資源的有關資訊的結構資料(structured data)。中繼資料是描述資訊資源或資料等對象的資料,其使用目的在于:識别資源;評價資源;追蹤資源在使用過程中的變化;實作簡單高效地管理大量網絡化資料;實作資訊資源的有效發現、查找、一體化組織和對使用資源的有效管理。
在檔案系統中,中繼資料的加鎖機制是保證中繼資料事務操作正确進行的重要機制。
譯成中文就是索引節點,它用來存放檔案及目錄的基本資訊,包含時間、檔名、使用者及群組等。
在ext2檔案系統中,檔案由inode(包含有檔案的所有資訊)進行唯一辨別。一個檔案可能對應多個檔案名,隻有在所有檔案名都被删除後,該檔案才會被删除。此外,同一檔案在磁盤中存放和被打開時所對應的inode是不同的,并由核心負責同步。
inode表包含一份清單,其中列出了對應檔案系統的所有 inode 編号。當使用者搜尋或者通路一個檔案時,UNIX 系統通過 inode 表查找正确的 inode 編号。在找到 inode 編号之後,相關的指令才可以通路該 inode ,并對其進行适當的更改。
ext2是linux系統中高效、可靠的檔案系統,可用在硬碟或可移動存儲媒體上。它是ext的擴充,被認為是基于速度和CPU使用的最高效的檔案系統。
ext3是ext2的擴充,它在ext2的基礎上增加了日志功能,或者說它是ext2的日志檔案系統版本。