亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

設計和優化 Microsoft Windows CE .NET

2019-11-18 12:03:20
字體:
來源:轉載
供稿:網友

  簡介
  對于高性能的嵌入式應用程序所需要的對時間要求嚴格的響應來說,實時性能是不可缺少的,例如,電信交換設備、工業自動化和控制系統、醫學監視設備和空間導航和制導系統。這樣的應用程序必須在指定的時間參數以內實時地傳遞它們的響應。
  
  實時性能是什么?對于 Microsoft Windows CE .NET OS,以下列表定義了實時性能:
  
  • 有關高優先級線程調度的擔保的上限 — 只針對所有已調度線程中的最高優先級線程。
  
  • 調度高優先級中斷服務例程 (ISR) 過程中有關延遲的擔保上限。搶占機制在一個短暫、有限的時間內關閉后內核有很少的空間。
  
  • 對計劃程序和它如何調度線程進行細致的控制。
  
  
  重要的是應當區分實時系統和實時 OS (RTOS)。實時系統由滿足系統要求所需的所有元素(硬件、OS 和應用程序)組成。RTOS 只是完整的實時系統的一個元素,它必須提供足夠的功能,才能使全部實時系統能夠滿足它的要求。
  
  盡管以前的 Windows CE 版本提供了某些 RTOS 功能,但自從 Windows CE 3.0 以后很多重要的內核更改極大地增強了實時性能。Windows CE .NET 內核包含了與 Windows CE 3.0 相同的實時增強功能,除此之外還有某些額外的功能。本文描述了作為 Windows CE .NET 及其以前版本的組成部分的以下更改:
  
  Windows CE .NET
  對 x86 平臺添加了通過 OEM 定義的變量指定頁面池大小的功能。
  
  Windows CE 3.0
  • 增加了線程優先級級別的數目(從 8 到 256)。
  
  • 更多地控制時間和調度。應用程序可以控制提供給每個線程的時間,并操縱對它們有好處的計劃程序?,F在,對于與休眠和等待相關的應用程序編程接口 (API),計時器精確到一毫秒。
  
  • 處理優先級倒置的方法得到改進。
  
  • 全面支持嵌套中斷。
  
  • ISR 和中斷服務線程 (IST) 滯后時間得到減少。
  
  • 更細粒度的內存治理控制。
  
  
  此外,本文描述了用來測試內核實時性能的工具,并提供了在三種不同 CPU 上的實時性能測試結果。
  
  返回頁首
  對內核的更改
  內核是 Windows CE OS 的內部核心,它負責調度和同步線程、處理異常和中斷、加載應用程序和治理虛擬內存。在 Windows CE 3.0 中,為了提高性能和減少滯后時間,內核經歷了以下幾個更改:
  
  • 將所有內核數據結構移動到物理內存,從而當在內核中執行非搶占代碼時極大地避免了轉換后備緩沖區 (TLB) 損失。
  
  • 所有非搶占、但可中斷的內核部分(稱為 KCALL)被分割成更小的非搶占節。由于增加了節數,這就引入了某些復雜性,但現在搶占機制能夠在更短的時間內關閉。
  
  這一節描述為了增強 Windows CE 3.0 的實時性能對內核的進一步更改。
  
  更多優先級級別
  內核的計劃程序首先使用較高的優先級級別運行某個線程,然后使用相同的優先級以循環方式運行多個線程。為線程指派優先級級別是治理執行速度的一種方式。
  
  Windows CE 3.0 將可用于線程的優先級級別數從 8 增加到 256,0 是最高的優先級,255 是最低的優先級。Windows CE 的前一版本的優先級級別 0 到 7 對應于 Windows CE 3.0 中級別 248 到 255。更多的優先級級別答應開發人員更靈活地控制嵌入式系統的調度,并防止由于限制優先級級別數使隨機應用程序降低系統性能。
  
  要指派這些新的優先級,Windows CE 3.0 引入了兩個新函數:CeSetThreadPRiority 和 CeGetThreadPriority。新函數與 Windows CE 2.12 中的 SetThreadPriority 和 GetThreadPriority 函數看起來完全相同,不過新函數接受的數字范圍是 0 到 255。
  
  更多地控制時間和調度
  Windows CE 3.0 已經改進了計時器性能,計時器和休眠函數調用的精度達到了一毫秒,并且應用程序可以為每個線程設置時間片。
  
  計時器(或系統時鐘)是一種速率,由 OS 以此速率生成計時器中斷并對其提供服務。以前,計時器也是線程時間片,是線程沒有被搶占的情況下可以在系統中運行的最長時間。在 Windows CE 3.0 中,計時器不再直接與線程時間片相關。
  
  以前,OEM 將計時器和時間片作為 OEM 適配層 (OAL) 中的常量設置為大約 25 毫秒。計時器觸發時,假如一個線程已做好預備,內核會調度此新的線程。在 Windows CE 3.0 中,計時器總是設置為一毫秒,并且可以對每個線程設置時間片。
  
  通過將計時器從 OEM 定義的數字更改為一毫秒,可以讓應用程序執行 Sleep(1) 函數,并預計得到大約一毫秒的精度。當然,這取決于線程的優先級、其他線程的優先級以及是否正在運行 ISR。以前,Sleep(1) 經過一個系統周期后返回,這意味著假如計時器被設置為 25 毫秒,則 Sleep(1) 實際上是 Sleep(25)。
  
  計時器中斷
  現在,內核有幾個新的變量,開發人員可以使用它們確定系統時鐘是否需要重新調度。通過在適當的時候返回 SYSINTR_NOP 標志而不是 SYSINTR_RESCHED 標志,完整實現的系統時鐘 ISR 可以防止內核被重新調度。Nk.lib 導出在 Timer ISR 中使用的以下變量:
  
  • dwPreempt 是線程被搶占之前的毫秒數。
  
  • dwSleepMin 是第一次超時(假如有)到期之前的毫秒數,需要重新調度。
  
  • ticksleft 是已經過去、但尚未被計劃程序的休眠隊列處理的系統時鐘數;因而,非零值將導致重新調度。
  
  
  在 Timer ISR 中,其他邏輯將優化計劃程序,并防止內核執行不必要的工作,如以下代碼示例所示。
  
  if (ticksleft (dwSleepMin && (DiffMSec >= dwSleepMin)) (dwPreempt &&
   (DiffMSec >= dwPreempt))) return SYSINTR_RESCHED; return SYSINTR_NOP;
  
  OEMIdle 函數
  OEM 實現 OEMIdle 函數,在沒有要調度的線程時內核將調用該函數。在以前的版本中,計時器時鐘會強制 OS 脫離空閑狀態,并返回到內核以確定是否線程已做好調度預備。假如沒有線程做好預備,內核再次調用 OEMIdle。該操作將導致內核每隔 25 毫秒(或 OEM 指定的其他時間片長度)被激活一次,以確定是否仍然沒有要調度的線程。在電池供電的設備上,這樣的操作會耗盡寶貴的電池電量。
  
  在 Windows CE 3.0 中,為了在時鐘頻率較高的情況下減少耗電量,OEMIdle 函數可以讓 CPU 進入待機模式一毫秒以上。OEM 通過使用 dwSleepMin 和 DiffMSec 變量來編程設置系統時鐘計時器,以便在第一個可用的超時后喚醒。DiffMSec 是自從通過 TimerCallBack 函數檢索到最后一次間隔時間以來的當前毫秒值。
  
  硬件計時器的最大超時值可能小于 MAX_DWord 毫秒值,所以可以編程設置計時器的最大等待時間。在所有情況下,系統從空閑狀態返回時,OEMIdle 函數必須使用已經過去的實際毫秒數更新 CurMSec 和 DiffMSec。CurMSec 是間隔時間的當前值 £­ 即自從啟動以來的毫秒數。
  
  線程時間片
  在 Windows CE 3.0 中,線程時間片很靈活,足以使應用程序能夠逐個線程地設置時間片。這就讓開發人員可以改編計劃程序,以滿足應用程序的當前需要。為了調整時間片,已經添加了兩個新函數:CeGetThreadQuantum 和 CeSetThreadQuantum。這項更改使應用程序能夠基于線程完成任務所需要的時間量來設置線程的時間片。通過將任何線程的線程時間片設置為零,循環調度算法可以變為“運行到完成”算法。只有較高優先級的線程或硬件中斷才能先于設置為運行到完成的線程執行。
  
  默認時間片是 100 毫秒,但在 OEM 初始化階段,OEM 可以通過將內核變量 dwDefaultThreadQuantum 設置為大于零的任何值,從而重寫系統的默認值。
  
  更改處理優先級倒置的方法
  為了有助于縮短響應時間,Windows CE 3.0 更改了它的優先級倒置方法,當低優先級線程擁有一個較高優先級線程所需要的內核對象時,就會發生優先級倒置。Windows CE 使用優先級繼續來處理優先級倒置,這時,被阻塞的、擁有較高優先級線程所需要的內核對象的線程將繼續更高的優先級。優先級倒置使較低優先級線程能夠運行,并釋放資源供較高優先級的線程使用。以前,內核處理整個倒置鏈。從 Windows CE 3.0 開始,內核保證只處理優先級倒置到一個級別的深度。
  
  優先級倒置有兩個基本示例。第一個是簡單的情況,這種情況下,對優先級倒置的處理從 Windows CE 2.12 到 Windows CE 3.0 沒有變化。例如,在有三個處于運行狀態的線程時,可以看見這種情況。線程 A 的優先級是 1,線程 B 和 C 優先級較低。假如線程 A 正在運行,并且因為線程 B 擁有線程 A 需要的內核對象而使 A 被阻塞,那么線程 B 的優先級會提高到 A 的優先級級別,以便答應線程 B 運行。然后,假如因為線程 C 擁有線程 B 需要的內核對象而使線程 B 被阻塞,則線程 C 的優先級會提高到 A 的優先級級別,以便答應線程 C 也能運行。
  
  第二個并且是更有趣的情況是,線程 A 可以以比 B 和 C 更高的優先級運行,線程 B 擁有 A 需要的內核對象,線程 B 被阻塞,等待 C 釋放它需要的內核對象,而 C 正在運行。在 Windows CE 2.12 中,當 A 運行然后因為 B 而被阻塞時,B 和 C 的優先級都會提高到 A 的優先級,以便使它們能夠運行。在 Windows CE 3.0 中,當 A 因為 B 而被阻塞時,只有線程 B 的優先級被提高。通過減少復雜性和更改算法,極大地減少和限制了 Windows CE 中最大的 KCALL。
  
  中斷處理和嵌套中斷
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品magnet| 欧美性猛交xxxx乱大交蜜桃| 18久久久久久| 欧美日韩亚洲成人| 亚洲字幕在线观看| 亚洲精品少妇网址| 久久精品一区中文字幕| 国产三级精品网站| 国产精品一区二区三区成人| 国产91精品黑色丝袜高跟鞋| 亚洲精品久久久久久下一站| 亚洲第一精品福利| 日韩欧亚中文在线| 国产午夜精品美女视频明星a级| 久久视频国产精品免费视频在线| 日韩最新在线视频| 成人精品一区二区三区电影免费| 亚洲色图美腿丝袜| 国产69精品久久久久9| 日韩欧美国产视频| 亚洲色图25p| 亚洲一区二区自拍| 91精品国产99久久久久久| 日韩欧美中文字幕在线播放| 欧美福利视频在线观看| 日韩欧美亚洲范冰冰与中字| 国产成人av网| 深夜成人在线观看| 亚洲人成网站999久久久综合| 川上优av一区二区线观看| 久久99久久99精品中文字幕| 日韩美女在线观看一区| 国产精品人成电影在线观看| 亚洲激情视频在线播放| xvideos亚洲人网站| 亚洲国产高潮在线观看| 78色国产精品| 日韩av中文在线| 在线视频亚洲欧美| 日韩精品亚洲元码| 国产精品96久久久久久又黄又硬| 欧美精品videossex性护士| 国产成人a亚洲精品| 国产精品美女在线观看| 国产区亚洲区欧美区| 日韩一区二区久久久| 国产精品专区一| 日韩欧美国产一区二区| 欧美视频在线看| 国产中文日韩欧美| 美女视频久久黄| 亚洲人精品午夜在线观看| 色先锋资源久久综合5566| 国产欧美精品在线播放| 国内偷自视频区视频综合| 欧美最猛黑人xxxx黑人猛叫黄| 一本色道久久88综合日韩精品| 色诱女教师一区二区三区| 亚洲免费av片| 国模gogo一区二区大胆私拍| 精品国产依人香蕉在线精品| 欧美怡春院一区二区三区| 国产精品三级久久久久久电影| 国产精品久久久久久久久粉嫩av| 91高清视频免费| 日韩中文字幕在线视频播放| 亚洲黄色www| 欧美成人免费全部| 国产欧美一区二区三区在线| 亚洲成人av资源网| 亚洲男女性事视频| 欧美国产一区二区三区| 国产精品一区二区三区在线播放| 九九九久久久久久| 日韩在线观看电影| 91精品久久久久久久久不口人| 在线看日韩欧美| 伊人久久五月天| 久久全球大尺度高清视频| 97久久精品国产| 上原亚衣av一区二区三区| 亚洲午夜色婷婷在线| 久久成人国产精品| 亚洲天堂av图片| 日韩精品在线观| 中文字幕av日韩| y97精品国产97久久久久久| 成人信息集中地欧美| 久久99精品久久久久久琪琪| 黑丝美女久久久| 51ⅴ精品国产91久久久久久| 日韩av三级在线观看| 久久久久久美女| 欧美日韩亚洲91| 国产精品偷伦免费视频观看的| 日韩网站免费观看| 国产精品99一区| 久久久伊人欧美| 免费av在线一区| 欧美性生交大片免网| 国产精品xxxxx| 欧美日韩久久久久| 亚洲第一页自拍| 日韩电影第一页| 国产婷婷成人久久av免费高清| 欧美色xxxx| 国产精品99久久久久久久久久久久| 欧美日韩免费在线观看| 午夜精品一区二区三区在线播放| 一区二区成人av| 久久综合免费视频影院| 国产在线观看精品| 2019中文字幕在线观看| 久久久精品视频成人| 亚洲欧美日韩精品久久奇米色影视| 日韩视频在线免费| 日韩欧美国产视频| 中文字幕亚洲精品| 国产精品网红福利| 永久免费毛片在线播放不卡| 亚洲精品免费av| 91亚洲国产精品| 日韩在线中文字| 日韩中文有码在线视频| 国产精品视频26uuu| 国产精品一区二区av影院萌芽| 国产精品综合不卡av| 91成人免费观看网站| 国产精品久久久久久久av电影| 亚洲精品美女久久久| 在线看日韩av| 国产精品成人免费视频| 日韩欧美国产一区二区| 中文字幕在线观看亚洲| 精品一区二区亚洲| 国内精品久久久久伊人av| 欧美精品久久久久久久免费观看| 成人性生交xxxxx网站| 在线播放亚洲激情| 午夜精品一区二区三区视频免费看| 国产精品视频公开费视频| 亚洲第一色在线| 亚洲无av在线中文字幕| 久久99国产精品久久久久久久久| 激情懂色av一区av二区av| 成人精品久久久| 亚洲欧美在线播放| 久久噜噜噜精品国产亚洲综合| 久久亚洲精品一区二区| 精品一区二区电影| 欧美日韩国产二区| 国产在线观看一区二区三区| 国产一区二区三区视频| 成人在线播放av| 国产精品99一区| 美女av一区二区三区| 国产精品日日摸夜夜添夜夜av| 亚洲男人天天操| 久国内精品在线| 美女精品久久久| 久久伊人91精品综合网站| 欧美大尺度在线观看| 日韩亚洲在线观看| 亚洲电影成人av99爱色|