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

正文內(nèi)容

王雨晴-嵌入式系統(tǒng)論文(參考版)

2025-01-20 00:28本頁(yè)面
  

【正文】 對(duì)于有緩沖區(qū)的 I/O操作,一般是從緩沖區(qū)里讀數(shù)據(jù)。 read入口點(diǎn)。當(dāng)最后一次使用設(shè)備終結(jié)后,調(diào)用 close 子程序。 31 close 入口點(diǎn)。 open 子程序必須對(duì)將要進(jìn)行的 I/O 操作做好必要的準(zhǔn)備工作,如清除緩沖區(qū)等。打開(kāi)設(shè)備準(zhǔn)備 I/O操作。 在系統(tǒng)內(nèi)部, I/O 設(shè)備的存取通過(guò)一組固定的入口點(diǎn)來(lái)進(jìn)行,這組入口點(diǎn)是由每個(gè)設(shè)備的 設(shè)備驅(qū)動(dòng)程序提供的。中斷可以產(chǎn)生在任何一個(gè)進(jìn)程運(yùn)行的時(shí)候,因此在中斷服務(wù)程序被調(diào)用的時(shí)候,不能依賴(lài)于任何進(jìn)程的狀態(tài),也就不能調(diào)用任何與進(jìn)程運(yùn)行環(huán)境有關(guān)的函數(shù)。 中斷服務(wù)子程序,又稱(chēng) 為驅(qū)動(dòng)程序的下半部分。調(diào)用這部分是由于系統(tǒng)調(diào)用的結(jié)果。這部分驅(qū)動(dòng)程序僅在初始化的時(shí)候被調(diào)用一次。 設(shè)備驅(qū)動(dòng)程序可以分為三個(gè)主要組成部分 : 自動(dòng)配置和初始化子程序,負(fù)責(zé)檢測(cè)所要驅(qū)動(dòng)的硬件設(shè)備是否存在和是否能正常工作。主設(shè)備號(hào)唯一標(biāo)識(shí)了設(shè)備類(lèi)型,即設(shè)備驅(qū)動(dòng)程序類(lèi)型,它是塊設(shè)備表或字符設(shè)備表中設(shè)備表項(xiàng)的索引。顯然,本程序所驅(qū)動(dòng)的串行卡只能提供順序存取的功能,屬于是字符設(shè)備,因此后面的討論在兩種設(shè)備有所區(qū)別時(shí)都只涉及字符型設(shè)備接口。 字符設(shè)備接口支持面向字符的 I/O 操作,它不經(jīng)過(guò)系統(tǒng)的快速緩存,所以它們負(fù)責(zé)管理自己的緩沖區(qū)結(jié)構(gòu)。 UNIX對(duì)硬件設(shè)備支持兩個(gè)標(biāo)準(zhǔn)接口:塊特別設(shè)備文件和字符特別設(shè)備文件,通過(guò)塊(字符)特別設(shè)備文件存取的設(shè)備稱(chēng)為塊(字符)設(shè)備或具有塊(字符)設(shè)備接口。 最酷的應(yīng)用是如果你有 1G 的內(nèi)存,劃出 256M 來(lái)作為暫存區(qū) /tmp,如果很多程序用到 /tmp,那么你的系統(tǒng)性能會(huì)大大提高,而且重新啟動(dòng)后垃圾消失,真是一舉兩得。 后語(yǔ): 一定要記住保存 RamDisk 中有用的東西, 否則,重新啟動(dòng)后將化為烏有。所用的 WEB服務(wù)器是 RedHat 自帶的 Apache。 裝載 RamDisk , mke2fs /dev/ram0。 裝載 RamDisk模塊并設(shè)置大小為 20M, insmod rd rd_size=20220?;蛘咄ㄟ^(guò)作為 ismod 命令行參數(shù)來(lái)實(shí)現(xiàn)。 把下面這一行加到你的 文件中去 : ramdisk_size=10000 (或?qū)蟽?nèi)核寫(xiě)作 ramdisk=10000) 這樣你鍵入 LILO 命令并重新啟動(dòng)后,缺省的 RamDisk的大小將為 10M,下面是我的 /etc/: boot=/dev/hda map=/boot/map install=/boot/ prompt timeout=50 image=/boot/vmlinuz label=linux root=/dev/hda2 readonly ramdisk_size=10000 實(shí)際上,我只獲得了 9M多一點(diǎn)的 RamDisk,其余 被文件系統(tǒng)占用。 ( 2) 改變 RamDisk 大小的技巧? 為使用 RamDisk,你或者要將對(duì) RamDisk 的支持編譯到內(nèi)核中去,或者把它編譯為一個(gè)可裝載模塊。使用 mke2fs 命令可以 查知你所獲 RamDisk 的大小。內(nèi)核中對(duì) RamDisk 的配置選項(xiàng)是 CONFIG_BLK_DEV_RAM?,F(xiàn)在,你就可以把它作為一個(gè)磁盤(pán)分區(qū)使用了。這些 RamDisk 只有使用的時(shí)候才占用內(nèi)存。你所要作的就是格式化 RamDisk并把它裝載到一個(gè)目錄下。 ( 1) 創(chuàng)建和使用 RamDisk的方法。劃出部分內(nèi)存提高整體性能不亞于更換新的 CPU。那么為什么要用 RamDisk呢?假設(shè)有幾個(gè)文件要頻繁的使用,你如果將它們加到內(nèi)存當(dāng)中,程序運(yùn)行速度會(huì)大副提高,因?yàn)閮?nèi)存的讀寫(xiě)速度遠(yuǎn)高于硬盤(pán)。 26 vi /etc/X11/XF86Config 查找一下字符 Screen 在 Screen sections的開(kāi)始增加如下幾行 Section Screen Driver fbdev Device My Video Card Monitor My Monitor Subsection Display Depth 16 (色彩深度,必須與前面所選的顯示模式的色彩深度一致,必須 !) Modes default ViewPort 0 0 EndSubsection EndSection 讓 X 指向 XF86_FBDev cd /etc/X11 rm f X ln snf /usr/X11R6/bin/XF86_FBDev X Linux 下創(chuàng)建和使用 RamDisk 的技巧 先 介紹一下什么是 RamDisk。 這時(shí)如果 linux切換成圖形模式,并有一小企鵝 logo出現(xiàn),那就大功告成一半。 配置內(nèi)核編譯選項(xiàng) cd /usr/src/linux make menuconfig(命令行下),或 xconfig( XWindow 下)。 編譯一個(gè)支持 VESA frame buffer 的內(nèi)核 如果有現(xiàn) 成的支持 VESA frame buffer 的內(nèi)核可跳過(guò)這一步。如果你系統(tǒng)的 kernel版本比較低,請(qǐng)?jiān)? 等新版本 Linux 的安裝盤(pán)中找,一般在 RPMS里); ( 2) 、 XFree86 Framebuffer Server: XF86_FBDev ( ,藍(lán)點(diǎn) );如: /RedHat/RPMS/ 安裝這個(gè) RPM包: rpm ivh 這個(gè)包會(huì)在 /usr/X11R6/bin 下安裝一個(gè) XF86_FBDev 的服務(wù)器,后面我們會(huì)用到。 ( 4) .在 XF86Config 文件中為其配置一個(gè) Screen。 ( 2) .配置 lilo 的啟動(dòng)選項(xiàng),使內(nèi)核啟動(dòng)時(shí)能切換到指定的顯示模式 ?,F(xiàn)在市面上絕大部分新出的顯卡都支持 VESA 。這點(diǎn)和 SVGALib 不同, SVGALib 不支持 FrameBuffer,同時(shí)需要超級(jí)用戶(hù)權(quán)限。 167。主要的困難除了產(chǎn)生計(jì)劃本身外,進(jìn)一步說(shuō),每一時(shí)刻每一任務(wù)的參數(shù)都被修改,必須重建計(jì)劃,也必須保存大量的內(nèi)存,這通常十分龐大 167。當(dāng)?shù)竭_(dá)列表的底部時(shí),調(diào)度回到開(kāi)始繼續(xù)執(zhí)行任務(wù) —— 因此這就是周期調(diào)度的由來(lái)。列表在系統(tǒng)設(shè)計(jì)階段被創(chuàng)建。 KURT最重要的性格特征之一是它的調(diào)度策略。 新的系統(tǒng)調(diào)用已經(jīng)被加入以便運(yùn)用新的實(shí)時(shí)功能。這種方式能夠得到微秒的時(shí)間解析度。 KURT 象RTLinux一樣使用同樣的結(jié)構(gòu)來(lái)管理時(shí)間。 KURT的實(shí)時(shí)任務(wù)運(yùn)用了 Linux 的所有工具,不同于 RTLinux的任務(wù),對(duì)核心所作的提高和修正是: 改進(jìn)了系統(tǒng)時(shí)鐘的解決方案。由于 KURT只是簡(jiǎn)單的將 22 Linux 的排程器用一個(gè)很簡(jiǎn)單的時(shí)間驅(qū)動(dòng)式 (time driven)排程器加以取代,實(shí)時(shí)行程的執(zhí)行很容易很 其它非實(shí)時(shí)行程的影響。 KURT 是由 kansas 大學(xué)所創(chuàng)造的系統(tǒng) , 它和 NMT RTLinux 及 RTAI 有很大的不同。 提供了核心安全隊(duì)列。說(shuō)的更清楚些,你可以共享內(nèi)存,發(fā)送消息,使用信號(hào)機(jī)和計(jì)時(shí)器: LinuxLinux, LinuxRTAI自然還有 RTAIRTAI 6) Posix RTAI 模塊 , 提供了硬實(shí)時(shí)線程 ,每一個(gè)線程就是一個(gè)RTAI 任務(wù)。同樣的,釋放的調(diào)用只 是產(chǎn)生非映射的結(jié)果,直到最后的一個(gè)被完成時(shí),那就是真正釋放被分配過(guò)的內(nèi)存的一個(gè)。服務(wù)是對(duì)稱(chēng)的,也就是說(shuō),同樣的調(diào)度可以同時(shí)被實(shí)時(shí)任務(wù)使用,也就是在核心中和 Linux進(jìn)程中。從這點(diǎn)來(lái)講,你可以把這個(gè) 新的 fifos的實(shí)現(xiàn)看做設(shè)備驅(qū)動(dòng)的一類(lèi)通用方式,因?yàn)橐坏┠惆惭b了你的中斷處理,你可以使用 fifo服務(wù)做其余的事情。后者基于郵箱的概念,同時(shí)用于核心模塊和 Linux 進(jìn)程。注意到從模塊的角度看,你一直只有非模塊化的傳送 /獲取,因此任何不同的策略都被迫使用適當(dāng)?shù)挠脩?hù)處理函數(shù)。實(shí)時(shí)任務(wù)接口包括創(chuàng)建,銷(xiāo)毀,讀 和寫(xiě)函數(shù),被rtai_fifos 模塊執(zhí)行。很多應(yīng)用程序顯得受益于實(shí)時(shí)系統(tǒng)一方和Linux 一方的共同作用,比如管理數(shù)據(jù)的登陸和顯示。注意當(dāng)你加載 rtai_sched 時(shí), rtai 被自動(dòng) 21 掛裝。用于實(shí)時(shí)調(diào)度, RTAI同時(shí)支持周期的和一 次的模式。 Linux 被給與 0 7fffFfff 的優(yōu)先級(jí)。調(diào)度選擇第一個(gè)最高優(yōu)先級(jí)的任務(wù)置于 READY 狀態(tài)。 2)實(shí)時(shí)調(diào)度模塊,用來(lái)控制向系統(tǒng)中現(xiàn)在的不同的任務(wù)分配 CPU,包括 Linux。當(dāng)你掛裝 RTAI時(shí)最重要的事是從此非常緊急的 Linux 不再有能力使中斷無(wú)效 /有效。你不再需要時(shí)你也應(yīng)該通過(guò)調(diào)用 rt_umount_rtai()來(lái)卸載它,使 rtai 回到床上睡覺(jué)。但是當(dāng)你用常用的 insmod rtai命令安裝 rtai時(shí) 沒(méi)有任何事情發(fā)生,因?yàn)?rtai是一個(gè)隱藏的模塊。 ( 2) RTAI模塊簡(jiǎn)介 為了使用 RTAI,你必須加載一些模塊以實(shí)現(xiàn)你需要一些功能,有效的核心模塊如下: 1) rtai 2) rtai_sched 3) rtai_fifos 4) rtai_shm 5) lxrt 20 6a) 6b) 6c) 讓我們一一說(shuō)明: 1)它是真正的核心模塊,沒(méi)有它任何有關(guān)實(shí)時(shí)的服務(wù)都不能完成。這導(dǎo)致了對(duì) Linux 核心的修改可以很小,不同版本 Linux 中 RTAI端口很容易移植,很容易使用其它的操作系統(tǒng)代替 RTAI。他并不是對(duì)核心的插入式的修改;它使用了 HAL(硬件抽象層)的概念,從 Linux 獲取信息和捕捉一些基礎(chǔ)函數(shù)。 RTAI提供了和 Linux 核心相同的服務(wù),加入了一個(gè)工業(yè)實(shí)時(shí)操作系統(tǒng)的特征。為了包括一個(gè)時(shí)間正確性的行為,有必要在核心資源中做一些改變,例如,在中斷處理和調(diào)度策略中。象其它的 OS,它提供給應(yīng)用程序的服務(wù)至少包括以下這些: 硬件管理層,處理事 件選擇和處理器 /外圍設(shè)備中斷; 調(diào)度類(lèi),處理進(jìn)程激發(fā),優(yōu)先級(jí),時(shí)間片; 應(yīng)用程序間的通信方法。提供了一種能力使它可以完全可搶占。嚴(yán)格的說(shuō) ,它不是一個(gè)實(shí)時(shí)操作系統(tǒng) ,比如Vxworks 或 QNX。 你可以了解,當(dāng) proxy 激活后,它不再可以被任何的搶先 (preempt), 所以原本有的優(yōu)勢(shì)就不再保有了。 于是 RTAI 便誕生了,它是一個(gè)比 NMT RTLinux 更好的 NMT RTLinux,雖 然后來(lái) NMT RTLinux 也隨后完成移植的工作,但那已經(jīng)是 RTAI 誕生半年以 后的事了。 RTAI 采取這種途徑最大的原因在于 NMT RTLinux 在由 版移植至 版 的過(guò)程序遇到問(wèn)題,使得基于 版核心的 NMT RTLinux 一直無(wú)法完成。 RTHAL 將 RTAI 需要 在 Linux 中修改的部份定義成一組程序界面, RTAI 只使用這組界面和 Linux 溝通。每一個(gè)實(shí)時(shí)行程實(shí)際上就是一個(gè)可加載式核心模塊。大致而言, RTAI 和 NMT RTLinux 是相同的東西。 RTAI在 x86 上運(yùn)行 RTAI RTAI 是 RealTime Application Interface 的縮寫(xiě)。 另一個(gè)重要的區(qū)別是, RTLinux運(yùn)行在 x86, PowerPC和 Alpha 平臺(tái)上,支持的Linux 版本從 。 RTAI看上去有很多友好的特征。 18 RTLinux 的開(kāi)發(fā)者已經(jīng)在操作系統(tǒng)開(kāi)發(fā)上工作了很多年,相信 RTOS的實(shí)時(shí)方面應(yīng)該是越小越好,加入過(guò)多的特征只會(huì)導(dǎo)致系統(tǒng)不易于維護(hù),緩慢和容易出錯(cuò)。這些參數(shù)接近硬件容許的極限,然而所有 Linux的性能仍然可以很容易的受編程者的影響。對(duì)在 Linux的基礎(chǔ)上制作第二個(gè)通用目標(biāo)不感興趣。 RTAI 的開(kāi)發(fā)者致 力于使他們的系統(tǒng)有更多的特征以使實(shí)時(shí)編程更加容易。 RTLinux出現(xiàn)之后,一些其他的操作系統(tǒng)采用了這種方法: Ventur使其作為非實(shí)時(shí)線程在 WinNT上使用, RTAI( RTLinux的一個(gè)變體)在 Linux 中使用。 RTLinux的將 Linux 作為一個(gè)線程來(lái)運(yùn)行的方法避免了這樣的選擇。它基于提供所有軟實(shí)時(shí)能力和特征( GUI,軟實(shí)時(shí)網(wǎng)絡(luò),繪圖,磁盤(pán)訪問(wèn)等)的根本的 Linux系統(tǒng),而 RTLinux 自己確定了所有硬實(shí)時(shí)任務(wù)的時(shí)間正確性。 ( 3) RTLinux同其他實(shí)時(shí)操作系統(tǒng)相比有什么不同? RTLinux相比早期的 RTOS設(shè)計(jì)優(yōu)點(diǎn)在于它容許程序員編寫(xiě)同時(shí)包含一個(gè)瘦的,硬實(shí)時(shí)操作系統(tǒng)在硬件速度上的優(yōu)點(diǎn)和一個(gè)普通操作系統(tǒng)的所有特征的應(yīng)用程序。 RTLinux仍然工作在 i486上。 ( 2) RTLinux運(yùn)行平臺(tái)及硬件需求 可以運(yùn)行在幾乎所有的 x86( SMP 和單處理機(jī)), plus PowerPC 和 Alpha上。 17 RTLinux的設(shè)計(jì)模型應(yīng)該滿(mǎn)足:有嚴(yán)格時(shí)間條件的應(yīng)該作為線 程或單處理器(中斷處理器)被編寫(xiě),不需要硬實(shí)時(shí)那些應(yīng)該進(jìn)入 Linux。 Linux 作為 RTLinux核心的最低優(yōu)先級(jí)線程來(lái)運(yùn)行,而且它總是被搶占的。 (1) 什么是 RTLinux? RTLinux(Real Time Linux)一個(gè)小的 POSIX 系統(tǒng) ,它運(yùn)
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1