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

正文內(nèi)容

操作系統(tǒng)課程設(shè)計(jì)indoec流程及代碼分析-wenkub

2022-11-14 00:43:10 本頁面
 

【正文】 懂整個(gè) 程序。 第 3 頁 iput()函數(shù)的功能與 iget()函數(shù)正好相反,主要把 i 節(jié)點(diǎn)引用計(jì)數(shù)值遞減1,要是在某一時(shí)刻進(jìn)程不需要持續(xù)使用一個(gè) i 節(jié)點(diǎn)時(shí)就應(yīng)該調(diào)用 iput()函數(shù)來使 i 節(jié)點(diǎn)引用值減 1,好讓內(nèi)核執(zhí)行其他一些處理。 2. 2主要目標(biāo) 主要分析 程序中的處理 i 節(jié)點(diǎn)的主要處理函數(shù),包括 iget()、iput()、 bmap(),以及其他一些輔助函數(shù)。//內(nèi)核專用的打印信息函數(shù),功能與 printf()相同 printk()。//可中斷的等待睡眠 extern void wake_up(struct tast_struct**p)。//關(guān)中斷 3. 4 頭文件 extern struct m_inode inode_table[NR_INODE]。//等待指定的 i 節(jié)點(diǎn)。//緩沖塊頭數(shù)據(jù) 結(jié)構(gòu) ,在程序中常用 bh 來表示 buffer_head 類型的縮寫(極為重要) (結(jié)構(gòu) 見 圖 1) 第 5 頁 b _ d a t ab _ b l o c k n rb _ l o c kb _ d e vb _ d i r tb _ c o u n t指 向 該 緩 沖 塊 中 數(shù) 據(jù) 區(qū) 的 指 針塊 號(hào)使 用 該 塊 的 用 戶 數(shù)已 修 改 ( 臟 ) 標(biāo) 志緩 沖 區(qū) 是 否 被 鎖 定數(shù) 據(jù) 源 設(shè) 備 號(hào)?其 它 省 略 圖 1 struct buffer_head 結(jié)構(gòu)體 4. 2 struct d_inode{… }。//內(nèi)存中磁盤超級(jí)塊結(jié)構(gòu) (結(jié)構(gòu)見圖 3) s _ t i m es _ r d _ o n l ys _ l o c ks _ d e vs _ d i r ts _ i m o u n t修 改 時(shí) 間只 讀 標(biāo) 志被 安 裝 到 的 i 節(jié) 點(diǎn)已 修 改 ( 臟 ) 標(biāo) 志被 鎖 定 標(biāo) 志超 級(jí) 塊 所 在 的 設(shè) 備 號(hào)?其 它 省 略 圖 3 struct super_block 結(jié)構(gòu)體 4. 5 struct d_super_block{… }。為了確定 I 節(jié)點(diǎn)所在的設(shè)備邏輯塊號(hào)(或緩沖塊),必須首先讀取相應(yīng) 設(shè)備上的超級(jí)塊,以獲取用于計(jì)算邏輯塊號(hào)的每塊 I 節(jié)點(diǎn)數(shù)信息 I 節(jié)點(diǎn)所在的邏輯塊號(hào)后,就把該邏輯塊讀入一緩沖塊中。 該函數(shù)把參數(shù)指定的 i節(jié)點(diǎn)寫入緩沖區(qū)相應(yīng)的緩沖塊中,待緩沖區(qū)刷新時(shí)會(huì)寫入盤中。該函數(shù)提供了進(jìn) 程與中斷處理程序之間的同步機(jī)制。但是指針‘ *p’指向的目標(biāo)(這里是任務(wù)結(jié)構(gòu))會(huì)改變,因此為了能修改調(diào)用該函數(shù)程序中原來就是指針變量的值,就需要傳遞指針‘ *p’的指針,即‘ **P’。inodei_wait) 結(jié)束 第 9 頁 5. 5 lock_inode()函數(shù)分析 5. 5. 1 函數(shù)頭: static inline void lock_inode(struct m_inode*inode)。 5. 5. 3 流程圖: (見圖 7) 圖 7 lock_inode()函數(shù)流程圖 5. 6 unlock_inode()函數(shù)分析 5. 6. 1 函 數(shù)頭: static inline void unlock_inode(struct m_inode*inode)。inodei_wait) 結(jié)束 開中斷 sti() Inodei_lock=1 第 10 頁 5. 7 invalidate_inodes()函數(shù)分析 5. 7. 1 函數(shù)頭: void invalidate_inodes(int dev)。 5. 8. 3 流程圖: (見圖 9) 圖 9 sync_inodes(void)函數(shù)流程圖 5. 9 _bmap()函數(shù)分析 5. 9. 1 函數(shù)頭: static int _bmap(struct m_inode*inode,int block,int create)。 5. 9. 3 流程圖 (由圖 11 和 12 構(gòu)成) 5. 9. 3. 1 主流程如下: (見圖 10) 圖 10 _bmap()函數(shù) 主流程圖 5. 9. 3. 2 對(duì)一次間接塊進(jìn)行處理的過程: (見圖 11) 判斷塊號(hào)的有效性 小于 0 或超出范圍? N Y 停機(jī) 小于 7? 創(chuàng)建標(biāo)志位且區(qū)段為 0? Y Y 用直接塊表示 改變時(shí)間;置已修改標(biāo)志 N 小于 512? N Y 對(duì)一次間接塊進(jìn)行處理 N 對(duì)二次間接塊進(jìn)行處理 第 13 頁 圖 11 _bmap()函數(shù) 中 對(duì)一次間接塊進(jìn)行處理的流程圖 5. 9. 3. 3 對(duì)二次間接塊進(jìn)行處理的過程: ( 見圖 12) 對(duì)一次間接塊進(jìn)行處理 創(chuàng)建且 i_zone[7]為 0? Y N 申請(qǐng)一磁盤塊用于存放間接信息塊 Inodei_dirt=1。inodei_ctime=CURRENT_TIME i_zone[8]為 0? Y 創(chuàng)建時(shí)申請(qǐng)失敗返回 0 退出 讀取設(shè)備上該 i 節(jié)點(diǎn)的一次間接塊 N 讀到否? Y 取該間接塊的第 block 項(xiàng)中盤塊號(hào) i 創(chuàng)建且 i 為 0? 修改標(biāo)志 bhb_dirt=1 Y 申請(qǐng)一磁盤塊,并等于該新盤塊號(hào) brelse(bh)。 5. 10. 3 調(diào)用結(jié)構(gòu)圖: (見圖 13) 圖 13 bmap()函數(shù) 調(diào)用結(jié)構(gòu)圖 5. 11 iput()函數(shù)分析 5. 11. 1 函數(shù)頭: void iput(struct m_inode*inode)。并且若 i 節(jié)點(diǎn)的鏈接計(jì)數(shù)為 0,則釋
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1