国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      基于服務(wù)體/執(zhí)行流模型的操作系統(tǒng)的制作方法

      文檔序號:6430569閱讀:90來源:國知局
      專利名稱:基于服務(wù)體/執(zhí)行流模型的操作系統(tǒng)的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及用于計(jì)算機(jī)系統(tǒng)中的基礎(chǔ)軟件,特別涉及一種基于服務(wù)體/執(zhí)行流模型的操作系統(tǒng)。
      背景技術(shù)
      目前操作系統(tǒng)均采用進(jìn)程/線程模型,如圖1所示,其一個線程對應(yīng)一個虛擬CPU,從而對用戶隱藏了物理CPU的相關(guān)信息,提供了一個清晰的編程模型,當(dāng)系統(tǒng)增加物理CPU的個數(shù)時可以得到較好的加速比。但是,由于進(jìn)程/線程模型將數(shù)據(jù)的存儲和對數(shù)據(jù)的計(jì)算緊密耦合在一起,而且采用了虛擬CPU的概念,從而導(dǎo)致了如下主要的缺點(diǎn)(1)線程之間的通訊是異步的,不可避免的會帶來信息處理的延時或丟失,延時的不確定性又限制了系統(tǒng)的實(shí)時性。當(dāng)發(fā)生事件的重入時,由于通訊是異步的,線程無法感知該事件被再次激活,從而會造成事件的丟失或延遲。在現(xiàn)有操作系統(tǒng)的進(jìn)程/線程模型下很難有效的解決這個問題。
      (2)線程/進(jìn)程抽象忽略了線程之間大量的同步關(guān)系,一律采用異步方式,通過共享內(nèi)存的方法來運(yùn)行邏輯上的同步,其結(jié)果是給系統(tǒng)造成大量不必要的睡眠、喚醒以及調(diào)度等復(fù)雜的操作,增加了運(yùn)行開銷,降低了系統(tǒng)的效率,還使得分布式系統(tǒng)中的進(jìn)程的遷移成為難以解決的問題。
      (3)進(jìn)程/線程模型屏蔽了物理CPU的相關(guān)信息,不利于編寫高效的程序,特別是對于多處理器系統(tǒng),用戶編程時不知道系統(tǒng)中真實(shí)處理器的數(shù)量,從而喪失了對線程調(diào)度的參與機(jī)會,線程調(diào)度只能靠調(diào)度器采用預(yù)測方法決定,而預(yù)測方法使系統(tǒng)更復(fù)雜而很難得到預(yù)期的效率。
      基于進(jìn)程/線程模型構(gòu)造操作系統(tǒng)的具體方法可分為單一大內(nèi)核和微內(nèi)核兩種構(gòu)造方法。
      如圖2所示,單一大內(nèi)核結(jié)構(gòu)的操作系統(tǒng)在內(nèi)核部分通過函數(shù)調(diào)用表達(dá)執(zhí)行流,而在內(nèi)核之外用戶程序使用的則仍是進(jìn)程/線程模型,單內(nèi)核強(qiáng)調(diào)的是引導(dǎo)物理CPU執(zhí)行內(nèi)核代碼,并通過簡單的函數(shù)調(diào)用而不是通過進(jìn)程/線程間通訊使執(zhí)行流在模塊間流動。
      單一大內(nèi)核操作系統(tǒng)的顯著優(yōu)點(diǎn)是高效率,因此被廣泛使用,但其缺點(diǎn)也日益顯露出來,主要表現(xiàn)在(1)由于系統(tǒng)模塊間高度耦合,而且進(jìn)程間缺乏有效的交互手段,所以功能的擴(kuò)充只能通過在內(nèi)核中增加相應(yīng)的模塊實(shí)現(xiàn),這就要求系統(tǒng)開發(fā)人員深入掌握內(nèi)核的數(shù)據(jù)結(jié)構(gòu)和算法,而這是普通用戶很難做到的,因此這種操作系統(tǒng)的可擴(kuò)展性很差。
      (2)所有內(nèi)核模塊都運(yùn)行在核心態(tài),都處于同一個內(nèi)核空間,各部分缺乏保護(hù),因此,內(nèi)核模塊中的錯誤可以導(dǎo)致整個系統(tǒng)崩潰,難以保證系統(tǒng)的高可靠性,而且,難以實(shí)現(xiàn)內(nèi)核的升級。
      (3)由于內(nèi)核模塊之間不具備隔離性,因此一個模塊所造成的錯誤很有可能以一種不易察覺的方式傳播給其他模塊,這種錯誤可能在發(fā)生后經(jīng)過相當(dāng)長的時間以多種形式反映出來,錯誤的排查、定位十分困難,因此,系統(tǒng)的健壯性較差。
      (4)由于所有的模塊通過連接器相互連接,所以當(dāng)一方的參數(shù)、語義發(fā)生變化時往往要影響系統(tǒng)的很多部分都要進(jìn)行相應(yīng)的改變,否則就容易造成難以排查的錯誤,構(gòu)造一個系統(tǒng)只有約定了版本號的組件才可能一起正常的協(xié)作,這給內(nèi)核組件的歸檔、維護(hù)、發(fā)布、移植等都帶來很大的困難,因此,系統(tǒng)的可維護(hù)性較差。
      (5)由于內(nèi)核各部分的通訊是基于函數(shù)調(diào)用的方式,在實(shí)現(xiàn)分布式處理上難以將一個模塊提供的服務(wù)透明的傳播給其他的處理機(jī),因此,系統(tǒng)難以有效的支持分布式服務(wù)。
      如圖3所示,微內(nèi)核模型是卡耐基梅隆大學(xué)針對單內(nèi)核結(jié)構(gòu)的上述缺點(diǎn),尤其是在支持分布式計(jì)算等方面遇到的困難提出的,與單內(nèi)核模型相比,微內(nèi)核模型在結(jié)構(gòu)上也有一個為系統(tǒng)內(nèi)所有進(jìn)程所共享的內(nèi)核,所不同的是幾乎所有的系統(tǒng)服務(wù)都從內(nèi)核中移出,由內(nèi)核外的用戶級進(jìn)程實(shí)現(xiàn)。
      微內(nèi)核結(jié)構(gòu)在可擴(kuò)展性、可維護(hù)性等方面具有明顯的優(yōu)越性,并可通過位置無關(guān)的進(jìn)程間通訊機(jī)制將服務(wù)透明擴(kuò)展到分布環(huán)境中。其缺點(diǎn)是,由于引發(fā)了頻繁的進(jìn)程間通訊導(dǎo)致了運(yùn)行的低效率,盡管采用諸如Hand-off調(diào)度、高速IPC、調(diào)用門等技術(shù)可以在一定程度上提高效率,但這些技術(shù)都因破壞了執(zhí)行流、進(jìn)程/線程間的層次關(guān)系,又無法擺脫進(jìn)程/線程模型的約束,無法實(shí)現(xiàn)所期望的目的。
      學(xué)術(shù)界已經(jīng)認(rèn)識到了進(jìn)程/線程模型的內(nèi)在缺陷,為克服或彌補(bǔ)該缺陷所做的主要研究工作已有(1)CMU的mach研究組提出了續(xù)體(Continuations)的概念,以減少線程切換和堆棧的開銷,并采用優(yōu)化IPC以加快消息的傳遞。在一定程度上將進(jìn)程間通訊同步化,減少了通訊開銷。但續(xù)體只能用在內(nèi)核中,而且只能在某些特殊的環(huán)境下才能實(shí)現(xiàn)優(yōu)化,也無法滿足分布式計(jì)算的性能需求。
      (2)主動消息(Active Message)的提出旨在降低大型并行機(jī)中的通訊開銷。其方法是將通訊過程和計(jì)算過程連接起來,以避免線程調(diào)度所帶來的延遲、數(shù)據(jù)的緩存和拷貝。但這種方法受到如下限制1)處理例程在運(yùn)行的過程中不能阻塞;2)可能引起死鎖;3)處理例程的運(yùn)行時間不能過長,否則可能阻塞其他網(wǎng)絡(luò)上發(fā)來的消息。
      (3)跨地址空間調(diào)用已發(fā)展為微內(nèi)核模型下的過程式IPC。其基本原理是通過由服務(wù)進(jìn)程提供調(diào)用點(diǎn),客戶程序可直接進(jìn)入服務(wù)進(jìn)程,從而可有效地降低線程模型所帶來的系統(tǒng)開銷。但為了維護(hù)線程模型不被破壞,必須付出的額外代價是1)線程/進(jìn)程的從屬關(guān)系必須隨著進(jìn)出調(diào)用點(diǎn)而改變,以免破壞原有線程模型的語義。2)跨地址空間的同步調(diào)用只能通過上層協(xié)議的異步功能實(shí)現(xiàn)。這些代價不但給程序員帶來困難,也不利于錯誤處理。
      澳大利亞Adelaide大學(xué)和悉尼大學(xué)聯(lián)合提出的Container/Loci概念取代了傳統(tǒng)的線程概念,以Container為唯一代表數(shù)據(jù)存儲的抽象、以Loci為執(zhí)行的抽象。Container/Loci模型已拋棄了進(jìn)程/線程模型中的很多內(nèi)容,實(shí)現(xiàn)了存儲和計(jì)算的分離,但他們?nèi)酝A粼谟谰么鎯蛦蔚刂房臻g的研究上,而使用虛擬性的Loci,顯然仍會影響系統(tǒng)效率。

      發(fā)明內(nèi)容
      本發(fā)明的目的在于,提出一種更合理的新型操作系統(tǒng),以克服當(dāng)前操作系統(tǒng)發(fā)展遇到的障礙,解決其依賴的構(gòu)造模型——進(jìn)程/線程模型的內(nèi)在缺陷所導(dǎo)致的系統(tǒng)在效率、實(shí)時性、結(jié)構(gòu)靈活性等方面的限制。
      本發(fā)明的基于服務(wù)體/執(zhí)行流模型的操作系統(tǒng),采用服務(wù)體/執(zhí)行流結(jié)構(gòu),該結(jié)構(gòu)由服務(wù)體和執(zhí)行流兩類機(jī)制構(gòu)成;每個服務(wù)體均具有自己的服務(wù)體地址空間,服務(wù)體之間采用消息推動通信;所述執(zhí)行流是物理CPU沿著指令計(jì)數(shù)器指示的指令執(zhí)行順序執(zhí)行指令而形成的軌跡,該執(zhí)行流是連續(xù)的;所述服務(wù)體按照相同規(guī)范構(gòu)造,包括功能代碼、數(shù)據(jù)集合、端口以及端口所包含的若干小端口,用于實(shí)現(xiàn)操作系統(tǒng)中所有功能組件的功能,執(zhí)行流只有通過小端口才能進(jìn)入服務(wù)體;系統(tǒng)中其他系統(tǒng)軟件和用戶程序也以服務(wù)體形式加載到操作系統(tǒng)上;所述服務(wù)體的端口均采用統(tǒng)一的規(guī)范設(shè)計(jì),用于支持系統(tǒng)中各服務(wù)體之間的通信;所述服務(wù)體中設(shè)置一個核心服務(wù)體,用于引導(dǎo)執(zhí)行流通過服務(wù)體的小端口進(jìn)入服務(wù)體并提供對服務(wù)體與執(zhí)行流的管理、服務(wù)體之間通信的管理、中斷與異常的處理以及并發(fā)控制基礎(chǔ)服務(wù)。
      本發(fā)明是以圖4所示的服務(wù)體/執(zhí)行流結(jié)構(gòu)作為基礎(chǔ)結(jié)構(gòu)、以消息推動通信為關(guān)鍵技術(shù)、以一系列相關(guān)的具體構(gòu)造方法為輔助方法而綜合構(gòu)成的操作系統(tǒng)構(gòu)造方法。
      所述操作系統(tǒng)中的服務(wù)體自底向上劃分為基本機(jī)制層、服務(wù)層、運(yùn)行環(huán)境層三個層次,所述基本機(jī)制層是系統(tǒng)運(yùn)行的基礎(chǔ)機(jī)制;所述服務(wù)層,用于提供系統(tǒng)主要的服務(wù)功能;所述運(yùn)行環(huán)境層,用于提供用戶程序的編程模型和運(yùn)行環(huán)境。上述功能層次的劃分用來指導(dǎo)操作系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)者進(jìn)行系統(tǒng)功能組件服務(wù)體的分劃和設(shè)計(jì)。
      在所述運(yùn)行環(huán)境層中,還可以構(gòu)造模擬其他操作系統(tǒng)運(yùn)行環(huán)境的服務(wù)體,用來將所述其他操作系統(tǒng)所支持的系統(tǒng)軟件或用戶程序引導(dǎo)、加入到本操作系統(tǒng)中運(yùn)行。
      所述服務(wù)體的端口對應(yīng)于一個消息處理例程,該例程所能處理的所有消息接口的集合構(gòu)成端口界面;所述消息接口,用于定義該消息特定的語義和接口參數(shù)信息的類型以及消息號。
      所述服務(wù)體的端口界面有統(tǒng)一規(guī)范的定義;服務(wù)體的端口界面的標(biāo)識由主版本號、次版本號和全局唯一標(biāo)識符三部分組成,其中,主版本號和次版本號用以支持版本的升級和兼容。
      所述服務(wù)體地址空間是多維的,包括基本空間和擴(kuò)展空間;所述的基本空間包括私有段和共享段兩個部分;所述服務(wù)體可以有多個擴(kuò)展空間,用于分別加載不同的程序,以實(shí)現(xiàn)多地址空間的語義。
      所述的服務(wù)體地址空間可實(shí)現(xiàn)單地址空間管理模式、分組單地址空間管理模式或/和私有多地址空間管理模式;所述單地址空間管理模式,使不同服務(wù)體在基本空間和擴(kuò)展空間的使用上分別占用不同的地址空間,如同在同一地址空間內(nèi)分配,從而簡單直接地實(shí)現(xiàn)了單地址空間管理模式。
      所述分組單地址空間管理模式,將有共享數(shù)據(jù)行為的服務(wù)體劃分在一組,組內(nèi)按單地址模式進(jìn)行空間管理。由于一個組內(nèi)的服務(wù)體是有限的,因此可以在32位體系結(jié)構(gòu)上實(shí)現(xiàn)。
      所述私有多地址空間管理,使擴(kuò)展空間為服務(wù)體所私有,對擴(kuò)展空間按分頁方式進(jìn)行管理。因此,可以根據(jù)需要將當(dāng)前頁交換到后備存儲器中,以優(yōu)化系統(tǒng)內(nèi)存的使用和提高效率。由于一個服務(wù)體可以擁有多個私有空間,因此可以使所管理數(shù)據(jù)的容量能夠超過處理器字長對虛存空間的限制。
      所述消息推動通信,通過將消息從源信息主體的地址空間直接推入目標(biāo)通信主體的地址空間,實(shí)現(xiàn)通信主體之間的通信。
      所述消息推動通信的通信方式包括同步連續(xù)通信方式、同步分離通信方式或/和異步通信方式;所述同步連續(xù)通訊方式是指源通信主體A的同步通信消息從自己的地址空間經(jīng)由目的通信主體B的通信接口直接推入目的通信主體B的地址空間,該消息立即被目的通信主體B中的相應(yīng)處理例程處理,處理完成后立即發(fā)送一條返回消息經(jīng)由上述源通信主體A的發(fā)送該同步消息的通信接口返回至源通信主體A,繼續(xù)執(zhí)行源通信主體A的任務(wù);所述同步分離通信方式是指源通信主體A的同步通信消息從自己的地址空間經(jīng)由目的通信主體B的通信接口直接推入目的通信主體B的地址空間,同時在該消息中還指明第三通信主體C的一個通信接口作為應(yīng)答接口,當(dāng)目的通信主體B處理完所推入的消息后,執(zhí)行流將通過上述應(yīng)答接口進(jìn)入所指明的第三通信主體C;所述第三通信主體也可以是源通信主體A;所述異步通信方式是指源通信主體A將消息經(jīng)由目的通信主體B的通信接口推入目的通信主體B的地址空間后,執(zhí)行流立即返回源通信主體A,目的通信主體B將在以后適當(dāng)?shù)臅r機(jī)再對該消息進(jìn)行處理。
      具體而言,上述服務(wù)體具有靜態(tài)和持久的性質(zhì),它具有自己的地址空間,只有當(dāng)執(zhí)行流通過端口被引入服務(wù)體時,該服務(wù)體的程序才被執(zhí)行,服務(wù)體具有通信功能,它通過消息推動方式達(dá)到與其他服務(wù)體通信目的;服務(wù)體的每一個端口對應(yīng)了一個消息處理例程,而端口則是服務(wù)體與外界通信的唯一合法出/入口。因此,服務(wù)體間是相互隔離的,低耦合的;一個端口可以包括若干個小端口,小端口提供相應(yīng)的消息例程運(yùn)行時堆棧,并記錄運(yùn)行時所需的上下文相關(guān)信息。小端口數(shù)量決定了該服務(wù)體的并發(fā)度;服務(wù)體的端口是可重入的,因此,它允許高優(yōu)先級的消息立即被處理。
      上述執(zhí)行流是連續(xù)的,從機(jī)器上電復(fù)位到關(guān)機(jī)中途不會被阻塞、掛起或中止,也不會與某個特定的地址空間綁定;執(zhí)行流通過服務(wù)體的一個小端口進(jìn)入服務(wù)體,執(zhí)行該服務(wù)體的相應(yīng)程序。當(dāng)一個服務(wù)體需要調(diào)用另一個服務(wù)體的程序時,通過消息將執(zhí)行流推入被調(diào)用的服務(wù)體,此時執(zhí)行流就跨越地址空間邊界流入被調(diào)用服務(wù)體。
      上述核心服務(wù)體在邏輯上相當(dāng)于微內(nèi)核操作系統(tǒng)的內(nèi)核,核心服務(wù)體與其他服務(wù)體的地位是平等的,因此不存在內(nèi)核態(tài)的概念。
      上述消息推動通信是指將消息從源信息主體的地址空間直接推入目的通信主體的地址空間通信的方式,如圖5所示,每個通信主體擁有各自的地址空間和通信接口,通信接口中包含消息處理例程入口及相關(guān)信息;消息推動通信的通信方式包括同步連續(xù)通信、同步分離通信和異步通信三種通信方式;1)同步連續(xù)通信方式,其通信步驟是作為源通信主體的服務(wù)體A將同步通信消息從自己的地址空間經(jīng)由作為目的通信主體的服務(wù)體B的通信接口直接推入服務(wù)體B的地址空間,該通信消息立即被服務(wù)體B中相應(yīng)處理程序處理,處理完成后立即發(fā)送一個返回信息到服務(wù)體A,由服務(wù)體A發(fā)送前述同步消息的通信接口接收,如圖6所示;2)同步分離通信方式,其通信步驟為在作為源通信主體的服務(wù)體A所發(fā)出的消息中,除了要指明作為目的通信主體的服務(wù)體B的通信接口之外,還需指明一個稱為應(yīng)答端口的某個服務(wù)體(如服務(wù)體C)的通信接口。當(dāng)服務(wù)體A將消息通過指定的服務(wù)體B的通信接口推入服務(wù)體B的地址空間后,立即被服務(wù)體B的相應(yīng)處理程序處理,處理完成后,由服務(wù)體B通過所指明的應(yīng)答端口將執(zhí)行流推入該應(yīng)答端口所屬的某一服務(wù)體(如服務(wù)體C)中,如圖7所示;3)異步通信方式,其通信步驟是作為源通信主體的服務(wù)體A將同步通信消息從自己的地址空間經(jīng)由作為目的通信主體的服務(wù)體B的通信接口推入服務(wù)體B的地址空間后,立即返回服務(wù)體A,服務(wù)體B將在以后適當(dāng)?shù)臅r機(jī)再對前述消息進(jìn)行處理,如圖8所示。
      本發(fā)明的優(yōu)點(diǎn)在于,本發(fā)明基于服務(wù)體/執(zhí)行流結(jié)構(gòu)提供了一種更合理的操作系統(tǒng),其優(yōu)點(diǎn)有①明顯提高運(yùn)行效率,對服務(wù)體而言●用同步的執(zhí)行流作為系統(tǒng)計(jì)算行為的抽象,申請服務(wù)時執(zhí)行流直接將消息帶入目標(biāo)服務(wù)體空間,避免了消息拷貝和進(jìn)出隊(duì)列的開銷;●在執(zhí)行上,執(zhí)行流直接激活目標(biāo)服務(wù)體的小端口進(jìn)入服務(wù)體,避免了采用線程時的睡眠、喚醒以及線程調(diào)度而帶來的開銷(調(diào)度開銷在線程數(shù)量比較大的時候是很可觀的);在上下文保存方面,激活目標(biāo)小端口不必恢復(fù)其任何寄存器,當(dāng)執(zhí)行流發(fā)送應(yīng)答消息的時候也不必保存任何寄存器,整個過程只需保存和恢復(fù)系統(tǒng)的Preserve寄存器集合;●當(dāng)消息的發(fā)送方使用的是同步-分離機(jī)制的時候,整個過程甚至一個寄存器都不必保存和恢復(fù),其效率與進(jìn)程間通訊相比有極大的提高。我們在原型系統(tǒng)MiniCore性能測試也證明了這一點(diǎn)。
      ②降低系統(tǒng)資源的消耗在進(jìn)程/線程模型中,雖然線程是輕量級的調(diào)度單位,但仍占有可觀的系統(tǒng)資源,這種資源主要是來自于內(nèi)核堆棧以及與調(diào)度相關(guān)的一些資源。
      在服務(wù)體模型中由于取消了進(jìn)程/線程的抽象,每個服務(wù)體的小端口都有自己的堆棧,中斷處理過程被模擬成向核心服務(wù)體發(fā)送一個消息,消息處理過程使用的是核心服務(wù)體服務(wù)端口的堆棧,其數(shù)量僅與系統(tǒng)內(nèi)執(zhí)行流的個數(shù)相關(guān),而與包括系統(tǒng)規(guī)模在的內(nèi)任何其它因素都沒有關(guān)系。系統(tǒng)的所有部件都是平等的,沒有內(nèi)核空間的概念,不存在維護(hù)內(nèi)核堆棧的問題,從而完全消除了所述進(jìn)程/線程模型面臨的困難。
      ③語義完備性維護(hù)與系統(tǒng)的健壯性方面的優(yōu)勢在微內(nèi)核模型中,線程通過消息隊(duì)列來交換數(shù)據(jù)。為了保證模型的正確性,一個消息隊(duì)列只允許一個線程具有接收權(quán),其余線程只能擁有發(fā)送權(quán)。內(nèi)核在運(yùn)行過程需要對此進(jìn)行檢查和處理以保證語義的完備性。
      在服務(wù)體模型中,該語義是自然的成立。因?yàn)橐粋€端口對應(yīng)于一個消息處理例程,僅有該處理例程才能處理傳遞給該端口的消息。因此在服務(wù)體模型中避免了不必要的檢查開銷,同時也避免了用戶因?yàn)樵O(shè)計(jì)上的失誤而引發(fā)的錯誤,增強(qiáng)了系統(tǒng)的健壯性。
      ④實(shí)時性有明顯的提高現(xiàn)有模型的線程之間僅能通過共享內(nèi)存實(shí)現(xiàn)通訊,在消息的通知方面具有先天的缺陷,對處理異步發(fā)生的事件來說,線程模型往往會帶來很大的處理時間延遲。
      對于服務(wù)體而言,由于執(zhí)行流的同步性,小端口是直接被激活的,所以啟動時間微乎其微;當(dāng)一個服務(wù)體請求其他服務(wù)體提供的服務(wù)時,執(zhí)行流直接流入目標(biāo)服務(wù)體,通過設(shè)置小端口選項(xiàng)可以使執(zhí)行流的優(yōu)先級保持不變,此時高優(yōu)先級事務(wù)的請求優(yōu)先得到了處理,避免了服務(wù)器優(yōu)先級設(shè)置而帶來的優(yōu)先級反轉(zhuǎn)等問題;同樣由于執(zhí)行流直接通過小端口進(jìn)入服務(wù)體,是同步的而且是可重入的,因此當(dāng)更高優(yōu)先級的事件被激活時,對應(yīng)的一個空閑小端口立即被激活,不會因?yàn)樵摱丝谡谔幚淼蛢?yōu)先級的事件而造成高優(yōu)先級事件被滯后處理。由于服務(wù)體在實(shí)時性的優(yōu)勢,非常適合應(yīng)用在對實(shí)時性有嚴(yán)格要求的場合。
      ⑤有效支持分布式處理在基于進(jìn)程/線程模型的分布式系統(tǒng)中,為了實(shí)現(xiàn)資源的優(yōu)化使用或是為了提高系統(tǒng)的冗余度所采取的技術(shù)是進(jìn)程遷移。進(jìn)程遷移的困難在于進(jìn)程/線程模型中對數(shù)據(jù)的計(jì)算和存儲是緊密結(jié)合的,不能獨(dú)立存在。所以必須將進(jìn)程從源結(jié)點(diǎn)完全遷往目標(biāo)結(jié)點(diǎn),并在目標(biāo)結(jié)點(diǎn)重新構(gòu)造整個進(jìn)程空間的內(nèi)容,整個過程的開銷是很大的。
      而服務(wù)體/執(zhí)行流模型將計(jì)算能力和數(shù)據(jù)存儲能力進(jìn)行了分離,從而可以更加容易的實(shí)現(xiàn)分布式的處理。由于服務(wù)體和執(zhí)行流彼此獨(dú)立,因此一個服務(wù)體可以同時存在于多個結(jié)點(diǎn)上。當(dāng)計(jì)算發(fā)生遷移的時候,服務(wù)體已經(jīng)在目標(biāo)結(jié)點(diǎn)了,只要通過對象管理器更新相應(yīng)的端口權(quán)利即可將所有的服務(wù)推到新的結(jié)點(diǎn)中。服務(wù)體使用新結(jié)點(diǎn)的執(zhí)行流進(jìn)行工作,初始的時候可能會有發(fā)生數(shù)據(jù)的遠(yuǎn)程調(diào)頁,隨著服務(wù)體不斷的運(yùn)行,Cache管理器會逐漸將其工作集頁面緩沖在本地,其運(yùn)行效率將很快達(dá)到正常水平,從而對分布式計(jì)算提供有效地支持。
      ⑥對持久性存儲的支持在進(jìn)程/線程模型中,進(jìn)程空間的生命期和進(jìn)程的執(zhí)行能力是聯(lián)系在一起的,因此進(jìn)程空間的本質(zhì)是臨時性的,這種臨時性為系統(tǒng)實(shí)現(xiàn)持久存儲、分布式計(jì)算以及高可靠性都帶來很大的困難。
      在服務(wù)體模型中,服務(wù)體作為數(shù)據(jù)存儲的基本抽象,它的存在不依賴于執(zhí)行流,從本質(zhì)上來說服務(wù)體具有持久性。因此,實(shí)現(xiàn)持久化更簡潔更高效。
      此外,服務(wù)體模型將單地址空間技術(shù)與私有多地址空間技術(shù)結(jié)合,為數(shù)據(jù)共享和數(shù)據(jù)存儲提供了高效的實(shí)現(xiàn)支撐,可以更自然、更有效的實(shí)現(xiàn)數(shù)據(jù)查詢和更新。由此帶來的潛在優(yōu)勢是巨大的。在服務(wù)體模型的基礎(chǔ)上,很容易構(gòu)造出新型的與操作系統(tǒng)真正融合的、高效的數(shù)據(jù)庫管理系統(tǒng)服務(wù)體。
      ⑦對主動網(wǎng)絡(luò)的支持對于進(jìn)程/線程模型來說,其抽象的是若干個虛擬的CPU。這種抽象決定了以進(jìn)程作為網(wǎng)絡(luò)的接收端只能從網(wǎng)絡(luò)節(jié)點(diǎn)上去“拉”數(shù)據(jù),對于發(fā)送方“推”過來的數(shù)據(jù)只能先放在一個緩沖區(qū)中,然后由接受方再從緩沖區(qū)中將數(shù)據(jù)“拉”到自己的進(jìn)程空間進(jìn)行處理。因此采用進(jìn)程/線程模型只能在“拉”的基礎(chǔ)上實(shí)現(xiàn)“推”,無法完全實(shí)現(xiàn)“推”的概念。這種以“拉”為“推”的實(shí)現(xiàn)方式阻礙了主動網(wǎng)絡(luò)優(yōu)越性的發(fā)揮。
      在服務(wù)體模型中,由于端口實(shí)際上代表了一段處理例程,因此對處理“推”機(jī)制有著天然的優(yōu)勢,可以完全克服進(jìn)程模型的這種缺陷。由于服務(wù)體模型在通訊機(jī)制和消息處理方面與主動網(wǎng)絡(luò)的思想在本質(zhì)上是一致的,服務(wù)體之間的消息傳遞過程實(shí)際上就是一個“推”的過程,由執(zhí)行流將消息通過小端口直接帶入到目標(biāo)服務(wù)體中。以服務(wù)體為基礎(chǔ)實(shí)現(xiàn)主動網(wǎng)絡(luò)可以看成是將服務(wù)體的這種消息傳遞的手段推廣到網(wǎng)絡(luò)報文的傳遞和處理,因此,可以獲得更好的效率以及更加自然、和諧的系統(tǒng)體系結(jié)構(gòu)。
      ⑧對操作系統(tǒng)可裁剪性與開放性的支持服務(wù)體/執(zhí)行流模型則從根本上打破了進(jìn)程/線程模型的約束,服務(wù)體各部分之間良好的隔離性和模塊化的結(jié)構(gòu)特征,可以充分支持操作系統(tǒng)的剪裁和擴(kuò)充。尤其在服務(wù)體模型中沒有核心態(tài)的概念,所有的服務(wù)體之間是平等的。即使是核心服務(wù)體所提供的管理服務(wù),也是可以由其他服務(wù)體所替換和擴(kuò)充的,因此具有良好的靈活性和可重構(gòu)性,從而具有很好的開放性。此外,新穎的服務(wù)體/執(zhí)行流模型的同步通訊機(jī)制可以充分支持集群間的并行控制,以及分布式環(huán)境的分布計(jì)算服務(wù)體的唯一性和網(wǎng)絡(luò)間透明傳播。
      綜上所述,執(zhí)行流是CPU運(yùn)算能力的最原始的抽象,它像CPU推動的傳送帶沿著PC寄存器給出的指令序列前進(jìn),形成一條指令執(zhí)行的軌跡,它描述的是一個連續(xù)的、實(shí)在的物理CPU運(yùn)行過程,從CPU的上電復(fù)位到關(guān)機(jī),中途不會像虛擬CPU那樣被阻塞、掛起和停止,也不會于某個特定的地址空間綁定,當(dāng)執(zhí)行流流過某個服務(wù)體的代碼序列時,該服務(wù)體的程序被執(zhí)行,當(dāng)一個服務(wù)體需要調(diào)用另一個服務(wù)體時,通過消息將執(zhí)行流引向被調(diào)用服務(wù)體,此時執(zhí)行流就會跨越地址邊界在兩個服務(wù)體間流動,行為簡單而又自然,而不必向線程切換那樣,將物理CPU在兩個虛擬CPU間切換。
      核心服務(wù)體是系統(tǒng)的一個關(guān)鍵組件,它通過服務(wù)體間的通信機(jī)制和并發(fā)調(diào)度來控制和管理執(zhí)行流和服務(wù)體,主要提供服務(wù)體間通信機(jī)制、執(zhí)行流/服務(wù)體的管理、中斷和異常等基礎(chǔ)服務(wù),實(shí)現(xiàn)多個服務(wù)體間的并發(fā)控制。一個CPU提供一個執(zhí)行流,多個CPU提供多個執(zhí)行流,核心服務(wù)體具有識別和調(diào)度單流并發(fā),多流并行的能力,從而可以有效地支持并行與分布式計(jì)算。
      由于服務(wù)體模型將運(yùn)行模型和存儲模型分離,而且摒棄了虛擬CPU的概念,因此可以采用同步消息傳遞作為服務(wù)體間的通信方式,從而可以有效提高系統(tǒng)的效率和支持主動網(wǎng)絡(luò),同時從構(gòu)造原理上保證了系統(tǒng)的可擴(kuò)展性和可維護(hù)性。
      因此,本發(fā)明的執(zhí)行流/服務(wù)體模型在實(shí)時性、多處理機(jī)支持、系統(tǒng)資源的消耗、語義完備性的維護(hù)、對分布式處理和對主動網(wǎng)絡(luò)的支持等方面,比現(xiàn)有的進(jìn)程/線程模型具有明顯優(yōu)勢。


      圖1是現(xiàn)有技術(shù)的進(jìn)程/線程模型示意圖。
      圖2是現(xiàn)有技術(shù)的單一大內(nèi)核操作系統(tǒng)構(gòu)造示意圖。
      圖3是現(xiàn)有技術(shù)的微內(nèi)核操作系統(tǒng)構(gòu)造示意圖。
      圖4是本發(fā)明操作系統(tǒng)的服務(wù)體/執(zhí)行流結(jié)構(gòu)的示意圖。
      圖5是本發(fā)明操作系統(tǒng)的基于消息推動的通信的示意圖。
      圖6是本發(fā)明消息推動通信的同步連續(xù)通信方式的示意圖。
      圖7是本發(fā)明消息推動通信的同步分離通信方式的示意圖。
      圖8是本發(fā)明消息推動通信的異步通信方式的示意圖。
      圖9是本發(fā)明操作系統(tǒng)的服務(wù)體端口和小端口構(gòu)造的示意圖。
      圖10是本發(fā)明服務(wù)體多維地址空間示意圖。
      圖11是本發(fā)明單地址空間管理模式的示意圖。
      圖12是本發(fā)明分組單地址空間管理模式的示意圖。
      圖13是本發(fā)明私有多地址空間管理模式的示意圖。
      圖14是本發(fā)明文件系統(tǒng)的持久化的示意圖。
      圖15是本發(fā)明文件系統(tǒng)持久化的提交算法的示意圖。
      圖16是本發(fā)明操作系統(tǒng)總體結(jié)構(gòu)示意圖。
      圖17是本發(fā)明核心服務(wù)體模塊和結(jié)構(gòu)示意圖。
      圖18是本發(fā)明對象管理服務(wù)體結(jié)構(gòu)示意圖。
      圖19是本發(fā)明虛存管理子系統(tǒng)結(jié)構(gòu)的示意圖。
      圖20是本發(fā)明I/O管理服務(wù)體對分層驅(qū)動的管理的示意圖。
      圖21是本發(fā)明堆疊文件系統(tǒng)的工作過程的示意圖。
      圖22是本發(fā)明Linux運(yùn)行環(huán)境服務(wù)體結(jié)構(gòu)示意圖。
      具體實(shí)施例方式
      下面就對本發(fā)明具體實(shí)施實(shí)例進(jìn)行詳細(xì)說明。
      當(dāng)依據(jù)服務(wù)體/執(zhí)行流結(jié)構(gòu)和利用消息推動通信技術(shù)來構(gòu)造操作系統(tǒng)時,還需要提供下述具體的構(gòu)造方法作為輔助方法。
      A、操作系統(tǒng)中的所有的功能組件都以服務(wù)體的形式出現(xiàn)。
      操作系統(tǒng)運(yùn)行時執(zhí)行流在消息的引導(dǎo)下進(jìn)入相應(yīng)的服務(wù)體執(zhí)行所需的程序。因此系統(tǒng)中所有的服務(wù)體必須都以統(tǒng)一規(guī)范的方法來構(gòu)造。該構(gòu)造方法的關(guān)鍵在于服務(wù)體通信接口的規(guī)范化設(shè)計(jì),如圖9所示,具體說明如下服務(wù)體提供若干個端口作為其通信接口。端口定義了服務(wù)體的合法入口,對應(yīng)于服務(wù)體提供的服務(wù)例程以及相應(yīng)的描述信息;每個上述端口包含一個或多個小端口,小端口記錄了服務(wù)例程運(yùn)行時堆棧和與運(yùn)行相關(guān)的其他上下文信息。小端口的數(shù)量決定了該端口的并發(fā)度;執(zhí)行流只能從端口的某個小端口進(jìn)入服務(wù)體,并根據(jù)端口和小端口中的信息進(jìn)行狀態(tài)和資源的切換。
      B、多維地址空間構(gòu)造方法該方法所組織的服務(wù)體的地址空間劃分或基本空間和擴(kuò)展空間兩個部分,基本空間又劃分為私有段和共享段兩部分,如圖10所示;不同服務(wù)體的共享段之間互不重疊,具有互斥性;私有段則由其所在虛擬空間的擁有者根據(jù)需要來獨(dú)立分配;一個服務(wù)體的地址空間可以擁有一個或多個擴(kuò)展空間,每個擴(kuò)展空間具有唯一的名字。由上述方法構(gòu)造的地址空間是多維的。本發(fā)明利用上述的多維地址空間構(gòu)造方法來構(gòu)造系統(tǒng)中所有服務(wù)體的地址空間。
      C、服務(wù)體端口界面定義規(guī)范一個服務(wù)體端口對應(yīng)于一個消息處理例程,該例程所能處理的所有消息的接口的集合稱為端口界面。操作系統(tǒng)的設(shè)計(jì)者必須制定服務(wù)體端口界面的規(guī)范定義來約束服務(wù)體的實(shí)現(xiàn)者和使用者;每個消息接口定義了該消息特定的語義和接口參數(shù)等信息的類型和消息的名字(消息號);服務(wù)體端口界面由主版本號、次版本號和全局唯一標(biāo)識符UUID(Universal Unique Identifier)三部分標(biāo)識。主版本號和次版本號用以支持版本的升級和兼容,UUID在分布式系統(tǒng)中具有全局唯一性。
      D、操作系統(tǒng)構(gòu)造框架。利用本發(fā)明的方法來構(gòu)造操作系統(tǒng)時必須按該構(gòu)造框架來設(shè)計(jì)操作系統(tǒng),該框架包括以下規(guī)則和約定以服務(wù)體作為操作系統(tǒng)得基本組成單位,所有操作系統(tǒng)功能組件、系統(tǒng)軟件和用戶程序都必須以服務(wù)體的形式加入到系統(tǒng)中;操作系統(tǒng)中所有的服務(wù)體都必須按統(tǒng)一的服務(wù)體構(gòu)造方法、統(tǒng)一的地址空間構(gòu)造方法和統(tǒng)一的服務(wù)體端口界面規(guī)范來設(shè)計(jì);操作系統(tǒng)的功能組件自底向上劃分為基本機(jī)制層、服務(wù)層和運(yùn)行環(huán)境層三個層次?;緳C(jī)制層提供系統(tǒng)運(yùn)行所依賴的基礎(chǔ)機(jī)制;服務(wù)層提供系統(tǒng)主要的服務(wù)功能;運(yùn)行環(huán)境提供用戶程序的編程模型和運(yùn)行環(huán)境。上述功能層次的劃分用來指導(dǎo)操作系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)者進(jìn)行系統(tǒng)功能組件服務(wù)體的分劃和設(shè)計(jì);本操作系統(tǒng)直接支持的系統(tǒng)軟件和用戶程序都以服務(wù)體的形式加載到操作系統(tǒng)上;依賴于其它運(yùn)行環(huán)境的系統(tǒng)軟件和用戶程序則加載到相應(yīng)的運(yùn)行環(huán)境上。
      當(dāng)操作系統(tǒng)擴(kuò)充功能時,需要將所擴(kuò)充的功能按上述統(tǒng)一規(guī)范組織成服務(wù)體。加入到操作系統(tǒng)中,系統(tǒng)的基本機(jī)制層提供服務(wù)體注冊/撤銷、動態(tài)加載和在線升級等功能。
      E、三種可任選的地址空間管理模式單地址空間管理模式。使不同的服務(wù)體的基本空間的共享段占用不同的地址空間,如同在統(tǒng)一地址空間內(nèi)進(jìn)行分配,因此在基于服務(wù)體/執(zhí)行流結(jié)構(gòu)的操作系統(tǒng)中可以簡單而直接地實(shí)現(xiàn)單地址空間管理模式,如圖11所示;
      分組單地址空間管理模式。將有數(shù)據(jù)共享行為的服務(wù)體劃分在一組,組內(nèi)采用單地址模式進(jìn)行空間管理,組間則采用多地址模式進(jìn)行空間管理,如圖12所示。分組單地址空間管理模式既可在32位CPU計(jì)算平臺上實(shí)現(xiàn),又可具備單地址模式的主要優(yōu)點(diǎn),如可支持復(fù)雜數(shù)據(jù)結(jié)構(gòu)的共享。這種方式在嵌入式應(yīng)用中尤為實(shí)用;私有多地址空間管理模式如圖13所示,該模式將服務(wù)體私有的擴(kuò)展空間分頁管理,可按需要與后備存儲器交換以優(yōu)化內(nèi)存的使用;一個服務(wù)體的地址空間可以擁有多個私有空間,從而可使其所管理的數(shù)據(jù)的容量超過處理器字長對虛存空間的限制。使用該模式時可將大的私有數(shù)據(jù)和運(yùn)行庫加載到擴(kuò)展空間中,而把對效率有特別意義的需共享的數(shù)據(jù)加載到基本空間中。
      F、文件系統(tǒng)的持久化方法通過在磁盤上為文件系統(tǒng)建立影子區(qū)域,如圖14所示,并提供嚴(yán)格保持一致的提交算法,如圖15所示,便可實(shí)現(xiàn)文件系統(tǒng)的持久化,從而為實(shí)現(xiàn)操作系統(tǒng)的持久性奠定了基礎(chǔ)。
      基于消息推動的通訊機(jī)制在執(zhí)行流/服務(wù)體模型中的應(yīng)用基于消息推動的服務(wù)體間通信機(jī)制以服務(wù)體為通信主體,以端口/小端口為通信接口,提供同步連續(xù)、同步分離和異步通訊方式。執(zhí)行流將消息從源服務(wù)體A經(jīng)由目標(biāo)服務(wù)體B的端口推入服務(wù)體B,并進(jìn)入B的端口的消息處理程序處理該消息。在這里,消息是有類型數(shù)據(jù)的集合,具有確定的格式,由消息頭部、數(shù)據(jù)描述區(qū)和在線數(shù)據(jù)區(qū)三部分組成,大小為一個物理頁。(1)消息頭部定長,指明消息的類型、數(shù)據(jù)的個數(shù)、目的/應(yīng)答端口等信息;(2)數(shù)據(jù)描述區(qū)為每個數(shù)據(jù)提供一個數(shù)據(jù)描述條目,數(shù)據(jù)描述條目使用類型域指明數(shù)據(jù)的類型如在線數(shù)據(jù)類型;(3)在線數(shù)據(jù)區(qū)在線數(shù)據(jù)就是存儲在在線數(shù)據(jù)區(qū)的數(shù)據(jù),對于在線數(shù)據(jù),數(shù)據(jù)描述條目中使用偏移量和存儲量來指明在線數(shù)據(jù)的地址和大小。執(zhí)行流/服務(wù)體模型只提供一個消息推動原語實(shí)現(xiàn)同步連續(xù)、同步分離和異步的通訊方式,其中同步連續(xù)方式源服務(wù)體僅僅在消息中指定目標(biāo)服務(wù)體端口,由消息推動原語隱含地為源服務(wù)體生成一個應(yīng)答端口,執(zhí)行流通過指定的目標(biāo)端口的某個空閑小端口進(jìn)入相應(yīng)的目標(biāo)服務(wù)體,由目標(biāo)端口的消息處理程序處理該消息,消息處理結(jié)束后從上述應(yīng)答端口返回源服務(wù)體。
      同步分離方式在源服務(wù)體A所發(fā)出的消息中,除了要指明目標(biāo)服務(wù)體B的端口之外,還需指明某個服務(wù)體的端口作為應(yīng)答端口。當(dāng)服務(wù)體A將消息通過目標(biāo)端口推入服務(wù)體B的地址空間后,立即被服務(wù)體B的相應(yīng)消息處理程序處理,處理完成后,由服務(wù)體B通過上述消息指明的應(yīng)答端口將執(zhí)行流推入該應(yīng)答端口所屬的服務(wù)體中;異步方式消息被綁定到目標(biāo)服務(wù)體端口的一個空閑小端口上,同時該小端口被掛到端口調(diào)度隊(duì)列中,執(zhí)行流繼而返回源服務(wù)體繼續(xù)執(zhí)行,而不是立刻通過該小端口進(jìn)入目標(biāo)服務(wù)體完成消息的處理。核心服務(wù)體會根據(jù)其優(yōu)先級通過端口調(diào)度機(jī)制處理該被綁定的異步消息。
      多維地址空間在執(zhí)行流/服務(wù)體結(jié)構(gòu)的操作系統(tǒng)中的應(yīng)用服務(wù)體地址空間采用多維地址空間,一個服務(wù)體只有一個基本空間,但是可以根據(jù)需要擁有一個或多個擴(kuò)展空間。擴(kuò)展空間位于地址空間的低端,基本空間位于地址空間的高端?;究臻g的共享段位于基本空間的高端,作為系統(tǒng)資源統(tǒng)一分配,具有互斥性。也就是說,如果某個服務(wù)體申請了基本空間共享段的一段內(nèi)存,則其他服務(wù)體就不可能再申請到分配給該地址段的內(nèi)存了。不同服務(wù)體在基本空間共享段的使用上分別占用不同的地址區(qū)間,互不重疊,如同在同一個地址空間內(nèi)分配一樣。而基本空間私有段的分配則完全獨(dú)立于其他服務(wù)體,每個服務(wù)體都可以根據(jù)需要使用這段空間,不同的服務(wù)體之間不具有互斥性。
      基本空間共享段互斥分配的特性使得共享段中的內(nèi)容很容易映射到另一個服務(wù)體中而不必改變映射地址因?yàn)槟繕?biāo)地址區(qū)間必然是空閑的。根據(jù)這個特點(diǎn)可以將運(yùn)行時刻需要與其他服務(wù)體共享的復(fù)雜數(shù)據(jù)結(jié)構(gòu)(包括圖、樹、鏈表等)以及代碼(代碼也可以理解成一種復(fù)雜的數(shù)據(jù)結(jié)構(gòu))加載到基本空間共享段中,并在不同的服務(wù)體間有效的共享這些數(shù)據(jù)和代碼。在基于消息推動的服務(wù)體間通訊中,可以使用映射機(jī)制直接將消息或數(shù)據(jù)映射到目標(biāo)服務(wù)體空間中,以減少消息拷貝、降低通訊開銷。
      消息界面技術(shù)在執(zhí)行流/服務(wù)體結(jié)構(gòu)的操作系統(tǒng)中的應(yīng)用服務(wù)體的每個端口可以處理若干個消息,使用消息界面技術(shù)對端口能夠處理的消息進(jìn)行規(guī)范化定義,使用消息界面的版本管理對服務(wù)體或端口進(jìn)行版本升級的管理。
      使用本專利設(shè)計(jì)并實(shí)現(xiàn)操作系統(tǒng)a)如圖16所示的操作系統(tǒng)總的體系結(jié)構(gòu),劃分為服務(wù)層和運(yùn)行環(huán)境層三個層次。其中,基本機(jī)制層提供系統(tǒng)運(yùn)行所依賴的基礎(chǔ)機(jī)制,包括核心服務(wù)體、對象管理服務(wù)體、內(nèi)存管理子系統(tǒng)、IO管理子系統(tǒng)、權(quán)能服務(wù)體和安全服務(wù)體。內(nèi)存管理子系統(tǒng)實(shí)現(xiàn)系統(tǒng)的存儲模型,提供物理內(nèi)存管理和虛擬內(nèi)存管理;IO管理子系統(tǒng)實(shí)現(xiàn)系統(tǒng)的驅(qū)動程序和設(shè)備管理模型,實(shí)現(xiàn)IO設(shè)備管理和文件系統(tǒng)管理;對象管理服務(wù)體實(shí)現(xiàn)對系統(tǒng)中的各種對象、端口的全局統(tǒng)一管理;核心服務(wù)體實(shí)現(xiàn)底層系統(tǒng)機(jī)制,提供服務(wù)體/執(zhí)行流模型的抽象,包括端口調(diào)度、服務(wù)體管理、消息傳遞等;權(quán)能服務(wù)體和安全服務(wù)體實(shí)現(xiàn)對系統(tǒng)的安全管理。
      服務(wù)層提供一些基本的系統(tǒng)服務(wù)功能,包括Cache管理服務(wù)體、文件系統(tǒng)服務(wù)體、驅(qū)動程序服務(wù)體、網(wǎng)絡(luò)服務(wù)體、網(wǎng)絡(luò)協(xié)議驅(qū)動服務(wù)體以及GUI服務(wù)體等。
      運(yùn)行環(huán)境層為用戶提供編程模型,提供用戶程序的運(yùn)行環(huán)境,一部分用于實(shí)現(xiàn)對其他操作系統(tǒng)所支持的二進(jìn)制應(yīng)用程序的兼容,另一部分用于提供面向本操作系統(tǒng)的用戶編程環(huán)境。
      b)系統(tǒng)功能組件服務(wù)體的設(shè)計(jì)如圖17所示的核心服務(wù)體,提供了底層基礎(chǔ)控制機(jī)制,如中斷/異常管理、同步機(jī)制、服務(wù)體間通信機(jī)制、端口管理和小端口調(diào)度等。此外,核心服務(wù)體對服務(wù)體進(jìn)行管理,因此又扮演了服務(wù)體管理器的角色。核心服務(wù)體提供的服務(wù)體間通信的安全控制是實(shí)現(xiàn)系統(tǒng)安全性的基礎(chǔ)機(jī)制,也正是通過服務(wù)體間通信機(jī)制實(shí)現(xiàn)了對象服務(wù)的統(tǒng)一的、強(qiáng)制性的訪問控制。
      如圖18所示的對象管理服務(wù)體,統(tǒng)一維護(hù)系統(tǒng)中的各種對象或端口,例如文件對象、內(nèi)存對象等,提供一個統(tǒng)一機(jī)制實(shí)現(xiàn)服務(wù)的注冊、查詢等操作。為其它服務(wù)體提供統(tǒng)一的對象管理服務(wù),如創(chuàng)建對象、返回對象的句柄,扮演了名字服務(wù)器的角色。在服務(wù)體模型中,端口、服務(wù)和對象是等價的概念,使用對象管理服務(wù)體統(tǒng)一控制對對象的訪問。每個服務(wù)體提供一定的服務(wù),每種服務(wù)等價為一個對象,通過服務(wù)體的端口對外提供訪問接口。對象管理服務(wù)體通過控制主體能夠?qū)Χ丝诎l(fā)送的消息界面控制主體能夠?qū)Χ丝诖淼膶ο筮M(jìn)行的訪問操作。對象管理服務(wù)體統(tǒng)一管理本地和遠(yuǎn)程的各種對象,并將這些對象組織成樹狀層次。
      內(nèi)存管理子系統(tǒng)由物理存儲管理服務(wù)體和虛存管理子系統(tǒng)兩個部分組成。
      物理存儲管理服務(wù)體主要提供物理頁面的分配、回收和查詢等服務(wù)。該服務(wù)體在基本空間的共享段預(yù)留了相應(yīng)尺寸的空間,以映射所有可分配的物理內(nèi)存供該服務(wù)體使用。同時,將空閑的物理內(nèi)存按其存儲尺寸組織成不同的空閑鏈表,以支持高效的查詢服務(wù)。
      虛存管理子系統(tǒng)包括虛存管理服務(wù)體、Pager服務(wù)體和Memory服務(wù)體,并定義了與虛存管理相關(guān)的四個對象space對象代表服務(wù)體的虛存空間;pager對象負(fù)責(zé)數(shù)據(jù)的管理;memory對象按照用戶的訪問權(quán)限提供pager對象的不同視圖;cache對象則是對pager對象中的數(shù)據(jù)進(jìn)行緩沖。這四個對象之間的關(guān)系如圖19所示。
      Pager服務(wù)體負(fù)責(zé)頁面數(shù)據(jù)的管理,包括調(diào)入一個頁面、寫回并從cache對象中移出一個頁面、寫回修改過的頁面數(shù)據(jù)以及設(shè)定、修改頁面權(quán)限等。
      Memory服務(wù)體負(fù)責(zé)memory對象的管理,包括權(quán)限檢查、確定與memory對象相關(guān)聯(lián)的pager對象、根據(jù)權(quán)限設(shè)定memory視圖,以及針對基本空間共享所提供如下四種服務(wù)①將一個memory對象映射到共享段中;②根據(jù)權(quán)限提供memory對象的共享服務(wù);③分配和④釋放服務(wù)體的保留空間。
      虛存管理服務(wù)體VMSB則主要管理cache對象和space對象。該服務(wù)體在物理內(nèi)存管理服務(wù)體所提供服務(wù)的基礎(chǔ)上,對memory對象和pager對象之間的交互提供映射、緩沖和共享等虛存服務(wù)。
      I/O管理服務(wù)體實(shí)現(xiàn)各個設(shè)備和驅(qū)動程序之間的管理與協(xié)調(diào)等功能。為文件系統(tǒng)和驅(qū)動程序提供了統(tǒng)一的基礎(chǔ)機(jī)制,以支持各種文件系統(tǒng),從而簡化文件系統(tǒng)的設(shè)計(jì),同時提供了相當(dāng)靈活的驅(qū)動程序模型,為可堆疊的文件系統(tǒng)和分層的驅(qū)動程序提供了強(qiáng)有力的支持。IO管理服務(wù)體使用設(shè)備對象和驅(qū)動程序?qū)ο髞肀硎鞠到y(tǒng)中的所有設(shè)備和驅(qū)動程序。IO管理服務(wù)體支持的分層驅(qū)動結(jié)構(gòu)圖和可堆疊文件系統(tǒng)結(jié)構(gòu)圖,分別如圖20和21所示。
      Cache管理服務(wù)體為了提高IO的效率,系統(tǒng)中單獨(dú)提供Cache管理服務(wù)體,它與IO管理服務(wù)體、內(nèi)存管理服務(wù)體和對象管理服務(wù)體共同協(xié)作,為各種文件系統(tǒng)和驅(qū)動程序的IO請求提供統(tǒng)一的緩存機(jī)制。
      文件系統(tǒng)服務(wù)體實(shí)現(xiàn)各種具體的文件系統(tǒng)驅(qū)動,例如FAT、EXT2、NTFS等。并且如果需要可以實(shí)現(xiàn)支持持久存儲的文件系統(tǒng)。
      如圖22所示的Linux運(yùn)行環(huán)境服務(wù)體為用戶程序提供Linux運(yùn)行環(huán)境,為用戶提供與Linux相同的編程模型,同時實(shí)現(xiàn)了Linux應(yīng)用程序的二進(jìn)制兼容,可以重用已有的Linux應(yīng)用程序,利用已有投資。Linux運(yùn)行環(huán)境用端口來實(shí)現(xiàn)Linux的進(jìn)程/線程抽象和捕獲Linux應(yīng)用程序的系統(tǒng)調(diào)用,同時利用服務(wù)體的擴(kuò)展空間來實(shí)現(xiàn)Linux的進(jìn)程地址空間。
      服務(wù)體運(yùn)行環(huán)境提供一組規(guī)范、標(biāo)準(zhǔn)和編程環(huán)境,供用戶實(shí)現(xiàn)自己的服務(wù)體(用戶服務(wù)體),這也是在服務(wù)體/執(zhí)行流模型中設(shè)計(jì)用戶程序的標(biāo)準(zhǔn)方法,使用這種方式編寫的用戶程序能充分發(fā)揮服務(wù)體/執(zhí)行流模型的優(yōu)勢,達(dá)到最好的效率。
      權(quán)利要求
      1.一種基于服務(wù)體/執(zhí)行流模型的操作系統(tǒng),其特征在于該操作系統(tǒng)采用服務(wù)體/執(zhí)行流結(jié)構(gòu),該結(jié)構(gòu)由服務(wù)體和執(zhí)行流兩類機(jī)制構(gòu)成;每個服務(wù)體均具有自己的服務(wù)體地址空間,服務(wù)體之間采用消息推動通信;所述執(zhí)行流是物理CPU沿著指令計(jì)數(shù)器指示的指令執(zhí)行順序執(zhí)行指令而形成的軌跡,該執(zhí)行流是連續(xù)的;所述服務(wù)體按照相同規(guī)范構(gòu)造,包括功能代碼、數(shù)據(jù)集合、端口以及端口所包含的若干小端口,用于實(shí)現(xiàn)操作系統(tǒng)中所有功能組件的功能,執(zhí)行流只有通過小端口才能進(jìn)入服務(wù)體;系統(tǒng)中其他系統(tǒng)軟件和用戶程序也以服務(wù)體形式加載到操作系統(tǒng)上;所述服務(wù)體的端口均采用統(tǒng)一的規(guī)范設(shè)計(jì),用于支持系統(tǒng)中各服務(wù)體之間的通信;所述服務(wù)體中設(shè)置一個核心服務(wù)體,用于引導(dǎo)執(zhí)行流通過服務(wù)體的小端口進(jìn)入服務(wù)體并提供對服務(wù)體與執(zhí)行流的管理、服務(wù)體之間通信的管理、中斷與異常的處理以及并發(fā)控制基礎(chǔ)服務(wù)。
      2.按照權(quán)利要求1所述的操作系統(tǒng),其特征在于所述操作系統(tǒng)中的服務(wù)體自底向上劃分為基本機(jī)制層、服務(wù)層、運(yùn)行環(huán)境層三個層次,所述基本機(jī)制層是系統(tǒng)運(yùn)行的基礎(chǔ)機(jī)制;所述服務(wù)層,用于提供系統(tǒng)主要的服務(wù)功能;所述運(yùn)行環(huán)境層,用于提供用戶程序的編程模型和運(yùn)行環(huán)境。
      3.按照權(quán)利要求1或2所述的操作系統(tǒng),其特征在于在所述運(yùn)行環(huán)境層中,還可以構(gòu)造模擬其他操作系統(tǒng)運(yùn)行環(huán)境的服務(wù)體,用來將所述其他操作系統(tǒng)所支持的系統(tǒng)軟件或用戶程序引導(dǎo)、加入到本操作系統(tǒng)中運(yùn)行。
      4.按照權(quán)利要求1所述的操作系統(tǒng),其特征在于,所述服務(wù)體的端口對應(yīng)于一個消息處理例程,該例程所能處理的所有消息接口的集合構(gòu)成端口界面;所述消息接口,用于定義該消息特定的語義和接口參數(shù)信息的類型以及消息號。
      5.按照權(quán)利要求4所述的操作系統(tǒng),其特征在于所述服務(wù)體的端口界面有統(tǒng)一規(guī)范的定義;服務(wù)體的端口界面的標(biāo)識由主版本號、次版本號和全局唯一標(biāo)識符三部分組成,其中,主版本號和次版本號用以支持版本的升級和兼容。
      6.按照權(quán)利要求1所述的操作系統(tǒng),其特征在于,所述服務(wù)體地址空間是多維的,包括基本空間和擴(kuò)展空間;所述的基本空間包括私有段和共享段兩個部分;所述服務(wù)體可以有多個擴(kuò)展空間,用于分別加載不同的程序,以實(shí)現(xiàn)多地址空間的語義。
      7.按照權(quán)利要求6所述的操作系統(tǒng),其特征在于,所述的服務(wù)體地址空間可實(shí)現(xiàn)單地址空間管理模式、分組單地址空間管理模式或/和私有多地址空間管理模式;所述單地址空間管理模式,使不同服務(wù)體在基本空間和擴(kuò)展空間的使用上分別占用不同的地址空間,實(shí)現(xiàn)在同一地址空間內(nèi)的使用分配;所述分組單地址空間管理模式,將有共享數(shù)據(jù)行為的服務(wù)體劃分在一組,組內(nèi)按單地址模式進(jìn)行空間管理;所述私有多地址空間管理,使擴(kuò)展空間為服務(wù)體所私有,對擴(kuò)展空間按分頁方式進(jìn)行管理。
      8.按照權(quán)利要求1所述的操作系統(tǒng),其特征在于所述消息推動通信,通過將消息從源信息主體的地址空間直接推入目標(biāo)通信主體的地址空間,實(shí)現(xiàn)通信主體之間的通信。
      9.按照權(quán)利要求1或8所述的操作系統(tǒng),其特征在于所述消息推動通信的通信方式包括同步連續(xù)通信方式、同步分離通信方式或/和異步通信方式;所述同步連續(xù)通訊方式是指源通信主體(A)的同步通信消息從自己的地址空間經(jīng)由目的通信主體(B)的通信接口直接推入目的通信主體(B)的地址空間,該消息立即被目的通信主體(B)中的相應(yīng)處理例程處理,處理完成后立即發(fā)送一條返回消息經(jīng)由上述源通信主體(A)的發(fā)送該同步消息的通信接口返回至源通信主體(A),繼續(xù)執(zhí)行源通信主體(A)的任務(wù);所述同步分離通信方式是指源通信主體(A)的同步通信消息從自己的地址空間經(jīng)由目的通信主體(B)的通信接口直接推入目的通信主體(B)的地址空間,同時在該消息中還指明第三通信主體(C)的一個通信接口作為應(yīng)答接口,當(dāng)目的通信主體(B)處理完所推入的消息后,執(zhí)行流將通過上述應(yīng)答接口進(jìn)入所指明的第三通信主體(C);所述第三通信主體也可以是源通信主體(A);所述異步通信方式是指源通信主體(A)將消息經(jīng)由目的通信主體(B)的通信接口推入目的通信主體(B)的地址空間后,執(zhí)行流立即返回源通信主體(A),目的通信主體(B)將在以后適當(dāng)?shù)臅r機(jī)再對該消息進(jìn)行處理。
      全文摘要
      本發(fā)明涉及一種基于服務(wù)體/執(zhí)行流模型的操作系統(tǒng),該模型由服務(wù)體和執(zhí)行流兩類機(jī)制構(gòu)成;每個服務(wù)體均具有自己的服務(wù)體地址空間,服務(wù)體之間采用消息推動通信;所述執(zhí)行流是物理CPU沿著指令計(jì)數(shù)器指示的指令執(zhí)行順序執(zhí)行指令而形成的一條軌跡,該執(zhí)行流是連續(xù)的;所述服務(wù)體用于實(shí)現(xiàn)操作系統(tǒng)中所有功能組件的功能,執(zhí)行流只有通過小端口才能進(jìn)入服務(wù)體;系統(tǒng)中其他系統(tǒng)軟件和用戶程序也以服務(wù)體形式加載到操作系統(tǒng)上;所述若干服務(wù)體中設(shè)置一個核心服務(wù)體,用于引導(dǎo)執(zhí)行流通過服務(wù)體的小端口進(jìn)入服務(wù)體并提供基礎(chǔ)服務(wù)。該模型在實(shí)時性、多處理機(jī)支持、可擴(kuò)展性與可維護(hù)性以及對分布式處理和對主動網(wǎng)絡(luò)支持上具有明顯優(yōu)勢。
      文檔編號G06F9/46GK1667573SQ20041008099
      公開日2005年9月14日 申請日期2004年10月26日 優(yōu)先權(quán)日2004年10月26日
      發(fā)明者龔育昌, 陳香蘭, 李曦, 李宏, 張曄, 吳明橋, 周學(xué)海, 楊文增, 趙振西 申請人:中國科學(xué)技術(shù)大學(xué)
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1