国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于微內(nèi)核的星載實時操作系統(tǒng)設(shè)計與實現(xiàn)

2011-11-24 02:39建,楊
關(guān)鍵詞:功能模塊內(nèi)核內(nèi)存

徐 建,楊 樺

(北京控制工程研究所,北京100190)

基于微內(nèi)核的星載實時操作系統(tǒng)設(shè)計與實現(xiàn)

徐 建,楊 樺

(北京控制工程研究所,北京100190)

當(dāng)前星載嵌入式實時操作系統(tǒng)將各個功能模塊都集成在內(nèi)核之中,這導(dǎo)致內(nèi)核龐大,增加了內(nèi)核出現(xiàn)bug的風(fēng)險,從而使整個操作系統(tǒng)的可靠性降低.設(shè)計并實現(xiàn)了一個基于微內(nèi)核的星載嵌入式實時操作系統(tǒng),通過將功能模塊以任務(wù)方式運(yùn)行在用戶態(tài),任務(wù)間通過消息傳遞機(jī)制通訊,以減少內(nèi)核代碼量.最后測試表明設(shè)計達(dá)到故障隔離的效果.

微內(nèi)核;可靠性;嵌入式操作系統(tǒng);故障隔離

一個計算機(jī)系統(tǒng)的可靠性和安全性很大程度上取決于運(yùn)行在其上的操作系統(tǒng)內(nèi)核.內(nèi)核是指運(yùn)行在處理器特權(quán)模式下的代碼,內(nèi)核中任何一個錯誤都會導(dǎo)致整個系統(tǒng)的錯誤甚至是崩潰.在任何代碼量軟件中出現(xiàn)bug的可能性不可避免,代碼量越小,軟件中bug出現(xiàn)的可能性越小.而傳統(tǒng)的操作系統(tǒng)是宏內(nèi)核結(jié)構(gòu),內(nèi)核中包含了操作系統(tǒng)的大部分功能,隨著操作系統(tǒng)功能的擴(kuò)展,其內(nèi)核不斷擴(kuò)大,使得內(nèi)核可靠性降低.而基于微內(nèi)核設(shè)計思想的操作系統(tǒng)通過減少內(nèi)核部分代碼,減少內(nèi)核功能,減少內(nèi)核出錯的概率,從而提高整個系統(tǒng)的可靠性.微內(nèi)核的目的是盡可能把所有的功能模塊都移出內(nèi)核,使內(nèi)核縮到最小[1].理想情況下,微內(nèi)核中僅留下地址空間支持(address space support),進(jìn)程間通訊(IPC, inter-process communication,),調(diào)度(Scheduling),其他功能模塊均作為用戶進(jìn)程運(yùn)行.用戶進(jìn)程之間通過IPC進(jìn)行通信.

微內(nèi)核還具有以下幾種優(yōu)勢[2]:

·擴(kuò)充性強(qiáng),支持更加模塊化的設(shè)計;

·可維護(hù)性好,小的內(nèi)核更容易更新與維護(hù)

·可靠性高,許多模塊的bug可被封閉在模塊內(nèi),一個模塊發(fā)生故障時,其他模塊和內(nèi)核將不受影響或影響很小;

·靈活性強(qiáng),策略與機(jī)制分離,使系統(tǒng)設(shè)計更靈活,不同方法實現(xiàn)的模塊可在系統(tǒng)中共存.

基于消息傳遞的IPC機(jī)制是微內(nèi)核的基本特點之一.這一設(shè)計理念有助于提高系統(tǒng)的靈活性,模塊化,安全性,以及可擴(kuò)展性.而IPC的性能表現(xiàn)是決定微內(nèi)核性能的關(guān)鍵因素.以Mach為代表的第一代微內(nèi)核在IPC性能上表現(xiàn)很差,大大減弱了微內(nèi)核的應(yīng)用.以L4[3]為代表的第二代微內(nèi)核,通過精簡內(nèi)核架構(gòu),提高IPC性能,使得微內(nèi)核的性能得到很大提高.目前國外正在對第三代微內(nèi)核進(jìn)行研究,一個澳大利亞的研究組織設(shè)計并實現(xiàn)了 seL4[4],seL4是基于L4的面向于實時應(yīng)用的微內(nèi)核,并通過形式化方法完成了對微內(nèi)核功能正確性和行為可預(yù)測性的驗證[5],進(jìn)一步提高了微內(nèi)核的可靠性.

