亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于ARM的Linux實時搶占補丁的研究與實現(xiàn)

        2015-12-30 03:14:02王帥華,楊東升,王允森

        基于ARM的Linux實時搶占補丁的研究與實現(xiàn)*

        王帥華1,2,楊東升2,王允森1,2,袁曉慧1,2

        (1.中國科學(xué)院大學(xué),北京100049;2.中國科學(xué)院 沈陽計算技術(shù)研究所,沈陽110168)

        摘要:隨著ARM處理器計算能力的提高,該類型的處理器在嵌入式領(lǐng)域的應(yīng)用越來越廣泛的同時,也得到了數(shù)控系統(tǒng)的青睞。結(jié)合數(shù)控系統(tǒng)的實時加工技術(shù)的要求,通過分析和研究Linux實時搶占補丁(RT-Preempt patch)技術(shù),提出了一種基于ARM微處理器TI AM3358的嵌入式實時系統(tǒng)解決方案。在以TI AM3358為硬件平臺的Linux嵌入式系統(tǒng)中實現(xiàn)了RT-Preempt的應(yīng)用,并對任務(wù)調(diào)度延遲、中斷響應(yīng)延遲和優(yōu)先級反轉(zhuǎn)問題進行了測試。經(jīng)試驗證明,提出的實時系統(tǒng)解決方案可以滿足中檔數(shù)控系統(tǒng)實時加工的需求。

        關(guān)鍵詞:可搶占實時補??;嵌入式實時系統(tǒng);嵌入式數(shù)控系統(tǒng)

        文章編號:1001-2265(2015)09-0001-04

        收稿日期:2014-11-25

        基金項目:*"核高基"專項(2012ZX01029-001-002)

        作者簡介:王帥華(1988—),男,山東日照人,中國科學(xué)院大學(xué)碩士研究生,研究方向為實時系統(tǒng),(E-mail)wangshuaihua@sict.ac.cn;楊東升(1965—),男,沈陽人,中國科學(xué)院研究員,博士生導(dǎo)師,研究方向為自動控制、數(shù)控技術(shù)等。

        中圖分類號:TH164;TG65

        Research and Implementation on RT-Preempt Patch of Linux Based on ARM

        WANG Shuai-hua1,2, YANG Dong-sheng2, WANG Yun-sen1,2, YUAN Xiao-hui1,2

        (1. University of Chinese Academy of Sciences, Beijing 100049, China; 2. Shenyang Institute of Computing Technology, Chinese Academy of Science, Shenyang 110168, China)

        Abstract:With the increase in computing power of ARM processor, this type of processors are used more and more widely in embedded field, at the same time, they are favored by the CNC system. Through analysis and study of the Linux real-time preemption patch (RT-Preempt) presented a new embedded real-time system solution based on ARM microprocessor TI AM3358 and RT-Preempt. Finally, this paper completed the measurement of task schedule latency, interrupt response delay and priority inversion problem which affect the performance of real-time system. The results of the experiment support that the performance of that solution can meet the demand of real-time processing from CNC.

        Key words: real-time preemption patch; embedded real-time system; embedded CNC

        0引言

        嵌入式系統(tǒng)平臺包括硬件平臺和軟件平臺。硬件系統(tǒng)平臺主要包括x86平臺和以ARM為代表的RISC平臺。軟件平臺主要有Linux、WinCE、Vxworks、QNX和pSOS等系統(tǒng)平臺[1]?;趚86的處理器功耗大、成本高、體積大并且外圍電路復(fù)雜,而基于ARM的處理器功耗低、成本低、體積小并且外圍電路簡單。ARM處理器的計算能力不斷提高,最新的ARM處理器的已經(jīng)可以滿足中檔數(shù)控系統(tǒng)計算能力的要求[2]。Linux系統(tǒng)作為嵌入式軟件系統(tǒng)有它獨特的優(yōu)勢,其開源的特性使我們可以對其進行深度定制和實時性改造。

        1Linux實時化技術(shù)

        Linux作為一個通用的操作系統(tǒng),為了適應(yīng)服務(wù)器和用戶桌面的應(yīng)用,增加系統(tǒng)的吞吐量和用戶體驗,被設(shè)計成分時操作系統(tǒng)。而嵌入式實時控制領(lǐng)域?qū)ο到y(tǒng)的實時性要求比較高,所以需要對Linux系統(tǒng)進行實時化改造。

        對Linux的實時化改造有兩種方法:

        (1)對Linux內(nèi)核進行修改,優(yōu)化Linux的實時性能;

        (2)采用雙內(nèi)核方案,增加一個實時內(nèi)核,有實時要求的任務(wù)都在這個實時內(nèi)核上運行,標(biāo)準(zhǔn)Linux內(nèi)核作為這個實時內(nèi)核優(yōu)先級最低的一個進程[3-4]。

        對Linux內(nèi)核改造的主要產(chǎn)物有:RED-Linux、Hard-hat Linux、Kurt-Linux和RT-Preempt等[5]。對標(biāo)準(zhǔn)Linux實施雙內(nèi)核改造的產(chǎn)物有:RTLinux、RTAI(Real-Time Application Interface)和Xenomai等。

        與使用雙內(nèi)核的方法相比,對標(biāo)準(zhǔn)Linux內(nèi)核直接改造的方法更適合在新硬件平臺上進行嵌入式實時系統(tǒng)的研發(fā)。TI AM3358是TI公司新推出的硬件平臺,具有720MHz的主頻和較強的運算能力,適合在數(shù)控系統(tǒng)中應(yīng)用,但是目前官方還沒有雙內(nèi)核方案對該平臺的完整支持。因此,我們選擇RT-Preempt對現(xiàn)有的Linux內(nèi)核進行實時性改造。

        2TI AM 3358微處理器

        基于ARM Cortex-A8的AM3358微處理器在圖像、圖形處理、外設(shè)和諸如EtherCAT和PROFIBUS的工業(yè)接口選項方面進行了增強。處理器主頻最高可以達(dá)到720MHz,具有單錯檢測(奇偶校驗)的32KB L1指令/數(shù)據(jù)高速緩存,含糾錯碼(ECC)的256KB L2高速緩存,支持移動雙倍速率同步動態(tài)隨機存儲器(mDDR)(低功耗DDR(LPDDR))/DDR2/DDR3,支持通用存儲器(NAND,NOR,SRAM,等),支持高達(dá)16位ECC,支持最多2個具有集成物理層的USB 2.0高速OTG端口,支持最多2個端口的10/100/1000以太網(wǎng)交換機,串口包括:2個控制器局域網(wǎng)端口(CAN),6個UART,2個McASPI,2個McSPI和3個I2C端口,支持硬件加密加速(AES,SHA,PKA,RNG)。在這款符合工控要求的嵌入式處理器硬件平臺之上,整個嵌入式實時系統(tǒng)的實時性能主要由操作系統(tǒng)決定。

        3Linux實時搶占補丁實現(xiàn)原理

        Linux實時補丁現(xiàn)主要由Ingo Molnar和Thomas Gleixner維護,并且由開源自動化開發(fā)實驗室(OSADL)對其穩(wěn)定性測試。最新版的實時補丁隨Linux內(nèi)核一同發(fā)布,并且越來越多的實時搶占補丁的內(nèi)容被官方Linux項目接收[6],融入到發(fā)行版的Linux內(nèi)核中。Linux實時補丁相比于雙內(nèi)核機制方案最大的優(yōu)勢在于它遵循POSIX標(biāo)準(zhǔn),使用該補丁的實時系統(tǒng)應(yīng)用程序和驅(qū)動程序與非實時系統(tǒng)的應(yīng)用和驅(qū)動程序差異很小,因此,在使用該補丁的平臺上做相應(yīng)的開發(fā)比雙內(nèi)核機制的方案更容易。另外,該補丁與硬件平臺相關(guān)性小,可移植性高。

        3.1實時補丁的工作原理

        通常情況下Linux內(nèi)核僅僅在以下三種情況下允許進程間的搶占:

        (1)當(dāng)CPU運行在用戶態(tài)時;

        (2)當(dāng)內(nèi)核代碼從系統(tǒng)調(diào)用或者中斷返回到用戶空間時;

        (3)當(dāng)內(nèi)核代碼塊阻塞在互斥量或者明確地將控制權(quán)交給另外一個進程時。

        如果內(nèi)核代碼正在執(zhí)行時有高優(yōu)先級事件產(chǎn)生,該高優(yōu)先級線程不能搶占正在執(zhí)行中的內(nèi)核代碼,該線程只能等到內(nèi)核代碼明確地交出控制權(quán)才能得到執(zhí)行。在更糟糕的情況下這個延遲會達(dá)到上百毫秒或者更大。這在實時系統(tǒng)中是不能接受的。

        Linux實時補丁通過以下方法將純凈的Linux內(nèi)核轉(zhuǎn)變成一個完全可搶占的內(nèi)核:

        (1)通過使用rtmutex重新實現(xiàn)自旋鎖來實現(xiàn)內(nèi)核鎖原語的可搶占操作;

        (2)為了解決優(yōu)先級反轉(zhuǎn)問題,為內(nèi)核中的自旋鎖和信號量實現(xiàn)優(yōu)先級繼承策略;

        (3)將中斷處理程序轉(zhuǎn)換成可搶占的內(nèi)核線程;

        (4)提高了用戶空間POSIX定時器的精度。

        3.2實時補丁的具體實現(xiàn)

        (1)可搶占自旋鎖的實現(xiàn)。以spin_lock_irqsave宏函數(shù)為例:

        #define spin_lock_irqsave(lock, flags)do{typecheck(unsigned long, flags);flags=0;spin_lock(lock);}while(0)

        在對spin_lock()函數(shù)的調(diào)用上沒有任何區(qū)別,主要區(qū)別在spin_lock函數(shù)的實現(xiàn):

        首先,普通的自旋鎖的實現(xiàn)如下:

        #define spin_lock (lock) _spin_lock(lock)

        void__lockfunc_spin_lock(spinlock_t*lock)

        {

        preempt_disable();

        _raw_spin_lock(lock);

        }

        在自旋鎖普通的實現(xiàn)中,最先通過調(diào)用preempt_disable()是禁止進程搶占,再調(diào)用獲取自旋鎖的_raw_spin_lock()函數(shù)。而可搶占實時補丁中自旋鎖的實現(xiàn)如下代碼所示:

        #define spin_lock(lock)do {migrate_disable();rt_spin_lock(lock);}

        可搶占內(nèi)核用rt_spin_lock()重新改寫了自旋鎖的實現(xiàn)。在rt_spin_lock()函數(shù)的實現(xiàn)中調(diào)用了rt_spin_lock_fastlock()函數(shù),而rt_spin_lock_fastlock()函數(shù)是自旋鎖可搶占實現(xiàn)的關(guān)鍵代碼,因為在該函數(shù)中調(diào)用了might_sleep()函數(shù),might_sleep()這個函數(shù)的作用是指示當(dāng)前進程可以睡眠,可以睡眠意味這可以交出CPU的控制權(quán),即,該進程可以被搶占。該函數(shù)的實現(xiàn)代碼如下所示:

        static inline void rt_spin_lock_fastlock ()

        {

        might_sleep();

        ……

        }

        might_sleep()的函數(shù)的實現(xiàn)如下代碼所示:

        #define might_sleep() do{ might_resched(); } while (0)

        通過對可搶占實時補丁的源代碼的分析可以看出在該補丁中對自旋鎖的實現(xiàn)完全拋開了非搶占內(nèi)核中對自旋鎖實現(xiàn)的方式,并且保留了非搶占自旋鎖的實現(xiàn)。所以可以繼續(xù)使用_raw_spin_lock()函數(shù)創(chuàng)建不可搶占的內(nèi)核區(qū)域。

        (2)優(yōu)先級反轉(zhuǎn)問題的解決。在uc/OS-II中不支持優(yōu)先級繼承,使用的是優(yōu)先級天花板方式解決的優(yōu)先級反轉(zhuǎn)問題。這種方法存在的問題是,只要有進程訪問可能引起優(yōu)先級發(fā)轉(zhuǎn)的資源時,不論是否發(fā)生優(yōu)先級反轉(zhuǎn),都會對該進程的優(yōu)先級進行調(diào)整,浪費了許多CPU資源,也影響了系統(tǒng)的實時性[7]。而Linux在中采用優(yōu)先級繼承的解決方法時,只有在低優(yōu)先級進程占用資源并阻塞高優(yōu)先級進程時才會對占有該資源低優(yōu)先級進程的優(yōu)先級的調(diào)整,這樣可以減少不必要的CPU資源消耗??蓳屨紝崟r補丁實現(xiàn)的優(yōu)先級繼承策略已經(jīng)被內(nèi)核項目接收,成為內(nèi)核源碼的一部分,其實現(xiàn)在/kernel/rtmutex.c文件中。

        (3)中斷線程化。中斷線程化包括兩部分:硬中斷線程化和軟中斷線程化。

        軟中斷的線程化在spawn_ksoftirqd()中完成,該函數(shù)在內(nèi)核初始化的時候執(zhí)行,他通過kthread_create()調(diào)用run_ksoftirqd()創(chuàng)建相應(yīng)的軟中斷線程,設(shè)置中斷線程的優(yōu)先級,軟中斷線程采用SCHED_FIFO實時調(diào)度策略。軟中斷線程化后,所有的軟中斷都轉(zhuǎn)到線程中去處理。其執(zhí)行時機是當(dāng)硬中斷處理完后,在irq_exit()中調(diào)用do_softirqd()通過wakeup_softirq()喚醒相應(yīng)的中斷處理程序。

        硬中斷的線程化在__setup_irq()中完成,通過kthread_create()調(diào)用irq_thread()創(chuàng)建相應(yīng)的處理線程,硬中斷線程也是采用SCHED_FIFO的調(diào)度策略。其線程的優(yōu)先級比軟中斷線程的優(yōu)先級要高,為用戶線程優(yōu)先級的一半。__setup_irq()被setup_irq()、request_irq()或request_threaded_irq()調(diào)用。中斷發(fā)生時,硬中斷的處理在do_IRQ()中完成,最后通過handle_IRQ_event()喚醒相應(yīng)的中斷線程來處理。

        需要注意的是:并不是所有的中斷都可線程化,例如時鐘中斷具有最高優(yōu)先級,用于驅(qū)動整個系統(tǒng),就不能被線程化。對于不能被線程化的中斷需要在中斷的irqaction結(jié)構(gòu)體中對flags成員加上IRQF_NODELAY標(biāo)記。對于時鐘中斷,因為IRQF_TIMER標(biāo)記包含了IRQF_NODELAY標(biāo)記,只需要加上IRQF_TIMER標(biāo)記即可。

        4基于實時搶占補丁的系統(tǒng)平臺的構(gòu)建

        RT-Preempt在TI AM 3358平臺的移植過程中的關(guān)鍵技術(shù)為高精度時鐘的實現(xiàn),因為有關(guān)任務(wù)調(diào)度和中斷線程的調(diào)度都與時鐘有關(guān)。在內(nèi)核文件kernel/sched_clock.c中,有一個平臺無關(guān)的sched_clock()函數(shù)的實現(xiàn),該函數(shù)的關(guān)鍵代碼為:

        (jiffies-INITIAL_JIFFIES)*(NSEC_PER_SEC/HZ);

        從該語句中可以看出,該實現(xiàn)基于系統(tǒng)的jiffies,而jiffies與Hz有關(guān),即jiffies=1/Hz秒。若使用高精度的時鐘定時器,必須實現(xiàn)TI AM3358平臺的sched_clock()函數(shù)。

        TI AM 3358處理器的主頻為720MHz,可以提供高達(dá)1/(720×106)=1.4ns的計時分辨率。

        sched_clock()函數(shù)實現(xiàn)偽代碼:

        unsigned long long notrace sched_clock (void)

        {

        u32 cyc = 0;

        _ raw_spin_lock(&lock);

        cyc = 讀取定時器時間戳;

        _ raw_spin_unlock(&lock);

        return cyc_2_ns(cyc, (u32)~0);

        }

        實現(xiàn)該分辨率時鐘,首先讀取定時器的時間戳,然后將時間戳轉(zhuǎn)換成ns并返回,cyc_2_ns()函數(shù)的實現(xiàn)可以參考公式(1)。

        ns=(cycles·mult)>>shift

        (1)

        在該公式中shift的取值為(u32)~0,mult被限制為32位的整數(shù)。

        為了使Linux實時可搶占補丁生效,需要對內(nèi)核做相應(yīng)的配置:

        (1)使能CONFIG_PREEMPT選項。在3.x版本的內(nèi)核需要開啟以下三個選項,它們是:

        CONFIG_PREEMPT=y

        CONFIG_PREEMPT_RT_BASE=y

        CONFIG_PREEMPT_RT_FULL=y

        (2)激活高精度時鐘選項。

        CONFIG_HIGH_RES_TIMERS=y

        (3)禁用所有的電源管理選項。例如,ACPI和APM等。

        5實時性能測試及分析

        一般來講對實時系統(tǒng)的“實時性”的衡量指標(biāo)主要有兩個:一是任務(wù)調(diào)度延遲,二是中斷處理延遲[8]。此外優(yōu)先級反轉(zhuǎn)也是影響實時系統(tǒng)性能重要因素之一。

        任務(wù)調(diào)度延遲是指任務(wù)從需要被調(diào)度到任務(wù)實際被調(diào)度的時間段。圖1和圖2是分別對Linux重CPU負(fù)載的情況下使用clock_nanosleep(TIME_ABSTIME)和POSIX interval timer定時器對任務(wù)調(diào)度延遲進行的測試。從測試結(jié)果中可以看出在使用clock_nanosleep定時器測試時,實時可搶占內(nèi)核的Linux系統(tǒng)的最小、平均和最大任務(wù)調(diào)度延遲都小于普通Linux內(nèi)核的最小、平均和最大延遲,尤其是最大任務(wù)調(diào)度延遲實時可搶占內(nèi)核的延遲比普通內(nèi)核的最大調(diào)度延遲小兩個數(shù)量級。在使用POSIX interval timer定時器的測試中,雖然實時可搶占的Linux內(nèi)核的最小和平均延遲比標(biāo)準(zhǔn)Linux內(nèi)核略大,但是還是在同一個數(shù)量級內(nèi)(100μs以內(nèi)),而在最大延遲方面可搶占實時Linux內(nèi)核比普通Linux內(nèi)核同樣是小了兩個數(shù)量級——實時可搶占Linux內(nèi)核的最大延遲為105μs,而普通Linux內(nèi)核的最大延遲為2353μs,這遠(yuǎn)遠(yuǎn)超過了該實時系統(tǒng)的要求(系統(tǒng)的任務(wù)調(diào)度周期是1ms)。

        圖1 clock_nanosleep在兩種系統(tǒng)上的對比

        圖2 POSIX timer在兩種系統(tǒng)上的對比

        中斷處理延遲是指從中斷產(chǎn)生到該中斷得到響應(yīng)的時間間隔。Linux中斷分為上半部和下半部,上半部對中斷信號進行響應(yīng),但是具體的中斷處理工作將會有下半部執(zhí)行,中斷處理程序不會立刻被執(zhí)行,而是被放在等待隊列中,等CPU空閑時才會得到執(zhí)行[9]。

        對用于工業(yè)控制系統(tǒng)來說對中斷響應(yīng)的延遲要求比較高,如果中斷得不到及時的響應(yīng)很可能會造成災(zāi)難性的后果。所以中斷響應(yīng)也是對實時系統(tǒng)測試的一個重要標(biāo)準(zhǔn)。原基于X86的RTAI/Linux實時數(shù)控系統(tǒng)對中斷響應(yīng)周期為2ms,而標(biāo)準(zhǔn)的Linux內(nèi)核對2ms周期的中斷響應(yīng)時存在中斷丟失的情況。該系統(tǒng)平臺使用FPGA編程負(fù)責(zé)產(chǎn)生2ms/次的中斷,該硬件每2ms向CPU其中的一個寄存器中寫入連續(xù)的數(shù)字,并且每40ns向CPU的另外一個寄存器也寫入一個連續(xù)的數(shù)字,由內(nèi)核中的中斷處理程序?qū)拇嫫渲械臄?shù)據(jù)進行讀取并計算數(shù)字的連續(xù)性和兩次中斷響應(yīng)的時間間隔。根據(jù)下面的公式計算兩次響應(yīng)的時間間隔和中斷響應(yīng)的抖動時間。

        ΔT=Tnew-Told

        (2)

        ΔTjitter=ΔT×40-2000000

        (3)

        通過公式(2)計算出兩次響應(yīng)的寄存器中的時間間隔,該寄存器由FPGA負(fù)責(zé)修改,每40ns修改一次。公式(3)用于計算這兩次響應(yīng)的真實的時間間隔與中斷周期2ms之間的差值,該值即為中斷響應(yīng)的時間抖動值,如圖3所示。該圖為2ms中斷響應(yīng)周期條件下對2ms/次的中斷響應(yīng)時間的抖動值,從圖中可以看出最大的抖動值在300μs左右,在以2ms為中斷周期的條件下,該中斷響應(yīng)延遲在CNC系統(tǒng)中是可以接受。為了取得更好的測試效果,本次實驗中嘗試了使用1ms中斷響應(yīng)周期對2ms/次的中斷進行響應(yīng),其測試結(jié)果如圖4所示。從實驗結(jié)果中可以看出在1ms中斷響應(yīng)周期下對中斷的響應(yīng)延遲在1.5μs以內(nèi),可以滿足中檔數(shù)控系統(tǒng)實時加工的需求。

        圖3 2ms中斷響應(yīng)周期抖動圖

        圖4 1ms中斷響應(yīng)周期抖動圖

        優(yōu)先級反轉(zhuǎn)對于實時系統(tǒng)來說同樣是致命的。對實時可搶占Linux系統(tǒng)的優(yōu)先級反轉(zhuǎn)的測試如圖5所示。在該優(yōu)先級反轉(zhuǎn)的測試中,每組有三個線層:低優(yōu)先級線程、中優(yōu)先級線程和高優(yōu)先級線程。中優(yōu)先級線程執(zhí)行時由低優(yōu)先級進程持有mutex,這時高優(yōu)先級線程申請mutex時會被阻塞,同時低優(yōu)先級線程會繼承高優(yōu)先級線程的優(yōu)先級,直到低優(yōu)先級線程執(zhí)行完畢并釋放mutex時,高優(yōu)先級線程才能得到執(zhí)行,避免死鎖。從執(zhí)行結(jié)果中可以看出,在2min的時間內(nèi)總共進行了773018組測試,并沒有發(fā)生死鎖問題??梢灾缹崟r可搶占Linux內(nèi)核已經(jīng)解決了系統(tǒng)中優(yōu)先級反轉(zhuǎn)問題。

        圖5 RT-Preempt Linux系統(tǒng)優(yōu)先級反轉(zhuǎn)測試

        6結(jié)論

        本文首先分析了嵌入式Linux實時系統(tǒng)的實現(xiàn)方法,著重分析了RT-Preempt實時補丁的實現(xiàn)原理,在基于ARM cortex-A8內(nèi)核的TI AM3358處理器平臺采用Linux實時可搶占補丁的方法構(gòu)建了嵌入式實時系統(tǒng)平臺,并對該系統(tǒng)平臺設(shè)計和進行了實時性測試。實驗結(jié)果表明基于ARM處理器TI AM3358的嵌入式RT-Preempt+Linux實時系統(tǒng)可以滿足工業(yè)級實時性的要求,實現(xiàn)數(shù)控系統(tǒng)的實時加工。本課題對數(shù)控系統(tǒng)向小型化和經(jīng)濟化的發(fā)展有著重要的參考價值。

        [參考文獻]

        [1] 蘇宇. 基于Xenomai的實時Linux系統(tǒng)的研究[J].計算機技術(shù)與發(fā)展,2013,23(10):1-5.

        [2] 陸小虎,劉玉香,于東,等.基于CORTEX-A8處理器的嵌入式數(shù)控系統(tǒng)試試平臺的設(shè)計與實現(xiàn)[J].小型微型計算機系統(tǒng),2013,34(7): 1689-1692.

        [3] 劉濤. 一種嵌入式實時Linux的設(shè)計與實現(xiàn)[D]. 成都:電子科技大學(xué),2007.

        [4] 陳曾漢. 基于Xenomai的實時測控系統(tǒng)的研究與實現(xiàn)[J]. 計算機應(yīng)用與軟件. 2009,26(5):162-165.

        [5] 黃芳. 基于S3C2440和RTAI的實時平臺的設(shè)計與實現(xiàn)[J].組合機床與自動化加工技術(shù),2014(2):83-89.

        [6] 吳章金. Linux實時搶占補丁的研究與實踐[D].蘭州: 蘭州大學(xué),2010.

        [7] 秦邵華. 關(guān)于uc/os-II中優(yōu)先級反轉(zhuǎn)問題[J]. 單片機與嵌入式系統(tǒng)應(yīng)用,2005(2):71-71.

        [8] 余兵. Linux操作系統(tǒng)實時性分析[J]. 計算機技術(shù)與發(fā)展, 2007,17(9):41-47.

        [9] 李江. Linux系統(tǒng)實時性測試及分析[J]. 計算機應(yīng)用, 2005,25(7):1679-1681.

        (編輯李秀敏)

        久久高潮少妇视频免费| 91国产超碰在线观看| 在线免费观看毛视频亚洲精品| 极品少妇一区二区三区| 亚洲av高清不卡免费在线 | 三年片免费观看大全国语| 女人大荫蒂毛茸茸视频| 女同性恋精品一区二区三区| av免费在线播放一区二区| 亚洲gay片在线gv网站| 蜜臀性色av免费| 欧美国产成人精品一区二区三区| 午夜精品久视频在线观看| 蜜臀人妻精品一区二区免费| 国产欧美精品一区二区三区四区 | 在线人成视频播放午夜| 成人免费看www网址入口| 中文字幕无码精品亚洲资源网久久 | 亚洲va中文字幕无码| 亚洲福利视频一区| 中文字幕精品亚洲二区| 亚洲国产精品国自产拍性色 | 亚洲av无码久久精品蜜桃| 国产免费专区| 92自拍视频爽啪在线观看| 免费无码专区毛片高潮喷水| 激情内射亚州一区二区三区爱妻| 亚洲Va中文字幕无码毛片下载| 国产麻豆一区二区三区在| 人妻少妇被猛烈进入中文字幕| 国产精品成人久久电影| 亚洲av熟妇高潮30p| 亚洲是图一区二区视频| 日本精品人妻一区二区三区| 国产亚洲一二三区精品| 久久精品国产99久久久| 中文字幕有码无码av| 欧美成人a视频免费专区| 午夜国产精品视频在线观看| 人人妻人人爽人人澡人人| 2021年最新久久久视精品爱|