[發(fā)明專利]一種用戶進(jìn)程與系統(tǒng)服務(wù)之間的通信方法、裝置有效
| 申請?zhí)枺?/td> | 201310207082.2 | 申請日: | 2013-05-29 |
| 公開(公告)號: | CN104216862B | 公開(公告)日: | 2017-08-04 |
| 發(fā)明(設(shè)計(jì))人: | 詹卿;王偉 | 申請(專利權(quán))人: | 華為技術(shù)有限公司 |
| 主分類號: | G06F15/167 | 分類號: | G06F15/167;G06F9/54 |
| 代理公司: | 深圳中一專利商標(biāo)事務(wù)所44237 | 代理人: | 張全文 |
| 地址: | 518129 廣東*** | 國省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 用戶 進(jìn)程 系統(tǒng) 服務(wù) 之間 通信 方法 裝置 | ||
技術(shù)領(lǐng)域
本發(fā)明屬于計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種用戶進(jìn)程與系統(tǒng)服務(wù)之間的通信方法、裝置。
背景技術(shù)
目前,處理器已進(jìn)入多核/眾核時(shí)代,然而,目前的操作系統(tǒng)僅以對稱多處理器(Symmetric Multi-Processing,SMP)方式使用多核/眾核處理器,并不能充分利用多核/眾核處理器的并行處理能力。實(shí)驗(yàn)證明,當(dāng)處理器超過16個(gè)核,現(xiàn)有Linux的性能不再線性增長反而降低。因此,有必要設(shè)計(jì)一種新的操作系統(tǒng)。
微內(nèi)核操作系統(tǒng)(Microkernel Operating System)結(jié)構(gòu),是20世紀(jì)80年代后期發(fā)展起來的。現(xiàn)代操作系統(tǒng)設(shè)計(jì)中的一個(gè)突出思想是把操作系統(tǒng)中更多的成分和功能放到更高的層次(及用戶模式)中去運(yùn)行,而留下一個(gè)盡量小的內(nèi)核,用它來完成操作系統(tǒng)最基本的核心功能,這種技術(shù)被稱為微內(nèi)核技術(shù)。微內(nèi)核的設(shè)計(jì)目標(biāo)是將系統(tǒng)服務(wù)的實(shí)現(xiàn)和系統(tǒng)的基本操作規(guī)則分離開來,微內(nèi)核將許多系統(tǒng)服務(wù)放入分離的進(jìn)程,如文件系統(tǒng),設(shè)備驅(qū)動(dòng)程序,而進(jìn)程通過消息傳遞調(diào)用系統(tǒng)服務(wù)。這些非常模塊化的用戶態(tài)服務(wù)用于完成操作系統(tǒng)中比較高級的操作,這樣的設(shè)計(jì)使內(nèi)核中最基本的部分的設(shè)計(jì)更簡單。一個(gè)服務(wù)組件的出錯(cuò)并不會(huì)導(dǎo)致整個(gè)系統(tǒng)的崩潰,內(nèi)核需要做的,僅僅是重新啟動(dòng)這個(gè)組件,而不必影響其它的部分。
基于微內(nèi)核的操作系統(tǒng)具有如下特征:
1)足夠小的內(nèi)核
在微內(nèi)核操作系統(tǒng)中,內(nèi)核是指精心設(shè)計(jì)的、能實(shí)現(xiàn)現(xiàn)代OS最基本的核心功能的部分。微內(nèi)核并非是一個(gè)完整的OS,而只是操作系統(tǒng)中最基本的部分,它通常用于:
實(shí)現(xiàn)與硬件緊密相關(guān)的處理;
實(shí)現(xiàn)一些較基本的功能;
負(fù)責(zé)客戶和服務(wù)器之間的通信。
它們只是為構(gòu)建通用OS提供一個(gè)重要基礎(chǔ),這樣就可以確保把操作系統(tǒng)內(nèi)核做得很小。這樣,在眾核平臺上,可以同時(shí)在每個(gè)中央處理器(Central Processing Unit,CPU)上運(yùn)行一個(gè)內(nèi)核kernel實(shí)例,每個(gè)CPU進(jìn)入內(nèi)核態(tài)時(shí)互不干擾,避免多個(gè)CPU爭搶內(nèi)核鎖產(chǎn)生的性能消耗。
2)基于客戶/服務(wù)器模式
將操作系統(tǒng)中最基本的部分放入內(nèi)核中,而把操作系統(tǒng)的絕大部分功能都放在微內(nèi)核外面的一組服務(wù)器中實(shí)現(xiàn)。這些系統(tǒng)服務(wù)都是被作為進(jìn)程來實(shí)現(xiàn)的,運(yùn)行在用戶態(tài)。因?yàn)橛脩魬B(tài)進(jìn)程間的地址空間是隔離的,所以通常情況下不同進(jìn)程間無法直接進(jìn)行通信。一旦不同進(jìn)程間需要調(diào)用,例如用戶進(jìn)程和系統(tǒng)服務(wù)、系統(tǒng)服務(wù)間調(diào)用都是借助微內(nèi)核提供的消息傳遞機(jī)制來實(shí)現(xiàn)信息交互的。所以,在用戶看來,這是一種類似客戶/服務(wù)器的模式,用戶向內(nèi)核發(fā)出請求,內(nèi)核控制相應(yīng)系統(tǒng)服務(wù)給予服務(wù)。
現(xiàn)有的微內(nèi)核一般只提供基本的硬件操作接口,它將所有操作系統(tǒng)(Operating System,OS)必須提供的功能通過系統(tǒng)服務(wù)的形式提供,不同的系統(tǒng)服務(wù)運(yùn)行在用戶態(tài);系統(tǒng)服務(wù)相互之間隔離,即使某個(gè)系統(tǒng)服務(wù)出現(xiàn)異常也不會(huì)干擾到其他模塊;系統(tǒng)服務(wù)和系統(tǒng)服務(wù)之間通過進(jìn)程間通信(Inter Process Communication,IPC)的方式工作。
現(xiàn)有的微內(nèi)核操作系統(tǒng)都是基于客戶/服務(wù)器模型的,用戶進(jìn)程通過向OS發(fā)送請求消息通知OS需要使用一種系統(tǒng)服務(wù),OS接收到請求消息后根據(jù)自身的情況調(diào)度相應(yīng)的系統(tǒng)服務(wù)來完成一次系統(tǒng)服務(wù)。通常用戶編寫自己的應(yīng)用程序,會(huì)使用一些系統(tǒng)提供的庫函數(shù),這些庫大多提供封裝好的系統(tǒng)服務(wù)的接口,用戶只需要根據(jù)自己的需要,填寫相關(guān)的參數(shù),就可以感覺上直接調(diào)用了一些系統(tǒng)服務(wù),前面所說的功能步驟都是由OS完成。圖1展示了單核平臺上使用一次系統(tǒng)服務(wù)的過程。
在眾核平臺上,由于同時(shí)存在多個(gè)kernel實(shí)例,每個(gè)CPU運(yùn)行一個(gè)獨(dú)立的kernel實(shí)例,每個(gè)kernel實(shí)例相互之間不會(huì)干擾對方,同時(shí)用戶態(tài)的各個(gè)進(jìn)程可以隨意被各個(gè)kernel實(shí)例運(yùn)行。這種情況下還要考慮各個(gè)進(jìn)程可能不在同一個(gè)kernel上,這時(shí)發(fā)送消息需要使用核間通信。核間發(fā)送消息需要在每個(gè)kernel上開啟一個(gè)代理模塊(monitor),所有消息先匯集到代理,代理查找目標(biāo)核的位置,將消息從本地monitor發(fā)送到對端monitor,再由對端monitor發(fā)送到對端目標(biāo)進(jìn)程。所以,通常用戶使用一次系統(tǒng)服務(wù)的過程如圖2所示,可以歸結(jié)為以下幾個(gè)步驟:
1)用戶進(jìn)程組裝一個(gè)消息,并將消息發(fā)送給內(nèi)核;
2)內(nèi)核將消息發(fā)送到本地monitor;
3)本地monitor查找目標(biāo)核的位置,并將消息發(fā)往對端monitor;
4)對端monitor接收到消息后,將消息發(fā)往系統(tǒng)服務(wù);
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于華為技術(shù)有限公司,未經(jīng)華為技術(shù)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310207082.2/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F15-00 通用數(shù)字計(jì)算機(jī)
G06F15-02 .通過鍵盤輸入的手動(dòng)操作,以及應(yīng)用機(jī)內(nèi)程序的計(jì)算,例如,袖珍計(jì)算器
G06F15-04 .在引入被處理的數(shù)據(jù)的同時(shí),進(jìn)行編制程序的,例如,在同一記錄載體上
G06F15-08 .應(yīng)用插接板編制程序的
G06F15-16 .兩個(gè)或多個(gè)數(shù)字計(jì)算機(jī)的組合,其中每臺至少具有一個(gè)運(yùn)算器、一個(gè)程序器及一個(gè)寄存器,例如,用于數(shù)個(gè)程序的同時(shí)處理
G06F15-18 .其中,根據(jù)計(jì)算機(jī)本身在一個(gè)完整的運(yùn)行期間內(nèi)所取得的經(jīng)驗(yàn)來改變程序的;學(xué)習(xí)機(jī)器
- 一種進(jìn)程自動(dòng)恢復(fù)方法
- 進(jìn)程啟動(dòng)方法及內(nèi)核、進(jìn)程
- 一種進(jìn)程間的通信方法和裝置
- 進(jìn)程解析裝置、進(jìn)程解析方法和進(jìn)程解析程序
- 32位進(jìn)程和64位進(jìn)程交叉注入方法及裝置
- 一種應(yīng)用進(jìn)程控制方法及裝置
- 插件下載方法及裝置
- 進(jìn)程間的數(shù)據(jù)傳輸方法和裝置
- 進(jìn)程監(jiān)視裝置、進(jìn)程監(jiān)視方法和進(jìn)程監(jiān)視程序
- 一種基于動(dòng)態(tài)監(jiān)測的進(jìn)程優(yōu)化調(diào)度方法
- 服務(wù)票據(jù)發(fā)行系統(tǒng)及服務(wù)票據(jù)發(fā)行服務(wù)
- 出租服務(wù)服務(wù)器和出租服務(wù)系統(tǒng)
- 服務(wù)開放方法及系統(tǒng)、服務(wù)開放服務(wù)器
- 基于服務(wù)券服務(wù)的在線企業(yè)服務(wù)平臺
- 退稅服務(wù)系統(tǒng)、退稅服務(wù)平臺及其服務(wù)方法
- 服務(wù)亭(服務(wù)驛站)
- 公共服務(wù)自助服務(wù)機(jī)
- 服務(wù)提供服務(wù)器、服務(wù)提供系統(tǒng)以及服務(wù)提供方法
- 服務(wù)提供服務(wù)器、服務(wù)提供系統(tǒng)以及服務(wù)提供方法
- 服務(wù)提供服務(wù)器、服務(wù)提供系統(tǒng)以及服務(wù)提供方法





