999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Linux操作系統進程遷移系統設計

2014-04-29 22:55:18王科懷
智能計算機與應用 2014年2期

王科懷

摘 要:對已有的經典算法進行分類對比,選擇了具有較高遷移速度和對源節點沒有殘余依賴性的Total-copy算法,基于選擇的算法,把遷移系統分為Manager模塊、MigrateOut模塊和MigrateIn模塊等三個模塊,并給出了主要模塊的實現流程圖、設計原理和實現過程。

關鍵詞:進程遷移;遷移算法;Linux內核;集群系統

中圖分類號:TP316 文獻標識碼:A 文章編號:2095-2163(2014)02-

System Design of Process Migration based on Linux Operating System

WANG Kehuai

(PLA Academy of National Defense Information, Wuhan Hubei 430010 ,China)

Abstract: This paper classifies and contrasts the existing classical algorithm, and chose Total-copy algorithm with higher migration rate and no residual dependence on the source node .According to Total-copy algorithm, the migration system is divided into Manager module, MigrateOut module and MigrateIn module. Based on the divided modules,the paper also gives the flow chart of the main modules, design principles and implementation process.

Keywords: Process Migration; Migration Algorithm; Linux Kernel;Distributed Systems

0 引 言

隨著計算機部件性能的日漸提高和價格的不斷下降,集群系統在高性能計算方面的重要作用正愈益突顯,在集群系統的應用中會遇到負載平衡、通信性能和可用性等問題,而進程遷移技術則能夠很好解決這類問題,只是向原有已形成工業標準的系統增加透明的進程遷移,卻非常困難,而直接從頭設計具有遷移能力的新系統并不現實,另一方面,Linux系統作為世界上最為著名的自由軟件,得到了業界的廣泛認可和普遍關注[1]。然而,需要指出的是,截止到Linux2.6版本,還未提供對進程遷移的支持技術。基于此,本文開展利用Linux源代碼的開放性來進行集群系統中的進程遷移的研究,也是具有一定現實意義和重大應用價值的。

1 進程遷移算法分析

進程遷移是指將一個正在運行的進程從一個節點遷移到另外一個節點上運行的過程,該遷移過程可以發生在進程運行的任何時刻。同時,在此過程中需要遷移的進程信息有:進程控制和運行信息、屬于該進程地址空間、進程緩存的消息和關于通信連接的控制信息、進程的文件描述符和緩存的文件塊等[2,3]。進程遷移算法即是基于上述內容來實現進程遷移的,目前流行的遷移算法有Total-copy、Lazy-copy、Pre-copy、Flushing[4]。

本文要實現的進程遷移需要具有一定容錯性。在集群系統中,源節點是有可能出現錯誤的,在進程遷移后源節點也有可能被隔離,因此,設計算法時需要優先考慮對源節點的殘余依賴性,即要求目的節點對源節點沒有殘余依賴性。而Lazy-copy在殘余依賴性方面卻有著不容忽視的明顯缺陷,所以Lazy-copy算法并不適合本文中的進程遷移[4]。另外,當產生的“臟頁”較多,也就是當需要二次傳送的頁面較多時,Pre-copy算法的進程遷移后的完成時間與不進行進程遷移的完成時間相比,也不占任何優勢[5]。顯然,Pre-copy也不適合本文。

再者,如前文所述的Total-copy算法對于源節點沒有殘余依賴,而且,本文所要實現的進程遷移基本上多為基本計算以及只使用字符,文件等簡單結構的進程,對一些較為復雜的圖形進程,并不在本研究考慮的范圍內,因此其遷移時延也不是很大。經過對現有算法的綜合評定可得,本文將選用Total-copy算法實現進程遷移。

2系統的設計與實現

2.1 系統整體架構

2.1.1整體系統框圖

本文的進程遷移系統可分為三個模塊,也就是:MigrateOut、MigrateIn、Manager。各部分間的關系如圖1所示。

圖1 遷移系統結構框圖

