亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

VxWorks系統(tǒng)多路選擇模式下任務(wù)定時(shí)器的實(shí)現(xiàn)方法

文檔序號(hào):6583053閱讀:313來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):VxWorks系統(tǒng)多路選擇模式下任務(wù)定時(shí)器的實(shí)現(xiàn)方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種VxWorks操作系統(tǒng)下基于select模式 運(yùn)行的任務(wù)定時(shí)器的實(shí)現(xiàn)方法。
(二) 、背景技術(shù)定時(shí)器是嵌入式系統(tǒng)中廣泛使用的一種重要機(jī)制。 VxWorks操作系統(tǒng)提供了一個(gè)看門(mén)狗定時(shí)器機(jī)制,允許C函數(shù)與一個(gè)特定的時(shí) 間延遲相聯(lián)系。通常與看門(mén)狗定時(shí)器相聯(lián)系的函數(shù)以系統(tǒng)時(shí)鐘中斷級(jí)作為中斷 服務(wù)代碼來(lái)執(zhí)行。如果因?yàn)槟撤N原因,如一個(gè)先前的中斷或內(nèi)核狀態(tài),不能立 即執(zhí)行相應(yīng)的回調(diào)函數(shù),操作系統(tǒng)將該函數(shù)放在系統(tǒng)異常處理任務(wù)tExcTask 工作隊(duì)列中,tExcTask工作隊(duì)列中的函數(shù)通常以?xún)?yōu)先級(jí)O運(yùn)行。因此與看門(mén)狗 定時(shí)器相聯(lián)系的函數(shù)代碼也有與中斷服務(wù)程序相同的約束,這就會(huì)給應(yīng)用任務(wù) 定時(shí)器的處理代碼帶來(lái)很大的局限性,即應(yīng)用任務(wù)定時(shí)器的處理代碼不能調(diào)用 可能引起調(diào)用阻塞的函數(shù)。另外,不管回調(diào)函數(shù)在中斷級(jí)還是系統(tǒng)異常處理任 務(wù)中執(zhí)行,還要考慮回調(diào)函數(shù)和應(yīng)用任務(wù)其它事件處理之間的競(jìng)爭(zhēng)條件。
在默認(rèn)的阻塞模式下的套接字里,系統(tǒng)調(diào)用recv()會(huì)阻塞在那里,直到套 接字連接上有數(shù)據(jù)可讀,把數(shù)據(jù)讀到緩沖區(qū)里后recv()函數(shù)才會(huì)返回。在單線(xiàn) 程的程序里出現(xiàn)這種情況會(huì)導(dǎo)致線(xiàn)程被阻塞,這樣整個(gè)程序被懸掛在這里,如 果永遠(yuǎn)沒(méi)數(shù)據(jù)發(fā)送過(guò)來(lái),那么程序就會(huì)被永遠(yuǎn)懸掛。這個(gè)問(wèn)題可以用多線(xiàn)程解 決,但是在有多個(gè)套接字連接的情況下,這不是一個(gè)好的選擇,擴(kuò)展性很差。 另外,使用忙查詢(xún)方式會(huì)導(dǎo)致運(yùn)行效率低下。Select模型就是為了解決這個(gè)問(wèn) 題而出現(xiàn)的,它的作用就是防止在阻塞模式的文件描述字里被懸掛。VxWorks 操作系統(tǒng)提供sdect()函數(shù)調(diào)用,用于任務(wù)需要監(jiān)管多I/0數(shù)據(jù)的運(yùn)行模式。在這種模式下任務(wù)基于系統(tǒng)調(diào)用select(),使用統(tǒng)一的文件描述字對(duì)網(wǎng)絡(luò)套接字、
文件、管道、串行設(shè)備等具有文件描述字特征的多路i/o進(jìn)行數(shù)據(jù)讀寫(xiě)操作。
正C 61850是智能變電站使用的系統(tǒng)通信標(biāo)準(zhǔn),國(guó)內(nèi)和國(guó)際上一般都是基 于SISCO公司的MMSEASE-LITE軟件包來(lái)實(shí)現(xiàn)IEC 61850的,其在VxWorks 系統(tǒng)下的運(yùn)行框架就是基于select模式的。目前這種模式下的定時(shí)器采用 selectO函數(shù)的超時(shí)等待結(jié)合系統(tǒng)時(shí)間的查詢(xún)比較來(lái)判斷超時(shí),效率低下,并且 精度很差。因此,針對(duì)基于select模式運(yùn)行的任務(wù),需要提出一個(gè)新的高效定 時(shí)器的實(shí)現(xiàn)方法。
(三)、發(fā)明內(nèi)容本發(fā)明所要解決的技術(shù)問(wèn)題是,提出一種VxWorks系 統(tǒng)多路選擇模式下任務(wù)定時(shí)器的實(shí)現(xiàn)方法,將VxWorks內(nèi)核產(chǎn)生的定時(shí)事件 通知到任務(wù),從而在任務(wù)級(jí)處理定時(shí)事件。
為了解決上述問(wèn)題,本發(fā)明采用了以下技術(shù)方案。
一種VxWorks系統(tǒng)多路選擇模式下任務(wù)定時(shí)器的實(shí)現(xiàn)方法,其特征是
內(nèi)核定時(shí)器回調(diào)函數(shù)的入口參數(shù)是定時(shí)器描述節(jié)點(diǎn)指針,利用管道實(shí)現(xiàn)內(nèi) 核定時(shí)器回調(diào)函數(shù)和任務(wù)之間的同步機(jī)制。每個(gè)任務(wù)創(chuàng)建一個(gè)管道,管道能夠 排隊(duì)的最大消息數(shù)量是l,每個(gè)消息的最大長(zhǎng)度是1字節(jié),如果管道里有數(shù)據(jù) 則表示任務(wù)有定時(shí)事件到達(dá);
當(dāng)發(fā)生定時(shí)到期事件后,回調(diào)函數(shù)根據(jù)入口參數(shù)指針?biāo)傅亩〞r(shí)器描述節(jié) 點(diǎn)具體內(nèi)容,向?qū)?yīng)的任務(wù)設(shè)置定時(shí)到期事件標(biāo)志,采用VxWorks的管道機(jī)
制通知任務(wù),最后重新啟動(dòng)內(nèi)核定時(shí)器;
任務(wù)懸掛等待在一組文件描述字上,其中有一個(gè)文件描述字是管道,用于 通知是否有定時(shí)事件到達(dá),當(dāng)有定時(shí)事件到達(dá)時(shí),任務(wù)檢査定時(shí)器描述節(jié)點(diǎn)數(shù) 組,對(duì)于設(shè)置定時(shí)標(biāo)志的定時(shí)器進(jìn)行相應(yīng)的定時(shí)處理。一個(gè)任務(wù)創(chuàng)建的所有定時(shí)器可以共用一個(gè)管道文件描述字。保證各個(gè)任務(wù)創(chuàng)建的定時(shí)器數(shù)量之和不超過(guò)系統(tǒng)配置的最大定時(shí)器數(shù)量,以提高任務(wù)能夠創(chuàng)建的定時(shí)器數(shù)量。
定時(shí)器的創(chuàng)建、刪除和定時(shí)事件管理所操作的數(shù)據(jù)都是針對(duì)任務(wù)的,以避
免這些操作在任務(wù)之間的競(jìng)爭(zhēng)條件;定時(shí)事件在應(yīng)用任務(wù)中處理,以調(diào)用可能
引起阻塞的函數(shù),并且與該任務(wù)其它部分的代碼在執(zhí)行上不存在競(jìng)爭(zhēng)條件。用標(biāo)志位表示定時(shí)事件,以防止因任務(wù)反應(yīng)慢而導(dǎo)致定時(shí)事件堆積現(xiàn)象。
本發(fā)明的積極效果在于利用管道實(shí)現(xiàn)內(nèi)核定時(shí)器回調(diào)函數(shù)和任務(wù)之間的
同步機(jī)制。VxWorks的管道是一種由I/0系統(tǒng)管理的虛擬設(shè)備,是一種任務(wù)間
的通信機(jī)制,和消息隊(duì)列有一定的相似性,但是可以提供消息隊(duì)列不能提供的
一個(gè)重要功能,即可以使用sdect()系統(tǒng)調(diào)用。每個(gè)任務(wù)創(chuàng)建一個(gè)管道,管道能夠排隊(duì)的最大消息數(shù)量是l,每個(gè)消息的最大長(zhǎng)度是1字節(jié),管道里有數(shù)據(jù)表示任務(wù)有定時(shí)事件到達(dá)。
設(shè)計(jì)有一個(gè)通用的內(nèi)核定時(shí)器回調(diào)函數(shù),其入口參數(shù)是定時(shí)器描述節(jié)點(diǎn)指針。當(dāng)發(fā)生定時(shí)到期事件后,回調(diào)函數(shù)根據(jù)入口參數(shù)指針?biāo)傅亩〞r(shí)器描述節(jié)點(diǎn)具體內(nèi)容,向?qū)?yīng)的任務(wù)設(shè)置定時(shí)到期事件標(biāo)志,采用VxWorks的管道機(jī)制通知任務(wù),最后重新啟動(dòng)內(nèi)核定時(shí)器。
本發(fā)明任務(wù)基于select模式運(yùn)行,懸掛等待在一組文件描述字上,其中有一個(gè)文件描述字是管道,用于通知是否有定時(shí)事件到達(dá)。當(dāng)有定時(shí)事件到達(dá)時(shí),任務(wù)檢查定時(shí)器描述節(jié)點(diǎn)數(shù)組,對(duì)于設(shè)置定時(shí)標(biāo)志的定時(shí)器進(jìn)行相應(yīng)的定時(shí)處理。文件描述字是系統(tǒng)級(jí)的資源, 一個(gè)任務(wù)創(chuàng)建的所有定時(shí)器共用一個(gè)管道文件描述字,既實(shí)現(xiàn)了內(nèi)核定時(shí)器回調(diào)函數(shù)和任務(wù)之間的同步機(jī)制,又降低了系統(tǒng)文件描述字的使用數(shù)量。本發(fā)明能夠及時(shí)將內(nèi)核定時(shí)事件利用管道機(jī)制通知到基于select模式運(yùn)行的任務(wù)。只要保證各個(gè)任務(wù)創(chuàng)建的定時(shí)器數(shù)量之和不超過(guò)操作系統(tǒng)配置的最大定時(shí)器數(shù)量即可,提高了任務(wù)可以創(chuàng)建的定時(shí)器數(shù)量。定時(shí)器的創(chuàng)建、刪除和定時(shí)事件管理所操作的數(shù)據(jù)都是針對(duì)特定任務(wù)的,從而避免了這些操作在任務(wù)之間的競(jìng)爭(zhēng)條件。定時(shí)事件在應(yīng)用任務(wù)中處理,可以調(diào)用可能引起阻塞的函數(shù),并且與該任務(wù)其它部分的代碼在執(zhí)行上不存在競(jìng)爭(zhēng)條件。用標(biāo)志位表示定時(shí)事件,可以防止因任務(wù)反應(yīng)慢而導(dǎo)致定時(shí)事件堆積現(xiàn)象。
(四)

