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久久国产综合精品女同| 国产正在播放| 久久国产高清视频| 国产欧美日韩精品综合在线| 在线免费无码视频| 国内精品伊人久久久久7777人| 国产精品亚洲一区二区三区z| 久久a级片| 国产成人无码AV在线播放动漫| 亚洲高清日韩heyzo| 人妻一本久道久久综合久久鬼色| 亚洲婷婷六月| 在线毛片免费| 99精品这里只有精品高清视频| 九九热免费在线视频| 国产精品美人久久久久久AV| a级免费视频| 成人中文字幕在线| 国产视频大全| 在线一级毛片| 亚洲精品无码高潮喷水A| 精品久久久久无码| 免费啪啪网址| 成人va亚洲va欧美天堂| 婷婷午夜天| 四虎成人在线视频| 永久在线精品免费视频观看| 国产精品深爱在线| 亚洲成A人V欧美综合天堂| 国产精品视频a| 超碰免费91| 国产精品毛片一区视频播| 欧美国产精品拍自| 久久一色本道亚洲| 91国内视频在线观看| 多人乱p欧美在线观看| 欧美成a人片在线观看| 美女被狂躁www在线观看| 国产精品.com| 女人爽到高潮免费视频大全| 欧美黑人欧美精品刺激| 国产色网站| 国产午夜一级淫片| 2021无码专区人妻系列日韩| 国产精品毛片一区| 亚洲一区网站| 毛片网站观看| 欧美精品v| 青青久久91| 亚洲综合亚洲国产尤物| 免费高清毛片| 国产成人1024精品下载| 热伊人99re久久精品最新地| 亚洲综合极品香蕉久久网| 国产91小视频| 国产SUV精品一区二区| 国产精品免费入口视频| 中文字幕有乳无码| 中文成人在线视频| 在线欧美一区| 精品久久久久久久久久久| 国产69精品久久久久孕妇大杂乱 | 国产人人射| 亚洲色图欧美在线| 一本大道在线一本久道| 男女男精品视频| 国产人人乐人人爱| 中文字幕在线视频免费| 又爽又黄又无遮挡网站| 91国内在线视频| 亚洲一级无毛片无码在线免费视频| 亚洲人人视频| 国产一级α片| 青草精品视频| 久久中文字幕不卡一二区| 91青青在线视频| 国产色婷婷| 亚洲国产日韩在线成人蜜芽| 波多野吉衣一区二区三区av| 欧美一区精品|