• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 297,  comments - 15,  trackbacks - 0

            字符設(shè)備還是塊設(shè)備的定義屬于操作系統(tǒng)的設(shè)備訪問層,與實際物理設(shè)備的特性無必然聯(lián)系。

            設(shè)備訪問層下面是驅(qū)動程序,所以只要驅(qū)動程序提供的方式,都可以。也就是說驅(qū)動程序支持stream方式,那么就可以用這種方式訪問,驅(qū)動程序如果還支持block方式,那么你想用哪種方式訪問都可以,典型的比如硬盤式的裸設(shè)備,兩種都支持塊設(shè)備(block device):是一種具有一定結(jié)構(gòu)的隨機存取設(shè)備,對這種設(shè)備的讀寫是按塊進(jìn)行的,他使用緩沖區(qū)來存放暫時的數(shù)據(jù),待條件成熟后,從緩存一次性寫入設(shè)備或從設(shè)備中一次性讀出放入到緩沖區(qū),如磁盤和文件系統(tǒng)等

            字符設(shè)備(Character device):這是一個順序的數(shù)據(jù)流設(shè)備,對這種設(shè)備的讀寫是按字符進(jìn)行的,而且這些字符是連續(xù)地形成一個數(shù)據(jù)流。他不具備緩沖區(qū),所以對這種設(shè)備的讀寫是實時的,如終端、磁帶機等。
            系統(tǒng)中能夠隨機(不需要按順序)訪問固定大小數(shù)據(jù)片(chunks)的設(shè)備被稱作塊設(shè)備,這些數(shù)據(jù)片就稱作塊。最常見的塊設(shè)備是硬盤,除此以外,還有軟盤驅(qū)動器、CD-ROM驅(qū)動器和閃存等等許多其他塊設(shè)備。注意,它們都是以安裝文件系統(tǒng)的方式使用的——這也是塊設(shè)備一般的訪問方式。

            另一種基本的設(shè)備類型是字符設(shè)備。字符設(shè)備按照字符流的方式被有序訪問,像串口和鍵盤就都屬于字符設(shè)備。如果一個硬件設(shè)備是以字符流的方式被訪問的話,那就應(yīng)該將它歸于字符設(shè)備;反過來,如果一個設(shè)備是隨機(無序的)訪問的,那么它就屬于塊設(shè)備。

            這兩種類型的設(shè)備的根本區(qū)別在于它們是否可以被隨機訪問——換句話說就是,能否在訪問設(shè)備時隨意地從一個位置跳轉(zhuǎn)到另一個位置。舉個例子,鍵盤這種設(shè)備提供的就是一個數(shù)據(jù)流,當(dāng)你敲入“fox”這個字符串時,鍵盤驅(qū)動程序會按照和輸入完全相同的順序返回這個由三個字符組成的數(shù)據(jù)流。如果讓鍵盤驅(qū)動程序打亂順序來讀字符串,或讀取其他字符,都是沒有意義的。所以鍵盤就是一種典型的字符設(shè)備,它提供的就是用戶從鍵盤輸入的字符流。對鍵盤進(jìn)行讀操作會得到一個字符流,首先是“f”,然后是“o”,最后是“x”,最終是文件的結(jié)束(EOF)。當(dāng)沒人敲鍵盤時,字符流就是空的。硬盤設(shè)備的情況就不大一樣了。硬盤設(shè)備的驅(qū)動可能要求讀取磁盤上任意塊的內(nèi)容,然后又轉(zhuǎn)去讀取別的塊的內(nèi)容,而被讀取的塊在磁盤上位置不一定要連續(xù),所以說硬盤可以被隨機訪問,而不是以流的方式被訪問,顯然它是一個塊設(shè)備。

            內(nèi)核管理塊設(shè)備要比管理字符設(shè)備細(xì)致得多,需要考慮的問題和完成的工作相比字符設(shè)備來說要復(fù)雜許多。這是因為字符設(shè)備僅僅需要控制一個位置—當(dāng)前位置—而塊設(shè)備訪問的位置必須能夠在介質(zhì)的不同區(qū)間前后移動。所以事實上內(nèi)核不必提供一個專門的子系統(tǒng)來管理字符設(shè)備,但是對塊設(shè)備的管理卻必須要有一個專門的提供服務(wù)的子系統(tǒng)。不僅僅是因為塊設(shè)備的復(fù)雜性遠(yuǎn)遠(yuǎn)高于字符設(shè)備,更重要的原因是塊設(shè)備對執(zhí)行性能的要求很高;對硬盤每多一分利用都會對整個系統(tǒng)的性能帶來提升,其效果要遠(yuǎn)遠(yuǎn)比鍵盤吞吐速度成倍的提高大得多。另外,我們將會看到,塊設(shè)備的復(fù)雜性會為這種優(yōu)化留下很大的施展空間.

            from:

            http://os.51cto.com/art/200909/151133.htm

            posted on 2010-01-28 15:00 chatler 閱讀(416) 評論(0)  編輯 收藏 引用 所屬分類: linux kernel
            <2010年3月>
            28123456
            78910111213
            14151617181920
            21222324252627
            28293031123
            45678910

            常用鏈接

            留言簿(10)

            隨筆分類(307)

            隨筆檔案(297)

            algorithm

            Books_Free_Online

            C++

            database

            Linux

            Linux shell

            linux socket

            misce

            • cloudward
            • 感覺這個博客還是不錯,雖然做的東西和我不大相關(guān),覺得看看還是有好處的

            network

            OSS

            • Google Android
            • Android is a software stack for mobile devices that includes an operating system, middleware and key applications. This early look at the Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.
            • os161 file list

            overall

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            国产精品久久久久久搜索| 久久www免费人成看国产片| 91秦先生久久久久久久| 奇米影视7777久久精品人人爽| 久久亚洲国产午夜精品理论片| 18岁日韩内射颜射午夜久久成人| 久久精品亚洲福利| 国产精品热久久无码av| 久久精品国产亚洲AV大全| 国产成年无码久久久免费| 午夜精品久久久久9999高清| 久久99亚洲综合精品首页 | 7777久久久国产精品消防器材| 国产精品综合久久第一页| 国产精品成人久久久久久久| 久久精品国产亚洲网站| 久久精品国产99国产精品澳门 | 久久天堂电影网| 国产精品18久久久久久vr| 久久国产精品99久久久久久老狼| 国产精品久久永久免费| 亚洲国产精品久久久久婷婷软件 | 国产精品99久久久久久宅男| 伊人丁香狠狠色综合久久| 久久996热精品xxxx| 亚洲精品美女久久久久99小说| 久久天天躁夜夜躁狠狠| 亚洲精品蜜桃久久久久久| 亚洲中文字幕久久精品无码喷水| 久久精品国产久精国产思思| 久久久久久久尹人综合网亚洲 | 久久久久亚洲精品天堂久久久久久| 精品久久久久久久中文字幕| 欧美精品九九99久久在观看| 亚洲va国产va天堂va久久| 久久se精品一区二区| 久久综合九色综合久99| 久久亚洲精品成人av无码网站| 精品免费tv久久久久久久| 日本久久中文字幕| 国产精品美女久久久久 |