操作系統(tǒng)---設(shè)備管理.pptx
《操作系統(tǒng)---設(shè)備管理.pptx》由會(huì)員分享,可在線閱讀,更多相關(guān)《操作系統(tǒng)---設(shè)備管理.pptx(16頁(yè)珍藏版)》請(qǐng)?jiān)趨R文網(wǎng)上搜索。
1、10.4.1 10.4.1 設(shè)備文件的概念設(shè)備文件的概念傳統(tǒng)的Unix系統(tǒng)均把設(shè)備當(dāng)成文件來(lái)處理,因而可以用read()/write()對(duì)設(shè)備進(jìn)行操作。設(shè)備文件一般在/dev目錄下。Linux下的設(shè)備大體分為三類(lèi):(1)塊設(shè)備:一次I/O操作以固定大小的數(shù)據(jù)塊為單位,且可隨機(jī)存取。(2)字符設(shè)備:一次I/O操作存取數(shù)據(jù)量不固定,只能順序存取。(3)網(wǎng)卡:網(wǎng)卡是特殊處理的,它沒(méi)有對(duì)應(yīng)的設(shè)備文件。設(shè)備文件的屬性 文件名:如 hda1 類(lèi)型:是字符設(shè)備還是塊設(shè)備 主設(shè)備號(hào):主設(shè)備號(hào)相同的設(shè)備被同一設(shè)備驅(qū)動(dòng)程序處理。從設(shè)備號(hào):用來(lái)指明具體的設(shè)備mknod()創(chuàng)建設(shè)備文件,它的參數(shù)是上面提到的四個(gè)屬性。
2、Linux安裝完成之后已經(jīng)在/dev目錄下生成了絕大多數(shù)可能要用到的設(shè)備文件10.4.2 10.4.2 相關(guān)數(shù)據(jù)結(jié)構(gòu)相關(guān)數(shù)據(jù)結(jié)構(gòu)VFS與設(shè)備驅(qū)動(dòng)程序接口:namefopsblkdevs(塊設(shè)備)driver操作表chrdevs(字符設(shè)備)driver操作表namefopsdentryFiles_operationsinodeInode_operationsfd_arrayfilefiles_structtask_struct一、一、字符設(shè)備管理字符設(shè)備管理字符設(shè)備管理的主要數(shù)據(jù)結(jié)構(gòu)如下:struct device_struct const char*name;struct file_opera
3、tions*fops;static struct device_struct chrdevsMAX_CHRDEV;全局?jǐn)?shù)組chrdevs記錄了所有字符設(shè)備驅(qū)動(dòng)程序的名稱(chēng)name及其對(duì)應(yīng)的設(shè)備操作函數(shù)接口fops。數(shù)組的下標(biāo),則對(duì)應(yīng)于設(shè)備的主設(shè)備號(hào)。加載設(shè)備驅(qū)動(dòng)時(shí),設(shè)備在系統(tǒng)中的注冊(cè)是通過(guò)函數(shù)register_chrdev(),其原型如下:int register_chrdev(unsigned int major,const char*name,struct file_operations*fops);不 同 的 字 符 設(shè) 備 驅(qū) 動(dòng) 程 序 要 提 供 不 同 的file_operatio
4、ns實(shí)現(xiàn)。當(dāng)設(shè)備不再使用時(shí),可以通過(guò)unregister_chrdev()函數(shù)注銷(xiāo)。二、塊設(shè)備管理主要數(shù)據(jù)結(jié)構(gòu)有blkdevs和blk_dev:static struct const char*name;struct block_device_operations*bdops;/*特定于設(shè) 備的操作集*/blkdevsMAX_BLKDEV;struct blk_dev_struct request_queue_t request_queue;/*請(qǐng)求隊(duì)列*/queue_proc*queue;void*data;struct blk_dev_struct blk_devMAX_BLKDEV;數(shù)組
5、的下標(biāo)對(duì)應(yīng)設(shè)備驅(qū)動(dòng)程序的主設(shè)備號(hào),blkdevs 記錄設(shè)備文件名及相應(yīng)的操作集合,blk_dev 記錄各個(gè)設(shè)備的請(qǐng)求隊(duì)列。Request_fnBufferheadBufferheadBufferhead相關(guān)數(shù)據(jù)結(jié)構(gòu)blk_devblk_dev_structrequestrequest內(nèi)存外存三三 、buffer cachebuffer cache 塊設(shè)備的操作是以塊為基本單位,一般情 況塊的大小不會(huì)超過(guò)頁(yè)面的大小。buffer cache 是對(duì)物理磁盤(pán)塊的緩沖,一個(gè)buffer的大小等同于一個(gè)塊的大小 buffer cache目的目的:提高性能。每個(gè)buffer由buffer_head結(jié)構(gòu)描述
- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
10 積分
下載 | 加入VIP,下載共享資源 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開(kāi)word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 操作系統(tǒng) 設(shè)備管理