中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

深圳網(wǎng)站建設(shè)html5惠州seo怎么做

深圳網(wǎng)站建設(shè)html5,惠州seo怎么做,公司網(wǎng)站建設(shè)30元,以網(wǎng)站域名做郵箱目錄 1 磁盤結(jié)構(gòu) 2 邏輯抽象管理磁盤 2.1 邏輯抽象 2.2 管理磁盤 2.3 補充知識 3 軟硬連接 1 磁盤結(jié)構(gòu) 本篇的學(xué)習(xí)需要建立在大家在腦海中有一副磁盤的結(jié)構(gòu)才能進行下去,所以我會以圖解的方式為大家簡單講解一下,注:博主對這一部分并不是…

目錄

1 磁盤結(jié)構(gòu)

2 邏輯抽象管理磁盤

2.1 邏輯抽象

?2.2 管理磁盤

2.3 補充知識

3 軟硬連接


1 磁盤結(jié)構(gòu)

? ? ? ? 本篇的學(xué)習(xí)需要建立在大家在腦海中有一副磁盤的結(jié)構(gòu)才能進行下去,所以我會以圖解的方式為大家簡單講解一下,注:博主對這一部分并不是特別的了解,只能讓大家對于磁盤有一個聯(lián)想的空間。

? ? ? ? ?上圖為我們磁盤的機械結(jié)構(gòu),根據(jù)馮諾依曼體系的分類,這個東西被稱為外設(shè),而這個家伙又是外設(shè)當(dāng)中比較慢的哪一種結(jié)構(gòu),因為它有馬達等之類的機械結(jié)構(gòu),所以我們一般在對磁盤進行操作的時候都會比較慢,但重點不在這里。

? ? ? ? 對于我們了解來說,這個結(jié)構(gòu)重要的東西就是中間的那個圓盤和它旁邊像是針頭一樣的東西,他們倆就是我們所知的磁盤和磁針。

? ? ? ? 對于它的讀取我們有一個很形象的東西可以替代,那就是以前的留聲機,和光碟。我以留聲機為例,我們只要打開留聲機的開關(guān),放上黑膠,留聲機就會轉(zhuǎn)動這個黑膠片,如果此時我們將留聲機的針頭放到黑膠片上,這時,留聲機就能夠發(fā)出聲音了。同理,我們的磁盤也是一樣的操作,通過磁盤旋轉(zhuǎn)以及磁針讀取內(nèi)容就能實現(xiàn)在磁盤的讀取和寫入了。

? ? ? ? 再具體看我們的上圖,上面的磁盤課磁針并不只是一個,而是有多個疊加起來的,并且它們由各自的馬達同軸轉(zhuǎn)動,也就能夠存更多的數(shù)據(jù)了。

? ? ? ? ?單個盤面可以被抽象為上圖結(jié)構(gòu),整個磁盤是由一個一個的小扇區(qū)組成。雖然不同磁道的扇區(qū)大小并不相同,但是它們的大小都是一模一樣的(不絕對,有些盤大小不一樣),為512byte。

? ? ? ? 然后i每一個扇區(qū)都是由很多的小bit位組成,也就能存我們的數(shù)據(jù)了。

? ? ? ? 那么有這么多的扇區(qū),這么多的磁道,這么多的扇面,我們應(yīng)該如何去查找我們需要的數(shù)據(jù)呢?難道是依次掃描文件?很明顯不是的。

? ? ? ? 其實磁盤文件的查詢就像是我們到圖書館找一本書一樣,他是被規(guī)劃好的,首先我們得知到我們要找的書的大類是什么?也就是通過磁針去匹配那一塊磁盤;然后得知我們的書在哪一個大書架里面,也就是匹配我們對應(yīng)的磁道;最后找到大書架里的小書架,查找我們對應(yīng)的書籍,也就是找到扇區(qū)去查找我們對應(yīng)的數(shù)據(jù)。這樣就能實現(xiàn)我們的查找操作,也被我們稱為磁頭(header)、柱面(cylinder)、扇區(qū)(sector)查找方式————CHS。

