亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于銀行家算法的多進(jìn)程算法資源配置策略研究

        2015-03-12 02:06:12梁允廣東電網(wǎng)有限責(zé)任公司河源供電局廣東河源514000
        機(jī)電工程技術(shù) 2015年11期
        關(guān)鍵詞:系統(tǒng)安全

        梁允(廣東電網(wǎng)有限責(zé)任公司河源供電局,廣東河源 514000)

        ?

        基于銀行家算法的多進(jìn)程算法資源配置策略研究

        梁允
        (廣東電網(wǎng)有限責(zé)任公司河源供電局,廣東河源514000)

        摘要:系統(tǒng)資源不足會導(dǎo)致多進(jìn)程算法進(jìn)入不安全狀態(tài),引發(fā)死鎖等問題,銀行家算法是避免死鎖的一種重要方法,能保證系統(tǒng)時(shí)刻都處于安全狀態(tài)。銀行家算法包括可利用資源向量、最大需求矩陣、分配矩陣、需求矩陣四類數(shù)據(jù)類型,包括試探分配、安全性檢查和資源分配等步驟。采用MFC編程,設(shè)計(jì)并實(shí)現(xiàn)了銀行家算法。通過軟件測試,證明軟件能夠有效避免死鎖,完成多個(gè)進(jìn)程的資源分配。

        關(guān)鍵詞:銀行家算法;死鎖;系統(tǒng)安全;多進(jìn)程

        當(dāng)系統(tǒng)資源緊張時(shí),多進(jìn)程算法資源分配不足會導(dǎo)致發(fā)生死鎖,操作系統(tǒng)在對軟件、硬件資源管理時(shí)都有可能發(fā)生死鎖,死鎖發(fā)生時(shí),發(fā)生死鎖的多進(jìn)程算法進(jìn)程無法繼續(xù)運(yùn)行,必須釋放進(jìn)程資源,采用新進(jìn)程進(jìn)行計(jì)算,因此造成多進(jìn)程算法算法效率低下。避免死鎖算法以Dijkstra于1965年提出的銀行家算法最有代表性[1],對多進(jìn)程算法資源配置具有重要意義。

        在避免死鎖的著名算法中,其中較為著名的是由Dijkstra在1965年提出的銀行家算法,它是以銀行的借貸系統(tǒng)的分配原則為理論背景,為判斷并保證T.H.E系統(tǒng)的安全運(yùn)行為目的的一種算法?,F(xiàn)已推廣到同一系統(tǒng)中,涉及多個(gè)單元向上級進(jìn)行動態(tài)的資源申請及回收,都可以采取這種算法保證系統(tǒng)的穩(wěn)定運(yùn)行。

        張菊等研究了基于銀行家算法的進(jìn)程安全序列研究仿真,分析了銀行家算法的思想,給出了算法描述,并改進(jìn)了銀行家算法[2];侯剛研究了銀行家算法的基本原理并第一次在操作系統(tǒng)教材中揭示了銀行家算法的原理[3];王繼奎、王會勇等研究了在銀行家算法思想指導(dǎo)下,同時(shí)深刻理解安全狀態(tài)的理論前提下,提出了一種針對系統(tǒng)的某一時(shí)刻搜索,所需要配置的進(jìn)程安全序列算法,并利用面編程語言JAVA實(shí)現(xiàn)了該算法,該算法在分析全部安全序列的前提下,實(shí)現(xiàn)對系統(tǒng)資源的安全分配以及為系統(tǒng)的進(jìn)程調(diào)度優(yōu)化提供理論支持[4];李婧、陳旺虎等分析了使用傳統(tǒng)的銀行家算法降低系統(tǒng)資源使用效率的主要原因是使用了事先聲明的全局最大資源需求量,提出了一種改進(jìn)算法,該算法用廣義表表示每個(gè)進(jìn)程的控制流程及其資源請求圖,可以減小銀行家算法對系統(tǒng)資源使用效率的影響[5];彭志勇、賴曉風(fēng)等利用該算法在高校排課系統(tǒng)中針對選修課程教室安排中的應(yīng)用,并設(shè)計(jì)了一種排課的方案,從而使每個(gè)教室都能得到充分合理的安排,突出了銀行家算法相對其他算法在高校排課系統(tǒng)中的優(yōu)勢[6]。

        本文提出了基于銀行家算法的多進(jìn)程算法資源分配策略,進(jìn)一步促進(jìn)了銀行家算法在多進(jìn)程算法資源分配策略的應(yīng)用,有效避免了多任務(wù)處理系統(tǒng)中死鎖的發(fā)生。

        1 多進(jìn)程算法資源分配存在問題

        在允許多進(jìn)程操作的系統(tǒng)中,由于允許通過多個(gè)進(jìn)程的并行運(yùn)行去改善系統(tǒng),從而提高系統(tǒng)的工作量,但是可能發(fā)生多個(gè)進(jìn)程循環(huán)等待它方占有資源,導(dǎo)致程序無限期地僵持下去,也就是所謂死鎖。如果沒有外力改變這個(gè)狀態(tài),那么涉及到的進(jìn)程都將永遠(yuǎn)處于死鎖的狀態(tài)。其中死鎖狀態(tài)產(chǎn)生,一般是由于競爭資源和進(jìn)程間在推進(jìn)順序中所產(chǎn)生非法邏輯。因此只需在當(dāng)前的有限資源下,構(gòu)建一組合法的執(zhí)行順序,這樣便能很好地避免死鎖的發(fā)生。銀行家算法起源于銀行系統(tǒng)的發(fā)放貸款,其本質(zhì)狀態(tài)和計(jì)算機(jī)操作系統(tǒng)的資源分配相符。

        要想避免死鎖,就必須考慮進(jìn)程是否處于系統(tǒng)所要求的安全狀態(tài),這樣就可以很好的規(guī)避死鎖。安全狀態(tài)指系統(tǒng)按照某種設(shè)定的安全進(jìn)程順序?yàn)槟撤N進(jìn)程合理的提供資源分配,在此基礎(chǔ)上進(jìn)而滿足每個(gè)進(jìn)程對資源的最大需求,這樣就使的每個(gè)進(jìn)程都能夠順利完成系統(tǒng)的任務(wù)。若在系統(tǒng)中,不存在或無法發(fā)現(xiàn)這樣的安全序列,那么就稱系統(tǒng)處于不安全狀態(tài)。

        通過案例進(jìn)行簡要說明,計(jì)算機(jī)有4個(gè)進(jìn)程共享20個(gè)資源,進(jìn)程P1、P2、P3、P4分別需要15個(gè)資源5個(gè)資源,8個(gè)資源和10個(gè)資源。在Tn時(shí)刻,P1,P2,P3,P4分別擁有8個(gè)、4個(gè)、4個(gè)、2個(gè)資源,且有2個(gè)空閑資源。Tn時(shí)刻是安全的,< P1,P2,P3,P4>為存在一個(gè)安全序列,只要系統(tǒng)按此序列分配,那么就可以安全地完成系統(tǒng)所需要的資源分配,保證系統(tǒng)的安全。

        綜上,當(dāng)進(jìn)程向系統(tǒng)發(fā)出某種資源申請時(shí),需要進(jìn)行安全性檢查。分析系統(tǒng)中進(jìn)程已分配資源數(shù),當(dāng)下進(jìn)程的最大需求資源數(shù)及系統(tǒng)可配置資源數(shù),在綜合分析后,根據(jù)分析結(jié)果決定判斷系統(tǒng)是否進(jìn)行資源分配,進(jìn)而避免系統(tǒng)進(jìn)入不安全狀態(tài)。

        2 銀行家算法

        銀行家算法是避免死鎖的算法中頗具代表性的算法,其得名由于該算法思想來源于銀行系統(tǒng)現(xiàn)金貸款的發(fā)放。為了保證資金的安全,銀行家必須保證顧客對資金的總需求量不超過銀行家?guī)齑娴乃匈Y金;若銀行家現(xiàn)有的資金少于顧客所需要的貸款需求時(shí),對顧客的貸款進(jìn)行推遲處理,同時(shí)也必須滿足,在有限的時(shí)間內(nèi),需處理顧客的貸款需求;同時(shí)若當(dāng)顧客得到所需貸款后,也必須在有限的時(shí)間內(nèi),歸還所借取的貸款[8]。

        2.1銀行家算法數(shù)據(jù)結(jié)構(gòu)

        存在四類數(shù)據(jù)類型。第1類數(shù)據(jù)類型稱為可利用資源向量,其中的每一個(gè)元素代表一類可利用資源的數(shù)量,其初始值為系統(tǒng)中該類資源的總量,隨著該類資源的分配和回收,使得資源處于動態(tài)變化,本文中用含有m個(gè)元素的一維數(shù)組Available表示。

        第2類數(shù)據(jù)類型稱為最大需求矩陣,表示進(jìn)程分別對應(yīng)類資源的最大需求量,本文中用n×m的矩陣Max進(jìn)行表示。

        第3類數(shù)據(jù)類型稱為分配矩陣,表示每一類資源已分配給每一個(gè)進(jìn)程的資源數(shù)量,本文中用n×m的矩陣Allocation表示。

        第4類數(shù)據(jù)類型稱為需求矩陣,表示每一個(gè)進(jìn)程尚需的各類資源數(shù)量,本文中用n×m的矩陣Need表示。

        2.2銀行家算法流程

        銀行家算法流程圖如圖1所示。

        當(dāng)進(jìn)程Pi提出資源申請時(shí),系統(tǒng)執(zhí)行以下步驟:

        (1)若Requesti≤Need(i,j),跳轉(zhuǎn)到下一步,否則錯(cuò)誤返回;

        圖1 銀行家算法流程圖

        (2)若Requesti≤Available,跳轉(zhuǎn)到下一步,否則進(jìn)程等待;

        (3)假設(shè)系統(tǒng)試分配及安全性檢查通過,則可以進(jìn)行分配,分配算法為:

        系統(tǒng)安全性檢查算法如圖2所示。

        圖2 安全性檢查算法流程圖

        首先,定義兩個(gè)狀態(tài)向量,工作向量(Work)和狀態(tài)向量(Finish)。Work向量表示系統(tǒng)可以提供給進(jìn)程的資源量。執(zhí)行算法時(shí),Work的初值為系統(tǒng)可利用的資源量;Finish的狀態(tài)表示系統(tǒng)是否能夠進(jìn)行資源分配,其初始狀態(tài)為false,當(dāng)判斷足夠后,再令其為true。然后在從進(jìn)程的集合中找到一個(gè)可以滿足狀態(tài)向量為false同時(shí)滿足需求向量小于工作向量進(jìn)程,如果可以找到,則執(zhí)行下一步,否則跳轉(zhuǎn)到最后一步,確定系統(tǒng)安全。此時(shí)當(dāng)進(jìn)程獲得資源后,可順利執(zhí)行,當(dāng)完成需要時(shí),釋放所獲得的資源,繼續(xù)執(zhí)行上一步。最后如果所有進(jìn)程的都完成,表示系統(tǒng)處于安全狀態(tài),否則系統(tǒng)處于一個(gè)不夠安全的狀態(tài)。

        安全性檢查程序流程圖如圖3所示。

        圖3 安全性檢查程序流程圖

        3 銀行家算法的程序設(shè)計(jì)

        本文采用Visual C++ 6.0設(shè)計(jì)Windows界面程序,程序設(shè)計(jì)語言為C++。界面分為三部分:參數(shù)輸入?yún)^(qū)域,資源分配區(qū)域和結(jié)果顯示區(qū)域。用戶在參數(shù)輸入?yún)^(qū)域輸入可利用資源、進(jìn)程名稱、進(jìn)程所需最大需求矩陣、進(jìn)程的分配矩陣、等信息,單擊動態(tài)添加按鍵添加進(jìn)程資源,單擊安全檢查,可以檢查當(dāng)前所有進(jìn)程對當(dāng)前資源的申請是否安全,是否會使系統(tǒng)因資源不足或其他原因進(jìn)入不安全狀態(tài)從而不能完成分配。如果進(jìn)程申請資源安全,軟件則提示安全,否則提示不安全。

        軟件可以支持最多10類資源進(jìn)行分配,如圖4所示??衫觅Y源向量為[5,5,5,5,5,5,5,5,5,5],輸入進(jìn)程名稱process0,輸入pro?cess0最大需求矩陣為[1,1,2,1,1,1,1,1,1,1],process0分配矩陣為[0,0,0,0,0,0,0,0,0,0],需求矩陣為[1,1,2,1,1,1,1,1,1,1],完成輸入之后單擊“動態(tài)添加”按鍵添加進(jìn)程成功。單擊“安全檢查”按鍵,即提示系統(tǒng)狀態(tài)安全,可以執(zhí)行分配操作。

        開始執(zhí)行分配,在進(jìn)程名稱文本框輸入“process0”以及申請資源量。假設(shè)輸入的申請資源量為[1,1,1,1,1,1,1,1,1,1],單擊“申請資源”,軟件彈出“資源分配后安全,可以分配”的消息提示框,表明輸入的資源量可以滿足申請要求并執(zhí)行申請請求。單擊確認(rèn),進(jìn)程process0已經(jīng)分配資源為[1,1,1,1,1,1,1,1,1,1],尚需分配資源為[0,0,1,0,0,0,0,0,0,0],表明process0申請資源成功。此時(shí)系統(tǒng)可用資源數(shù)向量由原來的[5,5,5,5,5,5,5,5,5,5]變?yōu)閇4,4,4,4,4,4,4,4,4,4],系統(tǒng)為進(jìn)程process0分配資源成功,如圖5所示。

        圖4 軟件安全性檢查

        圖5 進(jìn)程資源分配

        4 結(jié)論

        由于銀行家算法需要不斷檢測每個(gè)進(jìn)程對各類資源的占用和申請情況從而保證系統(tǒng)處于安全狀態(tài),從而耗費(fèi)了大量時(shí)間,目前大部分系統(tǒng)都沒有采用這個(gè)算法,也沒有任何關(guān)于死鎖的檢查。但銀行家算法在多進(jìn)程算法資源配置策略中有重要的意義,可以大大提高多進(jìn)程算法資源的利用率,并有效地預(yù)測系統(tǒng)的安全性,避免死鎖的發(fā)生。

        參考文獻(xiàn):

        [1]彭媛.基于系統(tǒng)安全性的死鎖避免算法[J].武漢生物工程學(xué)院學(xué)報(bào),2006(1):40-42.

        [2]張菊.基于銀行家算法的進(jìn)程安全序列仿真研究[J].軟件,2012,33(2):21-23.

        [3]侯剛.深入解析銀行家算法[J].濰坊學(xué)院學(xué)報(bào),2006(3):46-48.

        [4]王繼奎,王會勇.基于銀行家算法的進(jìn)程安全序列全搜索算法[J].甘肅科學(xué)學(xué)報(bào),2009 (2):152-154.

        [5]李婧,陳旺虎.基于廣義表的銀行家算法[J].西北師范大學(xué)學(xué)報(bào):自然科學(xué)版,2002(3):30-33.

        [6]彭志勇,賴曉鳳.銀行家算法在高校排課系統(tǒng)中的應(yīng)用[J].西昌學(xué)院學(xué)報(bào):自然科學(xué)版,2011(6):25-2.

        (編輯:向飛)

        The Research of Multi-Process Allocation Strategy Based on Banker Algorithm

        LIANG Yun
        (Heyuan Power Supply Bureau,Heyuan517000,China)

        Abstract:Deadlock is the important affair of multi-user operating system. Insufficient system resource will cause the multi-process algorithm into unsafe state,lead to deadlock problem. Banker algorithm is an important method to avoid deadlock,guarantees the system always in safe state. There are four data structures in Banker algorithm: available resource vector,maximum demand matrix,allocation matrix and need matrix. Banker algorithm includes heuristic allocation,security check and resource allocation. In this paper,Banker algorithm is designed and implemented by MFC programming. According to the test results,it is proved that this software can avoid deadlock effectively and complete resource allocation for multi-processes.

        Key words:Banker algorithm;deadlock;system safety;multi-process

        作者簡介:梁允,男,1986年生,廣東河源人,碩士,工程師。研究領(lǐng)域:電力信息技術(shù)。

        收稿日期:2015-08-11

        DOI:10. 3969 / j. issn. 1009-9492. 2015. 11. 031

        中圖分類號:TP39

        文獻(xiàn)標(biāo)識碼:A

        文章編號:1009-9492 ( 2015 ) 11-0119-04

        猜你喜歡
        系統(tǒng)安全
        新型電力系統(tǒng)安全穩(wěn)定運(yùn)行分析
        湖南電力(2022年3期)2022-07-07 08:56:26
        高郵市創(chuàng)新衛(wèi)生系統(tǒng)安全管理模式
        鐵路信號系統(tǒng)安全輸入輸出平臺
        鐵路信號系統(tǒng)安全計(jì)算機(jī)平臺配置工具軟件設(shè)計(jì)
        鐵路信號系統(tǒng)安全數(shù)據(jù)網(wǎng)口令攻擊技術(shù)初探
        基于食品系統(tǒng)安全度提升健全食品消費(fèi)者權(quán)益的保護(hù)
        智能變電站計(jì)量系統(tǒng)安全防護(hù)技術(shù)探討
        采用系統(tǒng)安全技術(shù)保障微機(jī)可控頂調(diào)速系統(tǒng)的可靠運(yùn)行
        戶用光伏系統(tǒng)安全防護(hù)問題的研究
        太陽能(2015年6期)2015-02-28 17:09:37
        對電力系統(tǒng)安全調(diào)度工作的幾點(diǎn)思考
        河南科技(2014年22期)2014-02-27 14:18:32
        久久精品一区午夜视频| 成人综合亚洲欧美一区h| 伊人久久大香线蕉综合av| 一本久道竹内纱里奈中文字幕| 东北少妇不带套对白| 97精品伊人久久大香线蕉app| 丰满少妇人妻无码超清| 人妻中文字幕一区二区视频| 国产精品毛片无遮挡| 国产精品对白交换视频| 中文国产成人精品久久一区| 熟女人妻一区二区三区| 97se狠狠狠狠狼鲁亚洲综合色| 婷婷五月综合缴情在线视频 | 亚洲无码夜夜操| 日韩va高清免费视频| 人妻熟妇乱又伦精品hd| 日本欧美视频在线观看| 国产精品久久久一本精品| 手机在线播放成人av| 国产精品亚洲片在线观看不卡| 久久久亚洲色| 日韩av无码午夜福利电影| 亚洲一区二区三区偷拍厕所| 久久国产亚洲高清观看| 日韩乱码视频| 日本一区二区三区精品不卡| 国产在线高清理伦片a| 亚洲av无码av制服丝袜在线| 亚洲av午夜成人片精品| 中文字幕乱码亚洲一区二区三区| 色777狠狠狠综合| 另类欧美亚洲| 亚洲精品中文字幕码专区| 国产成人亚洲精品无码青| 久久人人爽人人爽人人av东京热 | 亚洲精品你懂的在线观看| 国产成人色污在线观看| 国产欧美综合一区二区三区| 天躁夜夜躁狼狠躁| 爱v天堂在线观看|