目前大部分星載嵌入式實時操作系統(tǒng)都將任務(wù)管理、中斷管理、信號量管理、消息管理、內(nèi)存管理和時間管理等各個模塊都集成在內(nèi)核中,模塊間耦合性很高.如果在某一模塊由于編程錯誤或者其他未知的錯誤出現(xiàn)故障的情況下,將會直接影響到操作系統(tǒng)的其他模塊[6],從而導(dǎo)致整個系統(tǒng)的故障.通過微內(nèi)核架構(gòu)來可以達(dá)到各個功能模塊之間故障隔離的目的.本文以航天應(yīng)用的背景出發(fā)設(shè)計并實現(xiàn)了一個基于微內(nèi)核的星載嵌入式操作系統(tǒng)Micro-SpaceOS,第二、三部分將分別介紹基于微內(nèi)核嵌入式操作系統(tǒng)的設(shè)計和實現(xiàn).

1 M icroSpaceOS的設(shè)計

MicroSpaceOS的設(shè)計目的主要是設(shè)計一款具有高可靠性的星載嵌入式操作系統(tǒng).設(shè)計方法是設(shè)計基于微內(nèi)核的系統(tǒng),將各個功能模塊放到內(nèi)核外面,以服務(wù)程序的形式存在.設(shè)計的原則:

a)各個功能模塊運(yùn)行在用戶層;

b)內(nèi)核盡可能小,僅留必需的模塊;

c)功能模塊間相互隔離.

下面本文將依據(jù)以上3條原則來設(shè)計Micro-SpaceOS.

1.1 功能模塊任務(wù)化

通用的微內(nèi)核主要是在地址空間和進(jìn)程的支持下達(dá)到各個模塊間隔離的.不同的功能模塊以進(jìn)程形式處于不同的地址空間中,進(jìn)程間通過IPC來完成通訊的.地址空間是建立在虛擬內(nèi)存機(jī)制之上,這就要求系統(tǒng)要有存儲器管理單元(MMU,memory management unit)的支持.然而,目前在航天領(lǐng)域由于使用的內(nèi)存小、MMU可靠性低等因素,普遍不使用處理器上的MMU.

考慮到這一點,為了設(shè)計適合航天領(lǐng)域應(yīng)用的微內(nèi)核,如圖1所示,本文通過將功能模塊以任務(wù)形式運(yùn)行將功能模塊從內(nèi)核中移出,滿足了第一條設(shè)計原則.將不同功能模塊放到不同的任務(wù)之中,當(dāng)其他模塊要使用某一功能模塊的某一函數(shù)時,只能通過內(nèi)核提供的基于消息傳遞的通訊機(jī)制來發(fā)送消息、接收返回消息,不能直接函數(shù)調(diào)用.通過任務(wù)切換過程中的上下文保護(hù),來達(dá)到故障隔離的目的.雖然在這種消息機(jī)制會損耗部分系統(tǒng)時間,但可以大大提高系統(tǒng)的可靠性.微內(nèi)核的相關(guān)概念在這里有相應(yīng)的映射,地址空間對應(yīng)于這里的任務(wù)上下文,進(jìn)程對應(yīng)于這里的任務(wù),IPC對應(yīng)于任務(wù)間通信.

1.2 微內(nèi)核的設(shè)計

MicroSpaceOS的微內(nèi)核部分主要是由任務(wù)間通信機(jī)制、任務(wù)調(diào)度、任務(wù)創(chuàng)建、時間片中斷處理程序構(gòu)成,如圖 2所示.將內(nèi)存管理、中斷管理、信號量管理和任務(wù)管理的部分函數(shù)放到任務(wù)中去.在保證系統(tǒng)效率的條件下,盡可能減少內(nèi)核中的功能模塊.這一設(shè)計符合了設(shè)計原則的第二條.

圖1 M icroSpaceOS系統(tǒng)結(jié)構(gòu)圖

圖2 微內(nèi)核結(jié)構(gòu)組成圖

不同的功能模塊、應(yīng)用程序運(yùn)行在不同的任務(wù)中,具有各自的堆棧和任務(wù)控制塊.當(dāng)任務(wù)相互切換時,會調(diào)用任務(wù)上下文切換函數(shù),保存相應(yīng)的上下文,并賦給要運(yùn)行的任務(wù)一個全新的寄存器組.這樣就保證了任務(wù)間的隔離,從而達(dá)到功能模塊間故障隔離的目的.

1.3 任務(wù)間通信機(jī)制

