• <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

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            中文字幕久久精品| 久久精品国产99久久香蕉| 三级三级久久三级久久| 中文字幕无码免费久久| 国产精品久久久久影视不卡| 狠狠色丁香婷婷综合久久来来去| 欧美亚洲另类久久综合婷婷| 无码人妻精品一区二区三区久久| 91精品国产高清久久久久久91| 久久综合久久综合亚洲| 久久久久中文字幕| 久久无码中文字幕东京热| 91精品免费久久久久久久久| 一本久道久久综合狠狠爱| 久久国产美女免费观看精品| A狠狠久久蜜臀婷色中文网| 久久久久亚洲AV无码专区网站 | 久久精品免费网站网| 日本欧美久久久久免费播放网| 久久精品无码一区二区日韩AV| 麻豆AV一区二区三区久久| 国内精品伊人久久久影院| 久久国产成人午夜AV影院| 国产产无码乱码精品久久鸭| 热re99久久6国产精品免费| 久久久久久精品成人免费图片| 久久亚洲国产精品123区| 亚洲狠狠久久综合一区77777| 久久久久国产精品熟女影院| 77777亚洲午夜久久多喷| 亚洲国产精品狼友中文久久久| 久久久精品久久久久特色影视| 麻豆精品久久精品色综合| 99国产精品久久| 久久综合九色综合97_久久久| 狠狠色婷婷综合天天久久丁香 | 久久久91精品国产一区二区三区| 亚洲欧美日韩久久精品第一区| 久久大香萑太香蕉av| 成人久久免费网站| 亚洲午夜无码久久久久|