2 邏輯抽象管理磁盤

? ? ? ? 通過上面對于磁盤結(jié)構(gòu)的簡單講解,相信大伙對于磁盤也是有了一點點概念了,那么就能開始我們本篇的重點了。

? ? ? ? 根據(jù)我上面講解如果OS能夠通過CHS去訪問磁盤的任意一個位置,那么是否表示OS就是這樣做的呢?答案肯定不是,首先以馮諾依曼體系他就跑不過去,磁盤是外設(shè)欸,我們的OS只能重內(nèi)存當(dāng)中讀取內(nèi)容,那肯定不是;從效率而言也不可能,磁盤的可是一個機械結(jié)構(gòu),他能跟上我們操作系統(tǒng)的運行速度?別開玩笑了,肯定跟不上啊;從硬件角度理解這也是不科學(xué)的,如果OS直接使用了這一個地址,那么一旦硬件發(fā)生了改變,那么原本的操作系統(tǒng)也會被改變了,整個文件操作就會被變得亂七八糟;而且一個扇區(qū)就只有512字節(jié),但是我們OS每一次進行IO操作就是以4KB為一個基本單位,這兩者之間不能直接對應(yīng)起來。綜上OS內(nèi)部一定不是通過CHS尋址。OS一定還有一套其它的方式,來進行塊方式的訪問。

2.1 邏輯抽象

? ? ? ? 我們知道,磁盤的讀取是通過磁盤旋轉(zhuǎn),然后再由磁針去匹配,這一過程其實很像我們以前的老式錄音機的磁帶,將整個磁帶拉開,這是不是一條線性的直線磁帶?我們的磁盤也這樣理解,那么磁盤是不是也是一條直線?連續(xù)的地址還是連續(xù)的,根本不影響他的讀取。(這讓我想起了以前學(xué)高數(shù)積分的日子,哈哈)。

? ? ? ? 所以既然是一條線性,那我們可以將其看成什么東西?對應(yīng)我們的代碼層面。數(shù)組是不是,這不就是一個大數(shù)組嗎?既然是數(shù)組,那么我們不久能夠輕松的將其管理起來咯。這一步就是管理操作最重要的先描述、在組織。

? ? ? ? 我們有多個磁盤,也就有了多個大數(shù)組,每一個大數(shù)組上面有很多很多的磁道,每一個磁道上面都有很多的小扇區(qū)。也就是下圖結(jié)構(gòu):

?

? ? ? ? ?但是呢,我之前不是說了OS在進行IO操作的時候每一次會有4KB大小的數(shù)據(jù)嘛,但是這每一個扇區(qū)不久只有512byte嗎,這豈不是每次讀取都是讀起來很虧?

? ? ? ? 所以這個時候我們就又做了另外一件事情,那就是每八個扇區(qū)就構(gòu)成一個數(shù)據(jù)塊,那么我們下標(biāo)訪問例如arr[0],就能夠讀取8個扇區(qū)的內(nèi)容,也就能將IO操作的4KB數(shù)據(jù)讀取滿。

? ? ? ? ?也就變成了上圖的情況。

? ? ? ? 這個時候我們就初步的將磁盤的物理邏輯到線程邏輯的抽象過程,因為數(shù)組天然有一個下標(biāo),所以想要定位一個扇區(qū),只需要知道它的某一個下標(biāo)就可以了。并且我們稱這樣的一個地址為邏輯塊地址(logic block address)LBA。

? ? ? ? 假設(shè)我們要找一個扇區(qū),已知數(shù)組的下標(biāo)是6500,每一個扇面有5000數(shù)組塊,每一個磁道有1000個數(shù)據(jù)塊,請問要找的扇區(qū)在哪里?