在M icroSpaceOS的設(shè)計中,處于任務(wù)態(tài)的各個功能模塊相互之間通過基于消息的通訊機(jī)制符合功能模塊之間相互隔離的原則.將部分任務(wù)管理、信號量管理、中斷服務(wù)程序、內(nèi)存管理、隊列管理等模塊都作為特殊的任務(wù),其他用戶程序也是以任務(wù)的形式存在.例如:當(dāng)應(yīng)用程序1要使用內(nèi)存管理模塊中內(nèi)存分配功能時,首先應(yīng)用程序1發(fā)消息給內(nèi)核,內(nèi)核根據(jù)消息的接受者參數(shù),將消息傳遞給內(nèi)存管理模塊的任務(wù),此時內(nèi)核掛起應(yīng)用程序1的任務(wù)、恢復(fù)運(yùn)行內(nèi)存管理模塊的任務(wù).當(dāng)內(nèi)存管理模塊完成內(nèi)存分配功能的時候,將返回值以消息的格式發(fā)回給應(yīng)用程序1,同樣是發(fā)消息給內(nèi)核,然后內(nèi)核將消息傳遞給用戶程序1的任務(wù),掛起內(nèi)存管理模塊任務(wù),恢復(fù)運(yùn)行應(yīng)用程序1.這樣就完成了一個簡單的內(nèi)存分配請求,如圖3所示.

圖3 任務(wù)間通信機(jī)制

2 M icroSpaceOS的實現(xiàn)

2.1 任務(wù)調(diào)度機(jī)制實現(xiàn)

在M icroSpaceOS的實現(xiàn)過程中,考慮到增加了任務(wù)間通信機(jī)制,如果兩個任務(wù)之間進(jìn)行通信需要掛起一個任務(wù),然后再恢復(fù)另一個任務(wù),這就使得任務(wù)間頻繁地進(jìn)行任務(wù)調(diào)度和切換.考慮到這點,MicroSpaceOS只支持不同優(yōu)先級的任務(wù),不存在具有相同優(yōu)先級的兩個任務(wù),這樣就不需要維護(hù)同優(yōu)先級就緒任務(wù)鏈表.這種優(yōu)先級策略能滿足大部分的應(yīng)用需求.每個優(yōu)先級下至多對應(yīng)一個任務(wù).就緒任務(wù)表分為兩個部分:一個索引(Index),一個就緒位圖(Table),如圖 4所示

圖4 就緒任務(wù)表

而就緒位圖對應(yīng)于一個存放任務(wù)控制塊指針的任務(wù)數(shù)組,如圖 5所示.在就緒位圖上的每一位都對應(yīng)數(shù)組中的一個位置.就緒位圖上某一位為1,則對應(yīng)于此位的任務(wù)數(shù)組中的任務(wù)就處于就緒態(tài),否則任務(wù)不處于就緒態(tài)或沒有對應(yīng)的任務(wù).當(dāng)進(jìn)行任務(wù)調(diào)度時,只需要通過修改就緒位圖的某一位,并不需要將任務(wù)移入、移出就緒隊列.在任務(wù)間通信機(jī)制中使用這種調(diào)度方式會節(jié)省不少時間,大大提高了任務(wù)間通信的效率.

圖5 任務(wù)列表

2.2 內(nèi)核的內(nèi)存分配

在MicroSpaceOS的設(shè)計中,功能模塊都是作為服務(wù)任務(wù)運(yùn)行在用戶態(tài),所以在任務(wù)調(diào)度開始之前必須先創(chuàng)建這些任務(wù),因此將任務(wù)創(chuàng)建函數(shù)放到內(nèi)核中實現(xiàn).在MicroSpaceOS的任務(wù)調(diào)度啟動之前,首先需要通過調(diào)用內(nèi)核中的任務(wù)創(chuàng)建函數(shù),來創(chuàng)建內(nèi)存管理、中斷管理等服務(wù)任務(wù)以及用戶自己創(chuàng)建的應(yīng)用任務(wù).

在任務(wù)創(chuàng)建過程中,會使用到內(nèi)存分配函數(shù).然而內(nèi)存分配函數(shù)是運(yùn)行在用戶層的,如果內(nèi)核直接調(diào)用任務(wù)管理模塊中的內(nèi)存分配函數(shù)就會使內(nèi)核發(fā)散,當(dāng)內(nèi)存分配函數(shù)出現(xiàn)問題時會直接破壞內(nèi)核的運(yùn)行.如果是通過內(nèi)核向任務(wù)發(fā)消息的方法進(jìn)行調(diào)用內(nèi)存分配函數(shù),就會出現(xiàn)死鎖:任務(wù)創(chuàng)建函數(shù)是為了創(chuàng)建任務(wù);而任務(wù)創(chuàng)建函數(shù)又用到任務(wù)中的函數(shù).這就出現(xiàn)了死鎖問題,最后導(dǎo)致問題無法解決.

