资源简介
设计要求
使用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个文件信息
相关资源
- 生产者消费者问题源码-MFC实现-进程模
- 操作系统实验 进程调度 高响应比优先
- 操作系统文件管理C++代码实现
- 嗜睡的理发师进程同步与实现c++
- 安徽大学操作系统实验八基于扫描的
- 安徽大学操作系统实验四主存空间的
- 操作系统——银行家算法
- 操作系统_生产者消费者c++、mfc实现
- 磁盘调度c++模拟实现计算机操作系统
- 操作系统课设源代码 模拟进程的并
- 银行家算法C++实现穷举所有安全序列
- 64位操作系统下win10、win7,VC6的所有问
- 操作系统课程设计之死锁检测
- 操作系统课程设计 哲学家进餐问题完
- 2010-2011华南理工大学操作系统课程设
- 操作系统进程间通信,用mfc实现
- 2013-2014华南理工大学操作系统课程设
- 操作系统实验 请求分页存储管理(包
- 进程/作业调度:时间片轮转调度算法
- 嵌入式实时操作系统μC/OS-III(英文
- 操作系统课程设计:进程/作业调度
- 操作系统 进程调度 多级队列反馈
- 自己动手写操作系统 于渊 高清带书签
- 操作系统读者写者写优先
- 消费者与生产者
- 操作系统八大调度算法c/c++实现
- 模拟操作系统的实现 C语言
- 操作系统实验可视化界面
- 操作系统概念:进程调度算法FCFS、
- STemWin无操作系统移植-(STM32)
评论
共有 条评论