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

正文內(nèi)容

tornadovxworks培訓(xùn)(專業(yè)版)

2024-10-27 14:26上一頁面

下一頁面
  

【正文】 這種情況成為優(yōu)先級逆轉(zhuǎn),因為盡管系統(tǒng)是基于優(yōu)先級的調(diào)度,但卻使一個高優(yōu)先級的任務(wù)等待一個低優(yōu)先級的任務(wù)完成執(zhí)行。 20 semGIve (mySemId)。 printf (“Got the semaphore\n”)。 { =。 if ( pMem== NULL) { /* malloc() sets errno don’t redefine it */ return (ERROR)。 ? 這種機(jī)制由 taskVarLib庫中的函數(shù)來提供。 當(dāng) ticks為 0時,時間片調(diào)度被關(guān)閉 ? 基于優(yōu)先級的搶占式調(diào)度可以發(fā)生在任何時候,時間片輪轉(zhuǎn)調(diào)度只能在相同優(yōu)先級的任務(wù)間每隔 ticks發(fā)生一次。 VxWorks內(nèi)核使任務(wù)能快速共享系統(tǒng)的絕大部分資源,同時有獨立的上下文來控制個別線程的執(zhí)行。是將應(yīng)用程序和操作系統(tǒng)與計算機(jī)硬件集成在一起的系統(tǒng) 嵌入式培訓(xùn)專題 微迪軟件培訓(xùn)中心 嵌入式硬件 ? 嵌入式硬件包括處理器/微處理器、存儲器及外設(shè)器件和 I/ O端口、圖形控制器等 ? 特點: – 1)對實時多任務(wù)有很強(qiáng)的支持能力,能完成多任務(wù)并且有較短的中斷響應(yīng)時間,從而使內(nèi)部的代碼和實時內(nèi)核心的執(zhí)行時間減少到最低限度。先到先服務(wù) ? 優(yōu)先級隊列算法 – 種算法從 FIFO發(fā)展而來。 ? 任務(wù)換道時間 (Contextswitching time) 是任務(wù)之間切換而使用的時間。 ? 中斷延遲 (Interrupt latency ) 是計算機(jī)接收到中斷信號到操作系統(tǒng)作出響應(yīng),并完成換道轉(zhuǎn)入中斷服務(wù)程序的時間。給每個任務(wù)設(shè)定優(yōu)先級,然后在FIFO中按照優(yōu)先級排列。 – 2)具有功能很強(qiáng)的存儲區(qū)保護(hù)功能。 ? VxWorks實時內(nèi)核 Wind提供了基本的多任務(wù)環(huán)境,系統(tǒng)內(nèi)核根據(jù)某一調(diào)度策略讓它們交替運行。 ? 在 VxWorks系統(tǒng)中,可以調(diào)用函數(shù) kernelTimeSlice來使用時間片輪轉(zhuǎn)調(diào)度。 嵌入式培訓(xùn)專題 微迪軟件培訓(xùn)中心 搶占禁止 ? Wind內(nèi)核可通過調(diào)用 taskLock()和 taskUnlock() 來使調(diào)度器起作用和失效。 } ... } 嵌入式培訓(xùn)專題 微迪軟件培訓(xùn)中心 Examining Errno Examine errno to find out why a routine failed. if (reactorOk() == ERROR) { switch (errno) { case S_rctorLib_TEMP_DANGER_ZONE: startShutDown ()。 if (0) asleep()。 } What would happen in the scenarios below ? 1. repeat (1, semGive, semId)。 21 } 嵌入式培訓(xùn)專題 微迪軟件培訓(xùn)中心 Deletion Safety Deleting a task which owns a semaphore can be catastrophic. data structures left inconsistent. semaphore left permanently unavailable. The deletion safety option prevents a task from being deleted while it owns the semaphore. Enabled for mutex semaphores by specifying the SEM_DELETE_SAFE option during semMCreate( ). 嵌入式培訓(xùn)專題 微迪軟件培訓(xùn)中心 安全刪除 ? wind內(nèi)核提供防止任務(wù)被意外刪除的機(jī)制。 ? 互斥信號量有一個選項允許實現(xiàn)優(yōu)先級繼承的算法。這種情況可能會持續(xù)阻塞 T1等待一段不可確定的時間。 19 myBuf[myBufIndex] = ch。 } Task may need to wait for an event to occur. Busy waiting (., polling) is inefficient. Pending until the event occurs is better. 嵌入式培訓(xùn)專題 微迪軟件培訓(xùn)中心 The Synchronization Solution Create a binary semaphore for the event. Full (event has occurred). Binary semaphores exist in one of two states: Empty (event has not occurred). Task waiting for the event calls semTake(), and blocks until semaphore is given. Task or interrupt service routine detecting the event calls semGive(), which unblocks the waiting task. 嵌入式培訓(xùn)專題 微迪軟件培訓(xùn)中心 Binary Semaphores SEM_ID semBCreate (options, intialState) options Sepcify queue type (SEM_Q_PRIORITY or SEM_Q_FIFO) for tasks pended on this semaphore. initialState Initialize semaphore to be available (SEM_FULL) or unavailable (SEM_EMPTY). Semaphores used for synchronization are typically initialized to SEM_EMPTY (event has not occurred). Returns a SEM_ID, or NULL on error. 嵌入式培訓(xùn)專題 微迪軟件培訓(xùn)中心 Taking a Semaphore STATUS semTake (semId, timeout) semId The SEM_ID returned from semBCreate(). timeout Maximum time to wait for semaphore. Value can be clock ticks, WAIT_FOREVER, or NO_WAIT. Can pend the task until either Semaphore left unavaiable. Semaphore is given or Timeout expires. Returns OK if successful, ERROR on timeout (or invalid semId). 嵌入式培訓(xùn)專題 微迪軟件培訓(xùn)中心 Taking a Binary Semaphore semaphore available ? task pends until sem is given or timeout timeout task unpends semTake() returns ERROR no task continues semTake() returns OK yes task unpends, semTake() returns OK semaphore given 嵌入式培訓(xùn)專題 微迪軟件培訓(xùn)中心 Giving a Semaphores STATUS semGive (semId) Unblocks a task waiting for semId. If no task is waiting, make semId available. Returns OK, or ERROR if semId is invalid. 嵌入式培訓(xùn)專題 微迪軟件培訓(xùn)中心 Giving a Binary Semaphore tasks pended ? semaphore made available no task at front of queue made ready semaphore remains unavailable yes 嵌入式培訓(xùn)專題 微迪軟件培訓(xùn)中心 Information Leakage Fast event occurrences can cause lost information. Suppose a VxWorks task (priority=100) is executing the following code, with semId initially unavailable: FOREVER { semTake (semId, WAIT_FOREVER)。 =0時, ; 0時, 的個數(shù); 嵌入式培訓(xùn)專題 微迪軟件培訓(xùn)中心 PV原語(一) ? 對一個信號量變量可以進(jìn)行兩種原語操作: p操作和 v操作,定義如下: procedure p(var s:samephore)。 } … pMem=malloc(sizeof(myStruct))。這種情況下, VxWorks提供了所謂任務(wù)變量的機(jī)制,這種機(jī)制允許在任務(wù)上下文中增加 4字節(jié)的變量,因此每次上下文交換時,改變量的值被保存。嵌入式培訓(xùn)專題 微迪軟件培訓(xùn)中心 內(nèi)核時間片 ? 時間片的長度可由系統(tǒng)調(diào)用 KernelTimeSlice(ticks) 通過輸入?yún)?shù)值來指定。任務(wù)可以使用或等待 CPU、I/O設(shè)備及內(nèi)存空間等系統(tǒng)資源,并獨立于其它任務(wù),與它們一起并發(fā)運行(宏觀上如此)。 嵌入式培訓(xùn)專題 微迪軟件培訓(xùn)中心 嵌入式系統(tǒng)概述 ? 嵌入式系統(tǒng) ( Embedded Systems ) 是指以應(yīng)用為中心、以計算機(jī)技術(shù)為基礎(chǔ)、軟件硬件可裁剪、適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計算機(jī)系統(tǒng)。 ? FIFO – 也就是將系統(tǒng)中所有的任務(wù)組織成一個隊列。 嵌入式培訓(xùn)專題 微迪軟件培訓(xùn)中心 實時操作系統(tǒng)中的重要概念 ? 系統(tǒng)響應(yīng)時間 (System response time ) 系統(tǒng)發(fā)出處理要求到系統(tǒng)給出應(yīng)答信號的時間。 嵌入式培訓(xùn)專題 微迪軟件培訓(xùn)中心 實時操作系統(tǒng)應(yīng)具有如下的功能 ? 任務(wù)管理(多任務(wù)和基于優(yōu)先級的任務(wù)調(diào)度) ? 任務(wù)間同步和通信(信號量和共享內(nèi)存等) ? 存儲器優(yōu)化管理(含 ROM的管理) ? 實時時鐘服務(wù) ? 中斷管理服務(wù) 嵌入式培訓(xùn)專題 微迪軟件培訓(xùn)中心 硬實時、軟實時 (一 ) ? 硬實時要求在規(guī)定的時間內(nèi)必須完成操作,這是在操作系統(tǒng)設(shè)計時保證的 ? 軟實時則沒有那么嚴(yán),只要按照任務(wù)的優(yōu)先級,盡可能快地完成操作即可 ? 對于軟實時系統(tǒng)基于優(yōu)先級調(diào)度的調(diào)度算法可以滿足要求,提供高速的響應(yīng)和大的系統(tǒng)吞吐率;而對于硬實時系統(tǒng)則完成 timely response是必須的。這種算法保證了高優(yōu)先級的任務(wù)的完成,但是對于低優(yōu)先級的任務(wù)很可能無法滿足時間的正確性。這是由于嵌入式系統(tǒng)的軟件結(jié)構(gòu)已模塊化,而為了避免在軟件模塊之間出現(xiàn)錯誤的交叉作用,需要設(shè)計強(qiáng)大的存儲區(qū)保護(hù)功能,同時也有利于軟件診斷。 ? 系統(tǒng)調(diào)度器使用 任務(wù)控制塊 的數(shù)據(jù)結(jié)構(gòu)(簡記為 TCB)來管理任務(wù)調(diào)度功能。 嵌入式培訓(xùn)專題 微迪軟件培訓(xùn)中心 VxWorks任務(wù)特性 ? 所有的代碼運行在同一地址空間。當(dāng)一個任務(wù)調(diào)用 taskLock()使調(diào)度器失效,任務(wù)運行時沒有基于優(yōu)先級的搶占發(fā)生。 break。 } procedure v(var s:samephore)。 2. repeat (2, semGive, semId)。通常,一個執(zhí)行在臨界區(qū)或訪問臨界資源的任務(wù)要被特別保護(hù)。優(yōu)先級繼承通過在 T1被阻塞期間提升 T3的優(yōu)先級到 T1解決了優(yōu)先級逆轉(zhuǎn)引起的問題。然而,低優(yōu)先級的任務(wù)并不能避免被中優(yōu)先級的任務(wù)搶占,一個搶占的任務(wù)如 T2將阻止 T3完成對資源的操作。 18 myBufIndex++。 getData ()。 其中 PCB是進(jìn)程控制塊,是操作系統(tǒng)為每個進(jìn)程建立的數(shù)據(jù)結(jié)構(gòu)。 return (ERROR)。需要借用互斥機(jī)制 – 任務(wù)變量 ? 一些程序可能會被多個任務(wù)同時調(diào)用,這些任務(wù)可能要求全局變量和靜態(tài)變量有不同的值。 – 當(dāng)有內(nèi)核調(diào)用或有中斷到來時,內(nèi)核重新調(diào)度 ? 同時提供了時間片輪轉(zhuǎn)調(diào)度 嵌入式培訓(xùn)專題 微迪軟件培訓(xùn)中心 基于優(yōu)先級的搶占式調(diào)度 注:高低優(yōu)先級時
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1