圖1是基于多路選擇模式運(yùn)行的任務(wù)及其管理的各種文件描述字示意圖。
(五) 具體實(shí)施方式
下面結(jié)合附圖和具體實(shí)施例進(jìn)一步說(shuō)明本發(fā)明。以下是本發(fā)明的重要數(shù)據(jù)結(jié)構(gòu)和功能模塊。
(1) 任務(wù)定時(shí)器節(jié)點(diǎn)結(jié)構(gòu)類(lèi)型TTimerPara。主要包括如下成員Wdld,內(nèi)核定時(shí)器標(biāo)示號(hào);Sign,應(yīng)用定時(shí)器標(biāo)示號(hào);IsUsing,該定時(shí)器節(jié)點(diǎn)是否被使用;Ticks,定時(shí)間隔;Taskld,任務(wù)標(biāo)示號(hào);TimerNo,該定時(shí)器在任務(wù)內(nèi)的序號(hào)。
(2) 任務(wù)描述表結(jié)構(gòu)類(lèi)型TTask。該結(jié)構(gòu)類(lèi)型主要反映應(yīng)用任務(wù)所使用的一些資源和數(shù)據(jù)。與本發(fā)明相關(guān)的重要成員包括
Taskld,任務(wù)標(biāo)示號(hào);
TimerPipeFd,用于通知定時(shí)事件的管道描述字;
TTimerPara TimerPara[TASK一MAX—TIMER—NUM],定時(shí)器描述節(jié)點(diǎn)數(shù)組;BYTE TimerFlags[(TASK—MAX—TIMER—NUM+7)/8],定時(shí)器到期標(biāo)志數(shù)組。其中TASK一MAX一TIMER一NUM表示任務(wù)可以設(shè)置的最大定時(shí)器數(shù)目,每個(gè)定時(shí)器在TimerFlags數(shù)組中占一位,表示是否到期,表達(dá)式(TASK_MAX—TIMER—NUM+7)/8計(jì)算出任務(wù)的最大定時(shí)器數(shù)目占用的字節(jié)數(shù)。任務(wù)描述表里的定時(shí)器到期標(biāo)志數(shù)組TimerFlags和定時(shí)器節(jié)點(diǎn)數(shù)組TimerPara的數(shù)組下標(biāo)i之間的對(duì)應(yīng)關(guān)系i的范圍為0 TASK—MAX—TIMER—NUM-l, i/8表示定時(shí)器節(jié)點(diǎn)i占用定時(shí)器到期標(biāo)志數(shù)組TimerFlags的數(shù)組下標(biāo)號(hào),i%8表示定時(shí)器節(jié)點(diǎn)i占用定時(shí)器到期標(biāo)志數(shù)組TimerFlags某字節(jié)的位號(hào),按從高位到低位排序。
pipe()的使用特點(diǎn)類(lèi)似于I/O系統(tǒng)的文件,通過(guò)通用的read()和write()調(diào)用來(lái)讀寫(xiě)管道。當(dāng)從一個(gè)沒(méi)有數(shù)據(jù)的管道上讀數(shù)據(jù)時(shí)任務(wù)將會(huì)阻塞,當(dāng)向一個(gè)數(shù)據(jù)已滿(mǎn)的管道上寫(xiě)數(shù)據(jù)時(shí)任務(wù)也會(huì)阻塞。任務(wù)在自己的初始過(guò)程中創(chuàng)建用于同步的管道,任務(wù)執(zhí)行過(guò)程中動(dòng)態(tài)創(chuàng)建、刪除自己的定時(shí)器。功能模塊包含以下4個(gè)。
(O創(chuàng)建定時(shí)器SetTimer(),參數(shù)包括任務(wù)創(chuàng)建的定時(shí)器標(biāo)示號(hào)Sign,定時(shí)器的定時(shí)間隔Period,以毫秒為單位。實(shí)現(xiàn)如下
(11) 遍歷當(dāng)前任務(wù)描述表中的TimerPara定時(shí)器描述節(jié)點(diǎn)數(shù)組,尋找一個(gè)沒(méi)有使用的節(jié)點(diǎn),即IsUsing為FALSE,當(dāng)前數(shù)組下標(biāo)i即為T(mén)imerNo。
(12) 填寫(xiě)相關(guān)定時(shí)器描述節(jié)點(diǎn)參數(shù),包括任務(wù)定時(shí)器標(biāo)示號(hào)TimerPara[i].Sign;將使用標(biāo)志TimerPara[i].IsUsing置為T(mén)RUE;將毫秒數(shù)轉(zhuǎn)化為定時(shí)間隔TimerPara[i].Ticks;使用系統(tǒng)調(diào)用TaskIdSelf()獲得當(dāng)前任務(wù)的標(biāo)示號(hào)賦給TimerPara[i].Taskld;使用系統(tǒng)調(diào)用wdCreate()創(chuàng)建一個(gè)內(nèi)核定時(shí)器,將其返回的標(biāo)示號(hào)賦給TimerPara[i].WdId;
(13) 最后使用系統(tǒng)調(diào)用wdStart()啟動(dòng)定時(shí)器,回調(diào)函數(shù)指針設(shè)為wdFunction,回調(diào)函數(shù)參數(shù)設(shè)為當(dāng)前定時(shí)器描述節(jié)點(diǎn)指針。
(2)刪除定時(shí)器DdTimer(),參數(shù)包括任務(wù)創(chuàng)建的定時(shí) 標(biāo)示號(hào)Sign。遍歷當(dāng)前任務(wù)描述表中的TimerPara定時(shí)器描述節(jié)點(diǎn)數(shù)組,如果數(shù)組下標(biāo)i的結(jié)構(gòu)體成員IsUsing為T(mén)RUE,并且Sign為要?jiǎng)h除的定時(shí)器標(biāo)示號(hào)Sign,則置TimerPara[i].IsUsing為FALSE;使用系統(tǒng)調(diào)用wdDelete()刪除內(nèi)核定時(shí)器TimerPara[i].Wdld;為了保持邏輯上的一致性,在TimerFlags數(shù)組中將定時(shí)器描述節(jié)點(diǎn)下標(biāo)i對(duì)應(yīng)的定時(shí)標(biāo)志清0,防止以后誤當(dāng)作該任務(wù)其它定時(shí)器的到期標(biāo)志。
(3)內(nèi)核定時(shí)器回調(diào)函數(shù)wdFunction(),入口參數(shù)Para是到期的定時(shí)器對(duì)應(yīng)的定時(shí)器描述節(jié)點(diǎn)指針,實(shí)現(xiàn)過(guò)程如下
(31) 關(guān)中斷。
(32) 在任務(wù)標(biāo)示號(hào)為Para ->TaskId的任務(wù)定時(shí)器到期標(biāo)志數(shù)組TimerFlags中,將序號(hào)Para ->TimerNo對(duì)應(yīng)的標(biāo)志位置1 。
(33) 使用不等待條件的系統(tǒng)調(diào)用select()判斷管道是否已寫(xiě)滿(mǎn)數(shù)據(jù)。
(34) 在管道未寫(xiě)滿(mǎn)數(shù)據(jù)即管道允許寫(xiě)數(shù)據(jù)的情況下調(diào)用writeO寫(xiě)管道數(shù)據(jù),通知任務(wù)定時(shí)到期。
(35) 開(kāi)中斷。
(36) 調(diào)用wdStart()使內(nèi)核定時(shí)器重新計(jì)數(shù)。定時(shí)器回調(diào)函數(shù)既可能運(yùn)行在中斷級(jí),也可能運(yùn)行在系統(tǒng)異常處理任務(wù)
中。盡管VxWorks下在中斷中向一個(gè)已滿(mǎn)的管道中寫(xiě)數(shù)據(jù)只是丟掉該數(shù)據(jù),但是在任務(wù)中向一個(gè)已滿(mǎn)的管道中寫(xiě)數(shù)據(jù)會(huì)使該任務(wù)阻塞,因此在寫(xiě)管道數(shù)據(jù)之前應(yīng)使用selectO系統(tǒng)調(diào)用判斷管道是否已寫(xiě)滿(mǎn)數(shù)據(jù)。為防止運(yùn)行在異常處理任務(wù)中的回調(diào)函數(shù)被運(yùn)行在中斷級(jí)的回調(diào)函數(shù)占先,從而可能導(dǎo)致在異常處理任務(wù)中的回調(diào)函數(shù)引起寫(xiě)阻塞,所述的(32)、 (33)、 (34)應(yīng)在關(guān)中斷的條件下執(zhí)行。(4)定時(shí)事件的檢査與處理。參見(jiàn)圖1,任務(wù)基于select()按"或"的關(guān)系多路懸掛等待I/O數(shù)據(jù)是否就緒,當(dāng)用于定時(shí)器同步機(jī)制的管道中有數(shù)據(jù)時(shí),任務(wù)將執(zhí)行下列操作
(41) 關(guān)中斷。
(42) 將TimerFlags數(shù)組復(fù)制到臨時(shí)變量數(shù)組TempTimerFlags中,并將TimerFlags清0。
(43) 調(diào)用系統(tǒng)調(diào)用read(),讀取管道中僅存的唯一消息。
(44) 開(kāi)中斷。
(45) 針對(duì)臨時(shí)變量數(shù)組TempTimerFlags,按照標(biāo)志位和定時(shí)器描述節(jié)點(diǎn)數(shù)組下標(biāo)的對(duì)應(yīng)關(guān)系,確定到期的都是哪些定時(shí)器描述節(jié)點(diǎn),并調(diào)用任務(wù)的OnTimeout(),參數(shù)為到期定時(shí)器描述節(jié)點(diǎn)的任務(wù)定時(shí)器標(biāo)示號(hào)Sign。
所述的(42)、 (43)必須在關(guān)中斷的環(huán)境下執(zhí)行,因?yàn)橐环矫鎀imerFlags標(biāo)志數(shù)組是與回調(diào)函數(shù)共享的數(shù)據(jù),另一方面也是為了保證管道中的數(shù)據(jù)和TimerFlags標(biāo)志數(shù)組的一致性,避免TimerFlags標(biāo)志數(shù)組中有定時(shí)標(biāo)志,而管道中沒(méi)有數(shù)據(jù)這種喚醒丟失的現(xiàn)象。
9
權(quán)利要求
1、一種VxWorks系統(tǒng)多路選擇模式下任務(wù)定時(shí)器的實(shí)現(xiàn)方法,其特征是內(nèi)核定時(shí)器回調(diào)函數(shù)的入口參數(shù)是定時(shí)器描述節(jié)點(diǎn)指針,利用管道實(shí)現(xiàn)內(nèi)核定時(shí)器回調(diào)函數(shù)和任務(wù)之間的同步機(jī)制。每個(gè)任務(wù)創(chuàng)建一個(gè)管道,管道能夠排隊(duì)的最大消息數(shù)量是1,每個(gè)消息的最大長(zhǎng)度是1字節(jié),如果管道里有數(shù)據(jù)則表示任務(wù)有定時(shí)事件到達(dá);當(dāng)發(fā)生定時(shí)到期事件后,回調(diào)函數(shù)根據(jù)入口參數(shù)指針?biāo)傅亩〞r(shí)器描述節(jié)點(diǎn)具體內(nèi)容,向?qū)?yīng)的任務(wù)設(shè)置定時(shí)到期事件標(biāo)志,采用VxWorks的管道機(jī)制通知任務(wù),最后重新啟動(dòng)內(nèi)核定時(shí)器;任務(wù)懸掛等待在一組文件描述字上,其中有一個(gè)文件描述字是管道,用于通知是否有定時(shí)事件到達(dá),當(dāng)有定時(shí)事件到達(dá)時(shí),任務(wù)檢查定時(shí)器描述節(jié)點(diǎn)數(shù)組,對(duì)于設(shè)置定時(shí)標(biāo)志的定時(shí)器進(jìn)行相應(yīng)的定時(shí)處理。
2、 如權(quán)利要求1所述的VxWorks系統(tǒng)多路選擇模式下任務(wù)定時(shí)器的實(shí)現(xiàn) 方法,其特征是 一個(gè)任務(wù)創(chuàng)建的所有定時(shí)器共用一個(gè)管道文件描述字。
3、 如權(quán)利要求1所述的VxWorks系統(tǒng)多路選擇模式下任務(wù)定時(shí)器的實(shí)現(xiàn) 方法,其特征是保證各個(gè)任務(wù)創(chuàng)建的定時(shí)器數(shù)量之和不超過(guò)系統(tǒng)配置的最大 定時(shí)器數(shù)量,以提高任務(wù)能夠創(chuàng)建的定時(shí)器數(shù)量,。
4、 如權(quán)利要求1所述的VxWorks系統(tǒng)多路選擇模式下任務(wù)定時(shí)器的實(shí)現(xiàn)方法,其特征是定時(shí)器的創(chuàng)建、刪除和定時(shí)事件管理所操作的數(shù)據(jù)都是針對(duì) 任務(wù)的,以避免這些操作在任務(wù)之間的競(jìng)爭(zhēng)條件;定時(shí)事件在應(yīng)用任務(wù)中處理, 以調(diào)用可能引起阻塞的函數(shù),并且與該任務(wù)其它部分的代碼在執(zhí)行上不存在競(jìng) 爭(zhēng)條件。
5、 如權(quán)利要求1所述的VxWorks系統(tǒng)多路選擇模式下任務(wù)定時(shí)器的實(shí)現(xiàn) 方法,其特征是用標(biāo)志位表示定時(shí)事件,以防止因任務(wù)反應(yīng)慢而導(dǎo)致定時(shí)事 件堆積現(xiàn)象。
全文摘要
本發(fā)明公開(kāi)了一種VxWorks系統(tǒng)多路選擇模式下任務(wù)定時(shí)器的實(shí)現(xiàn)方法。當(dāng)發(fā)生定時(shí)到期事件后,回調(diào)函數(shù)根據(jù)入口參數(shù)指針?biāo)傅亩〞r(shí)器描述節(jié)點(diǎn)具體內(nèi)容,向?qū)?yīng)的任務(wù)設(shè)置定時(shí)到期事件標(biāo)志,采用VxWorks的管道機(jī)制通知任務(wù),最后重新啟動(dòng)內(nèi)核定時(shí)器。任務(wù)懸掛等待在一組文件描述字上,其中有一個(gè)文件描述字是管道,用于通知是否有定時(shí)事件到達(dá)。當(dāng)有定時(shí)事件到達(dá)時(shí),任務(wù)檢查定時(shí)器描述節(jié)點(diǎn)數(shù)組,對(duì)于設(shè)置定時(shí)標(biāo)志的定時(shí)器進(jìn)行相應(yīng)的定時(shí)處理。本方法能夠及時(shí)將內(nèi)核定時(shí)事件利用管道機(jī)制通知到基于select模式運(yùn)行的任務(wù),提高了任務(wù)可以創(chuàng)建的定時(shí)器數(shù)量,避免了這些操作在任務(wù)之間的競(jìng)爭(zhēng)條件,并能夠防止因任務(wù)反應(yīng)慢而導(dǎo)致定時(shí)事件堆積現(xiàn)象。
文檔編號(hào)G06F9/48GK101673222SQ200910210448
公開(kāi)日2010年3月17日 申請(qǐng)日期2009年11月3日 優(yōu)先權(quán)日2009年11月3日
發(fā)明者唐永建, 鄭永志, 韓明峰, 高旭濤 申請(qǐng)人:東方電子股份有限公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1