Fig.1 Migration system architecture

2.1.2系統運作流程

進程遷移中,各部分運行的基本流程可描述為:

(1)用戶User通知Manager要進行進程遷移,同時將遷移進程的進程號和目的主機的信息傳遞給Manager;

(2)Manger檢查待遷移進程source是否合法,以及目的主機DestinationHost是否可達等,而后通知MigrateOut將source進程遷移到Destination Host主機;

(3)源主機Source Host將source進程掛起后,MigrateOut即開始向目標主機的MigrateIn發送source進程的全部信息,其后殺死source進程;

(4)目標主機Destination Host的MigrateIn可根據發來的信息,在目的主機上重建此進程,并使其在目的主機上繼續執行。

2.1.3進程遷移協議

各個節點之間采用高速的以太網互聯,因此,從遷移協議的角度來看,源主機MigrateOut模塊中的協議部分,類似于一個Client,而目標主機MigrateIn模塊中的協議部分,就類似于一個Server。

Client將獲取到的進程遷移信息通過Linux網絡功能發送,Server端通過網絡功能接受傳來的信息,并提取其中的數據交給MigrateIn模塊處理。

在因特網協議族中,TCP協議具有如下特點:

(1) 面向連接的傳輸;

(2) 端到端的通信;

(3) 高可靠性,確保傳輸數據的正確性,不出現丟失或亂序;

(4) 全雙工方式傳輸;

(5) 采用字節流方式,即以字節為單位傳輸字節序列;

(6) 緊急數據傳送功能。

TCP的這些特點使其可以解決一些通信的錯誤,隨之工作量也有所降低,為此,本文選擇TCP作為基本的網絡傳輸協議。

2.2 模塊的設計

2.2.1 Manager模塊的設計

Manager模塊的設計較為簡單,在Manager模塊接收到從用戶發送的遷移進程號和目的主機后,即開始進行信息校驗和遷移準備工作:

(1)首先是校驗待遷移進程的進程號,進程號如果為0或者current,則本次遷移失敗,并通知用戶不能進行遷移。這里并不是除了以上兩個進程外即都能遷移,在本系統中符合如下狀況的進程是無法進行遷移的[6,7]。相應狀況分別為:

① 進程映射了一些設備內存;

② 進程為內核守護進程;

③ 進程的部分內存由mlock系統調用并鎖住;

④ 進程以共享內存的方式使用文件或者使用了SysV IPC的共享內存等。

(2)接著對目的主機進行通信測試,以確定目的主機是否可達,若不可達,則本次遷移失敗,同時通知用戶。

(3)若目的主機可達,則在兩者間建立相應的socket通信。

2.2.2 MigrateOut模塊的設計

作為遷移進程系統中的傳輸模塊,MigrateOut模塊負責獲取待遷移進程的全部信息(主要包括進程控制和運行信息、內核棧、地址空間等),同時將獲取信息通過高速互聯網絡發送到目的節點上。在全部信息傳送完成后,會中止源進程,并收回其相應資源。MigrateOut模塊的流程圖如圖2所示。

圖2 MigrateOut模塊流程圖

Fig.2 MigrateOut module flowchart

2.2.3 MigrateIn模塊的設計

作為遷移進程系統中的接受模塊,MigrateIn模塊負責接受源主機上發送的數據,并根據提取出來的信息,重建源進程的task_struct結構和內核空間棧,再建立得到用戶空間的頁面及頁表項,在完成以上工作后開始執行新進程,斷開socket鏈接。MigrateIn模塊的流程則如圖3所示。

圖3 MigrateIn模塊流程圖

Fig.3 MigrateIn module flowchart

3 結束語