那怎樣解決任務(wù)創(chuàng)建函數(shù)調(diào)用內(nèi)存分配函數(shù)呢?一種方法是:為服務(wù)任務(wù)劃分固定的內(nèi)存區(qū)域,任務(wù)創(chuàng)建函數(shù)在創(chuàng)建任務(wù)時直接通過將內(nèi)存區(qū)域分配給相應(yīng)的服務(wù)任務(wù),不需要使用內(nèi)存分配函數(shù).當(dāng)創(chuàng)建應(yīng)用任務(wù)的時候再通過基于消息的任務(wù)間通信機(jī)制調(diào)用內(nèi)存管理任務(wù)中的內(nèi)存分配函數(shù).另一種方法是:將內(nèi)存分配函數(shù)內(nèi)嵌到內(nèi)核中,即:在內(nèi)存管理任務(wù)中有內(nèi)存分配函數(shù),在內(nèi)核中也有內(nèi)存分配函數(shù),而內(nèi)核中的內(nèi)存分配函數(shù)只能夠被內(nèi)核調(diào)用,其他任務(wù)在使用內(nèi)存分配函數(shù)的時候都是通過內(nèi)存管理任務(wù)中的分配函數(shù)來完成的.

應(yīng)該選取哪一種方法來滿足任務(wù)創(chuàng)建時內(nèi)存分配的要求呢?首先分析一下這兩種方法的優(yōu)缺點.第一種方法的優(yōu)點:為服務(wù)任務(wù)劃分固定的內(nèi)存區(qū)域,并使用消息機(jī)制來調(diào)用函數(shù),保證了任務(wù)間的隔離;缺點是:不能體現(xiàn)動態(tài)內(nèi)存分配的好處,不能最大化地利用內(nèi)存,任務(wù)創(chuàng)建函數(shù)代碼量會增加,降低了內(nèi)核的效率.第二種方法的優(yōu)點:不損耗任務(wù)創(chuàng)建函數(shù)的效率,也達(dá)到了故障隔離的目的;缺點是:在內(nèi)核中增加了代碼量,增加了內(nèi)核出現(xiàn)bug的風(fēng)險.綜上考慮,在 MicroSpaceOS實現(xiàn)中,采用的是第二種方法.采用第二種方法雖然增加了內(nèi)核的大小,但考慮到對內(nèi)核高效、可靠的要求,這部分代碼量的增加還是值的.

2.3 任務(wù)間通信機(jī)制

MicroSpaceOS的各個功能模塊及應(yīng)用程序都是以任務(wù)的形式運(yùn)行在用戶層,它們之間相互間的通訊是通過基于消息的任務(wù)間機(jī)制.當(dāng)任務(wù)間需要通訊的時候,它們只需要按照規(guī)定的通訊協(xié)議以消息的方式向微內(nèi)核傳遞.應(yīng)用任務(wù)和服務(wù)任務(wù)間相互獨立,互不影響,如圖6所示.

任務(wù)間通信機(jī)制是影響微內(nèi)核成功與否的關(guān)鍵因素,如果任務(wù)間通信設(shè)計不好,將嚴(yán)重影響到微內(nèi)核的效率.在前面介紹的將系統(tǒng)中的任務(wù)都設(shè)計成不同優(yōu)先級的也主要是為了提高任務(wù)間通信過程中任務(wù)切換的效率.如圖7所示,為了提高內(nèi)核傳遞消息的效率,采用的是內(nèi)核直接將位于任務(wù)1中的消息內(nèi)容直接拷貝到任務(wù)2中去方式,這個過程消息的內(nèi)容不經(jīng)過內(nèi)核層.一次消息傳遞過程中就只需要進(jìn)行一次消息拷貝過程.

圖6 任務(wù)間通信示意圖

圖7 消息傳遞過程示意圖

