在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 高效輕型線程助力提高Linux實(shí)時(shí)性能

            高效輕型線程助力提高Linux實(shí)時(shí)性能

            作者: 時(shí)間:2012-09-07 來(lái)源:網(wǎng)絡(luò) 收藏

            簡(jiǎn)介

            本文引用地址:http://www.biyoush.com/article/148447.htm

              上個(gè)世紀(jì),研發(fā)人員投入了大量精力和行為,最著名的是PREEMPT_RT 擴(kuò)展。最近,研發(fā)人員致力于研究適用于多核設(shè)備的用戶空間解決方案,該解決方案允許從用戶空間中直接訪問(wèn)基礎(chǔ)硬件,從而可避免因?qū)inux內(nèi)核引入用戶空間應(yīng)用而帶來(lái)的額外系統(tǒng)開(kāi)銷。這些用戶空間擴(kuò)展(有多個(gè))已首先由電信/網(wǎng)絡(luò)高 IP 數(shù)據(jù)包處理系統(tǒng)進(jìn)行驅(qū)動(dòng),以實(shí)現(xiàn)所謂的裸金屬實(shí)施,其中,多核設(shè)備中的Linux用戶空間應(yīng)用可以模擬無(wú)操作系統(tǒng)解決方案的執(zhí)行過(guò)程,即在每個(gè)內(nèi)核上進(jìn)行簡(jiǎn)單運(yùn)行到完成、輪詢循環(huán),以便進(jìn)行數(shù)據(jù)包處理。在從根本上實(shí)現(xiàn)該目標(biāo)的同時(shí),該解決方案仍可用于非常特殊的用例。還有其他需要的用例無(wú)法通過(guò)以上解決方案完全解決嗎?如果有的話,請(qǐng)列舉出來(lái),是否可應(yīng)用更完善的Linux改進(jìn)?答案是肯定的,采用Linux用戶空間 (light-weight threading, LWT) 即可。我們來(lái)研究一下實(shí)時(shí) Linux,以及如何能成為適用于某些應(yīng)用的解決方案。研究的重點(diǎn)受電信、網(wǎng)絡(luò)或常用通信應(yīng)用的影響,Enea側(cè)重于這些應(yīng)用中采用的技術(shù)。但總體上來(lái)說(shuō),對(duì)的重點(diǎn)應(yīng)用會(huì)使多方受益。

              實(shí)時(shí)Linux及其解決的問(wèn)題

              在過(guò)去的10 年中,Linux 已在實(shí)時(shí)性能和行為方面取得了顯著的進(jìn)步,滿足了大量應(yīng)用的需求。具體歸納如下:

              PREEMPT_RT

              PREEMPT_RT也許是Linux實(shí)時(shí)擴(kuò)展取得的最顯著的成就,PREEMPT_RT數(shù)據(jù)包解決了多核設(shè)備Linux中存在的特別棘手的問(wèn)題,即中斷延遲問(wèn)題。將事件/數(shù)據(jù)傳送到真實(shí)用戶空間應(yīng)用之前,處理Linux內(nèi)核中的中斷占用的系統(tǒng)開(kāi)銷非常高 - 該系統(tǒng)開(kāi)銷往往會(huì)延遲其他中斷,從而增大發(fā)生中斷時(shí)測(cè)得的中斷信息接收方進(jìn)行處理的總體延遲。同樣,Linux內(nèi)核中還有許多所謂的重要部分,可在其中通過(guò)自旋鎖禁用中斷。標(biāo)準(zhǔn)Linux內(nèi)核的總體中斷延遲與許多實(shí)時(shí)應(yīng)用的最重要的中斷延遲要求不符,特別是無(wú)線接入網(wǎng)(移動(dòng))和移動(dòng)核心基礎(chǔ)設(shè)施,這兩者要求最差情況下的中斷延遲應(yīng)在20-30微秒范圍內(nèi)。這一點(diǎn)也適用于許多其他市場(chǎng)應(yīng)用。在快速nutshellPREEMPT_RT中,這一問(wèn)題是通過(guò)以下方式解決的:

              ●將全部設(shè)備驅(qū)動(dòng)器中斷句柄傳遞到可調(diào)度線程中,這樣可最大程度地減少Linux內(nèi)核對(duì)中斷的處理工作,因此,無(wú)需等待前一中斷處理完成便可處理新中斷。之后,中斷處理會(huì)變?yōu)槭軆?yōu)先級(jí)驅(qū)動(dòng),根據(jù)用戶需求,會(huì)先完成優(yōu)先級(jí)最高的中斷處理。

              ●將Linux內(nèi)核中的所有死空間自旋鎖傳遞到互斥量中,從而允許其他內(nèi)核線程代替內(nèi)核空間自旋鎖運(yùn)行。

              基本上,PREEMPT_RT已根據(jù)非常高性能的實(shí)時(shí)標(biāo)準(zhǔn)將總體中斷延遲成功縮短,這樣對(duì)大量Linux應(yīng)用都非常有幫助。要了解具體應(yīng)用?請(qǐng)繼續(xù)往下讀。

              用戶空間Linux調(diào)整

              如上文所述,近年來(lái),研發(fā)人員對(duì)Linux用戶空間應(yīng)用投入了大量精力。目的是避免用戶空間應(yīng)用(Linux 用戶對(duì)其附加價(jià)值投入了大量精力)占用Linux內(nèi)核本身的系統(tǒng)開(kāi)銷來(lái)處理某些特定的設(shè)備/中斷交互。Linux采用的模型可極大程度地防止用戶空間應(yīng)用受到內(nèi)核的影響,在該模型中,所有用戶空間操作(包括線程)始終會(huì)映射到Linux內(nèi)核,以便處理其I/O請(qǐng)求。這樣便Linux具有強(qiáng)大的行為和特性。但是,對(duì)于數(shù)據(jù)處理性能非常高的應(yīng)用來(lái)說(shuō),即使采用PREEMPT_RT,Linux也會(huì)有短時(shí)故障,這是因?yàn)?,總是需要進(jìn)行Linux內(nèi)核上下文切換才能直接訪問(wèn)硬件。用戶空間Linux實(shí)施允許應(yīng)用在不涉及Linux內(nèi)核的情況下直接訪問(wèn)硬件和中斷,并可極大程度地性能。但這種性能提升只能在I/O密度極高的環(huán)境中實(shí)現(xiàn)。大部分Linux用戶空間調(diào)整都側(cè)重于單線程應(yīng)用(如高性能數(shù)據(jù)包處理),其中,Linux下只有一個(gè)線程用于模擬多核設(shè)備中的無(wú)操作系統(tǒng)性能。

              多線程問(wèn)題

              實(shí)時(shí)Linux解決方案調(diào)查中缺少的是認(rèn)真檢查多線程在實(shí)時(shí)嵌入式應(yīng)用中的有效性。實(shí)際上,早在20世紀(jì)80年代Linux出現(xiàn)之前,人們就提出了需要采用嵌入式實(shí)時(shí)操作系統(tǒng)(RTOS) 來(lái)實(shí)現(xiàn)低延遲、高吞吐量、極具實(shí)時(shí)特點(diǎn)的應(yīng)用。操作系統(tǒng)的結(jié)構(gòu)發(fā)生了變化,但對(duì)這方面的需求卻沒(méi)有改變。此類RTOS解決方案所具有的各種性能、行為和特性是過(guò)去十多年中Linux一直嘗試達(dá)到的。這并不意味著傾向于恢復(fù)使用RTOS,而是要達(dá)到RTOS所具有的功能。就便攜性、應(yīng)用的廣闊生態(tài)系統(tǒng)以及設(shè)備支持和常規(guī)支持來(lái)講,Linux在實(shí)時(shí)嵌入式解決方案中的總體價(jià)值是任何RTOS都無(wú)法比擬的。存在兩個(gè)實(shí)際問(wèn)題:

              ●多線程為何重要?

              ●如果多線程很重要,那么我們應(yīng)如何將RTOS多線程性能、行為和特性添加到Linux中,以便取得更大的成功?關(guān)鍵問(wèn)題是了解Linux多線程實(shí)施與RTOS,然后考慮可以進(jìn)行哪些改進(jìn)。

              多線程為何重要?

              30多年前,當(dāng)計(jì)算機(jī)解決方案軟件設(shè)計(jì)人員碰到單線程解決方案無(wú)法解決的復(fù)雜問(wèn)題時(shí),便已提出了對(duì)多線程實(shí)時(shí)性方面的需求。所需解決方案要求單個(gè)應(yīng)用具有多個(gè)任務(wù),也許一些是計(jì)算任務(wù),一些是受I/O驅(qū)動(dòng)的任務(wù),但是,就任務(wù)的總體執(zhí)行而言,所有任務(wù)均密切相關(guān)。但多個(gè)任務(wù)密切相關(guān)意味著這些任務(wù)應(yīng)共享一部分CPU時(shí)間才能達(dá)到CPU的有效總體利用率。在很多此類應(yīng)用中,必須禁止執(zhí)行某些操作、等待某些I/O事件或另一應(yīng)用發(fā)出的其他通信。因此出現(xiàn)了簡(jiǎn)單的可執(zhí)行程序,這些可執(zhí)行程序可以處理多個(gè)線程,同時(shí)可禁用線程,并可在各線程之間進(jìn)行低延遲通信。

              并非所有實(shí)時(shí)應(yīng)用都需要支持重要的多線程處理功能。本文并未對(duì)相關(guān)應(yīng)用進(jìn)行分類。但很顯然,需要使用多線程處理功能的應(yīng)用是那些需要在協(xié)議中設(shè)定等待狀態(tài)的任何類型的復(fù)雜協(xié)議,即等待允許應(yīng)用繼續(xù)進(jìn)行的響應(yīng)或事件。之后,應(yīng)用應(yīng)放棄對(duì)CPU的控制權(quán),允許運(yùn)行其他類似的線程,來(lái)代替該響應(yīng)或事件。

              也許上述教程對(duì)于許多人來(lái)說(shuō)很簡(jiǎn)單。請(qǐng)注意,很多移動(dòng)基礎(chǔ)設(shè)施和核心網(wǎng)絡(luò)設(shè)備供應(yīng)商得出的結(jié)論是,雖然Linux是當(dāng)前或未來(lái)系統(tǒng)的首選,但目前構(gòu)建的Linux還不足以滿足業(yè)界的全部要求。原因是什么?

            linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

            上一頁(yè) 1 2 下一頁(yè)

            評(píng)論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