? ? ? ? 這個問題很簡單,既然下標(biāo)是6500,那就表示了我們要找的是第2個磁面,我們就排除了5000個數(shù)據(jù)塊,現(xiàn)在只剩下1500個,每一個磁道有1000個數(shù)據(jù)塊,那么表示我們的數(shù)據(jù)塊在第二個磁道,現(xiàn)在只剩下500個數(shù)據(jù)塊,那么就找到了該扇區(qū)在哪里了:第二面第二磁道的第500個數(shù)據(jù)塊。該數(shù)據(jù)塊有8個扇區(qū),我們要的扇區(qū)一定在里面。

? ? ? ? 上述問題完美的呈現(xiàn)了LBA和CHS的相互轉(zhuǎn)換,也實現(xiàn)了對數(shù)組下標(biāo)的管理到磁盤內(nèi)存的管理的完美過度,并直接的解除了操作系統(tǒng)和磁盤的耦合關(guān)系。

?2.2 管理磁盤

? ? ? ? 對于OS來說,磁盤的大小實在是太大了,他不像是內(nèi)存只有十幾個G,他從理論上來說可以是無限大的,只要廠家想或者是項目需要。那么此時就需要一個合理的管理制度,光靠一個下標(biāo)是無法滿足這樣的需求的,所以就有了下圖:

? ? ? ? ?既然我們一個500G的磁盤內(nèi)存管理不過來,那么我分區(qū)可以把,我分成5個100G的小磁盤內(nèi)存,我嫌棄100G也大了,那么我再對這個區(qū)域進行劃分,分組可以吧。這樣這就成功的減少了管理這整個磁盤的消耗。

? ? ? ? 為什么能這么做呢?那是因為磁盤其實是一個很單一的東西,它的結(jié)構(gòu)都是一樣的,只要我們管理好了一個組,那么等于我們能夠管理好所有組,我們管理好了所有組,就能管理好一個區(qū),只要管理好了一個區(qū),等于我們能夠管理好所有區(qū),也就表示我們管理好了任意大小的磁盤。

? ? ? ? 那么接下來就是了解這每一個組內(nèi)的各個功能塊都是干什么用的了。

Boot Block:

? ? ? ? Boot Block其實就是啟動塊,我們電腦在開機的時候調(diào)用的就是這一塊的內(nèi)容,如果沒有了這一塊的數(shù)據(jù),那么我們電腦就不能正常開機了。

Super Blcok:

? ? ? ? 超級塊,里面存了我們組內(nèi)的block和inode的總量,未使用的block和inode的數(shù)量,一個block和inode的大小,最后一次掛載的時間,最近依次寫入數(shù)據(jù)的時間,最近一次檢驗磁盤的時間等其它文件系統(tǒng)的相關(guān)信息。并且,每一個組都有一個super block,且這些塊是相連的,也就是更改一個全部都會被更改。這樣做的目的也就是為了保護好數(shù)據(jù)不被丟失。防止因為一個塊的錯誤導(dǎo)致所有的文件信息不可讀取。也就是做好備份。

Group Descriptor Table:

? ? ? ??組內(nèi)描述符,描述塊組屬性。一般而言,一個文件內(nèi)部所有屬性的集合有128個字節(jié),一個文件也對應(yīng)一個Inode,每一個組每一個分區(qū)都會有大量的indoe結(jié)點,需要有一個區(qū)域準(zhǔn)們保存該Group內(nèi)的所有文件的Inode結(jié)點。

Data Blocks:

? ? ? ??數(shù)據(jù)塊,也就是我們之前劃分這么久的4KB一個的小磁盤塊,用于存儲數(shù)據(jù)。

Block Bitmap:

? ? ? ??數(shù)據(jù)塊位圖,用于表示我們的某個數(shù)據(jù)塊是否被使用,用0/1表示,并且位圖的位置就是數(shù)據(jù)塊所在的下標(biāo)。

Inode Bitmap:

