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