本文對已有的經典遷移算法從理論上進行了比較,主要基于“決定進程遷移”到“在目標節點上恢復執行”之間的時延、進程遷移的總時延、殘余依賴性等三個方面,即根據對其各自優缺點的分析,選擇了Total-copy算法。算法選定后,將遷移系統分為Manager模塊、MigrateOut模塊和MigrateIn模塊等三個部分,并給出了主要模塊的實現流程圖、設計原理和實現過程。在對遷移算法的設計中,主要對Linux內核的相關機制進行了分析和改造,而且對于進程遷移中的建立動作,進行了解析和改造。

參考文獻

[1] FREEMAN D. Experience building a process migration subsystem for UNIX[C]//Proceedings of the USENIX Winter Conference,1991:349-355.

[2] MILOJICIC D S, DOUGLAS F, PAINDAVEIN Y. Process Migration[R]. ACM Computing Surveys,2000,32(3):241-299.

[3] SMITH J M. A survey of process migration mechanisms[R]. ACM SIGOPS Operating Systems Review,1998,22(3):28-40.

[4] 邱毓蘭,劉曾滿,王卓立. Linux操作系統環境中的進程遷移算法研究[J].武漢大學學報(自然科學版),1999,45(3):276- 278.

[5] 陸桑璐,謝立.進程的動態遷移技術[J].計算機研究與發展.1997.34(9):64-65.

[6] Robert Love. Linux內核設計與實現[M].陳莉君,譯,北京:機械工業出版社,2006.

[7] Mel Gorman. 深入理解Linux虛擬內存管理[M].白洛,譯.北京:北京航空航天大學出版社,2006.

主站蜘蛛池模板: 亚洲中文在线看视频一区| 毛片免费在线视频| 欧美亚洲网| 爱做久久久久久| 99精品影院| 强奷白丝美女在线观看| 中日韩一区二区三区中文免费视频| 人妻丰满熟妇AV无码区| 亚洲色图另类| 亚洲女同欧美在线| 久久国产av麻豆| 日韩欧美网址| 激情综合网址| 欧美成人A视频| 国产超薄肉色丝袜网站| 中文字幕av无码不卡免费| 丰满的少妇人妻无码区| 日韩人妻精品一区| 华人在线亚洲欧美精品| 一区二区理伦视频| 国产黄色免费看| 四虎精品国产AV二区| 偷拍久久网| 自拍中文字幕| 国内精品一区二区在线观看| 国产在线一区二区视频| 国产亚洲精品yxsp| 免费不卡在线观看av| 无套av在线| 91丝袜乱伦| 在线欧美a| 亚洲一级无毛片无码在线免费视频 | 国产欧美日韩综合在线第一| 国产无码精品在线播放| 97se亚洲综合在线天天| 亚洲欧美自拍中文| 毛片最新网址| 国产日韩欧美中文| 曰韩人妻一区二区三区| 欧美成人一区午夜福利在线| 毛片久久久| 91娇喘视频| 国产色婷婷| 国产成人一区| AV不卡无码免费一区二区三区| 日本高清有码人妻| 久久成人免费| 亚洲AⅤ无码国产精品| 国产精品熟女亚洲AV麻豆| 日韩精品亚洲一区中文字幕| 国产麻豆aⅴ精品无码| 热这里只有精品国产热门精品| 久久综合色视频| 狠狠久久综合伊人不卡| yjizz国产在线视频网| 欧洲一区二区三区无码| 黄色三级网站免费| 99偷拍视频精品一区二区| 久久狠狠色噜噜狠狠狠狠97视色| 欧美亚洲国产精品第一页| 日本91在线| 嫩草国产在线| 午夜激情福利视频| 在线五月婷婷| av午夜福利一片免费看| 综合天天色| 一级毛片免费播放视频| 91成人免费观看在线观看| 97成人在线视频| 国产成人综合在线观看| 亚洲日本www| 久久青青草原亚洲av无码| 欧美日韩北条麻妃一区二区| 亚洲人成影院在线观看| 日本久久免费| 午夜少妇精品视频小电影| 1级黄色毛片| 99免费视频观看| 国产精品微拍| 一区二区日韩国产精久久| 九九视频免费在线观看| 毛片久久网站小视频|