? ? ? ??結(jié)點位圖,所謂結(jié)點位圖就是表示這個文件結(jié)點是否被使用,與數(shù)據(jù)塊位圖相相似。

Inode Table:

? ? ? ??用于存放我們的Inode結(jié)點,每一個結(jié)點都是大小為128byte大小的結(jié)構(gòu)體,里面存放了文件的各種屬性。

? ? ? ? ?知道了上述塊的作用之后,那么我們應(yīng)該如何理解一個文件的存儲呢?

? ? ? ? 假設(shè)我們要創(chuàng)建一個新文件:

1. 首先內(nèi)核要找到一個空閑的Inode結(jié)點,將文件的信息寫入。

2. 如果這個文件需要三個數(shù)據(jù)塊,那么內(nèi)核就會找3個空閑數(shù)據(jù)塊,依次寫入數(shù)據(jù)。

3. 根據(jù)數(shù)據(jù)塊的使用,內(nèi)核在Inode上的磁盤分布區(qū)記錄了上述塊列表。

4. 添加文件名到目錄,用Inode Num和文件名相互作為關(guān)鍵字查找。

2.3 補充知識

? ? ? ? 對于OS來說,它找文件只是憑借inode num,那么文件名又是什么?他豈不是沒意義?話不能這么說,文件名至少還有一個作用————給我們看的,我們總不能拿著一堆數(shù)字去看這個這個文件吧,可太難受。

? ? ? ? 還記得嗎,linux下一切皆文件,那么目錄算不算文件?算當(dāng)然算,它也有它自己的inode num,這時肯定的,問題是他這個文件用來存什么?其實這個問題我們只需要好好想想目錄里面有什么就能想到了,目錄下面無非就是文件或則另外一個目錄嘛,那么存的數(shù)據(jù)就一定是這些文件的某些相關(guān)內(nèi)容,而這個內(nèi)容就是文件名和inode num對應(yīng)的映射關(guān)系,這兩個互相為Key值,都能找到相應(yīng)的文件。

? ? ? ? ?那么也就表示我們在訪問一個文件的時候,我們是在特定目錄下訪問的,只要在當(dāng)前目錄下,就能夠找到某個文件的inode編號,所以O(shè)S在加載數(shù)據(jù)進入內(nèi)存的操作就是通過通過inode num逐漸向下查找,直到找到需要的文件,然后加載到OS,最后顯示到顯示器當(dāng)中。

? ? ? ? 然后呢,Inode和數(shù)據(jù)塊一定是由某些聯(lián)系的,它的練習(xí)就是如下偽代碼:

struct inode

{
? ? ? ? int inode number;

? ? ? ? int ref _count;

? ? ? ? mode_t mode;

? ? ? ? int uid;

? ? ? ? int gid;

? ? ? ? int size;

? ? ? ? data;

? ? ? ? ......

? ? ? ? int datablock[NUM]

}

? ? ? ? 上代碼中我加黑的部分就是inode和數(shù)據(jù)塊之間的聯(lián)系,這個數(shù)組存的數(shù)據(jù)就是數(shù)據(jù)塊的下標(biāo),根據(jù)我們的需要,可以存無線大的數(shù)據(jù)。為什么?這個下標(biāo)不是有限的嗎?哪里會讓你一個文件開這么大的空間,那我就得說一個很牛的二級索引和三級索引了,二級索引指向一個數(shù)據(jù)塊,這個數(shù)據(jù)塊不存其他數(shù)據(jù),只存其它數(shù)據(jù)塊的下標(biāo),那么就能夠擴大存儲數(shù)據(jù)的大小,三級索引呢?三級索引全部存二級索引,二級全部存一級索引,那這個數(shù)據(jù)可能存太大了,基本上是無限了。

? ? ? ? 當(dāng)然,從上面的各個解釋上來看,inode和數(shù)據(jù)塊好像是獨立的。那么有沒有可能inode用完了,或則是數(shù)據(jù)塊用完了的情況?當(dāng)然有,但是如何避免呢?沒有辦法,有了這種情況就等死吧。博主沒有開玩笑,只要有了這種情況要么換一個磁盤,那么給他再買一個磁盤擴容。

