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

正文內(nèi)容

嵌入式系統(tǒng)設(shè)計(jì)大學(xué)教程習(xí)題與解答[1](編輯修改稿)

2025-04-21 23:15 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 在線調(diào)度算法在形成最佳調(diào)度決策上具有較大的靈活性。搶占和非搶占調(diào)度:在搶占式調(diào)度算法中,正在運(yùn)行的任務(wù)可能被其他任務(wù)所打斷,搶占式調(diào)度算法,使關(guān)鍵任務(wù)能夠打斷非關(guān)鍵任務(wù)的執(zhí)行,確保關(guān)鍵任務(wù)的截止時(shí)間能夠得到滿足,搶占式調(diào)度算法要更復(fù)雜些,且需要更多的資源,并可能在使用不當(dāng)?shù)那闆r下會(huì)造成低優(yōu)先級(jí)任務(wù)出現(xiàn)長(zhǎng)時(shí)間得不到執(zhí)行的情況。非搶占式調(diào)度常用于那些任務(wù)需要按照預(yù)先確定的順序進(jìn)行執(zhí)行,且只有當(dāng)任務(wù)主動(dòng)放棄CPU資源后,其他任務(wù)才能得到執(zhí)行的情況。靜態(tài)和動(dòng)態(tài)調(diào)度:在靜態(tài)調(diào)度算法中,任務(wù)的優(yōu)先級(jí)需要在系統(tǒng)運(yùn)行前進(jìn)行確定,且在運(yùn)行過程中不會(huì)發(fā)生變化。在動(dòng)態(tài)調(diào)度算法中,任務(wù)的優(yōu)先級(jí)可根據(jù)需要進(jìn)行改變,也可能隨著時(shí)間按照一定的策略自動(dòng)發(fā)生變化。嵌入式系統(tǒng)中進(jìn)程間通信主要采用哪幾種形式?(P110) 答:嵌入式系統(tǒng)中進(jìn)程間通信主要采用兩種形式:共享內(nèi)存和消息傳遞。二者在邏輯上沒有什么區(qū)別,進(jìn)程通信采用哪種方式,主要依賴實(shí)際需要。進(jìn)程間通信也可以采用信號(hào)和管道的方式。簡(jiǎn)述嵌入式操作系統(tǒng)的中斷管理和時(shí)鐘管理模式。(P117118)答:在嵌入式操作系統(tǒng)中,中斷前導(dǎo)和中斷后續(xù)通常由內(nèi)核的中斷接管程序來實(shí)現(xiàn)。硬件中斷發(fā)生后,中斷接管程序獲得控制權(quán),先由中斷接管程序進(jìn)行處理,然后才將控制權(quán)交給相應(yīng)的用戶中斷服務(wù)程序。用戶中斷服務(wù)程序執(zhí)行完成后,又回到中斷接管程序。實(shí)時(shí)內(nèi)核通常還提供如下中斷管理功能:掛接中斷服務(wù)程序、獲得中斷服務(wù)程序入口地址、獲取中斷嵌套層次、開中斷、關(guān)中斷。在實(shí)時(shí)系統(tǒng)中,時(shí)鐘具有非常重要的作用。通過時(shí)鐘,應(yīng)用和內(nèi)核能夠查詢當(dāng)前時(shí)間、定時(shí)地完成各項(xiàng)工作、報(bào)警、有限的等待和睡眠等,是處理具有時(shí)間約束特性應(yīng)用必不可少的內(nèi)容。因此,實(shí)時(shí)內(nèi)核都需要提供對(duì)時(shí)鐘進(jìn)行管理的機(jī)制。時(shí)鐘管理一般具有以下功能:維持日歷時(shí)間,任務(wù)有限等待的計(jì)時(shí),軟定時(shí)器的定時(shí)管理和維持系統(tǒng)時(shí)間片輪轉(zhuǎn)調(diào)度。嵌入式操作系統(tǒng)中的內(nèi)存管理功能有哪些?并做簡(jiǎn)要闡述。(P120) 答:嵌入式操作系統(tǒng)中的內(nèi)存管理功能有:1)虛擬內(nèi)存空間:操作系統(tǒng)采用虛擬內(nèi)存功能使系統(tǒng)顯得它有比實(shí)際大得多的內(nèi)存空間,虛擬內(nèi)存可以比系統(tǒng)中的物理內(nèi)存大許多倍。2)內(nèi)存保護(hù):系統(tǒng)中每個(gè)進(jìn)程有自己的虛擬地址空間,這些虛擬地址空間相互之間完全分離。因此運(yùn)行一個(gè)應(yīng)用的進(jìn)程不會(huì)影響其他的進(jìn)程。同樣,硬件的虛擬內(nèi)存機(jī)制允許內(nèi)存區(qū)域被寫保護(hù),這樣保護(hù)了代碼和數(shù)據(jù)不被惡意應(yīng)用重寫。3)內(nèi)存映射:用來把映像和數(shù)據(jù)文件映像到一個(gè)進(jìn)程的地址空間。在內(nèi)存映射中,文件的內(nèi)容被直接鏈接到進(jìn)程的虛擬地址空間。4)公平物理內(nèi)存分配:內(nèi)存管理子系統(tǒng)分配給系統(tǒng)中運(yùn)行的每個(gè)進(jìn)程公平的一份系統(tǒng)物理內(nèi)存。5)共享虛擬內(nèi)存:允許進(jìn)程擁有分隔的虛擬地址空間,但有時(shí)還需要進(jìn)程共享內(nèi)存。如進(jìn)程間通信需要共享內(nèi)存。mC/OSII的主要特點(diǎn)有哪些?簡(jiǎn)要說明之。(P121)答:mC/OSII的主要特點(diǎn)有:1)公開源代碼2)可移植性(Portable)絕大部分mC/OSII的源碼是用移植性很強(qiáng)的ANSI C寫的。和微處理器硬件相關(guān)的那部分是用匯編語言寫的。匯編語言寫的部分已經(jīng)壓到最低限度,使得mC/OSII便于移植到其他微處理器上。mC/OSII可以在絕大多數(shù)8位、16位、32位以至64位微處理器、微控制器、數(shù)字信號(hào)處理器(DSP)上運(yùn)行。3)可固化(Romable)mC/OSII是為嵌入式應(yīng)用而設(shè)計(jì)的,這就意味著,只要讀者有固化手段(C編譯、連接、下載和固化),mC/OSII可以嵌入到讀者的產(chǎn)品中成為產(chǎn)品的一部分。4)可裁剪(Scalable)可以只使用mC/OSII中應(yīng)用程序需要的那些系統(tǒng)服務(wù)。也就是說某產(chǎn)品可以只使用很少幾個(gè)mC/OSII調(diào)用,而另一個(gè)產(chǎn)品則使用了幾乎所有mC/OSII的功能,這樣可以減少產(chǎn)品中的mC/OSII所需的存儲(chǔ)器空間(RAM和ROM)。這種可剪裁性是靠條件編譯實(shí)現(xiàn)的。5)占先式(Preemptive)mC/OSII是完全占先式的實(shí)時(shí)內(nèi)核,mC/OSII總是運(yùn)行就緒條件下優(yōu)先級(jí)最高的任務(wù)。6)多任務(wù)mC/OSII可以管理64個(gè)任務(wù),目前這一版本保留8個(gè)給系統(tǒng)。留給用戶的應(yīng)用程序最多可以有56個(gè)任務(wù)。賦予每個(gè)任務(wù)的優(yōu)先級(jí)必須是不相同的,這意味著mC/OSII不支持時(shí)間片輪轉(zhuǎn)調(diào)度法(常用的非搶占式調(diào)度算法)。7)可確定性全部mC/OSII的函數(shù)調(diào)用與服務(wù)的執(zhí)行時(shí)間具有可確定性。8)任務(wù)棧每個(gè)任務(wù)有自己?jiǎn)为?dú)的棧,mC/OSII允許每個(gè)任務(wù)有不同的??臻g,以便壓低應(yīng)用程序?qū)AM的需求。9)系統(tǒng)服務(wù)mC/OSII提供很多系統(tǒng)服務(wù),例如郵箱、消息隊(duì)列、信號(hào)量、塊大小固定的內(nèi)存的申請(qǐng)與釋放、時(shí)間相關(guān)函數(shù)等。10)中斷管理中斷可以使正在執(zhí)行的任務(wù)暫時(shí)掛起,如果優(yōu)先級(jí)更高的任務(wù)被該中斷喚醒,則高優(yōu)先級(jí)的任務(wù)在中斷嵌套全部退出后立即執(zhí)行,中斷嵌套層數(shù)可達(dá)255層。常用的linux操作系統(tǒng)采用怎樣的內(nèi)存管理機(jī)制和調(diào)度機(jī)制?(P130)答:Linux內(nèi)存管理程序通過映射機(jī)制把用戶程序的邏輯地址映射到物理地址,在用戶程序運(yùn)行時(shí),如果發(fā)現(xiàn)程序中要用的虛擬地址沒有對(duì)應(yīng)的物理內(nèi)存時(shí),就發(fā)出請(qǐng)頁(yè)要求。如果有空閑的內(nèi)存可供分配,就請(qǐng)求分配內(nèi)存,并把正在使用的物理頁(yè)記錄在頁(yè)緩存中;如果沒有足夠的內(nèi)存可供分配,那么就調(diào)用交換機(jī)制,騰出一部分內(nèi)存。為了支持虛擬存儲(chǔ)器的管理,Linux系統(tǒng)采用分頁(yè)(paging)的方式來載入進(jìn)程。所謂分頁(yè)即是把實(shí)際的存儲(chǔ)器分割為相同大小的段,例如每個(gè)段1024個(gè)字節(jié),這樣1024個(gè)字節(jié)大小的段稱為一個(gè)頁(yè)面(page)。Linux屬于典型的多用戶多任務(wù)操作系統(tǒng)。它采用分時(shí)技術(shù),進(jìn)程交替執(zhí)行,實(shí)現(xiàn)所謂的“假并行”。它主要有三種調(diào)度算法,一個(gè)是基于優(yōu)先級(jí)的循環(huán)執(zhí)行法,二是FIFO算法,三是傳統(tǒng)的基于優(yōu)先級(jí)的循環(huán)執(zhí)行法。前兩種調(diào)度算法都是軟實(shí)時(shí)的,而第三種則并非實(shí)時(shí)的。第6章 嵌入式Linux開發(fā)環(huán)境及其在ARM上的移植試述嵌入式Linux系統(tǒng)移植的一般過程。(P141~142)答:嵌入式系統(tǒng)的開發(fā)和應(yīng)用層軟件的開發(fā)不同,有其自身的特點(diǎn),尤其在開發(fā)流程上有很大的不同。從大體上講,Linux系統(tǒng)移植一般分為下面幾步:(1)開發(fā)環(huán)境的搭建嵌入式系統(tǒng)移植過程中,目標(biāo)機(jī)和宿主機(jī)往往在軟硬件環(huán)境上有很大的不同,開發(fā)時(shí)常常在功能強(qiáng)大的宿主機(jī)上進(jìn)行,這就形成了交叉開發(fā)環(huán)境的搭建與選擇問題。同時(shí)由于宿主機(jī)和目標(biāo)機(jī)在體系結(jié)構(gòu)等方面的差異,編譯時(shí)也需要采用交叉編譯工具對(duì)目標(biāo)代碼進(jìn)行編譯,這樣,才能使生成的可執(zhí)行文件在目標(biāo)機(jī)上能夠執(zhí)行。(2)系統(tǒng)引導(dǎo)在微處理器第一次啟動(dòng)的時(shí)候,會(huì)從預(yù)定的、固定的地址空間開始執(zhí)行指令。一般的嵌入式系統(tǒng)中并沒有PC機(jī)上的BIOS,而是由一種稱為Bootloader的系統(tǒng)引導(dǎo)程序來完成上述功能,啟動(dòng)代碼完全依賴于硬件,需要在系統(tǒng)移植中完成。(3)內(nèi)核引導(dǎo)系統(tǒng)移植的開發(fā)人員還應(yīng)當(dāng)完成Bootloader和內(nèi)核的銜接部分的移植以及I/O映射、存儲(chǔ)器映射等與目標(biāo)硬件平臺(tái)相關(guān)的板級(jí)初始化和CPU自身初始化的移植工作。(4)設(shè)備驅(qū)動(dòng)程序Linux內(nèi)核源代碼樹中的相當(dāng)大部分是各類驅(qū)動(dòng)程序,在實(shí)際的開發(fā)過程中,也需要對(duì)相應(yīng)的設(shè)備進(jìn)行驅(qū)動(dòng),如LCD、網(wǎng)卡、觸摸屏等等進(jìn)行移植和編寫。由于一般在Linux源碼和相關(guān)社區(qū)中都擁有相當(dāng)豐富的設(shè)備驅(qū)動(dòng)源碼資源,因此,設(shè)備驅(qū)動(dòng)的任務(wù)主要是相近源碼的移植修改工作。(5)文件系統(tǒng) 在嵌入式Linux內(nèi)核啟動(dòng)的最后階段,將進(jìn)行文件系統(tǒng)的加載。不同的嵌入式目標(biāo)平臺(tái)有不同的應(yīng)用需求,需要根據(jù)具體情況實(shí)現(xiàn)對(duì)文件系統(tǒng)的移植工作。目前,常用的嵌入式文件系統(tǒng)有JFFSCramfs、Romfs等。Linux系統(tǒng)中常用的交叉編譯工具有哪些?簡(jiǎn)述它們的功能和基本用法。(P143~153)答:(1)GNU binutils是一套用來構(gòu)造和使用二進(jìn)制所需的工具集。建立嵌入式交叉編譯環(huán)境,Binutils工具包是必不可少的,而且Binutils與GNU的C編譯器gcc是緊密相集成的,沒有binutils,gcc也不能正常工作。GNU binutils是一組開發(fā)工具,包括連接器、匯編器和其他用于目標(biāo)文件和檔案的工具。(2)GUN cc(GUN C Compiler,簡(jiǎn)稱gcc)是GUN項(xiàng)目的C編譯器套件,能夠編譯用C、C++、Objective C編寫的程序。(3)make工具通過一個(gè)稱為makefile的文件來完成并自動(dòng)維護(hù)編譯工作。(4)glibc 是提供系統(tǒng)調(diào)用和基本函數(shù)的C庫(kù),比如open,malloc,printf等等。所有動(dòng)態(tài)連接的程序都要用到它。它是編譯Linux系統(tǒng)程序很重要的組成部分。(5)gdb是一個(gè)用來調(diào)試C和C++程序的調(diào)試器(Debugger),它能使用戶在程序運(yùn)行時(shí)觀察程序的內(nèi)部結(jié)構(gòu)和內(nèi)存的使用情況。gdb的功能主要是監(jiān)視程序中變量的值、設(shè)置斷點(diǎn)以使程序在指定的代碼行上停止執(zhí)行、支持單步執(zhí)行等。如何分步編譯和安裝交叉編譯環(huán)境所需要的庫(kù)和源代碼?試著自己構(gòu)建嵌入式Linux系統(tǒng)交叉編譯環(huán)境。(P156~160) 答:[略]5題應(yīng)在第九章,此處為作者疏漏(見第九章習(xí)題)Linux操作系統(tǒng)的移植工作主要分為哪幾個(gè)方面?其中內(nèi)核功能模塊的裁剪主要有哪幾種方法?(P162~164) 答:對(duì)Linux操作系統(tǒng)的移植工作主要分為兩個(gè)方面,一方面是針對(duì)硬件特點(diǎn)對(duì)源代碼的修改,比如內(nèi)核的啟動(dòng)部分、存儲(chǔ)設(shè)備的大小、具體的驅(qū)動(dòng)問題等等;另一方面是功能模塊的裁剪,主要是對(duì)內(nèi)核功能的配置,包括支持的文件類型、外設(shè)模塊等等。總體上講,針對(duì)硬件的修改有兩種方法:(1)對(duì)一種全新的硬件平臺(tái)開展移植工作時(shí),需采用“自底向上”的設(shè)計(jì)方法從頭設(shè)計(jì),即從硬件的需求考慮逐步地采用分析、設(shè)計(jì)、編碼、測(cè)試。 (2)大多數(shù)情況下,是在前人工作的基礎(chǔ)上修改己有的代碼。Linux己經(jīng)可以在多種體系結(jié)構(gòu)中運(yùn)行,可以參考相近的體系結(jié)構(gòu)的代碼,修改與目標(biāo)硬件平臺(tái)不同的部分即可。嵌入式Linux內(nèi)核功能模塊的裁剪主要有三種方法: (1)使用Linux自身的配置工具,編譯定制內(nèi)核。 (2)修改內(nèi)核源代碼,進(jìn)行內(nèi)核裁剪。 (3)基于系統(tǒng)調(diào)用關(guān)系,進(jìn)行內(nèi)核裁剪如何使用Linux自身的配置工具編譯定制內(nèi)核?(P169)答:配置完內(nèi)核之后,內(nèi)核仍然以源代碼的方式存在,不能直接下載到嵌入式系統(tǒng)中運(yùn)行,因此,必須對(duì)內(nèi)核進(jìn)行編譯,生成最終在目標(biāo)板上運(yùn)行的可執(zhí)行代碼。編譯內(nèi)核分以下三步進(jìn)行:(1)執(zhí)行以下命令,正確設(shè)置編譯內(nèi)核所需的附屬文件,進(jìn)行依賴性編譯: make dep(2)執(zhí)行以下命令,清除以前構(gòu)造內(nèi)核時(shí)產(chǎn)生的所有目標(biāo)文件、模塊文件和一些臨時(shí)文件: make clean(3)執(zhí)行以下命令,生成新的可執(zhí)行內(nèi)核映像文件: make zImage完成上述命令之后,就會(huì)在/arch/arm/boot/下生成一個(gè)自己定制的內(nèi)核映像文件了,系統(tǒng)文件名可以任意取。什么是文件系統(tǒng)?常用的嵌入式文件系統(tǒng)有哪些?(P169~170)答:文件系統(tǒng)是指在一個(gè)物理設(shè)備上的任何文件組織和目錄,它構(gòu)成了Linux系統(tǒng)上所有數(shù)據(jù)的基礎(chǔ),Linux程序、庫(kù)、系統(tǒng)文件和用戶文件都駐留其中,因此,它是系統(tǒng)中龐大復(fù)雜且又是最為基本和重要的資源。通常對(duì)于一個(gè)嵌入式系統(tǒng),僅包含內(nèi)核是不夠的,還必須有文件系統(tǒng)的支持。Linux支持的文件系統(tǒng)有很多種,比如ext2(LinuxExtended2)、minix文件系統(tǒng)、msdos(最初的FAT文件系統(tǒng))、ntfs(WindowsNT文件系統(tǒng))、nfs(網(wǎng)絡(luò)文件系統(tǒng))、hpft(OS/2高性能文件系統(tǒng))、ncpfs(NovellNetWare文件系統(tǒng))、affs Amiga(快速文件系統(tǒng))等等。如何構(gòu)建一個(gè)嵌入式Linux文件系統(tǒng)?(P172)答:要構(gòu)建一個(gè)小型的Linux文件系統(tǒng),就需要決定文件系統(tǒng)中哪些部分要保留,哪些部分可以裁減。首先應(yīng)該保留那些保證系統(tǒng)運(yùn)行的最基本的文件和目錄,再通過對(duì)系統(tǒng)功能的分析,決定哪些模塊是可以裁減的。一個(gè)最小的文件系統(tǒng)必須包括以下的內(nèi)容:程序函數(shù)庫(kù)、庫(kù)函數(shù)文件的鏈接、/bin/sh(shell)、最基本的設(shè)備文件。但是,這些文件目錄組成的最基本的文件系統(tǒng)只能運(yùn)行shell,不能完成其它任何的應(yīng)用程序。要完成一些基本的功能還需要以下的一些文件:init程序、系統(tǒng)啟動(dòng)設(shè)置、基本的應(yīng)用程序、設(shè)備文件、顯示系統(tǒng)信息的虛擬文件系統(tǒng)、其它文件系統(tǒng)掛載目錄、系統(tǒng)啟動(dòng)時(shí)執(zhí)行的腳本、壓縮工具等。第7章 linux下設(shè)備驅(qū)動(dòng)程序的開發(fā)設(shè)計(jì)設(shè)備驅(qū)動(dòng)程序在大多數(shù)嵌入式系統(tǒng)中起著重要作用,因?yàn)樗鼈兲峁┝? 應(yīng)用程序 和 設(shè)備 之間的軟件層。設(shè)備驅(qū)動(dòng)程序通常包含 中斷處理程序 和 設(shè)備服務(wù)子程序 兩部分。嵌入式系統(tǒng)中_____A____、___C_______、_____D___等都屬于字符設(shè)備,典型的塊設(shè)備有_____B_____、____E______等。 A.按鍵 B.硬盤 C.觸摸屏 D.手寫板 E.CDROM系統(tǒng)中不同的設(shè)備有_____A_____主設(shè)備號(hào),主設(shè)備號(hào) A 設(shè)備使用____A______驅(qū)動(dòng)程序。 A.相同的 B.不同的CS8900A有兩種工作模式:MEMORY模式和IO模式。如何理解設(shè)備管理的“設(shè)備無關(guān)性”概念?(P174) 答:在Linux/uclinux的框架結(jié)構(gòu)中,和設(shè)備相關(guān)的處理可以分為兩個(gè)層次——文件系統(tǒng)層和設(shè)備驅(qū)動(dòng)層。設(shè)備驅(qū)動(dòng)層屏蔽具體設(shè)備的細(xì)節(jié),文件系統(tǒng)層則向用戶提供一組統(tǒng)一的、規(guī)范的用戶接口。在嵌入式操作系統(tǒng)下的設(shè)備驅(qū)動(dòng)程序主要是控制和管理下層物理設(shè)備的硬件控制器,同時(shí)為上層應(yīng)用提供統(tǒng)一的、與設(shè)備無關(guān)的系統(tǒng)調(diào)用服務(wù),這種設(shè)備管理方法稱為“設(shè)備無關(guān)性”。按模塊化設(shè)計(jì),一個(gè)典型的Linux設(shè)備驅(qū)動(dòng)程序應(yīng)包含哪幾部分?在Linux操作系統(tǒng)中如何實(shí)現(xiàn)一個(gè)驅(qū)動(dòng)
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1