版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、學(xué)習(xí)必備歡迎下載vxworks&tornado 讀書筆記reference :vxworks 程序員指南王金剛等 . 清華大學(xué)出版社vxworks 高級程序設(shè)計李方敏 . 清華大學(xué)出版社vxworks 開發(fā)指南與tornado 實(shí)用手冊李方敏 . 清華大學(xué)出版社第一章vxworks 操作系統(tǒng)介紹1.vxworks 中斷響應(yīng)程序( isr)的上下文:isr 在一個專門的上下文中執(zhí)行,是處于任務(wù)的上下文之外;每個任務(wù)都有自己的上下文, 但是所有的 isr 共享一個上下文, 當(dāng)中斷嵌套時, 對這個上下文的大小有一定的要求,在設(shè)計初要考慮這個問題。2.上下文切換:context switch
2、,也叫 task switch,是指 cpu 寄存器內(nèi)容的切換,也就是任務(wù)切換。每個任務(wù)都有自己的上下文, 即擁有各自的 cpu 環(huán)境和系統(tǒng)資源(指任務(wù)被內(nèi)核調(diào)度時所使用的資源)。在任務(wù)切換時, 任務(wù)的上下文保存在任務(wù)控制塊(tcb)中。我的理解:在任務(wù)運(yùn)行時,運(yùn)行時的一些相關(guān)信息,即上下文是保存在什么地方?應(yīng)該是在系統(tǒng)運(yùn)行時總的環(huán)境里。比如說,cpu 有一套寄存器, 如果哪個任務(wù)運(yùn)行,則這個任務(wù)的上下文就被保存到系統(tǒng)的這些寄存器中;如果有任務(wù)切換,系統(tǒng)將當(dāng)前正在運(yùn)行任務(wù)的上下文保存到這個任務(wù)的tcb 中,然后從將要執(zhí)行任務(wù)的tcb 中取出它的上下文,放到系統(tǒng)的寄存器中。3.上下文內(nèi)容:任務(wù)的
3、執(zhí)行點(diǎn),即任務(wù)的程序計數(shù)器;cpu 中的寄存器;動態(tài)變量和函數(shù)調(diào)用所需的堆棧; 一個延時定時器; 一個時間片定時器; 內(nèi)核控制結(jié)構(gòu); 信號句柄。4.vxworks 操作系統(tǒng)內(nèi)核:wind 內(nèi)核;一個操作系統(tǒng)分為核心態(tài)和用戶態(tài)。內(nèi)核在核心態(tài)運(yùn)行,為用戶的應(yīng)用程序服務(wù)。5.任務(wù)創(chuàng)建的兩種方式精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 1 頁,共 11 頁 - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 1 頁,共 11 頁 - - - - - - - - -學(xué)習(xí)必備歡迎下載
4、方式一:使用 taskinit()函數(shù)創(chuàng)建任務(wù),創(chuàng)建時處于掛起狀態(tài),必須激活這個創(chuàng)建的任務(wù)才能使其進(jìn)入就緒狀態(tài);方式二: 使用發(fā)起任務(wù)( spawning)的原語,調(diào)用一個函數(shù)就能創(chuàng)建并激活任務(wù);刪除任務(wù):任務(wù)可以在任何一種狀態(tài)被刪除。6.任務(wù)的幾種狀態(tài):就緒( ready ): 任務(wù)僅等待 cpu 的狀態(tài),不等待其他任何資源;阻塞( pend):任務(wù)由于一些資源不可用而被阻塞;睡眠( delay ): 處于睡眠的任務(wù)狀態(tài);掛起( suspend):該狀態(tài)時任務(wù)不執(zhí)行,主要用于調(diào)試用。這里沒有運(yùn)行狀態(tài)的任務(wù)( uc/os-ii 中有),其實(shí)也是有的。在 vxworks 中,具有最高優(yōu)先級并處于
5、就緒狀態(tài)的任務(wù)就是運(yùn)行狀態(tài)的任務(wù)。7.任務(wù)調(diào)度控制函數(shù):1)tasklock()禁止任務(wù)調(diào)度;當(dāng)任務(wù)調(diào)用這個函數(shù)時,這個任務(wù)在執(zhí)行時不會發(fā)生基于優(yōu)先級的搶占;但是任務(wù)在執(zhí)行中被阻塞或掛起,調(diào)度程序?qū)⑦x擇有資格執(zhí)行且優(yōu)先級最高的任務(wù)執(zhí)行。當(dāng)搶占上鎖的任務(wù)被解除阻塞并且重新開始執(zhí)行,搶占將再一次被禁止。搶占上鎖只能阻止任務(wù)的上下文切換, 并不能禁止中斷; 其可以實(shí)現(xiàn)互斥操作;2)taskunlock()允許任務(wù)調(diào)度;每個vxworks 任務(wù)控制塊都維護(hù)一個計數(shù)器鎖變量 lockcnt,tasklock()使其加 1,taskunlock()使其減1,當(dāng) lockcnt 大于 0 時,調(diào)度程序便被禁
6、止。3)taskpriorityset()改變?nèi)蝿?wù)優(yōu)先級;4)status kerneltimeslice(int ticks) 任務(wù)可以調(diào)用此函數(shù)來開放或禁止時間片輪轉(zhuǎn)調(diào)度。 ticks 指定以 tick 為單位的時間片大小。 如果任務(wù)通過 tasklock()禁止搶占,系統(tǒng)將不對該任務(wù)的時間片進(jìn)行計數(shù),直到 taskunlock()允許搶占。5)tasksafe() /*保護(hù)調(diào)用任務(wù)免于刪除 */6)taskunsafe() /*解除任務(wù)刪除保護(hù) */8.輔助函數(shù)說明:精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 2 頁,共 11 頁 - -
7、- - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 2 頁,共 11 頁 - - - - - - - - -學(xué)習(xí)必備歡迎下載taskname ()得到與任務(wù)號相關(guān)的任務(wù)名tasknametoid()尋找與任務(wù)名相關(guān)的任務(wù)idtaskidself()獲得調(diào)用此函數(shù)的任務(wù)id 號taskidverify()檢查一個特定任務(wù)的存在性taskidlistget() 用 id 填充一組所有激活的任務(wù)taskinfoget() 得到任務(wù)的信息taskpriorityget() 查看任務(wù)的優(yōu)先級taskregsget() 檢查任務(wù)寄存器(不能
8、使用當(dāng)前任務(wù)時)taskregsset() 設(shè)置任務(wù)寄存器(不能使用當(dāng)前任務(wù)時)taskissuspended() 檢查任務(wù)是否處于掛起狀態(tài)taskisready() 檢查任務(wù)是否處于就緒狀態(tài)tasktcb() 獲得任務(wù)控制塊的指針第二章任務(wù)間通信8.調(diào)度程序的時間開銷調(diào)度程序開銷主要取決于保存和恢復(fù)上下文需要復(fù)制的寄存器數(shù),要求該過程非???。9.任務(wù)棧每個任務(wù)都有獨(dú)立的棧空間,棧用于任務(wù)的函數(shù)調(diào)用,分配自動變量和函數(shù)返回值。任務(wù)控制塊wind_tcb 記錄了位置和大小等棧信息。wind_tcb本身放在任務(wù)棧開始部分。在vxworks 中,所有任務(wù)在同一地址空間運(yùn)行,任務(wù)之間沒有任何地址保護(hù)機(jī)
9、制,因此棧溢出會引起連鎖反應(yīng)(比如說任務(wù)a 棧溢出到任務(wù) b 的棧里面, 這樣任務(wù) b 很可能也不能正常工作了) 。在設(shè)置棧大小時,一般設(shè)置一個較大的值,以存儲空間換取可靠性。棧大小在taskspawn ()創(chuàng)建時指定。10.中斷棧只要體系和 bsp支持, vxworks 支持獨(dú)立的中斷棧。對所以的isr 使用相同的中斷棧。如果系統(tǒng)不支持,中斷棧屬于被中斷任務(wù)棧的一部分。11.posix 精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 3 頁,共 11 頁 - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - -
10、- - - - - - - 第 3 頁,共 11 頁 - - - - - - - - -學(xué)習(xí)必備歡迎下載posix 具有多重含義,通常指posix 標(biāo)準(zhǔn),該標(biāo)準(zhǔn)是一個可移植操作系統(tǒng)接口( portable operating system interface ),由 ieee 提出, ansi 和 iso 將其標(biāo)準(zhǔn)化。 posix 的目標(biāo)是使應(yīng)用程序源代碼可以在兼容posix 的操作系統(tǒng)上移植。 理想目標(biāo)是應(yīng)用程序移植到另一個操作系統(tǒng)只需要重新編譯就可以運(yùn)行。12.vxworks 任務(wù)間的通信方式種類:共享內(nèi)存、信號量、消息隊(duì)列、管道、網(wǎng)絡(luò)套接字、信號;13.信號量控制函數(shù)sembcreate
11、() 分配并初始化一個二進(jìn)制信號量,函數(shù)返回創(chuàng)建信號量的 idsemmcreate() 分配并初始化一個互斥信號量,函數(shù)返回創(chuàng)建信號量的idsemccreate() 分配并初始化一個計數(shù)器信號量,函數(shù)返回創(chuàng)建信號量的 idsemdelete() 終止并釋放一個信號量semtake() 獲取一個信號量semgive() 提供一個信號量semflush() 解鎖所有正在等待信號量的任務(wù)14.用二進(jìn)制信號量如何實(shí)現(xiàn)互斥(二進(jìn)制信號量實(shí)現(xiàn)互斥在創(chuàng)建之初是可用的狀態(tài),但是二進(jìn)制信號量實(shí)現(xiàn)同步時初始狀態(tài)是不可用的):semtake(semmutex, wait_forever);/*臨界區(qū)域,任何時候僅單
12、個任務(wù)可以訪問*/semgive(semmutex);就象上面的 3行代碼一樣,每個任務(wù)要想訪問臨界區(qū)域, 必須先獲得信號量;如果此時信號量不可用,則等待;如果為可用,則獲得這個信號量,那么其他的任務(wù)就不能獲得這個信號量了,等到這個任務(wù)釋放這個信號量了才可以使用。sem_empty 表示信號量不可用sem_full 表示信號量可用16.消息隊(duì)列的函數(shù)說明精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 4 頁,共 11 頁 - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 4
13、頁,共 11 頁 - - - - - - - - -學(xué)習(xí)必備歡迎下載msgqcreate() 分配并初始化一個消息隊(duì)列msgqdelete() 終止并釋放一個消息隊(duì)列msgqsend() 向一個消息隊(duì)列發(fā)送消息msgqreceive() 從一個消息隊(duì)列接收消息17.管道( 將管道當(dāng)成i/o 設(shè)備使用 )管道使用 vxworks 操作系統(tǒng)中的 i/o 系統(tǒng),并提供替換消息隊(duì)列的接口。 管道是由驅(qū)動程序 pipedrv 管理的虛擬 i/o 設(shè)備。函數(shù) pipedrvcreate ()創(chuàng)建管道設(shè)備以及與該管道相連的低層消息隊(duì)列。18.套接字vxworks 操作系統(tǒng)中, 套接字是穿越網(wǎng)絡(luò)的任務(wù)間通信的
14、基本形式。套接字是任務(wù)間通信終端,數(shù)據(jù)從一個套接字傳送到另一個套接字。在建立套接字時需指定數(shù)據(jù)傳輸?shù)幕ヂ?lián)網(wǎng)通信協(xié)議。vxworks 支持互聯(lián)網(wǎng)的 tcp 協(xié)議和udp 協(xié)議。19.信號: 主要作用是在任務(wù)運(yùn)行時,一個異步的信號發(fā)生,任務(wù)對其進(jìn)行及時響應(yīng) (相當(dāng)于中斷的作用)vxworks 操作系統(tǒng)中, 還有一種叫做信號的機(jī)制。 與通用任務(wù)間通信機(jī)制相比,信號機(jī)制更適合于錯誤和異常的處理。信號主要用于任務(wù)之間傳遞控制信號,是一個軟件的概念。信號在很多方面類似于硬件中斷。信號的發(fā)生通常與硬件中斷相聯(lián)系。有時也稱信號為軟中斷。任何一個任務(wù)或 isr 都可以對某個任務(wù)引發(fā)一個信號。收到信號的任務(wù)立即掛
15、起當(dāng)前執(zhí)行的線程, 并在下次任務(wù)被調(diào)度時執(zhí)行該任務(wù)事先指定的信號處理程序。當(dāng)信號處理方式為“捕捉”時,需要為信號指定一個“信號處理函數(shù)”,該函數(shù)和中斷服務(wù)程序一樣,當(dāng)捕捉到對應(yīng)的信號時,系統(tǒng)自動調(diào)用該函數(shù)。信號處理函數(shù)在被信號中斷的任務(wù)上下文中運(yùn)行(為任務(wù)設(shè)置堆棧大小時要考慮信號處理函數(shù)開銷);信號處理函數(shù)運(yùn)行時具有所屬任務(wù)的優(yōu)先級,調(diào)度時仍然遵從系統(tǒng)調(diào)度策略。信號處理函數(shù)運(yùn)行結(jié)束后,任務(wù)回到被中斷前的狀態(tài);精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 5 頁,共 11 頁 - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - -
16、- - - - - - - - - - - - 第 5 頁,共 11 頁 - - - - - - - - -學(xué)習(xí)必備歡迎下載23.中斷處理相關(guān)的一些函數(shù)intconnect() 設(shè)置中斷處理的 c 程序(為中斷指定一個中斷處理函數(shù))intcontext() 如果是從中斷級調(diào)用,返回真intcount() 獲得當(dāng)前中斷嵌套深度intlevelset() 設(shè)置處理器的中斷屏蔽級intlock() 禁止中斷intunlock() 重新允許中斷intvecbaseset() 設(shè)置向量基地址intvecbaseget() 得到向量基地址intvecset() 設(shè)置異常向量intvecset() 獲得異常
17、向量所有中斷服務(wù)程序使用相同的中斷堆棧。該堆棧由系統(tǒng)啟動時根據(jù)指定配置參數(shù)來定位和初始化。為能夠處理最壞情況下的中斷嵌套,必須分配足夠大的中斷堆??臻g。開發(fā)過程中,可以使用checkstack ()函數(shù)觀察堆棧的使用情況。許多 vxworks 函數(shù)在中斷服務(wù)程序中使用時仍存在許多重要限制。這些限制是由于中斷服務(wù)程序不在一個固定的任務(wù)上下文中執(zhí)行,而且沒有任務(wù)控制塊,因此所有中斷服務(wù)程序必須共享一個單獨(dú)的堆棧。所以,中斷服務(wù)程序基本限制為禁止調(diào)用導(dǎo)致調(diào)用者堵塞的函數(shù)。例如禁止試圖使用一個信號量,不能調(diào)用任何用于創(chuàng)建或刪除的函數(shù)。第三章socket通信1.關(guān)于 socket 函數(shù)說明1)int s
18、ocket(int domain, int type, int rotocol); 打開(創(chuàng)建)一個socket。創(chuàng)建 socket 是 socket 通信的第一步,調(diào)用這個函數(shù),返回socket 描述符。該描述符被其他socket 接口函數(shù)和標(biāo)準(zhǔn)i/o 使用,以唯一標(biāo)示創(chuàng)建的socket。參數(shù) domain表明通信域, 對 vxworks 總是 af_inet, 即 internet 域;參數(shù) type 指定 socket 類型:sock _stream 、 sock_dgram 、sock_raw ;參數(shù) protocol 表示該 socket 屬于何種通信協(xié)議,即ip 協(xié)議層的載荷類型。
19、精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 6 頁,共 11 頁 - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 6 頁,共 11 頁 - - - - - - - - -學(xué)習(xí)必備歡迎下載2)status bind(int s, struct sockaddr * name, int namelen) ;將 socket 和一個“ 端點(diǎn)地址 ” 綁定。參數(shù) s 為 socket 描述符;name為要綁定的本地端點(diǎn)地址;namelen為 name 的結(jié)構(gòu)體長度。3)list
20、en() 允許連接到socket(也可以說是偵聽連接請求)4)accept() 接受 socket 上的一個連接5)connect() 發(fā)起建立socket 連接。如果連接失敗,應(yīng)該將socket關(guān)閉,才能再使用該socket。6)connectwithtimeout() 在指定時間內(nèi)嘗試建立socket 連接7)sendto() 發(fā)送 message到 socket 8)send() 發(fā)送 data到 socket 9)sendmsg() 發(fā)送 message到 socket 10)recvfrom() 從 socket 接收 message 11)recv() 從 socket 接收 da
21、ta 12)recvmsg() 從 socket 接收 message 13)setsockopt() 設(shè)置 socket 選項(xiàng)14)getsockopt() 讀取 socket 選項(xiàng)15)getsockname() 讀取本地socket 端點(diǎn)地址16)getpeername() 讀取連接的另一端端點(diǎn)地址17)shutdown() 關(guān)閉連接2.大小端模式(大端字節(jié)序、小端字節(jié)序)big-endian : 序列中的高位值存放在較低的存儲地址;little-endian :序列中的低位值存放在較低的存儲地址;當(dāng)數(shù)據(jù)在網(wǎng)絡(luò)上傳輸時,采取的是大端字節(jié)序,即數(shù)據(jù)幀發(fā)送順序?yàn)閺膸母呶恢档綆牡臀恢?。摩?/p>
22、羅拉芯片采用的是大端字節(jié)序,而英特爾的芯片采用的小端字節(jié)序。解決字節(jié)序的問題就是將主機(jī)字節(jié)序轉(zhuǎn)換成和網(wǎng)絡(luò)字節(jié)序一致。轉(zhuǎn)換在應(yīng)用程序級完成。vxworks 定義了 4 個宏用于字節(jié)序轉(zhuǎn)換: htons() 將短整數(shù)從主機(jī)字節(jié)序轉(zhuǎn)換到網(wǎng)絡(luò)字節(jié)序htonl() 將長整數(shù)從主機(jī)字節(jié)序轉(zhuǎn)換到網(wǎng)絡(luò)字節(jié)序精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 7 頁,共 11 頁 - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 7 頁,共 11 頁 - - - - - - - - -學(xué)習(xí)必備歡迎
23、下載ntohs() 將短整數(shù)從網(wǎng)絡(luò)字節(jié)序轉(zhuǎn)換到主機(jī)字節(jié)序ntohl() 將長整數(shù)從網(wǎng)絡(luò)字節(jié)序轉(zhuǎn)換到主機(jī)字節(jié)序3.socket 端點(diǎn)地址socket 端點(diǎn)地址由結(jié)構(gòu)體sockaddr_in 表示。 ip 地址由sockaddr_in 結(jié)構(gòu)體內(nèi)的結(jié)構(gòu)體in_addr 表示。習(xí)慣上以“. ”表示的是點(diǎn)分十進(jìn)制ip 地址,在in_addr 中的表示是將點(diǎn)分十進(jìn)制表示中的4 個整數(shù)直接轉(zhuǎn)換為二進(jìn)制,對應(yīng)到in_addr.s_addr 的 4 個字節(jié)上。例如 ip 地址 “127.0.0.1 ”表示為 in_addr.s_addr=0 x7f000001 。4.socket 應(yīng)用類型sock_stream
24、 面向連接的應(yīng)用類型(基于 tcp 協(xié)議的 socket 應(yīng)用( 在 internet 域) ) sock_dgram 面向無連接的應(yīng)用類型(基于 udp 協(xié)議的 socket應(yīng)用 (在 internet 域) ) 5.地址綁定顯式通過一個函數(shù)調(diào)用指定本地的端點(diǎn)地址(包括ip 地址和端口號) ,這一動作為“ 地址綁定 ” 。 通常面向連接的服務(wù)器應(yīng)用中在偵聽一個端口之前需要先綁定本地端點(diǎn)地址。無連接的服務(wù)器應(yīng)用中,也常常在等待客戶數(shù)據(jù)到達(dá)前先綁定本地端點(diǎn)地址。除了地址綁定, 還可以讓系統(tǒng)自動選擇本地端點(diǎn)地址,這樣就不需要顯式的調(diào)用函數(shù)進(jìn)行綁定。第四章i/o 系統(tǒng)1.使用設(shè)備的過程使用設(shè)備的過程
25、通常包括:驅(qū)動程序初始化;創(chuàng)建設(shè)備;打開文件;i/o 操作;關(guān)閉文件;刪除設(shè)備。塊設(shè)備:一個設(shè)備可以實(shí)現(xiàn)不同的文件系統(tǒng),可以有多個文件;非塊設(shè)備: 一個設(shè)備通常對應(yīng)一個文件。2.基本 i/o 函數(shù)說明vxworks 中 i/o 分為基本 i/o 和緩沖 i/o,基本 i/o 是 vxworks 中最底層的i/o,以下是 7 個標(biāo)準(zhǔn) c 語言庫兼容的接口:#include “iolab.h ” 1)int open(const char *name, int flags, int mode); 打開/創(chuàng)建文件,第一個參數(shù)為文件名,第二個參數(shù)定義對打開的文件進(jìn)行的操作,它可以是 o_rdonly,
26、 o_wronly, o_rdwr, o_creat 。精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 8 頁,共 11 頁 - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 8 頁,共 11 頁 - - - - - - - - -學(xué)習(xí)必備歡迎下載2)status close(int fd); 關(guān)閉文件,其將終止 fd 與物理文件之間的關(guān)聯(lián),并釋放在文件描述符表中占用的資源。釋放后文件描述符和文件描述符表的空間能夠重新使用。3)int creat (const char *n
27、ame, int flags) 創(chuàng)建文件同時以指定標(biāo)志打開文件。實(shí)際上, creat創(chuàng)建文件時先確定文件所在設(shè)備,然后調(diào)用設(shè)備驅(qū)動程序提供的函數(shù)創(chuàng)建文件。4)status remove(const char *name) 刪除文件;和 creat一樣,remove先確定文件所在設(shè)備,然后調(diào)用設(shè)備驅(qū)動程序提供的函數(shù)刪除文件。5)int read(int fd, char *buffer, size_t maxbytes); 讀取之前創(chuàng)建或者打開的文件;第二個參數(shù)是讀取數(shù)據(jù)緩沖區(qū)指針,第三個參數(shù)是最大讀取字節(jié)數(shù)。函數(shù)返回的是函數(shù)實(shí)際讀取的字節(jié)數(shù);6)int write(int fd, char *
28、buffer, size_t nbytes) 寫入到之前創(chuàng)建或者打開的文件。第二個參數(shù)是輸出數(shù)據(jù)緩沖區(qū)指針,第三個參數(shù)是要求寫得字節(jié)數(shù)。其返回值表示所寫的字節(jié)數(shù),如果等于0,表示沒有寫入任何數(shù)據(jù)。7)int ioctl(int fd, int function, int arg); 特殊控制。其對描述符fd 指定的對象執(zhí)行在 function 中給出的操作,文件描述符:所有的基本 i/o 操作都引用文件描述符( fd)。文件描述符是調(diào)用 open()或者 create()返回的一個正數(shù)值,其他i/o 調(diào)用需要使用該 fd參數(shù)。文件描述符全局可見,兩個不同的任務(wù)通過相同的文件描述符訪問的將是同一
29、個文件。 vxworks 支持有限的文件描述符,具體在i/o 系統(tǒng)初始化時指定有效的 fd 數(shù)目(宏定義 num_files )。因此當(dāng)文件不再使用時應(yīng)該立即關(guān)閉文件,防止超出系統(tǒng)限制。第五章vxworks 啟動過程3.vxworks 啟動過程vxworks 的啟動過程需要解決:處理器初始化:使處理器復(fù)位,禁止中斷,內(nèi)部寄存器都為確定的值;代碼裝入:將執(zhí)行映像從存儲介質(zhì)裝入ram 執(zhí)行;精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 9 頁,共 11 頁 - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 9 頁,共 11 頁 - - - - - - - - -學(xué)習(xí)必備歡迎下載硬件初始化:使硬件復(fù)位,并初始化為中斷或查詢方式為系統(tǒng)服務(wù);內(nèi)核激活 (函數(shù)為 kernelinit():使多任務(wù)微內(nèi)核開始調(diào)度任務(wù)運(yùn)行;操作系統(tǒng)組件初始化:初始化用戶應(yīng)用需要的各種操作系統(tǒng)功能?!疤幚砥鞒跏蓟焙汀按a裝入”即通常所說的引導(dǎo)代碼(rominit.s 和romstart.c)。通常的啟動過程為:引導(dǎo),準(zhǔn)備激活內(nèi)核,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣告的制作和刊登行業(yè)相關(guān)項(xiàng)目經(jīng)營管理報告
- 廢水回用技術(shù)行業(yè)營銷策略方案
- 廣告設(shè)計行業(yè)相關(guān)項(xiàng)目經(jīng)營管理報告
- 蜂箱用木格子市場發(fā)展前景分析及供需格局研究預(yù)測報告
- 自行車剎車操縱閘把市場分析及投資價值研究報告
- 皮制長外衣商業(yè)機(jī)會挖掘與戰(zhàn)略布局策略研究報告
- 電打字機(jī)細(xì)分市場深度研究報告
- 為保護(hù)數(shù)據(jù)進(jìn)行計算機(jī)安全威脅分析行業(yè)市場調(diào)研分析報告
- 廣告分發(fā)行業(yè)營銷策略方案
- 牙科用貴金屬合金市場發(fā)展前景分析及供需格局研究預(yù)測報告
- 初三化學(xué)第一單元檢測質(zhì)量分析
- 危重病人護(hù)理評估及安全管理
- 工業(yè)自動化的柔性制造與定制化生產(chǎn)
- 小班化教學(xué)和合作學(xué)習(xí)
- 《永輝案例分享》課件
- 酒店總經(jīng)理管理培訓(xùn)課件
- 時鐘的英語表達(dá)法
- 《同學(xué)之間如何相處》課件
- 《巴洛克風(fēng)格》課件
- 七十二香譜圖
- 《辦公軟件教程WPS》課件
評論
0/150
提交評論