基于消息傳遞的任務(wù)間通信機(jī)制中,大部分消息都是同步的,即:只有在接受雙方都做好準(zhǔn)備的情況下,消息內(nèi)容才能夠傳輸,否則,無論是消息發(fā)送方還是消息接收方都要進(jìn)行等待,直到等待對方同意接受或者發(fā)送消息.這種設(shè)計的好處是保證了消息的安全性,只有經(jīng)過雙方認(rèn)可的消息才能傳輸,非法的消息是無法進(jìn)行傳遞,從而提高了整個系統(tǒng)的安全性.在考慮到某些消息是需要異步機(jī)制的,所以在設(shè)計的時候,預(yù)留了異步消息機(jī)制.

在任務(wù)間通信機(jī)制的設(shè)計過程中,考慮了幾種可能存在的任務(wù)間通信的方式:

a)內(nèi)核向任務(wù)發(fā)送消息;

b)任務(wù)發(fā)送消息;

c)任務(wù)接收消息;

d)任務(wù)發(fā)送完消息然后等待接收消息(多用于函數(shù)調(diào)用).

在這里不考慮任務(wù)向內(nèi)核發(fā)消息,是出于對內(nèi)核效率的考慮.當(dāng)用戶程序使用內(nèi)核功能通過系統(tǒng)調(diào)用的方式,這可以提高效率.所以在設(shè)計任務(wù)間通信機(jī)制的過程中,沒有支持任務(wù)向內(nèi)核發(fā)送消息的功能.

任務(wù)間通信的幾種方式是如何來區(qū)分的呢?如何區(qū)分任務(wù)是發(fā)送消息呢,還是任務(wù)接收消息呢?最簡單的方式是提供多個函數(shù),有的函數(shù)是只用來完成發(fā)送消息,有的函數(shù)是用來接收消息.但是這種方式會有個弊端:對用戶開放的系統(tǒng)調(diào)用函數(shù)增多,就會造成系統(tǒng)可靠性的降低.如圖8所示,在Micro-SpaceOS中采用的方式是只提供一個系統(tǒng)調(diào)用函數(shù),通過傳入的參數(shù)來判斷是進(jìn)行哪種通訊方式.

圖8 任務(wù)通信機(jī)制中SYSTpc()函數(shù)流程圖

2.4 功能模塊任務(wù)化實現(xiàn)

上面介紹了任務(wù)間通信機(jī)制,功能模塊是如何以任務(wù)形式運(yùn)行的呢?首先,操作系統(tǒng)將賦予服務(wù)任務(wù)較高的優(yōu)先級,應(yīng)用程序賦予其較低的優(yōu)先級,這種優(yōu)先級分配策略是為了保證當(dāng)應(yīng)用程序在調(diào)用服務(wù)任務(wù)中函數(shù)的時候,被調(diào)用的函數(shù)能夠保證盡快地得到運(yùn)行.而服務(wù)任務(wù)是如何來設(shè)計的?下面將以內(nèi)存管理模塊來展示服務(wù)任務(wù)是如何設(shè)計的,如圖9所示.

內(nèi)存管理任務(wù)首先調(diào)用一個SYSTpc()先讓內(nèi)存管理任務(wù)做好接受消息的準(zhǔn)備,然后掛起自己.當(dāng)內(nèi)存管理任務(wù)再次運(yùn)行的時候,說明內(nèi)存管理模塊已經(jīng)收到來自其他任務(wù)的消息,然后內(nèi)存管理任務(wù)根據(jù)收到的消息來判斷要進(jìn)行哪個函數(shù)的調(diào)用;再根據(jù)消息內(nèi)容中要調(diào)用函數(shù)的參數(shù),由內(nèi)存管理任務(wù)來代表消息發(fā)送者執(zhí)行內(nèi)存分配函數(shù)或者內(nèi)存回收函數(shù).當(dāng)函數(shù)執(zhí)行成功之后,內(nèi)存管理任務(wù)再次調(diào)用SYSTpc()將函數(shù)的返回值以消息的方式傳遞給其他任務(wù).

圖9 內(nèi)存管理模塊流程圖

內(nèi)存分配函數(shù)和內(nèi)存回收函數(shù)都是以常量MEMALLOC、MEMFREE的方式展示給用戶的.應(yīng)用程序只知道這兩個常量、內(nèi)存分配回收函數(shù)的參數(shù)使用方式和消息的格式.例如,當(dāng)用戶需要用的內(nèi)存分配功能時,通過消息方式將 MEMALLOC、以及分配內(nèi)存大小等信息以消息的方式發(fā)給內(nèi)存管理任務(wù),由內(nèi)存管理任務(wù)來執(zhí)行內(nèi)存分配功能.這個過程中用戶無法直接調(diào)用內(nèi)存分配函數(shù),更不知道內(nèi)存分配函數(shù)的地址,如果用戶程序出現(xiàn)故障就不會影響到內(nèi)存管理任務(wù),從而達(dá)到故障隔離的效果.

