资源简介
设计要求
使用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个文件信息
相关资源
- 操作系统课设 读写者问题 c语言实现
- ROS操作系统入门讲义
- 银行家算法分配资源的模拟实现(m
- Linux操作系统下C语言编程从零开始
- 操作系统存储管理实验报告c/c++
- C语言实现的银行家算法 做了界面
- 操作系统课程设计(银行家算法)附
- 现代操作系统第三版高清
- C++操作系统课设-进程管理
- 哲学家进餐问题的c++模拟实现
- 操作系统课程设计(生产者-消费者存
- 操作系统——5个实验.zip
- 操作系统进程管理实验
- 操作系统—页面置换算法C++实现
- 操作系统 内存管理 模拟 图形界面
- 银行家算法c语言实现+实验报告
- 银行家算法 mfc 含源代码 界面 操作系
- 操作系统生产者消费者问题MFC动态实
- 银行家算法 死锁避免 可视化 MFC
- 操作系统课程设计:Windows 命令接口之
- 操作系统课程大作业-文件管理系统
- C语言实现最低松弛度优先算法源代码
- 操作系统信号量PV经典问题:沉睡的理
- 生产者消费者问题源码-MFC实现-进程模
- 操作系统实验 进程调度 高响应比优先
- 操作系统文件管理C++代码实现
- 嗜睡的理发师进程同步与实现c++
- 安徽大学操作系统实验八基于扫描的
- 安徽大学操作系统实验四主存空间的
- 操作系统——银行家算法
评论
共有 条评论