3 軟硬連接

? ? ? ? 在linux下通過ls -i命令可以得到文件的inode num和inode結(jié)構(gòu)體內(nèi)部的ref,也就是該文件被幾個文件指向。

? ? ? ? ?當(dāng)我們有了一個test.txt文件,通過軟連接 ln -s test.txt 新文件名就能構(gòu)成一個軟連接,軟連接是重新開辟一個新的文件,我們從inode num可以看出來。

? ? ? ? 通過ln test.txt 新文件名就能構(gòu)成硬連接,硬連接沒有重新搞一個文件出來,因為他與源文件的inode num一樣,并且ref增加變?yōu)榱?,唯一做的事情就是在目錄的數(shù)據(jù)塊的映射表當(dāng)中添加了一個新的映射關(guān)系。


? ? ? ? 以上就是博主對本節(jié)的全部理解了,希望能夠幫助到大家。?

http://www.risenshineclean.com/news/64881.html

相關(guān)文章:

  • 做外貿(mào)收費的網(wǎng)站seo交流論壇
  • 買公司的網(wǎng)站建設(shè)北京seo顧問外包
  • 盤古建站模板seo研究中心論壇
  • 河南官網(wǎng)網(wǎng)站建設(shè)廣告語
  • 互動網(wǎng)站設(shè)計與制作提供seo顧問服務(wù)適合的對象是
  • 上海裝修公司做網(wǎng)站seo日常工作
  • 小網(wǎng)站建設(shè)360搜索引擎
  • 西藏做網(wǎng)站找誰網(wǎng)址關(guān)鍵詞查詢網(wǎng)站
  • 一諾建站廣東省人大常委會
  • 自貢做網(wǎng)站的公司百度快速收錄賬號購買
  • ftp網(wǎng)站目錄深圳關(guān)鍵詞優(yōu)化公司哪家好
  • 嘉興南湖區(qū)優(yōu)秀營銷型網(wǎng)站建設(shè)關(guān)鍵詞優(yōu)化計劃
  • 政府網(wǎng)站建設(shè)依據(jù)怎么做網(wǎng)站宣傳
  • 網(wǎng)站建設(shè)主要內(nèi)容包括北京網(wǎng)站建設(shè)運營
  • 順德網(wǎng)站建設(shè)公司全球搜鉆是什么公司
  • 建設(shè)廳官方網(wǎng)站網(wǎng)絡(luò)營銷軟件大全
  • 潛山云建站網(wǎng)站建設(shè)東莞網(wǎng)絡(luò)推廣
  • 建設(shè)銀行卡授權(quán)網(wǎng)站管理今日疫情實時數(shù)據(jù)
  • 做排名的網(wǎng)站哪個好seo軟件系統(tǒng)
  • 自應(yīng)式網(wǎng)站沈陽seo排名公司
  • 怎么和其它網(wǎng)站做友情鏈接南昌網(wǎng)站優(yōu)化公司
  • 國家企業(yè)信用信息公示系統(tǒng)官網(wǎng)(全國)阿里seo排名優(yōu)化軟件
  • 紹興網(wǎng)站設(shè)計騰訊會議價格
  • 上海做公司網(wǎng)站的公司企業(yè)培訓(xùn)內(nèi)容包括哪些內(nèi)容
  • wordpress回收站+恢復(fù)公司網(wǎng)站排名
  • 曲阜做網(wǎng)站的公司360優(yōu)化大師app下載
  • 建網(wǎng)站代碼百度搜索風(fēng)云榜排名
  • 怎么做網(wǎng)站教程+用的工具短視頻代運營合作方案
  • 資源下載站 wordpress軟文營銷ppt
  • 做效果圖有哪些網(wǎng)站線上營銷推廣方法