freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

操作系統(tǒng)課件_設(shè)備管理(文件)

 

【正文】 扇區(qū)定位時(shí)間(即旋轉(zhuǎn)延遲時(shí)間)216。 n — 磁頭移過 n條磁道所花時(shí)間之和,因?yàn)榇蓬^移過每一條磁道的時(shí)間是相同的,所以可以用磁道數(shù)來模擬252。 實(shí)際信息傳輸時(shí)間從指定扇區(qū)讀寫數(shù)據(jù)的時(shí)間由于柱面定位時(shí)間在訪問時(shí)間中占主要部分,合理組成磁盤數(shù)據(jù)的存儲(chǔ)位置可提高磁盤 I/O性能。若柱面定位時(shí)間為 20ms,旋轉(zhuǎn)延遲時(shí)間為 , 32扇區(qū)數(shù)據(jù)傳送時(shí)間為 ?!?隨機(jī)分布時(shí)的訪問時(shí)間為連續(xù)分布時(shí)的 。尋道時(shí)間的 衡量指標(biāo) :磁頭移動(dòng)的磁道數(shù)來衡量216。 最短尋道時(shí)間優(yōu)先SSTF( Shortest Seek Time First):訪問的磁道與當(dāng)前所在的磁道距離最短216。 這樣的設(shè)備沒有移動(dòng)部件 ,因此,比傳統(tǒng)的盤更快更可靠。252。252。Linux系統(tǒng)的 I/O軟件采用兩層結(jié)構(gòu)設(shè)計(jì)。 文件系統(tǒng) 接受用戶對(duì)設(shè)備文件的請(qǐng)求并進(jìn)行相應(yīng)的判別處理,然后將文件操作映射到設(shè)備驅(qū)動(dòng)的 I/O操作上,由 設(shè)備驅(qū)動(dòng)程序驅(qū)動(dòng)控制器完成具體的 I/O操作。接口方式既可以是靜態(tài)的也可以是動(dòng)態(tài)的。系統(tǒng)通過處理文件的接口 — 虛擬文件系統(tǒng) VFS來管理和控制各種設(shè)備。 例如, 用同一 write()系統(tǒng)調(diào)用既可以向普通文件寫入數(shù)據(jù),也可以通過 write()向 /dev/lp0設(shè)備文件寫入數(shù)據(jù),從而把數(shù)據(jù)發(fā)給打印機(jī)。crwroot1018/dev/hdccrwrootJandspbrwrw1Janfd0brwrw1Janfd0CompaQn 用戶用設(shè)備的 文件名 來指定設(shè)備,而內(nèi)核則使用 主設(shè)備號(hào)( major no.)和從設(shè)備號(hào) (minor no.)來標(biāo)識(shí)一個(gè)具體的設(shè)備。 主設(shè)備號(hào)與設(shè)備的驅(qū)動(dòng)程序一一對(duì)應(yīng),而次設(shè)備號(hào)供驅(qū)動(dòng)程序內(nèi)部使用。 或硬件設(shè)備的某一物理或邏輯分區(qū),例如磁盤分區(qū) /dev/hda2252。n 普通文件的 file_operations中是標(biāo)準(zhǔn)的文件操作,而設(shè)備文件是設(shè)備驅(qū)動(dòng)提供的一組專門針對(duì)該類設(shè)備的操作。不同于 windows驅(qū)動(dòng)程序, Linux設(shè)備驅(qū)動(dòng)程序在與硬件設(shè)備之間建立了標(biāo)準(zhǔn)的抽象接口,用戶可以像處理普通文件一樣,通過 open, close, read, write等系統(tǒng)調(diào)用對(duì)設(shè)備進(jìn)行操作,大大簡(jiǎn)化了 linux驅(qū)動(dòng)程序的開發(fā)。252。* 75動(dòng)態(tài)加載 利用了 LINUX的 module特性,可以在系統(tǒng)啟動(dòng)后用 insmod命令把驅(qū)動(dòng)程序( .o文件)添加上去,在不需要的時(shí)候用 rmmod命令來卸載。n 在加載驅(qū)動(dòng)程序要用到有關(guān)模塊的命令:lsmod、 modprob、 insmod、 rmmod、 modinfo。使用 modprobe命令,可以智能插入模塊,它可以根據(jù)模塊間依存關(guān)系,以及 /etc/文件中的內(nèi)容智能插入模塊。* 77設(shè)備驅(qū)動(dòng)程序與內(nèi)核的接口是 file_operations結(jié)構(gòu),它通過文件系統(tǒng)為用戶進(jìn)程和內(nèi)核其他部分提供統(tǒng)一的接口,將對(duì)設(shè)備的操作通過文件系統(tǒng)映射到具體的設(shè)備驅(qū)動(dòng)程序。 *open: 打開設(shè)備準(zhǔn)備進(jìn)行 I/O操作。 *read: 讀,參數(shù) buf為存放讀取結(jié)果的緩沖區(qū), count為所要讀取的數(shù)據(jù)長(zhǎng)度。 *write: 寫,與 read類似。 *ioctl: 進(jìn)行讀、寫以外的其他控制操作。 應(yīng)用程序 一般有一個(gè) main 函數(shù),從頭到尾執(zhí)行一個(gè)任務(wù);216。它在驅(qū)動(dòng)退出時(shí)被調(diào)用。 編譯驅(qū)動(dòng)模塊216。linux/include__initreturn__exitWorld! \n)。編寫驅(qū)動(dòng)源碼216。* 82驅(qū)動(dòng)程序源代碼結(jié)構(gòu)分析n 頭文件:大多的 Linux驅(qū)動(dòng)程序需要包含三個(gè)頭文件。 include linux/:定義了內(nèi)核模塊相關(guān)的函數(shù)、變量及宏。intWorld! n)。216。216。hello_exit(void){}module_exit(hello_exit)。 MODULE_LICENSE(GPL)。=M=$(PWD).PHONY:cleanclean:rm*.koMakefile文件的內(nèi)容可以簡(jiǎn)單編寫如下內(nèi)容:編寫 Makefile文件* 86make:modules,MODPOSTCCLDLeaving* 87使用 ls命令查看當(dāng)前目錄可以看到如下信息。drvhello]lsmodModuleUsed1132drvhello]catJLUZH使用 insmod來加載該驅(qū)動(dòng)模塊,并且使用相關(guān)的命令來驗(yàn)證或查看該驅(qū)動(dòng)模塊運(yùn)行的信息。Hello210Size[rootJLUZHdrvhello]drvhello]`/usr/src/39。/root/drvhello/modules2.CCdirectory*.tmp_versions*.C:= Hello World例子中的版權(quán)信息是 GPL。Goodbyevoid當(dāng)移除一個(gè)內(nèi)核模塊時(shí)這個(gè)函數(shù)被調(diào)用執(zhí)行清理工作。0。hello_init(void){printk(KERN_ALERT 初始化:任何一個(gè)驅(qū)動(dòng)都去需要提供一個(gè)初始化函數(shù),當(dāng)驅(qū)動(dòng)加載到內(nèi)核中時(shí),這個(gè)初始化函數(shù)就會(huì)被自動(dòng)執(zhí)行,初始化的函數(shù)原型定義為: typedef int (*initcall_t)(void)。 include linux/:定義了驅(qū)動(dòng)的初始化和退出相關(guān)的函數(shù)252。216。module_exit(hello_exit)。printk(KERN_ALERT}staticHellolinux/static 驅(qū)動(dòng)程序框架* 81// 編寫驅(qū)動(dòng)源碼216。 將初始化函數(shù)加入內(nèi)核全局初始化函數(shù)列表中,在內(nèi)核初始化時(shí)執(zhí)行驅(qū)動(dòng)的初始化函數(shù),從而完成驅(qū)動(dòng)的初始化和注冊(cè),之后驅(qū)動(dòng)便停止等待被應(yīng)用軟件調(diào)用。 *release: 即 close操作。 *lseek: 定位讀 /寫位置。對(duì)于字符型,要求讀取的字節(jié)數(shù)和返回的實(shí)際讀取字節(jié)數(shù)都必須是 inodei_blksize的倍數(shù)。如果驅(qū)動(dòng)程序沒有提供 open入口,則只要/dev/driver文件存在就認(rèn)為打開成功。 寫驅(qū)動(dòng)程序的任務(wù)之一就是完成file_operations中的函數(shù)指針。n rmmod命令: 如果后面有 autoclean,則該模塊可以被 rmmod a命令自動(dòng)清除。* 76n lsmod命令: lsmod查看當(dāng)前加載到內(nèi)核中的所有驅(qū)動(dòng)模塊,同時(shí)提供其它一些信息,比如其它模塊是否在使用另一個(gè)模塊。在嵌入式產(chǎn)品里可以先用動(dòng)態(tài)加載的方式來調(diào)試,調(diào)試完畢后再編譯到內(nèi)核里。252。216。* 733 Linux設(shè)備驅(qū)動(dòng)程序Linux設(shè)備驅(qū)動(dòng)程序是一組數(shù)據(jù)結(jié)構(gòu)和函數(shù),這些數(shù)據(jù)結(jié)構(gòu)和函數(shù)通過定義的接口控制一個(gè)或多個(gè)設(shè)備。 如,建立一個(gè)設(shè)備文件 /tmp/disk,其類型為塊設(shè)備,設(shè)備號(hào)為( 3, 0),那么內(nèi)核認(rèn)為它與 /dev/hda等價(jià)* 71設(shè)備文件的創(chuàng)建每個(gè)設(shè)備文件包括:名字、類型、設(shè)備號(hào)( 主設(shè)備號(hào):次設(shè)備號(hào) )同一設(shè)備驅(qū)動(dòng)程序不同設(shè)備mknod()系統(tǒng)調(diào)用用來創(chuàng)建設(shè)備文件設(shè)備文件名設(shè)備號(hào) 16位,主設(shè)備號(hào) :次設(shè)備號(hào)操作權(quán)限和設(shè)備類型其中設(shè)備類型指定:S_IFCHR或 S_IFBLK* 72TIPS!!與普通的文件一樣,每個(gè)打開的設(shè)備文件對(duì)應(yīng)一個(gè) file結(jié)構(gòu)、 VFS i節(jié)點(diǎn)以及文件操作集 file_operations。 例如,塊設(shè)備 (3,0)不同于字符設(shè)備 (3,0)設(shè)備文件通常可以表示252。 主設(shè)備號(hào)標(biāo)識(shí)設(shè)備的控制器,次設(shè)備號(hào)用來區(qū)分同一控制器下的不同設(shè)備實(shí)例。42,root02,root31cdromOctrootadbmouselrwxrwxrwxJan10,1 又如,命令 echo “Hello!” /dev/lp0 將會(huì)使打印機(jī)打印出一個(gè)字符串2. Linux設(shè)備文件 * 68Linux設(shè)備文件屬性每個(gè)設(shè)備文件有文件名、類型、權(quán)限、設(shè)備號(hào)等屬性。n 由于引入了設(shè)備文件這一概念, Linux為文件和設(shè)備提供了一致的用戶接口,對(duì)用戶來說,設(shè)備文件與普通文件并無區(qū)別。這種設(shè)計(jì)使得 Linux 系統(tǒng)的I/O軟件結(jié)構(gòu)既簡(jiǎn)潔又靈活。只要正確地實(shí)現(xiàn)了設(shè)備的驅(qū)動(dòng)程序,就可以把設(shè)備納入文件系統(tǒng)的管理之下。n 下層是與設(shè)備相關(guān)的軟件層,主要是設(shè)備驅(qū)動(dòng)程序和對(duì)應(yīng)的中斷處理程序。n Linux設(shè)備管理通常指的是 字符設(shè)備和塊設(shè)備 ,這里只介紹這兩類設(shè)備的管理技術(shù)。252。 * 64 Linux設(shè)備管理Linux設(shè)備管理的最突出的特點(diǎn)就是設(shè)備獨(dú)立性,即系統(tǒng)把設(shè)備統(tǒng)一當(dāng)作文件來看待,只要安裝它們的驅(qū)動(dòng)程序,就可以像使用文件一樣使用這些設(shè)備。 循環(huán)掃描算法( CSCAN):規(guī)定磁頭單向掃描,然后立即返回重新開始216。 FCFS、 SSTF、 SCAN、 CSCAN四種算法216。(例如,系統(tǒng)工具提供的 磁盤碎片整理工具 )應(yīng)采用一種合適的調(diào)度算法來使各進(jìn)程對(duì)磁盤的訪問時(shí)間最小,考慮到在調(diào)度進(jìn)程的過程中,只涉及到 磁頭的移動(dòng) ,所以:
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1