3 結(jié) 論

本文提出將功能模塊以任務(wù)的方式運(yùn)行,內(nèi)核部分只提供任務(wù)間通信機(jī)制、調(diào)度等少量必需的功能.這種設(shè)計符合微內(nèi)核的理念,很大程度上提高了系統(tǒng)的可靠性.在內(nèi)核設(shè)計過程中充分考慮各種提高微內(nèi)核效率的方法,在一定程度上彌補(bǔ)系統(tǒng)性能的損失.基于微內(nèi)核的系統(tǒng)可以應(yīng)用到航天、航空等對可靠性要求比較高的領(lǐng)域.下表1給出了目前星載嵌入式操作系統(tǒng)與MicroSpaceOS在設(shè)計實現(xiàn)上的區(qū)別.

表1 目前星載OS與M icroSpaceOS比較

[1] 陳斐.L4微內(nèi)核技術(shù)淺析[C].第二屆江蘇計算機(jī)大會,南京,2006年11月

[2] Liedtke J.On μ-Kernel construction[C].The 15thACM Symposium on Operating Systems,Coper Mountain, Colorado,Dec 1995

[ 3 ] Liedtke J.Toward real microkernels[J].Communications of the ACM,1996,39(9):70-77

[4] K lein G,Elphinstone K,Heiser G,et al.SeL4:formal verification of an OS kernel[C].The 22nd ACM Symposium on Operating Systems Principles, MT, USA,Oct 2009

[5] Klein G,Derrin P,Elphinstone K.Experience report:seL4-formally verifying a high-performance microkernel[C].The 14thICFP, Edinburgh, Scotland, Aug 2009

[6] Swift M,Annamalai M,Bershad B,et al.Recovering device drivers[C].The Sixth Symp.on Oper.Syst.Design and Impl., San Francisca, USA,2004

Design and Implementation of Microkernel-Based Satellite Real Time Operating System

XU Jian,YANG Hua
(Beijing Institute of Control Engineering, Beijing 100190, China)

All functionalmodules of Satellite Real Time Operating System are integrated into the kernel at present, leading to the enormous kernel and augmenting the bugs in the kernel, and the reliability of the whole operating system is decreased.A Microkernel-Based Satellite Real Time Operating System is designed and implemented in this paper, All functional modules run as tasks in user-level, all tasks are communicated by the Message Passing Mechanism to decrease the size of the kernel.Higher reliability is gained without obvious efficiency lost.Tests demonstrate that the design can achieve fault isolation.

microkernel;dependability;embedded operating system;fault isolation

V448

A

1674-1579(2011)02-0038-06

DO I:10.3969/j.issn.1674-1579.2011.02.007

2011-02-28

徐 建(1987-),男,山東人,碩士研究生,研究方向為高可信操作系統(tǒng) (e-mail:xujian20080808@163.com).

猜你喜歡
功能模塊內(nèi)核內(nèi)存
多內(nèi)核操作系統(tǒng)綜述①
強(qiáng)化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
活化非遺文化 承啟設(shè)計內(nèi)核
筆記本內(nèi)存已經(jīng)在漲價了,但幅度不大,升級擴(kuò)容無須等待
“春夏秋冬”的內(nèi)存
微軟發(fā)布新Edge瀏覽器預(yù)覽版下載換裝Chrome內(nèi)核
商業(yè)模式是新媒體的核心
基于ASP.NET標(biāo)準(zhǔn)的采購管理系統(tǒng)研究
高校二手交易網(wǎng)絡(luò)平臺功能及技術(shù)框架分析與設(shè)計
內(nèi)存搭配DDR4、DDR3L還是DDR3?
惠州市| 元朗区| 龙井市| 友谊县| 新和县| 荥经县| 荆州市| 金昌市| 开原市| 平舆县| 若尔盖县| 静乐县| 青岛市| 宜川县| 延庆县| 涡阳县| 庄河市| 武清区| 达日县| 墨玉县| 绵竹市| 毕节市| 枣阳市| 鄂伦春自治旗| 东阳市| 长治市| 巫溪县| 江西省| 行唐县| 咸丰县| 巩留县| 新兴县| 多伦县| 桓台县| 革吉县| 襄汾县| 鄢陵县| 成都市| 靖安县| 安国市| 积石山|