激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频

setjmp構建簡(jiǎn)單協(xié)作式多任務(wù)系統

時(shí)間:2024-08-30 16:35:24 理工畢業(yè)論文 我要投稿
  • 相關(guān)推薦

setjmp構建簡(jiǎn)單協(xié)作式多任務(wù)系統

摘要:討論一個(gè)利用標準C語(yǔ)言setjmp庫函烽實(shí)現查詢(xún)式協(xié)作多任務(wù)系統,給出完整的內核和樣例程序并對源代碼進(jìn)行說(shuō)明。該系統具有簡(jiǎn)單易用的特點(diǎn),只需要編寫(xiě)存取堆棧指針的宏就可方便地移植到新的平臺上。文章詳述了系統的優(yōu)缺點(diǎn),討論一些性能擴展的方法。該內核適用于中小規模的嵌入式軟件。

引言

本文介紹的是利用標準C語(yǔ)言setjmp庫函數實(shí)現的具備此特點(diǎn)的協(xié)作式多任務(wù)系統。從本質(zhì)上講,實(shí)時(shí)多任務(wù)操作系統應該具備按照優(yōu)先級搶占調度的內核。然而,在實(shí)際應用中,搶中式的多任務(wù)某種程序上帶來(lái)了用戶(hù)程序設計時(shí)數據保護的困難,并且,具備搶占功能的多任務(wù)內核設計時(shí)困難也比較多,這會(huì )增加操作系統自身的代碼,也使它在小資源單片機系統中應用較少;而協(xié)作多任務(wù)系統的調度只在用戶(hù)指定的時(shí)機發(fā)生,這會(huì )大大簡(jiǎn)化內核和用戶(hù)系統的設計,尤其本文實(shí)現的系統通過(guò)條件查詢(xún)來(lái)放棄CPU,既符合傳統單片機程序設計的思維,又帶來(lái)了多任務(wù)、模塊化、可重入的編程便利。

Setjmp是標準C語(yǔ)言庫函數的組成部分,它可以實(shí)現程序執行中的遠程轉操作。具體來(lái)說(shuō),它可以在一個(gè)函數中使用setjmp來(lái)初始化一個(gè)全局標號,然后只要該函數未曾返回,那么在其它任何地方都可以通過(guò)longjmp調用來(lái)跳轉到setjmp的下一條語(yǔ)句執行。實(shí)際上,setjmp函數將發(fā)生調用處的局部環(huán)境保存在一個(gè)jmp_buf的結構當中,只要主調函數中對應的內存未曾釋放(函數返回時(shí)局部?jì)却婢褪Я耍,那么在調用longjmp的時(shí)候就可以根據已保存的jmp_buf參數恢復到setjmp的地方執行。我們的系統中就是分析了setjmp標準庫函數的特點(diǎn),以簡(jiǎn)單的方式實(shí)現了協(xié)作式多任務(wù)。

1 演示程序

為了便于理解,首先給出多任務(wù)演示程序的源代碼。這個(gè)程序演示了協(xié)作式多任務(wù)切換、任務(wù)的動(dòng)態(tài)生成、多任務(wù)共用代碼等功能,一共使用了init_coos初始化根任務(wù)(也就是C語(yǔ)言main函數)、creat_task創(chuàng )建新任務(wù)和WAITFOR查詢(xún)條件這3個(gè)基本的系統調用。由于面向嵌入式系統,因而程序不會(huì )中止并且運行中也沒(méi)有進(jìn)行任何輸出,需要借助適合的調試工具來(lái)理解多任務(wù)系統的運行。

example.c文件清單:

#include

【setjmp構建簡(jiǎn)單協(xié)作式多任務(wù)系統】相關(guān)文章:

基于VxWorks的多DSP系統的多任務(wù)程序設計03-18

單片機系統中的多任務(wù)多線(xiàn)程機制的實(shí)現03-18

手術(shù)排程系統的構建與實(shí)踐05-09

電力營(yíng)銷(xiāo)管理系統的構建內涵11-29

計算機通信系統的構建論文11-16

廢舊鋼鐵回收物流系統構建研究11-26

基于MSP430單片機的實(shí)時(shí)多任務(wù)操作系統03-18

構建有效的銀行內控系統03-18

顧客投訴行為管理及其系統構建12-07

談飯店業(yè)人際傳播系統的構建03-22

激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频