<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 嵌入式Linux實(shí)時(shí)化技術(shù)

嵌入式Linux實(shí)時(shí)化技術(shù)

作者:黃武陵 中科院自動(dòng)化所 何小慶 北京麥克泰軟件技術(shù)有限公司 艾云峰 中科院研究生院 時(shí)間:2010-03-02 來(lái)源:電子產(chǎn)品世界 收藏

  實(shí)時(shí)化技術(shù)及評價(jià)

本文引用地址:http://dyxdggzs.com/article/106458.htm

  2.6版本內核實(shí)時(shí)性能有一定增強,雙內核方式的實(shí)時(shí)化技術(shù)也在不斷發(fā)展中。原來(lái)由FSMLab維護的RTLinux,其版權在2007年2月被Wind River購買(mǎi),RTAI支持x386等體系結構,但由于其代碼較難維護、bug較難調試等原因,許多開(kāi)發(fā)者加入了Xenomai項目。Xenomai支持最新2.6版 Linux,相比之下代碼相對穩定和可維護,開(kāi)發(fā)模式較活躍。

  內核補丁方式的Linux實(shí)時(shí)化技術(shù)在2.6版內核基礎上做了大量改進(jìn),使得內核中除了中斷關(guān)閉和IRQ線(xiàn)程分派、調度和上下文切換之外的絕大部分代碼都可以被搶占,不可搶占的自旋鎖保護臨界區從一千多個(gè)減少到幾十個(gè),使得內核實(shí)時(shí)性得到極大的提高,獲得社區廣泛支持并逐漸成為L(cháng)inux實(shí)時(shí)化主流技術(shù)。

  Linux內核實(shí)時(shí)化改進(jìn)

  實(shí)時(shí)搶占內核補丁針對Linux各種延遲進(jìn)行了實(shí)時(shí)化改進(jìn),主要包括了幾個(gè)方面的技術(shù)。

  ● 實(shí)時(shí)搶占內核

  為了實(shí)現內核完全可搶占,實(shí)時(shí)內核臨界區用高性能優(yōu)先級繼承mutex替換原來(lái)自旋鎖(spin-lock)來(lái)進(jìn)行保護,使得在臨界區內的執行也可被搶占。只有當線(xiàn)程想訪(fǎng)問(wèn)一個(gè)其他線(xiàn)程正在訪(fǎng)問(wèn)的臨界區時(shí),才被調度至睡眠,直到所保護的臨界區被釋放時(shí)被喚醒。

  在實(shí)時(shí)搶占內核中通過(guò)優(yōu)先級繼承機制(PI)在線(xiàn)程被一個(gè)低優(yōu)先級線(xiàn)程所持有的資源阻塞時(shí),低優(yōu)先級線(xiàn)程通過(guò)繼承被阻塞線(xiàn)程優(yōu)先級,盡快執行并釋放所持資源而不被其他線(xiàn)程所搶占。

  ● 新型鎖機制帶來(lái)內核性能提升

  實(shí)時(shí)搶占補丁替換了大內核鎖(BKL),將BKL從spin lock改成是mutex,持有BKL的線(xiàn)程也可以被搶占,減少了內核調度延遲。此外,實(shí)時(shí)搶占補丁通過(guò)mutex替代semaphore,避免了不必要的時(shí)間負載。實(shí)時(shí)搶占補丁實(shí)現了可搶占的RCU(Read- Copy Update)鎖和串行化讀寫(xiě)鎖,保證了執行可預測性,提高了性能。

  ● 中斷線(xiàn)程化

  實(shí)時(shí)搶占補丁通過(guò)內核線(xiàn)程來(lái)實(shí)現一些硬件中斷和軟件中斷的服務(wù)程序。體系結構相關(guān)處理代碼設置IRQ狀態(tài)、檢查線(xiàn)程化的中斷是否使能,并喚醒相關(guān)線(xiàn)程。在中斷線(xiàn)程被調度執行后,進(jìn)行中斷服務(wù)處理。在實(shí)時(shí)搶占內核中,用戶(hù)線(xiàn)程優(yōu)先級可以高于設備中斷服務(wù)線(xiàn)程。實(shí)時(shí)任務(wù)無(wú)需等待設備驅動(dòng)處理程序執行,減小了實(shí)時(shí)搶占延遲。

  ● 時(shí)鐘系統改進(jìn)

  實(shí)時(shí)搶占內核的時(shí)鐘系統重新進(jìn)行了設計,實(shí)現了高精度定時(shí)器。時(shí)鐘精度不再依賴(lài)jiffies,使POSIX定時(shí)器和nanosleep精度由具體硬件所能提供的精度決定,使得gettimeofday能夠提供實(shí)時(shí)系統所需的精確時(shí)間值。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)


關(guān)鍵詞: 嵌入式 Linux 處理器

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>