❶ 如何降低無盤網吧SSD回寫量
網吧無盤技術 目前主流的無盤回寫技術無非本地內存緩存+伺服器回寫方式哪辯,而小黎所提供的方法正是從這兩方面入手。一方面我們通過增加本地內存緩存容量,另一方面,主要通過提升回寫數據的壓縮比例,為什麼要這樣操作呢?相信平常細心的網吧技術人祥祥員可能注意到了無盤伺服器回寫文件夾里的文件大小與實際佔用空間有很大的差別,這便是無盤廠商在作祟了,所以小黎正是基於這點從回寫文件壓縮入手。具體操作便是打開打開回寫分區的磁碟壓縮功能即可,在一般情況下,銳起3.1回寫量可減小5-20%(因為銳起本身就是有壓縮功能的),CCDISK回寫量可減小60-80%(因為CCDISK回寫是一點都沒壓縮的),無盤伺服器CPU佔用基本沒有提升(I32100)。 最後,小黎再補充一點關於回寫SSD采購的注意事項。首先盡量選擇大容李宴缺量(一般120G以上)的型號,小容量壽命低不說,而且對寫入和讀出速度均有限制。其次SSD使用的快閃記憶體顆粒必須使用正規大型廠商提供的,切勿貪圖一時便宜而後悔。 以上僅是小黎對SSD回寫的一點意見,哪裡有不足的地方,還望見諒。希望以上關於網吧無盤SSD回寫的想法對你有幫助。
❷ 無盤有很多客戶機回寫顯示為0怎麼回事
回寫盤中,黙認情況下是以客戶機實際內存的1/8為本地內存回寫,此值可以根據專網吧客戶機實際屬內存大小來設 定,內存越大此值可以相應調大,所以無盤客戶機如果在操作過種中回寫量很小的情況下,是不會回寫到伺服器 的,這樣也大大提高了伺服器的帶機量,減小了伺服器的負載! 註:如果設置本地內存回寫過大,會導致本地能實際利用的內存就會越小,如雙開或多開游戲時可能會造成卡的現像,所以要適量,建議不要設置超過實際物理內存的1/2
❸ 在無盤網吧上網虛擬盤 為什麼一放超過20G的東西就重啟
虛擬盤是把伺服器的硬碟虛擬出來給客戶機的,伺服器的硬碟容量剩下多少虛擬出來的容豎態量就是多少,不可以設置的。
如果是在客戶機 往虛擬盤添加東西,客余碰源戶機就需要回寫給伺服器的的回寫盤,同時客戶機的物理內存也會回寫一部分,你給虛擬盤添加了20G 就要有超過18G的回寫量,當回寫量在短時間內回寫過大服務端就會判斷為惡意行為,會自動重啟客戶端。
回寫過大是影響全部電腦是速度的,如果一台電腦就正常使用吵尺玩下游戲看下電影10個小時也就1-5個G的回寫。
❹ 給一個的網吧升級方案怎麼寫
你所指的是網吧硬體或者系統?網吧硬體和系統包括伺服器等,我可以給你一個大概方案,具體方案,要你去參考網吧具體情況而定。大致的升級方案是隨著網吧整體系統框架而動。先說第一種,有盤(客戶機有硬碟。)如今主流方案。游戲伺服器,4塊stat 32M企業級硬碟做游戲存儲,raid10模式,讀的速度快,又有穩定,為保證整體伺服器外頻,最好雙核CPU,操作系統最好是OkStar,如今2.8破解很多,很穩定,帶回寫,有盤可帶300以上,雙千M網卡綁定。linux系統唯一缺點怕停電,所以配置ups,500w左右。更新游戲伺服器:普通機就可以,1G左右內存,影射游戲伺服器游戲盤更新,更新軟體最好是網維大師,游戲人性化,三層更新很不錯,免費的訊閃等不行,三層和游戲運行會出很問題,特別是日復一日地更新做斗橋。電影伺服器:推薦五洲回響,原因是有TVB的版權,網吧看香港的電影還是不錯。總結一下,伺服器okstar+網維大師,客戶機可用ndeer的系統簡單,這種方案很穩定,伺服器就算壞掉也不大影響網吧整體運行,常玩的游戲在客戶機硬碟里,更新速度根據區域網速度而定。整個網吧系統問題表現在:軟體故障基本為0,網維大師這方面是不錯,可以說0故障。多的問題表現在硬體上,硬碟,經驗來說硬碟的所用年限,接確不良,質量問題。無盤。(客房無硬碟)無盤和有盤有個非常重要的衡量標准。就純猛是「少量的回寫勝過有盤」,因為它集中化管理。什麼意思,無盤,就是指客戶運行的數據要寫回伺服器,回寫量的多與少決定無盤的速度與穩定。在09年10左右,無盤並不被網吧普遍採納,就是回寫量大,現在的無盤技術,是指銳起CGO,3.0以後的版本為准,回寫量非常少,最重要的它有個熱備功能,就是伺服器壞掉了,也不影響下面客戶機。系統伺服器,銳起3.1,推薦破解版,很穩定,反而正版有廣告。win2003的系統,客房機系統文件盤,4塊或者6塊sas70G固態硬碟,貴,一個字,做raid10,保證讀的游戲,寫盤用stat硬碟32M500G,一塊帶50台,如果網吧有130台,最少3塊寫盤。CPU雙核,全intel晶元,intel伺服器版,ecc以上內存4G~8G,做超級緩存,win伺服器不怕停電,兩台。一台主,一台熱備。游戲伺服器最好用okstar,如上,最好不用銳起做游戲,那完全不是網吧方案,開包更新會出很多問題。游戲更新軟體網維大師。總結一下,這個方案需要網路銷廳全千M,而且需要網路的穩定性,集中化管理,軟硬體故障很少。做好之後基本不需要系統問題。路由器ROS。利用網維大師雙綁。根據網吧外網速度來做限度。
❺ 無盤回寫量大對回寫盤的選擇求高手指教!
你那裡回寫量這么大 ,SSD 只能用SLC主控的 ,你寫的這些SSD都不行 。
你還是用4個500G企業盤吧 。
❻ 回寫緩存是干什麼用的
分類: 電腦/網路 >> 硬體
問題描述:
CPU中的回寫緩存相比直接緩存有哪些優勢?
解析:
概念定義:
==========================================
直寫式 WT,Write Through 與 回寫式 WB,Write Back 指的是緩沖內存的工
作方式 直寫式緩存方式是迅攜 當 CPU 要將數據寫入內存時 除了更新緩沖內存上的數據外
也將數據寫在 DRAM 中 以維持主存與緩沖內存的一致性 當要寫入內存的數據一多 速度
自然就慢了下來 回寫式的緩存方式是 每當 CPU 要將數據寫入內存時 只會先更新緩沖內
存上的數據 隨後再讓緩沖內存在匯流排不塞車的時候 才把數據寫回 DRAM 所以速度自然
快得多
白皮書規定:
==========================================
在回寫式規定中,高速緩存將充當緩沖區。處理器開始寫入循環時,高速緩存將接收數據並停止循環。當系統匯流排可用時,高速緩存再將數據寫回主內存。
在直寫式規定中,處理器會直接將高速緩存中的數據寫入主內存。直至將數據存儲至主內存,寫入循環才能完成。
優劣分析:
=========================================
兩種方式各有畝悶伏利弊,直寫緩存方法利用了高速緩存中的數據始終與主存儲器中數據匹配的特點。但是,需要的匯流排周期卻非常耗時,從而降低性能。回寫緩存可以罩逗維持性能,因為寫入始終是在「爆發」中進行的,因而運行所需的匯流排周期將大大減少。
❼ cache什麼時候回寫
主要分兩種:
寫回(write back )和 寫通(write through)
1. write back
只有在一個cache行被選褲盯中替換回主存時,如果cache 行的數據是修改過的(dirty),才將它寫回主存。
這種策略,要在Cache中設置一個臟位(dirty bit),用來表示緩存中的cache 行是雹斗否被修改過。
如果 一個內存塊在載入到Cache後未被修改過,Cache直接把該cache行設置為無效。不需要把數據寫回主存,這樣可以有效降低從Cache到主存的寫次數。
2.write through
寫通是指,每當Cache收到寫數據(store)指令時,若寫命中,則CPU會同時將數據寫到Cache和主存。
如果寫不命中:
寫分配,只在數據寫不命中產生作用,即,給數據分配一個cache line 。先在主存塊中更新到主存中,然後分配一個cache行胡肆和,將數據寫到Cache中。
這種方式充分利用了空間局部性,但每次寫不命中都要從主存讀一個塊到Cache中,增加了 讀主存 的開銷。
非寫分配:
直接把數據寫回主存而不載入數據到緩存。
這種方式可以減少 讀主存的時間,沒有利用好空間局部性。
比較:
現在系統中,寫回策略設置了寫緩沖器,減少了訪問主存的次數,但是寫通方式設計比較容易,維護數據的一致性跟簡單。
❽ 用內存做無盤回寫
提高無盤速度通用方法: 首先用ramdisk軟體從內存虛擬一個硬碟出來。1024內存虛擬512M硬碟(設置虛擬頁面R:盤480-480,D:盤硬碟頁面系統管理大小, IE 25)512 內存虛擬256M硬碟(設置虛擬頁面R:盤225-225,D:盤硬碟頁面系統管理大小, IE 25)384 內存虛擬128M硬碟(設置虛擬頁面R:盤96-96,D:盤硬碟頁面系統管理大小, IE 25)256 內存虛擬64M硬碟 (設置虛擬頁面R:盤32-32,D:盤硬碟頁面系統管理大小, IE 25)虛擬硬碟主要功能《=======回寫虛擬內存頁面文件回寫IE 臨時文件回寫TEMP 臨時文件修改注冊表強制先使用虛擬硬碟的虛擬內存頁面文件,滿了後在使用硬碟虛擬內存頁面文件這個方法的原理是:減少回寫和網路壓力。這個方法實驗20個網吧成功。IE速度提高200%在注冊表裡找這個 PagingFiles 〈==可以了。
❾ 如何使用Intel SSD ToolBox來自動優化SSD回寫盤
trim 調度 設置自動trim時間間隔 套用銀滲笑喊明軟體的原話:使用 Trim 功能優化 Intel SSD。要啟用此工具,必須安裝最新的固件。單擊 Firmware Update,檢查鋒含最新的固件。英特爾建議每周運行一次 Intel SSD Optimizer。 至於其他優化功能我只能說沒有
❿ 操作系統(四)文件管理
文件—就是一組有意義的信息/數據集合
文件屬於抽象數據類型。為了恰當地定義文件,需要考慮有關文件的操作。操作系統提供系統調用,它對文件進行創建、寫、讀、重定位、搠除和截斷等操作。
所謂的「邏輯結構」,就是指在用戶看來,文件內部的數據應該是如何組織起來的悔弊。而「物理結構」指的是在操作系統看來,文件的數據是如何存放在外存中的。
無結構文件:文件內部的數據就是一系列二進制流或字元流組成。又稱「流式文件」
文件內部的數據其實就是一系列字元流,沒有明顯的結構特性。因此也不用探討無結構文件的「邏輯結構」問題。
有結構文件:由一組相似的記錄組成,又稱「記錄式文件」。每條記錄又若干個數據項組成。 [1] 一般來說,每條記錄有一個數據項可作為關鍵字。根據各條記錄的長度(佔用的存儲空間)是否相等,又可分為定長記錄和可變長記錄兩種。有結構文件按記錄的組織形式可以分為:
對於含有N條記錄的順序文件,查找某關鍵字值的記錄時,平均需要查找N/2次。在索引順序文件中,假設N條記錄分為√N組,索引表中有√N個表項,每組有√N條記錄,在查找某關鍵字值的記錄時,先順序查找索引表,需要查找√N /2次,然後在主文件中對應的組中順序查找,也需要查找√N/2次,因此共需查找√N/2+√N/2=√N次。顯然,索引順序文件提高了查找效率,若記錄數很多,則可採用兩級或多級索引
FCB的有序集合稱為「文件目錄」,一個FCB就是一個文件目錄項。FCB中包含了文件的基本信息(文件名、物理地址、邏輯結構、物理結構等),存取控制信息(是否可讀/可寫、禁止訪問的用戶名單等),使用信息(如文件的建立時間、修改時間等)。最重要,最基本的還是文件名、文件存放的物理地址。
對目錄的操作如下:
操作的時候,可以有以下幾種目錄結構:
早期操作系統並不支持多級目錄,整個系統中只建立一張目錄表,每個文件佔一個目錄項。
單級目錄實現了「按名存取」,但是不允許文件重名。在創建一個文件時,需要先檢查目錄表中有沒有重名文件,確定不重名後才能允許建立文件,並將新文件對應的目錄項插入目錄表中。顯然, 單級目錄結構不適用於多用戶操作系統。
早期的多用戶操作系統,採用兩級目錄結構。分為主文件目錄(MFD,Master File Directory)和用戶文件目錄(UFD,User Flie Directory)。
允許不同並脊用戶的文件重名。文件名雖然相同,但是對應的其實是不同的文件。兩級目錄結構允許不同用戶的文件重名,也可以在目錄上實現實現訪問限制(檢查此時登錄的用戶名是否匹配)。但是兩級目錄結構依然缺乏靈活性,用戶不能對自己的文件進行分類
用戶(或用戶進程)要訪問某個文件時要用文件路徑名標識文件,文件路徑名是個字元串。各級目錄之間用「/」隔開。從根目錄出發的路徑稱為絕對路碧蔽族徑。
系統根據絕對路徑一層一層地找到下一級目錄。剛開始從外存讀入根目錄的目錄表;找到目錄的存放位置後,從外存讀入對應的目錄表;再找到目錄的存放位置,再從外存讀入對應目錄表;最後才找到文件的存放位置。整個過程需要3次讀磁碟I/O操作。
很多時候,用戶會連續訪問同一目錄內的多個文件,顯然,每次都從根目錄開始查找,是很低效的。因此可以設置一個「當前目錄」。此時已經打開了的目錄文件,也就是說,這張目錄表已調入內存,那麼可以把它設置為「當前目錄」。當用戶想要訪問某個文件時,可以使用從當前目錄出發的「相對路徑」
可見,引入「當前目錄」和「相對路徑」後,磁碟I/O的次數減少了。這就提升了訪問文件的效率。
樹形目錄結構可以很方便地對文件進行分類,層次結構清晰,也能夠更有效地進行文件的管理和保護。但是,樹形結構不便於實現文件的共享。為此,提出了「無環圖目錄結構」。
可以用不同的文件名指向同一個文件,甚至可以指向同一個目錄(共享同一目錄下的所有內容)。需要為每個共享結點設置一個共享計數器,用於記錄此時有多少個地方在共享該結點。用戶提出刪除結點的請求時,只是刪除該用戶的FCB、並使共享計數器減1,並不會直接刪除共享結點。只有共享計數器減為0時,才刪除結點。
其實在查找各級目錄的過程中只需要用到「文件名」這個信息,只有文件名匹配時,才需要讀出文件的其他信息。因此可以考慮讓目錄表「瘦身」來提升效率。
當找到文件名對應的目錄項時,才需要將索引結點調入內存,索引結點中記錄了文件的各種信息,包括文件在外存中的存放位置,根據「存放位置」即可找到文件。存放在外存中的索引結點稱為「磁碟索引結點」,當索引結點放入內存後稱為「內存索引結點」。相比之下內存索引結點中需要增加一些信息,比如:文件是否被修改、此時有幾個進程正在訪問該文件等。
為文件設置一個「口令」(如:abc112233),用戶請求訪問該文件時必須提供「口令」。
優點:保存口令的空間開銷不多,驗證口令的時間開銷也很小。
缺點:正確的「口令」存放在系統內部,不夠安全。
使用某個「密碼」對文件進行加密,在訪問文件時需要提供正確的「密碼」才能對文件進行正確的解密。 [3]
優點:保密性強,不需要在系統中存儲「密碼」
缺點:編碼/解碼,或者說加密/解密要花費一定時間。
在每個文件的FCB(或索引結點)中增加一個訪問控制列表(Access-Control List, ACL),該表中記錄了各個用戶可以對該文件執行哪些操作。
有的計算機可能會有很多個用戶,因此訪問控制列表可能會很大,可以用精簡的訪問列表解決這個問題
精簡的訪問列表:以「組」為單位,標記各「組」用戶可以對文件執行哪些操作。當某用戶想要訪問文件時,系統會檢查該用戶所屬的分組是否有相應的訪問許可權。
索引結點,是一種文件目錄瘦身策略。由於檢索文件時只需用到文件名,因此可以將除了文件名之外的其他信息放到索引結點中。這樣目錄項就只需要包含文件名、索引結點指針。
索引結點中設置一個鏈接計數變數count,用於表示鏈接到本索引結點上的用戶目錄項數。
當User3訪問「ccc」時,操作系統判斷文件「ccc」屬於Link類型文件,於是會根據其中記錄的路徑層層查找目錄,最終找到User1的目錄表中的「aaa」表項,於是就找到了文件1的索引結點。
類似於內存分頁,磁碟中的存儲單元也會被分為一個個「塊/磁碟塊/物理塊」。很多操作系統中,磁碟塊的大小與內存塊、頁面的大小相同
內存與磁碟之間的數據交換(即讀/寫操作、磁碟I/O)都是以「塊」為單位進行的。即每次讀入一塊,或每次寫出一塊
在內存管理中,進程的邏輯地址空間被分為一個一個頁面同樣的,在外存管理中,為了方便對文件數據的管理,文件的邏輯地址空間也被分為了一個一個的文件「塊」。於是文件的邏輯地址也可以表示為(邏輯塊號,塊內地址)的形式。用戶通過邏輯地址來操作自己的文件,操作系統要負責實現從邏輯地址到物理地址的映射
連續分配方式要求每個文件在磁碟上佔有一組連續的塊。用戶給出要訪問的邏輯塊號,操作系統找到該文件對應的目錄項(FCB)——可以直接算出邏輯塊號對應的物理塊號,物理塊號=起始塊號+邏輯塊號。還需要檢查用戶提供的邏輯塊號是否合法(邏輯塊號≥ 長度就不合法)因此 連續分配支持順序訪問和直接訪問 (即隨機訪問)
讀取某個磁碟塊時,需要移動磁頭。訪問的兩個磁碟塊相隔越遠,移動磁頭所需時間就越長。 連續分配的文件在順序讀/寫時速度最快,物理上採用連續分配的文件不方便拓展,且存儲空間利用率低,會產生難以利用的磁碟碎片可以用緊湊來處理碎片,但是需要耗費很大的時間代價。。
鏈接分配採取離散分配的方式,可以為文件分配離散的磁碟塊。分為隱式鏈接和顯式鏈接兩種。
用戶給出要訪問的邏輯塊號i,操作系統找到該文件對應的目錄項(FCB)…從目錄項中找到起始塊號(即0號塊),將0號邏輯塊讀入內存,由此知道1號邏輯塊存放的物理塊號,於是讀入1號邏輯塊,再找到2號邏輯塊的存放位置……以此類推。因此,讀入i號邏輯塊,總共需要i+1次磁碟I/O。
採用鏈式分配(隱式鏈接)方式的文件,只支持順序訪問,不支持隨機訪問,查找效率低。另外,指向下一個盤塊的指針也需要耗費少量的存儲空間。但是,採用隱式鏈接的鏈接分配方式,很方便文件拓展。另外,所有的空閑磁碟塊都可以被利用,不會有碎片問題,外存利用率高。
把用於鏈接文件各物理塊的指針顯式地存放在一張表中。即文件分配表(FAT,File Allocation Table)
一個磁碟僅設置一張FAT 。開機時,將FAT讀入內存,並常駐內存。FAT的各個表項在物理上連續存儲,且每一個表項長度相同,因此「物理塊號」欄位可以是隱含的。
從目錄項中找到起始塊號,若i>0,則查詢內存中的文件分配表FAT,往後找到i號邏輯塊對應的物理塊號。 邏輯塊號轉換成物理塊號的過程不需要讀磁碟操作。
採用鏈式分配(顯式鏈接)方式的文件,支持順序訪問,也支持隨機訪問 (想訪問i號邏輯塊時,並不需要依次訪問之前的0 ~ i-1號邏輯塊), 由於塊號轉換的過程不需要訪問磁碟,因此相比於隱式鏈接來說,訪問速度快很多。顯然,顯式鏈接也不會產生外部碎片,也可以很方便地對文件進行拓展。
索引分配允許文件離散地分配在各個磁碟塊中,系統會為每個文件建立一張索引表,索引表中記錄了文件的各個邏輯塊對應的物理塊(索引表的功能類似於內存管理中的頁表——建立邏輯頁面到物理頁之間的映射關系)。索引表存放的磁碟塊稱為索引塊。文件數據存放的磁碟塊稱為數據塊。
在顯式鏈接的鏈式分配方式中,文件分配表FAT是一個磁碟對應一張。而索引分配方式中,索引表是一個文件對應一張。可以用固定的長度表示物理塊號 [4] ,因此,索引表中的「邏輯塊號」可以是隱含的。
用戶給出要訪問的邏輯塊號i,操作系統找到該文件對應的目錄項(FCB)…從目錄項中可知索引表存放位置,將索引表從外存讀入內存,並查找索引表即可只i號邏輯塊在外存中的存放位置。
可見, 索引分配方式可以支持隨機訪問。文件拓展也很容易實現 (只需要給文件分配一個空閑塊,並增加一個索引表項即可)但是 索引表需要佔用一定的存儲空間
索引塊的大小是一個重要的問題,每個文件必須有一個索引塊,因此索引塊應盡可能小,但索引塊太小就無法支持大文件,可以採用以下機制:
空閑表法適用於「連續分配方式」。分配磁碟塊:與內存管理中的動態分區分配很類似,為一個文件分配連續的存儲空間。同樣可採用首次適應、最佳適應、最壞適應等演算法來決定要為文件分配哪個區間。回收磁碟塊:與內存管理中的動態分區分配很類似,當回收某個存儲區時需要有四種情況——①回收區的前後都沒有相鄰空閑區;②回收區的前後都是空閑區;③回收區前面是空閑區;④回收區後面是空閑區。總之,回收時需要注意表項的合並問題。
操作系統保存著鏈頭、鏈尾指針。如何分配:若某文件申請K個盤塊,則從鏈頭開始依次摘下K個盤塊分配,並修改空閑鏈的鏈頭指針。如何回收:回收的盤塊依次掛到鏈尾,並修改空閑鏈的鏈尾指針。適用於離散分配的物理結構。為文件分配多個盤塊時可能要重復多次操作
操作系統保存著鏈頭、鏈尾指針。如何分配:若某文件申請K個盤塊,則可以採用首次適應、最佳適應等演算法,從鏈頭開始檢索,按照演算法規則找到一個大小符合要求的空閑盤區,分配給文件。若沒有合適的連續空閑塊,也可以將不同盤區的盤塊同時分配給一個文件,注意分配後可能要修改相應的鏈指針、盤區大小等數據。如何回收:若回收區和某個空閑盤區相鄰,則需要將回收區合並到空閑盤區中。若回收區沒有和任何空閑區相鄰,將回收區作為單獨的一個空閑盤區掛到鏈尾。 離散分配、連續分配都適用。為一個文件分配多個盤塊時效率更高
位示圖:每個二進制位對應一個盤塊。在本例中,「0」代表盤塊空閑,「1」代表盤塊已分配。位示圖一般用連續的「字」來表示,如本例中一個字的字長是16位,字中的每一位對應一個盤塊。因此可以用(字型大小,位號)對應一個盤塊號。當然有的題目中也描述為(行號,列號)
盤塊號、字型大小、位號從0開始,若n表示字長,則
如何分配:若文件需要K個塊,①順序掃描位示圖,找到K個相鄰或不相鄰的「0」;②根據字型大小、位號算出對應的盤塊號,將相應盤塊分配給文件;③將相應位設置為「1」。如何回收:①根據回收的盤塊號計算出對應的字型大小、位號;②將相應二進制位設為「0」
空閑表法、空閑鏈表法不適用於大型文件系統,因為空閑表或空閑鏈表可能過大。UNIX系統中採用了成組鏈接法對磁碟空閑塊進行管理。文件卷的目錄區中專門用一個磁碟塊作為「超級塊」,當系統啟動時需要將超級塊讀入內存。並且要保證內存與外存中的「超級塊」數據一致。
進行Create系統調用時,需要提供的幾個主要參數:
操作系統在處理Create系統調用時,主要做了兩件事:
進行Delete系統調用時,需要提供的幾個主要參數:
操作系統在處理Delete系統調用時,主要做了幾件
事:
在很多操作系統中,在對文件進行操作之前,要求用戶先使用open系統調用「打開文件」,需要提供的幾個主要參數:
操作系統在處理open系統調用時,主要做了幾件事:
進程使用完文件後,要「關閉文件」
操作系統在處理Close系統調用時,主要做了幾件事:
進程使用read系統調用完成寫操作。需要指明是哪個文件(在支持「打開文件」操作的系統中,只需要提供文件在打開文件表中的索引號即可),還需要指明要讀入多少數據(如:讀入1KB)、指明讀入的數據要放在內存中的什麼位置。操作系統在處理read系統調用時,會從讀指針指向的外存中,將用戶指定大小的數據讀入用戶指定的內存區域中。
進程使用write系統調用完成寫操作,需要指明是哪個文件(在支持「打開文件」操作的系統中,只需要提供文件在打開文件表中的索引號即可),還需要指明要寫出多少數據(如:寫出1KB)、寫回外存的數據放在內存中的什麼位置操作系統在處理write系統調用時,會從用戶指定的內存區域中,將指定大小的數據寫回寫指針指向的外存。
尋找時間(尋道時間)T S :在讀/寫數據前,將磁頭移動到指定磁軌所花的時間。
延遲時間T R :通過旋轉磁碟,使磁頭定位到目標扇區所需要的時間。設磁碟轉速為r(單位:轉/秒,或轉/分),則平均所需的延遲時間
傳輸時間T t :從磁碟讀出或向磁碟寫入數據所經歷的時間,假設磁碟轉速為r,此次讀/寫的位元組數為b,每個磁軌上的位元組數為N。則
總的平均存取時間Ta
延遲時間和傳輸時間都與磁碟轉速相關,且為線性相關。而轉速是硬體的固有屬性,因此操作系統也無法優化延遲時間和傳輸時間,但是操作系統的磁碟調度演算法會直接影響尋道時間
根據進程請求訪問磁碟的先後順序進行調度。
優點:公平;如果請求訪問的磁軌比較集中的話,演算法性能還算過的去
缺點:如果有大量進程競爭使用磁碟,請求訪問的磁軌很分散,則FCFS在性能上很差,尋道時間長。
SSTF演算法會優先處理的磁軌是與當前磁頭最近的磁軌。可以保證每次的尋道時間最短,但是並不能保證總的尋道時間最短。(其實就是貪心演算法的思想,只是選擇眼前最優,但是總體未必最優)
優點:性能較好,平均尋道時間短
缺點:可能產生「飢餓」現象
SSTF演算法會產生飢餓的原因在於:磁頭有可能在一個小區域內來回來去地移動。為了防止這個問題,可以規定,只有磁頭移動到最外側磁軌的時候才能往內移動,移動到最內側磁軌的時候才能往外移動。這就是掃描演算法(SCAN)的思想。由於磁頭移動的方式很像電梯,因此也叫電梯演算法。
優點:性能較好,平均尋道時間較短,不會產生飢餓現象
缺點:①只有到達最邊上的磁軌時才能改變磁頭移動方向②SCAN演算法對於各個位置磁軌的響應頻率不平均
掃描演算法(SCAN)中,只有到達最邊上的磁軌時才能改變磁頭移動方向,事實上,處理了184號磁軌的訪問請求之後就不需要再往右移動磁頭了。LOOK調度演算法就是為了解決這個問題,如果在磁頭移動方向上已經沒有別的請求,就可以立即改變磁頭移動方向。(邊移動邊觀察,因此叫LOOK)
優點:比起SCAN演算法來,不需要每次都移動到最外側或最內側才改變磁頭方向,使尋道時間進一步縮短
SCAN演算法對於各個位置磁軌的響應頻率不平均,而C-SCAN演算法就是為了解決這個問題。規定只有磁頭朝某個特定方向移動時才處理磁軌訪問請求,而返回時直接快速移動至起始端而不處理任何請求。
優點:比起SCAN來,對於各個位置磁軌的響應頻率很平均。
缺點:只有到達最邊上的磁軌時才能改變磁頭移動方向,另外,比起SCAN演算法來,平均尋道時間更長。
C-SCAN演算法的主要缺點是只有到達最邊上的磁軌時才能改變磁頭移動方向,並且磁頭返回時不一定需要返回到最邊緣的磁軌上。C-LOOK演算法就是為了解決這個問題。如果磁頭移動的方向上已經沒有磁軌訪問請求了,就可以立即讓磁頭返回,並且磁頭只需要返回到有磁軌訪問請求的位置即可。
優點:比起C-SCAN演算法來,不需要每次都移動到最外側或最內側才改變磁頭方向,使尋道時間進一步縮短
磁碟地址結構的設計:
Q:磁碟的物理地址是(柱面號,盤面號,扇區號)而不是(盤面號,柱面號,扇區號)
A:讀取地址連續的磁碟塊時,採用(柱面號,盤面號,扇區號)的地址結構可以減少磁頭移動消耗的時間
減少延遲時間的方法:
Step 1:進行低級格式化(物理格式化),將磁碟的各個磁軌劃分為扇區。一個扇區通常可分為頭、數據區域(如512B大小)、尾三個部分組成。管理扇區所需要的各種數據結構一般存放在頭、尾兩個部分,包括扇區校驗碼(如奇偶校驗、CRC循環冗餘校驗碼等,校驗碼用於校驗扇區中的數據是否發生錯誤)
Step 2:將磁碟分區,每個分區由若干柱面組成(即分為我們熟悉的C盤、D盤、E盤)
Step 3:進行邏輯格式化,創建文件系統。包括創建文件系統的根目錄、初始化存儲空間管理所用的數據結構(如位示圖、空閑分區表)
計算機開機時需要進行一系列初始化的工作,這些初始化工作是通過執行初始化程序(自舉程序)完成的
初始化程序可以放在ROM(只讀存儲器)中。ROM中的數據在出廠時就寫入了,並且以後不能再修改。ROM中只存放很小的「自舉裝入程序」,完整的自舉程序放在磁碟的啟動塊(即引導塊/啟動分區)上,啟動塊位於磁碟的固定位置,開機時計算機先運行「自舉裝入程序」,通過執行該程序就可找到引導塊,並將完整的「自舉程序」讀入內存,完成初始化。擁有啟動分區的磁碟稱為啟動磁碟或系統磁碟(C:盤)
對於簡單的磁碟,可以在邏輯格式化時(建立文件系統時)對整個磁碟進行壞塊檢查,標明哪些扇區是壞扇區,比如:在FAT表上標明。(在這種方式中,壞塊對操作系統不透明)。
對於復雜的磁碟,磁碟控制器(磁碟設備內部的一個硬體部件)會維護一個壞塊鏈表。在磁碟出廠前進行低級格式化(物理格式化)時就將壞塊鏈進行初始化。會保留一些「備用扇區」,用於替換壞塊。這種方案稱為扇區備用。且這種處理方式中,壞塊對操作系統透明