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

正文內(nèi)容

unixlinux操作系統(tǒng)內(nèi)核結(jié)構(gòu)(完整版)

2025-06-27 19:42上一頁面

下一頁面
  

【正文】 Release 4 (SVR4) 主要分支和兼容版本 ?BSD 加州大學(xué)伯克利分校 ?XENIX/OpenServer Microsoft、 SCO公司 ?HPUX HP公司 ?AIX IBM ?Solaris SUN公司 ?IRIX SGI公司 ?Ultrix DEC公司 ?Linux 開放源代碼 基本功能特征 ① 交互式分時(shí)多用戶 ? 人機(jī)間實(shí)時(shí)交互數(shù)據(jù) ? 多個(gè)用戶可同時(shí)使用一臺機(jī)器 ? 每個(gè)用戶可同時(shí)執(zhí)行多個(gè)任務(wù) ② 軟件復(fù)用 ? 每個(gè)程序模塊完成單一的功能 ? 程序模塊可按需任意組合 ? 較高的系統(tǒng)和應(yīng)用開發(fā)效率 ③ 可移植性強(qiáng) ? 數(shù)千行匯編碼 , 數(shù)十萬行 C語言代碼 ④ 配置靈活 , 適應(yīng)性強(qiáng) ? 小內(nèi)核 , 參數(shù)靈活可調(diào) ? 核外應(yīng)用系統(tǒng) , 任意裁減 ? 限制規(guī)則很少 ⑤ 界面方便高效 ? 內(nèi)部 : 系統(tǒng)調(diào)用豐富高效 ? 外部 : shell命令靈活方便可編程 ? 應(yīng)用 : GUI 清晰直觀功能強(qiáng)大 ⑥ 安全機(jī)制完善 ? 口令、權(quán)限、加密等措施完善 ? 抗病毒結(jié)構(gòu) ? 誤操作的局限和自動恢復(fù)功能 ⑦ 多國語言支持 ? 支持全世界現(xiàn)有的幾十種主要語言 ⑧ 網(wǎng)絡(luò)和資源共享 ? 內(nèi)部 : 多進(jìn)程結(jié)構(gòu)易于資源共享 ? 外部 : 支持多種網(wǎng)絡(luò)協(xié)議 說明: 其它操作系統(tǒng)可能包含部分上述 UNIX的特征,但非全部(如 NT就有部分多用戶系統(tǒng)特征) 這些特征有些是核心直接實(shí)現(xiàn)的,有些是由核心提供實(shí)現(xiàn)這種特征的方便性和可能性,而由使用者來實(shí)現(xiàn)的。 if(argc != 3) { printf(“ need 2 arguments for copy program\n” )。 } copy(fdold, fdnew)。 數(shù)據(jù)段、正文段、工作變量的段大小 pwd) run_log 后臺命令 ls –lR /home/teacher tlist amp。(中斷服務(wù)是由核心中特殊的函數(shù),而不是特殊的進(jìn)程來執(zhí)行的 ) ? 例外(不保存上下文) : 來自 進(jìn)程內(nèi)部 的 非期望 事件(地址越界,除數(shù)為 0等),發(fā)生在一條指令執(zhí)行過程中,例外事件處理完后重新執(zhí)行該指令。 一個(gè)文件可有多個(gè)名字,多個(gè)名字都對應(yīng)同一個(gè)文件 i節(jié)點(diǎn),每個(gè)名字就是該文件節(jié)點(diǎn)的一個(gè)鏈結(jié); . 一個(gè)普通文件的名字個(gè)數(shù),就是該文件的鏈結(jié)數(shù); ? abc和 xyz具有不同的 inode號 , xyz的內(nèi)容是它所指向的名字的字符串,大小是字符串長度為 3字節(jié)。 此外 file表中還存放被打開文件的 動態(tài)信息 :如文件狀態(tài)、引用計(jì)數(shù)( 當(dāng)前使用該文件的進(jìn)程數(shù) )等。 進(jìn)程 相關(guān)概念: 映像 —— 程序以及與 動態(tài)執(zhí)行 該程序有關(guān)的 各種信息的集合(類似于歷史檔案 )。 正文段、數(shù)據(jù)標(biāo)識段、其它信息段的大小 … } readfile (char buffer[ ], int line) { char *pointer。 ③睡眠狀態(tài) 進(jìn)程不具備運(yùn)行條件,需等待某種事件的發(fā)生,無法繼續(xù)執(zhí)行下去。 緩沖區(qū)是緩沖區(qū)池中數(shù)據(jù)存儲的基本單位。 ② 釋放一個(gè)空閑緩沖區(qū) 把這個(gè)裝有數(shù)據(jù)的空閑緩沖區(qū)附加到空閑鏈表的鏈尾。 緩沖區(qū)設(shè)置 當(dāng)核心需有一個(gè)空閑緩沖區(qū)時(shí),它根據(jù)要裝入的數(shù)據(jù)類型,從相應(yīng)的空閑緩沖區(qū)鏈表的表頭位置取下一個(gè)空閑緩沖區(qū),裝入一個(gè)磁盤數(shù)據(jù)塊; 根據(jù)該數(shù)據(jù)塊所對應(yīng)的 設(shè)備號和塊號數(shù)據(jù)對 計(jì)算其 hashno(散列、雜湊)值,根據(jù)其 hashno 的值放入到相應(yīng) hash 鏈表的鏈頭。 在空閑緩沖區(qū)鏈表中的緩沖區(qū)一定在某個(gè) hash鏈表中;在hash鏈表中的緩沖區(qū)不一定在空閑鏈中。 算法 breada 輸入 :( 1)立即讀的文件系統(tǒng)塊號 ( 2)異步讀的文件系統(tǒng)塊號 輸出:含有立即讀的數(shù)據(jù)的緩沖區(qū) { if(第一塊不在高速緩沖中) { 為第一塊獲得緩沖區(qū)( getblk); if(緩沖區(qū)內(nèi)容無效) 啟動磁盤讀; } if(第二塊不在高速緩沖中) { 為第二塊獲得緩沖區(qū)( getblk); if(緩沖區(qū)數(shù)據(jù)有效) 釋放緩沖區(qū)( brelse); else 啟動磁盤讀; } if(第一塊本來就在高速緩沖中) { 讀第一塊( bread); return(緩沖區(qū)); } sleep(第一個(gè)緩沖區(qū)包含有效數(shù)據(jù)的事件); return(緩沖區(qū)); } 寫磁盤塊 bwrite 啟動磁盤驅(qū)動程序的寫操作 如果是“同步寫”,則本進(jìn)程睡眠等待磁盤寫操作的完成,磁盤寫操作完成后,中斷喚醒本進(jìn)程,本進(jìn)程釋放該緩沖區(qū)并返回; 如果是“異步寫”,則無需等待磁盤寫操作的完成,將緩沖區(qū)放到空閑鏈表的表頭,以便隨后某個(gè)進(jìn)程申請空閑緩沖區(qū)時(shí),將其寫到磁盤上去。 網(wǎng) 絡(luò) 虛擬文件系統(tǒng) VFS 網(wǎng)絡(luò)文件 系統(tǒng) NFS 本地文件 系統(tǒng) UFS 物理存 儲介質(zhì) 虛擬文件系統(tǒng) VFS 網(wǎng)絡(luò)文件 系統(tǒng) NFS 本地文件 系統(tǒng) UFS 物理存 儲介質(zhì) 用戶 用戶 A機(jī)器 B機(jī)器 基于虛擬文件系統(tǒng)的體系結(jié)構(gòu) 文件系統(tǒng)結(jié)構(gòu) 本地文件系統(tǒng) 1.文件的存貯結(jié)構(gòu) UNIX的普通文件的邏輯結(jié)構(gòu)是無格式的有序字節(jié)流,而它們的物理存貯結(jié)構(gòu)是以索引方式來組織的。根據(jù)要讀寫的數(shù)據(jù)在文件中的位置可計(jì)算出該數(shù)據(jù)所在的邏輯塊號,查索引表就可找到邏輯塊所在的文件系統(tǒng)塊號。 NULL 鏈 表 尾 活動 i節(jié)點(diǎn) hash鏈表 當(dāng)某個(gè)文件(即某個(gè)磁盤 i節(jié)點(diǎn))被打開時(shí),根據(jù)該 i節(jié)點(diǎn)所對應(yīng)的設(shè)備號和 i節(jié)點(diǎn)號計(jì)算其 hash值: hn=(devno+inumber)%64 可得到 0~63共 64個(gè) hash值。第二級(即柱面組塊)又是由超級塊拷貝塊、柱面組信息塊, i節(jié)點(diǎn)表塊和數(shù)據(jù)區(qū)所組成。 系統(tǒng)只需要維護(hù)一張較小的表(位示圖)就可以快速地檢測指定資源的忙閑狀態(tài),或快速查找可用的空閑資源。 153 。 / /home /bin /home/log /home/student /home/student/xiaolan /home/student/xiaolan/src /每個(gè)目錄項(xiàng)由數(shù)據(jù)結(jié)構(gòu) direct來定義: define MAXNAMLEN 14 struct direct { short d_ino。 /* 目錄項(xiàng)入口長度(占用長度) */ short d_namelen; /* 目錄項(xiàng)名字長度 */ char d_name [MAXNAMLEN+1] /* 名字字符串, +1為串結(jié)束符 \0 */ } 由于目錄中各目錄項(xiàng)的長度是變化的,因此必須在目錄項(xiàng)中標(biāo)明本目錄項(xiàng)的長度。共建立 8個(gè) hash鏈,每個(gè) hash鏈?zhǔn)且粋€(gè)以鏈表頭開始的雙向循環(huán)鏈表, 每個(gè) ncache任何時(shí)候都同時(shí)既在 hash鏈上,又在 LRU鏈上 。 在增加新目錄時(shí),先查看目錄中各目錄項(xiàng)是否占用多余空間,如有,則進(jìn)行壓縮,把釋放的空間分配給新目錄項(xiàng)。 /*目錄項(xiàng)名字字符串 */ } 每個(gè)目錄項(xiàng)的長度通常是確定的,為 16個(gè)字節(jié),其中前兩個(gè)字節(jié)存放文件的 i節(jié)點(diǎn)號 d_ino,后面 14個(gè)字節(jié)存放文件名d_name。 290 log 376 student 376 。 6.目錄和目錄項(xiàng) 在 UNIX文件系統(tǒng)中,目錄的組織形式采用的是樹形結(jié)構(gòu),一個(gè)邏輯文件系統(tǒng)就是一棵目錄樹。 目前大多數(shù)在大存儲環(huán)境下運(yùn)行的 UNIX版本都采用這種存貯結(jié)構(gòu),其優(yōu)點(diǎn)是能快速定位數(shù)據(jù)塊。內(nèi)存活動 i節(jié)點(diǎn)表就是由這 64個(gè) hash鏈表組成。最長要存取三次間址索引塊才能找到相應(yīng)數(shù)據(jù)的文件系統(tǒng)塊號(要取出數(shù)據(jù)則要讀 4次磁盤)。 i節(jié)點(diǎn)通常以靜態(tài)的形式存放在磁盤的 i節(jié)點(diǎn)表中。 事實(shí)上無論是同步寫還是異步寫,其根本區(qū)別在于本進(jìn)程是否等待磁盤驅(qū)動程序完成操作后所發(fā)出的中斷信號。 緩沖池中的緩沖區(qū) 個(gè)數(shù) 是固定不變的,每個(gè)緩沖區(qū)在不同時(shí)刻存放著不同的磁盤數(shù)據(jù)塊,具有不同的 hash值,因此處在不同的 hash鏈表中。 RND: 隨機(jī)數(shù),其值為: RND=MAXBSIZE / DEV_BSIZE MAXBSIZE: 最大文件系統(tǒng)塊的大小 DEV_BSIZE: 物理設(shè)備塊大小 hashno 的取值范圍: 0 ~ 62 緩沖池的結(jié)構(gòu) 具有相同 hashno 的緩沖區(qū)鏈接在同一個(gè) hash鏈表中,因此系統(tǒng)中共有 63 個(gè) hash 鏈表,分別鏈接 hashno 為 0 ~ 62 的緩沖區(qū)。 ③ 取用裝有指定內(nèi)容的空閑緩沖區(qū) 從鏈表頭開始查找,找到后取下使用,用完后放到鏈尾。 緩沖池設(shè)計(jì)基本原則: ① 存放有剛使用過的數(shù)據(jù)盡量長時(shí)間地保留在內(nèi)存中,以便馬上還要使用時(shí)能在內(nèi)存中找到; ② 需要騰出內(nèi)存空間時(shí),把很久都未使用過(即最近最少使用)的數(shù)據(jù)交換到磁盤上去。 ② 每個(gè)進(jìn)程都有一個(gè)“每進(jìn)程數(shù)據(jù)區(qū)( per process data areappda)”保留相應(yīng)進(jìn)程更多的信息和核心棧; ③ 處理機(jī)的全部工作就是在某個(gè)時(shí)候執(zhí)行某個(gè)進(jìn)程 ④ 一個(gè)進(jìn)程可生成或消滅另一進(jìn)程 ⑤ 一個(gè)進(jìn)程中可申請并占有資源 ⑥ 一個(gè)進(jìn)程只沿著一個(gè)特定的指令序列運(yùn)行,不會跳轉(zhuǎn)到另一個(gè)進(jìn)程的指令序列中去,也不能訪問別的進(jìn)程的數(shù)據(jù)和堆棧。 … } 空 棧 棧頂指針 棧底指針 低地址 高地址 用戶棧 進(jìn)入主程序時(shí)的堆棧狀況 棧頂指針 棧底指針 低地址 高地址 調(diào)用 main()時(shí) argc, argv 本程序返回地址 棧底指針暫存處 buf, number 棧頂指針 棧底指針 低地址 高地址 調(diào)用 readfile時(shí) argc, argv 本程序返回地址 棧底指針暫存處 buf, number buffer, line readfile的返回地址 棧底指針暫存處 pointer, temp 3. 進(jìn)程的標(biāo)識 進(jìn)程由其進(jìn)程標(biāo)識號 PID來識別。 進(jìn)程在核心態(tài)下運(yùn)行時(shí)的工作區(qū)為核心棧,在用戶態(tài)下運(yùn)行時(shí)的工作區(qū)為用戶棧。 進(jìn)程 —— 對映像的執(zhí)行 。 另一方面,要使不同進(jìn)程的打開文件指針(文件描述符)或同一進(jìn)程的不同打開文件指針能夠 共享一個(gè)打開文件指針 (協(xié)同操作),就不能把讀寫指針放進(jìn)某一個(gè)進(jìn)程的用戶打開文件表中。 4.活動 i節(jié)點(diǎn)表(索引節(jié)點(diǎn)表) —— inode表 在內(nèi)存中存放當(dāng)前要使用的文件 inode的表(或稱為活動 i節(jié)點(diǎn)表),表中的每一個(gè)表項(xiàng)對應(yīng) 一個(gè)當(dāng)前正被使用的文件的狀態(tài)信息 。 刪除一個(gè)鏈接名時(shí),文件鏈接數(shù)減一。 中斷事件 中斷級別 硬件故障 高 低 時(shí)鐘 硬盤 網(wǎng)絡(luò) 終端 軟件中斷 存儲管理 UNIX系統(tǒng)中的存儲管理原則 (或特點(diǎn) ): 1.當(dāng)前正在執(zhí)行的進(jìn)程(全部或部分)駐留在主存中; 2.核心是永遠(yuǎn)駐留在主存中的(是永遠(yuǎn)活動的?。? 3.編譯程序產(chǎn)生的指令地址是虛地址(邏輯地址);
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1