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

正文內(nèi)容

操作系統(tǒng)第九章文件和設(shè)備管理示例-資料下載頁

2025-01-21 06:37本頁面
  

【正文】 統(tǒng)的工作效率 。 50 ? 出自于這些考慮 , UNIX一方面仍然是讓被釋放緩沖區(qū)所對應(yīng)的緩沖區(qū)控制塊鏈入到空閑緩沖區(qū)隊(duì)列之尾 , 以便能夠它用 。 另一方面又設(shè)置了一個(gè)新的隊(duì)列:設(shè)備緩沖區(qū)隊(duì)列 , 即把為某個(gè)設(shè)備服務(wù)的緩沖區(qū)所對應(yīng)的緩沖區(qū)控制塊全都匯集在一起 , 形成了這個(gè)設(shè)備的設(shè)備緩沖區(qū)隊(duì)列 。 一個(gè)設(shè)備的設(shè)備緩沖區(qū)隊(duì)列由緩沖區(qū)控制塊中的d_forw和 d_back指針進(jìn)行鏈接 , 前者為前向指針 ,后者為后向指針 。 該隊(duì)列的首 、 尾指針是設(shè)備表中的 d_forw和 d_back。 整個(gè)隊(duì)列如下圖所示 。 51 52 ? 幾點(diǎn)說明: ( 1) 這個(gè)由緩沖區(qū)控制塊構(gòu)成的隊(duì)列是一個(gè)雙向鏈表 , 它們通過各自的前向指針 b_forw和后向指針 b_back鏈接在一起 , 形成隊(duì)列 。 ( 2) 當(dāng)一個(gè)緩沖區(qū)被分配給某個(gè)塊設(shè)備做輸入 /輸出用時(shí) , 它所對應(yīng)的緩沖區(qū)控制塊就從隊(duì)首插入到隊(duì)列里 。 ( 3) 當(dāng)一個(gè)緩沖區(qū)控制塊插入到一個(gè)設(shè)備的設(shè)備緩沖區(qū)隊(duì)列中之后 , 即便該緩沖區(qū)被釋放 , 它也仍然在這個(gè)隊(duì)列中排著 。這就是說 , 在任何時(shí)刻 , UNIX中的任何一個(gè)緩沖區(qū)控制塊 ,總會(huì)在空閑緩沖區(qū)隊(duì)列 、 設(shè)備緩沖區(qū)隊(duì)列以及設(shè)備輸入 /輸出隊(duì)列這三個(gè)隊(duì)列中的兩個(gè)里排隊(duì) , 或是在空閑緩沖區(qū)隊(duì)列 、 設(shè)備緩沖區(qū)隊(duì)列里面排著 , 或是在設(shè)備緩沖區(qū)隊(duì)列 、 設(shè)備輸入 /輸出隊(duì)列里面排著 。 ( 4) 只有當(dāng)一個(gè)緩沖區(qū)的服務(wù)對象改變 ( 比如原來被分配給磁盤 1使用 , 現(xiàn)在被分配給磁盤 2使用了 ) 時(shí) , 該緩沖區(qū)所對應(yīng)的緩沖區(qū)控制塊才會(huì)從一個(gè)設(shè)備緩沖區(qū)隊(duì)列上摘下 , 進(jìn)入到另一個(gè)設(shè)備緩沖區(qū)隊(duì)列中;否則即便緩沖區(qū)被釋放 , 它仍然保持在原來的設(shè)備緩沖區(qū)隊(duì)列中 。 53 ? 3. 輸入 /輸出請求隊(duì)列 ( 塊設(shè)備 av鏈 )) 當(dāng)用戶對塊設(shè)備提出輸入 /輸出請求時(shí) , 首先要申請一個(gè)空閑的緩沖區(qū)控制塊 ( 注意:申請到空閑的緩沖區(qū)控制塊 , 就意味著申請到了存放數(shù)據(jù)的緩沖區(qū) , 因?yàn)樗鼈兪且灰粚?yīng)的 ) , 并把這次輸入 /輸出請求具體要完成的任務(wù)填入到緩沖區(qū)控制塊中 ( 數(shù)據(jù)源的地址 、 目的地址 、 傳輸?shù)膫€(gè)數(shù)等等 ) 。 因此 , UNIX把向主設(shè)備號(hào)相同的設(shè)備提出的 I/O請求所對應(yīng)的緩沖區(qū)控制塊鏈接在一起 , 形成對這個(gè)設(shè)備的輸入 /輸出請求隊(duì)列 。該隊(duì)列的首指針就是這個(gè)設(shè)備的設(shè)備表里的d_actf, 尾指針是 d_actl。 如下圖所示 。 54 55 ? 對于塊設(shè)備的輸入 /輸出請求隊(duì)列有三點(diǎn)說明:第一 ,它是一個(gè)單鏈表 , 不像空閑緩沖區(qū)隊(duì)列 , 那里給出的是一個(gè)雙向鏈表 。 第二 , 由于一個(gè)緩沖區(qū)控制塊不可能同時(shí)在空閑緩沖區(qū)隊(duì)列和輸入 /輸出請求隊(duì)列 , 因此 , 在輸入 /輸出請求隊(duì)列中 , 就借用緩沖區(qū)控制塊中的 av_forw指針來構(gòu)成單鏈表 ( 這個(gè)指針在空閑緩沖區(qū)隊(duì)列里是前向指針 ) 。 第三 , UNIX對這個(gè)隊(duì)列采用先進(jìn)先出 ( FIFO) 的管理算法 。 即后到的輸入 /輸出請求所對應(yīng)的緩沖區(qū)控制塊被排在隊(duì)尾 , 設(shè)備總是為排在隊(duì)首的那個(gè)緩沖區(qū)控制塊中所記錄的請求服務(wù) 。 服務(wù)完一個(gè)后 , 就把它從隊(duì)首摘下 , 然后再為下一個(gè)請求服務(wù) 。 56 字符設(shè)備的管理 ? 字符設(shè)備的特點(diǎn)是:工作速度慢;每次傳輸?shù)臄?shù)量雖然不定 , 但總的來說較少;各種設(shè)備之間的物理差異很大 。 UNIX為它們的輸入 /輸出采用了較為容易管理的字符緩沖技術(shù) 。 ? 字符設(shè)備輸入 /輸出所使用的緩沖池 , 由一個(gè)個(gè)緩沖區(qū)組成 , 每個(gè)緩沖區(qū)既含數(shù)據(jù)存放部分又含管理控制部分 , 這與塊設(shè)備緩沖區(qū)兩者分開的管理辦法不同 。 圖 結(jié)構(gòu)示意 。 57 58 ? 下面對字符緩沖區(qū)中的各項(xiàng)內(nèi)容做一些必要的說明: ? c_next( 緩沖區(qū)指針 ) —— 這是一個(gè)指向下一個(gè)字符緩沖區(qū)的指針 , 由它可以形成字符緩沖區(qū)的各種隊(duì)列 。 ? c_first( 本緩沖區(qū)首字符位置 ) —— 它總是指明當(dāng)前本緩沖區(qū)中存放的第 1個(gè)可用字符所在的位置 。 ? c_last( 本緩沖區(qū)尾字符位置 ) —— 它總是指明當(dāng)前本緩沖區(qū)中存放的最后一個(gè)可用字符所在的位置 。 ? 在這三個(gè)信息的后面 , 緊跟著一個(gè) 64字節(jié)大小的緩沖數(shù)據(jù)區(qū) 。 對于字符緩沖區(qū) , 只有空閑緩沖區(qū)隊(duì)列和設(shè)備的輸入 /輸出隊(duì)列 。 它們分別如下圖 (a)、 (b)所 。 59 60 ? 1. 空閑緩沖區(qū)隊(duì)列 為了形成空閑緩沖區(qū)隊(duì)列 , UNIX設(shè)置了一個(gè)隊(duì)列首指針 cfreelist, 它總是指向該隊(duì)列的第 1個(gè)空閑緩沖區(qū) , 在隊(duì)列中的所有緩沖區(qū) ,通過自己的 c_next指向下一個(gè)緩沖區(qū) , 成為一個(gè)單鏈表 。 最后一個(gè)緩沖區(qū)的 c_next=NULL,表示隊(duì)列末尾 。 UNIX把空閑緩沖區(qū)隊(duì)列視為一個(gè)棧來管理 , 進(jìn)隊(duì)列和出隊(duì)列都是在隊(duì)首進(jìn)行 。 也就是說 , 申請一個(gè)字符緩沖區(qū)時(shí) , 就把該隊(duì)列中的第 1個(gè)緩沖區(qū)摘下分配出去;釋放一個(gè)緩沖區(qū)時(shí) , 就把它插入到隊(duì)首 。 61 ? 2. 輸入 /輸出請求隊(duì)列 每一個(gè)字符設(shè)備都有自己的設(shè)備表 ,該表中有兩個(gè)指針: c_cf和 c_cl, 前者總是指向該設(shè)備輸入 /輸出請求隊(duì)列之首的那個(gè)緩沖區(qū) , 后者總是指向該設(shè)備輸入 /輸出請求隊(duì)列之尾的那個(gè)緩沖區(qū) 。 62 對于一個(gè)字符緩沖區(qū) , c_first是從緩沖區(qū)取字符的指針 , c_last是往緩沖區(qū)中存字符的指針 。 比如下圖 (a)表示某個(gè)字符設(shè)備的輸入 /輸出請求隊(duì)列初態(tài) 。 可以看出 , 此時(shí)隊(duì)列中只有一個(gè)緩沖區(qū) , 該緩沖區(qū)中現(xiàn)在還有 5個(gè)字符 , c_first指向當(dāng)前的第 1個(gè)字符 “ a” , c_last指向當(dāng)前的最后一個(gè)字符 “ e” 。如果現(xiàn)在要從緩沖區(qū)中取一個(gè)字符 , 于是根據(jù)c_first的指點(diǎn) , 把字符 “ a” 取出 , 調(diào)整指針 c_first指向字符 “ b” , 如圖 (b)所示 。 如果這時(shí)需要輸入一個(gè)字符 “ f” , 因?yàn)楝F(xiàn)在 c_last已經(jīng)指向緩沖區(qū)的最后了 , 故應(yīng)該申請一個(gè)新的緩沖區(qū) , 按照指針c_first的指點(diǎn)把字符 “ f” 存入 , 并鏈入輸入 /輸出隊(duì)列之尾 。 這樣就從圖 (b)變成了圖 (c)。 63 6
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1