15奉件、文件系統(tǒng)3(操作系統(tǒng)筆記)

四宵蛀、文件系統(tǒng)的安全性

這里我們討論如何確保未經(jīng)授權的用戶不能存取某些文件?

4.1 文件保護機制

  • 用于提供安全性县貌、特定的操作系統(tǒng)機制
  • 對擁有權限的用戶术陶,應該讓其進行相應的操作,否則煤痕,應禁止
  • 防止其他用戶冒充對文件進行操作

于是在實現(xiàn)的時候需要考慮用戶身份驗證和訪問控制梧宫。對于用戶身份我們可以采用比如密碼、口令等方式摆碉。

4.2 文件的訪問控制

有不同的訪問控制手段塘匣,比如主動控制(使用訪問控制表)和能力表(使用權限表)。

  • 主動控制
    每個文件一個
    記錄用戶ID和訪問權限
    用戶可以是一組用戶
    文件可以是一組文件

  • 能力表
    每個用戶一個
    記錄文件名及訪問權限
    用戶可以是一組用戶
    文件可以是一組文件

4.3 UNIX的文件訪問控制

采用文件的二級存取控制巷帝,審查用戶的身份馆铁、審查操作的合法性

  • 第一級:對訪問者身份的識別
    對用戶分類:

    • 文件主(owner
    • 文件主的同組用戶(group
    • 其他用戶(other
  • 第二級:對操作權限的識別
    對操作分類:

    • 讀操作(r
    • 寫操作(w
    • 執(zhí)行操作(x
    • 不能執(zhí)行任何操作(-

五、文件系統(tǒng)的性能

5.1 文件系統(tǒng)的性能問題

  • 磁盤服務:速度成為系統(tǒng)性能的主要瓶頸之一锅睛。因此埠巨,在設計文件系統(tǒng)時應盡可能減少磁盤訪問次數(shù)

  • 提高文件系統(tǒng)性能的方法:
    目錄項(FCB)分解、當前目錄现拒、磁盤碎片整理辣垒、塊高速緩存、磁盤調(diào)度印蔬、提前讀取勋桶、合理分配磁盤空間、信息的優(yōu)化分布侥猬、RAID技術等等

5.2 提高文件系統(tǒng)性能:塊高速緩存(BLOCK CACHE)

又稱為文件緩存例驹、磁盤高速緩存、緩沖區(qū)高速緩存退唠。是指在內(nèi)存中為磁盤塊設置的一個緩沖區(qū)鹃锈,保存了磁盤中某些塊的副本。當對文件系統(tǒng)進行操作的時候:

  • 檢查所有的讀請求瞧预,看所需塊是否在塊高速緩沖中
  • 如果在屎债,則可直接進行讀操作仅政;否則,先將數(shù)據(jù)塊讀入塊高速緩存盆驹,再拷貝到所需的地方圆丹。
  • 由于訪問的局部性原理,當一數(shù)據(jù)塊被讀入塊高速緩存以滿足一個I/O請求時躯喇,和可能將來還會再次訪問到這一數(shù)據(jù)塊肛度。

5.3 如何實現(xiàn)塊高速緩存

  • 塊高速緩存的組織方式

    1

    說明:在塊高速緩存中有若干個數(shù)據(jù)塊扇丛,首先將這些塊使用一個雙向鏈表組織起來榔袋,當要訪問這個鏈的時候就將其從此鏈中拿出來请琳,然后掛接到鏈尾扁誓,而我們對于某個文件使用的塊要檢查其是否在高速緩存中凸丸,所以這里又使用塊號進行散列以提高檢查速度绅络。

  • 塊高速緩存的置換問題(修改LRU
    因為此緩存的空間肯定是不會很大的挨队,所以當其滿時我們需要對其進行置換弧可。對于以后可能會再次使用的塊我們將其放在鏈尾蔑匣,而對于使用概率很小的塊可能就需要將其剔除。

  • 塊高速緩存的寫入策略
    在文件系統(tǒng)中棕诵,我們需要考慮該塊是否會影響文件系統(tǒng)的一致性裁良。這里如前面所講,不同的操作系統(tǒng)采用了不同的一致性解決方案校套。

  • 提前讀取

    • 思路:每次訪問磁盤价脾,多讀入一些磁盤塊
    • 依據(jù):程序執(zhí)行的空間局部性原理
    • 開銷:較小(只有數(shù)據(jù)傳輸時間)
    • 具有針對性

5.4 Windows的文件訪問方式

一般有下面三種方式:

  • 不使用文件緩存

    • 普通方式
    • 通過Windows提供的FlushFileBuffer函數(shù)實現(xiàn)
  • 使用文件緩存(塊高速緩存)

    • 預讀取笛匙。每次讀取的塊大小侨把、緩沖區(qū)大小、置換方式
    • 寫回妹孙。寫回時機選擇秋柄、一致性問題
  • 異步模式

    • 不再等待磁盤操作的完成。
    • 使處理器和I/O并發(fā)工作

用戶對磁盤的訪問通過訪問文件緩存來實現(xiàn):

  • WindowsCache Manager實現(xiàn)對緩存的控制

    • 讀取數(shù)據(jù)的時候預取
    • Cache滿時蠢正,根據(jù)LRU原則清除緩存的內(nèi)容
    • 定期更新磁盤內(nèi)容使其與Cache一致(每秒)
  • write-back機制

    • 在用戶要對磁盤寫數(shù)據(jù)時骇笔,只更改Cache中的內(nèi)容,由Cache Manager決定何時將更新反映到磁盤
      2

5.5 提高文件系統(tǒng)性能:合理分配磁盤空間

分配磁盤塊時嚣崭,把有可能順序存取的塊放在一起(盡量分配在同一柱面上笨触,從而減少磁盤臂的移動次數(shù)和距離)

3

說明:我們讀取文件系統(tǒng)時,每次都要先找到i節(jié)點區(qū)雹舀,然后再去找到文件位置芦劣,如果i節(jié)點區(qū)在最外道,而相關文件在最里道说榆,則在讀取的時候磁臂就需要不斷的移動持寄,這樣顯示效率低下源梭。一種解決方案如(a),我們將i節(jié)點區(qū)和相關文件放在距離較近的磁道上稍味;另一種是如(b)废麻,首先將磁道分成了若干組,然后將i節(jié)點區(qū)也劃分成若干部分模庐,每一組磁道都有一個i節(jié)點區(qū)烛愧,而每個文件都和其i節(jié)點區(qū)在同一組,這樣磁臂也不需要很大的移動掂碱。

5.6 提高文件系統(tǒng)性能:磁盤調(diào)度

當有多個訪盤請求等待時怜姿,采用一定的策略,對這些請求的服務順序調(diào)整安排疼燥,從而降低平均磁盤服務時間沧卢,達到公平、高效的目的醉者。

  • 公平
    一個IO請求在有限時間內(nèi)滿足
  • 高效
    減少設備機械運動帶來的時間開銷

一次訪盤時間 = 尋道時間 + 旋轉(zhuǎn)延遲時間 + 傳輸時間

  • 減少尋道時間
  • 減少延遲時間

5.7 磁盤調(diào)度算法

例子:假設磁盤訪問序列:98但狭、183、37撬即、122立磁、14、124剥槐、65唱歧、67,這些數(shù)字表示柱面號或磁道號粒竖。讀寫頭起始位置為53颅崩。請計算磁頭服務序列和磁頭移動總距離(道數(shù))。下面使用幾種算法進行計算:

  • 1蕊苗、先來先服務(FCFS
    按訪問請求到達的先后次序服務

    • 優(yōu)點:簡單沿后、公平
    • 缺點:效率不高,相鄰兩次請求可能會造成最內(nèi)到最外的柱面尋道岁歉,使磁頭反復移動得运,增加了服務時間,對機械也不利锅移。
      4

      磁道服務序列和訪問序列一致熔掺,磁頭移動總距離為640,平均80非剃。
  • 2置逻、最短尋道時間優(yōu)先(Shortest Seek Time First
    優(yōu)先選擇距當前磁頭最近的訪問請求進行服務,主要考慮尋道優(yōu)先备绽。

    • 優(yōu)點
      改善了磁盤平均服務時間
    • 缺點
      造成某些訪問請求長期等待而得不到服務


      5
  • 3券坞、掃描算法(SCAN電梯算法)
    當設備無訪問請求時鬓催,磁頭不動;當有訪問請求時恨锚,磁頭按一個方向移動宇驾,在移動過程中遇到的訪問請求進行服務,然后判斷該方向上是否有訪問請求猴伶,如果有則繼續(xù)掃描课舍;否則改變移動方向,并為經(jīng)過的訪問請求服務他挎,如此反復筝尾。其實是一種對距離和方向的折中算法。

    6

  • 4办桨、單向掃描算法(C-SCAN
    這是對掃描算法的一種改進筹淫。

    • 總是從零號柱面開始向里掃描
    • 按柱面(磁道)位置選擇訪問者
    • 移動臂到達最后一個柱面后,立即帶動讀寫磁頭快速返回到零號柱面
    • 返回時不為任何的等待訪問者服務
    • 返回后可再次進行掃描

主要的目的是減少了新請求的最大延遲呢撞。

  • 5损姜、N-step-SCAN策略
    • 把磁道請求隊列分成長度為N的子隊列,每一次用SCAN處理一個子隊列
    • 在處理某一個隊列時狸相,新請求添加到其他子隊列中
    • 如果最后剩下請求數(shù)小于N薛匪,則它們?nèi)慷紝⒃谙乱淮螔呙钑r處理
    • N值比較大時捐川,其性能接近SCAN脓鹃;當N = 1時,即FIFO

主要是為了解決磁頭臂的粘性問題古沥。

  • 6瘸右、FSCAN策略
    • 使用兩個子隊列
    • 掃描開始時,所有請求都在一個隊列中岩齿,而另一個隊列為空
    • 掃描過程中太颤,所有新到的請求都放入另一個隊列中
    • 對新請求的服務延遲到處理完所有老請求之后

主要是為了解決磁頭臂的粘性問題。本算法及以上都是對磁臂移動的優(yōu)化算法盹沈。

  • 7龄章、旋轉(zhuǎn)調(diào)度算法
    根據(jù)延遲時間來決定執(zhí)行次序的調(diào)度。一般有三種情況:
    • 若干等待訪問請求訪問同一磁頭上的不同扇區(qū)
    • 若干等待訪問請求訪問不同磁頭上的不同扇區(qū)
    • 若干等待訪問請求訪問不同磁頭上的相同扇區(qū)
      解決方案:
    • 對于前兩種情況:總是讓首先到達讀寫磁頭位置下的扇區(qū)先進行傳送操作
    • 對于第三種情況:這些扇區(qū)同時到達讀寫磁頭位置下乞封,可任意選擇一個讀寫磁頭進行傳送操作

5.8 提高文件系統(tǒng)性能:信息優(yōu)化分布

記錄在磁道上的排列方式也會影響輸入輸出操作的時間做裙。

7

說明:如果信息是按左邊那樣分布的,那么如果首先讀到1號記錄肃晚,然后花5ms處理锚贱,但是此時磁盤已經(jīng)轉(zhuǎn)到了4號記錄,于是如果我們要處理2號記錄关串,則必須將4拧廊、5监徘、6、7吧碾、8都旋轉(zhuǎn)過去之后才能處理2號記錄凰盔;而如果信息是按右邊那樣分布的,當處理完1號記錄倦春,而此時磁盤也剛好旋轉(zhuǎn)到了2號記錄處廊蜒,這樣就能極大的提高文件系統(tǒng)的性能。

5.9 提高文件系統(tǒng)性能:記錄的成組與分解

  • 記錄的成組
    把若干個邏輯記錄合成一組存放在一塊的工作
  • 進行成組操作時必須使用內(nèi)存緩沖區(qū)溅漾,緩沖區(qū)的長度等于邏輯記錄長度乘以成組的塊因子(成組的長度)山叮。
  • 成組的目的:提高了存儲空間的利用率;減少了啟動外設的次數(shù)添履,提高系統(tǒng)的工作效率屁倔。
  • 記錄的分解
    從一組邏輯記錄中把一個邏輯記錄分離出來

典型的例子就是目錄文件的存儲。

5.10 提高文件系統(tǒng)性能:RAID技術

起始就是獨立磁盤冗余陣列(Redundant Arrays of Independent Disks)暮胧,就是將多塊磁盤按照一定要求構成一個獨立的存儲設備锐借。目的就是提高可靠性和性能。在實現(xiàn)時往衷,需要考慮存儲系統(tǒng)的速度钞翔、容量、容錯席舍、數(shù)據(jù)災難發(fā)生后的數(shù)據(jù)恢復布轿。

  • 數(shù)據(jù)是如何組織的

    • 通過把多個磁盤組織在一起,作為一個邏輯卷提供磁盤跨越功能
    • 通過把數(shù)據(jù)分成多個數(shù)據(jù)塊来颤,并行寫入/讀出多個磁盤汰扭,以提高數(shù)據(jù)傳輸率(數(shù)據(jù)分條stripe
    • 通過鏡像或校驗操作,提供容錯能力(冗余信息的保存)
    • 最簡單的組織方式是鏡像福铅,最復雜的是塊交錯校驗萝毛。
  • 例1:RAID 0 - 條帶化

    • 數(shù)據(jù)分布在陣列的所有磁盤上
    • 有數(shù)據(jù)請求時,同時多個磁盤并行操作
    • 充分利用總線寬帶滑黔,數(shù)據(jù)吞吐率提高笆包,驅(qū)動器負載均衡


      8

      這種方式?jīng)]有冗余信息保存,即無差錯控制略荡,性能是最佳的庵佣。

  • 例2:RAID 1-鏡像

    • 最大限度保證數(shù)據(jù)安全和可恢復性
    • 所有數(shù)據(jù)同時存在與兩塊磁盤的相同位置
    • 磁盤利用率為50%
      9

      數(shù)據(jù)的安全性是最好的,但是磁盤利用率較低撞芍。
  • 例3:RAID 4-交錯塊奇偶校驗

    • 帶奇偶校驗
    • 以數(shù)據(jù)塊為單位


      10

      數(shù)據(jù)保存在前四塊盤上秧了,而校驗信息保存在第五塊盤上。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末序无,一起剝皮案震驚了整個濱河市验毡,隨后出現(xiàn)的幾起案子衡创,更是在濱河造成了極大的恐慌,老刑警劉巖晶通,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件璃氢,死亡現(xiàn)場離奇詭異,居然都是意外死亡狮辽,警方通過查閱死者的電腦和手機一也,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來喉脖,“玉大人椰苟,你說我怎么就攤上這事∈鬟矗” “怎么了舆蝴?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長题诵。 經(jīng)常有香客問我洁仗,道長,這世上最難降的妖魔是什么性锭? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任赠潦,我火速辦了婚禮,結(jié)果婚禮上草冈,老公的妹妹穿的比我還像新娘她奥。我一直安慰自己,他們只是感情好疲陕,可當我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布方淤。 她就那樣靜靜地躺著钉赁,像睡著了一般蹄殃。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上你踩,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天诅岩,我揣著相機與錄音,去河邊找鬼带膜。 笑死吩谦,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的膝藕。 我是一名探鬼主播式廷,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼芭挽!你這毒婦竟也來了滑废?” 一聲冷哼從身側(cè)響起蝗肪,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蠕趁,沒想到半個月后薛闪,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡俺陋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年豁延,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片腊状。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡诱咏,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出缴挖,到底是詐尸還是另有隱情胰苏,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布醇疼,位于F島的核電站硕并,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏秧荆。R本人自食惡果不足惜倔毙,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望乙濒。 院中可真熱鬧陕赃,春花似錦、人聲如沸颁股。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽甘有。三九已至诉儒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間亏掀,已是汗流浹背忱反。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留滤愕,地道東北人温算。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像间影,于是被迫代替她去往敵國和親注竿。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內(nèi)容