圖1-3 UNIX系統(tǒng)的高層次的體系結(jié)構(gòu)

圖1-4 UNIX系統(tǒng)內(nèi)核結(jié)構(gòu)

圖1-4把系統(tǒng)調(diào)用的集合分成與文件子系統(tǒng)交互作用的部分及與進程控制子系統(tǒng)交互作用的部分。文件子系統(tǒng)管理文件,其中包括分配文件空間、管理空閑空間、控制對文件的存取,以及為用戶檢索數(shù)據(jù)。進程通過一個特定的系統(tǒng)調(diào)用集合,比如通過系統(tǒng)調(diào)用 open,close,read,write,stat,chown及chmod等與文件子系統(tǒng)交互。文件子系統(tǒng)使用一個緩沖機制存取文件數(shù)據(jù),緩沖機制調(diào)節(jié)在核心與二級存儲 xhref="http://storage.it168.com/" mce_href="http://storage.it168.com/" target=_blank>存儲設備之間的數(shù)據(jù)流。緩沖機制同塊I/O設備驅(qū)動程序交互作用,以便啟動往核心去的數(shù)據(jù)傳送及從核心來的數(shù)據(jù)傳送。設備驅(qū)動程序是用來控制外圍設備操作的核心模塊。塊I/O設備是隨機存取存儲設備,或者說,它們的設備驅(qū)動程序使得它們對于系統(tǒng)的其他部分來說好像是隨機存取存儲設備。

例如,一個磁帶驅(qū)動程序可以允許核心把一個磁帶裝置作為一個隨機存取存儲設備看待。文件子系統(tǒng)可以在沒有緩沖機制干預的情況下直接與"原始"I/O設備驅(qū)動程序交互作用。原始設備,有時也被稱為字符設備,包括所有非塊設備。進程控制子系統(tǒng)負責進程同步、進程間通信,存儲管理及進程調(diào)度。當要執(zhí)行一個文件而把該文件裝入存儲器中時,文件子系統(tǒng)與進程控制子系統(tǒng)交互:進程子系統(tǒng)在執(zhí)行可執(zhí)行文件之前,把它們讀到內(nèi)存中。輸入/輸出存儲管理模塊控制存儲分配。

在任何時刻,只要系統(tǒng)沒有足夠的物理存儲供所有進程使用,核心就在內(nèi)存與二級存儲之間對進程進行交換,以便所有的進程都得到公平的執(zhí)行機會。調(diào)度程序模塊把CPU分配給進程。該模塊調(diào)度各進程依次運行,直到它們因等待資源而自愿放棄CPU,或者知道它們最近一次的運行時間超出一個時間量,從而核心搶占它們。于是調(diào)度程序選擇最高優(yōu)先權(quán)的合格進程投入運行;當原來的進程成為最高優(yōu)先權(quán)的合格進程時,還會再次投入運行。進程間通信有幾種形式,從時間的異步軟中斷信號到進程間消息的同步傳輸?shù)取?/p>

分享到

zhaohang

相關(guān)推薦