資源簡介
設計要求
使用C++設計一個n 個并發進程共享m 個系統資源的系統。其中進程可動態申請資源和釋放資源,系統按各進程的申請動態的分配資源,要求采用銀行家算法實現。
設計思想
本實驗是基于Dijkstra的銀行家算法的實現,該算法可用于在操作系統中避免死鎖。
該算法的基本思想是:讓用戶輸入進程數與資源類數,并輸入每個進程對每類資源的最大需求量,已占用數,以及系統中當前每類資源的可用數。再選擇一個進程讓其申請資源。當進程動態地申請資源時,系統必須首先確定是否有足夠的資源分配給該進程。若有,系統將進一步計算在將這些資源分配給進程后,是否會使系統進入不安全狀態,如果不會,系統才能將資源分配給它,否則系統讓進程等待。
設計流程
本算法分為三步:初始狀態安全性檢查→銀行家算法模擬分配進程→安全性檢查。

代碼片段和文件信息
#include?“stdafx.h“
using?namespace?System;
using?namespace?System::Reflection;
using?namespace?System::Runtime::CompilerServices;
using?namespace?System::Runtime::InteropServices;
using?namespace?System::Security::Permissions;
//
//?有關程序集的常規信息通過下列特性集
//?控制。更改這些特性值可修改
//?與程序集關聯的信息。
//
[assembly:AssemblytitleAttribute(“銀行家算法“)];
[assembly:AssemblyDescriptionAttribute(““)];
[assembly:AssemblyConfigurationAttribute(““)];
[assembly:AssemblyCompanyAttribute(““)];
[assembly:AssemblyProductAttribute(“銀行家算法“)];
[assembly:AssemblyCopyrightAttribute(“Copyright?(c)??2017“)];
[assembly:AssemblyTrademarkAttribute(““)];
[assembly:AssemblyCultureAttribute(““)];
//
//?程序集的版本信息由下面四個值組成:
//
//??????主版本
//??????次版本
//??????生成號
//??????修訂號
//
//?您可以指定所有值,也可使用“修訂號”和“生成號”的默認值,
//?方法是按如下所示使用“*”:
[assembly:AssemblyVersionAttribute(“1.0.*“)];
[assembly:ComVisible(false)];
[assembly:CLSCompliantAttribute(true)];
[assembly:SecurityPermission(SecurityAction::RequestMinimum?UnmanagedCode?=?true)];
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-01-02?19:16??銀行家算法\
?????目錄???????????0??2018-01-02?19:16??銀行家算法\Debug\
?????文件??????122880??2017-12-25?00:15??銀行家算法\Debug\銀行家算法.exe
?????文件?????????599??2017-12-18?19:24??銀行家算法\Debug\銀行家算法.exe.me
?????文件???????????0??2017-12-25?00:15??銀行家算法\Debug\銀行家算法.ilk
?????文件??????879616??2017-12-25?00:15??銀行家算法\Debug\銀行家算法.pdb
?????目錄???????????0??2018-01-02?19:16??銀行家算法\ipch\
?????目錄???????????0??2018-01-02?19:16??銀行家算法\ipch\銀行家算法-495280b5\
?????文件?????8454144??2017-12-25?00:34??銀行家算法\ipch\銀行家算法-495280b5\銀行家算法-ad3df7f0.ipch
?????目錄???????????0??2018-01-02?19:16??銀行家算法\銀行家算法\
?????文件????????1151??2017-12-18?15:33??銀行家算法\銀行家算法\AssemblyInfo.cpp
?????目錄???????????0??2018-01-02?19:16??銀行家算法\銀行家算法\Debug\
?????文件????????2256??2017-12-18?19:24??銀行家算法\銀行家算法\Debug\.NETfr
?????文件????????3216??2017-12-18?19:24??銀行家算法\銀行家算法\Debug\AssemblyInfo.obj
?????文件???????12280??2017-12-25?00:15??銀行家算法\銀行家算法\Debug\CL.read.1.tlog
?????文件????????1378??2017-12-25?00:15??銀行家算法\銀行家算法\Debug\CL.write.1.tlog
?????文件???????????0??2017-12-18?19:24??銀行家算法\銀行家算法\Debug\TZRES.DLL.bi
?????文件???????10380??2017-12-18?19:24??銀行家算法\銀行家算法\Debug\app.res
?????文件????????6592??2017-12-25?00:15??銀行家算法\銀行家算法\Debug\cl.command.1.tlog
?????文件???????????2??2017-12-25?00:15??銀行家算法\銀行家算法\Debug\li
?????文件???????????2??2017-12-25?00:15??銀行家算法\銀行家算法\Debug\li
?????文件???????????2??2017-12-25?00:15??銀行家算法\銀行家算法\Debug\li
?????文件???????????2??2017-12-25?00:15??銀行家算法\銀行家算法\Debug\li
?????文件???????????2??2017-12-25?00:15??銀行家算法\銀行家算法\Debug\li
?????文件???????????2??2017-12-25?00:15??銀行家算法\銀行家算法\Debug\li
?????文件???????????2??2017-12-25?00:15??銀行家算法\銀行家算法\Debug\li
?????文件???????????2??2017-12-25?00:15??銀行家算法\銀行家算法\Debug\li
?????文件???????????2??2017-12-25?00:15??銀行家算法\銀行家算法\Debug\li
?????文件???????????2??2017-12-25?00:15??銀行家算法\銀行家算法\Debug\li
?????文件???????????2??2017-12-25?00:15??銀行家算法\銀行家算法\Debug\li
?????文件???????????2??2017-12-25?00:15??銀行家算法\銀行家算法\Debug\li
............此處省略165個文件信息
評論
共有 條評論