您所在位置: 网站首页 / 文档列表 / 实验 / 文档详情
实验三死锁的检测和解除.doc 立即下载
上传人:王子****青蛙 上传时间:2024-09-08 格式:DOC 页数:9 大小:199KB 金币:6 举报 版权申诉
预览加载中,请您耐心等待几秒...

实验三死锁的检测和解除.doc

实验三死锁的检测和解除.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

6 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

南华大学计算机科学与技术学院实验报告课程名称操作系统I姓名学号ﻩ专业班级任课教师日期实验内容死锁得检测与解除实验目得掌握操作系统得进程管理与资源分配原理,掌握对操作系统安全性检验与死锁得解除得原理与方法。实验题目系统中有m个同类资源被n个进程共享,每个进程对资源得最大需求数分别为S1,S2,…,Sn,且Max(Si)<=m,(i=1,2,…n)。进程可以动态地申请资源与释放资源。编写一个程序,实现银行家算法,当系统将资源分配给某一进程而不会死锁时,就分配之。否则,推迟分配,并显示适当得信息。分别使用检测“进程—资源循环等待链”得方法与Coffman得算法来检测进程得死锁状态。对于相同得进程资源分配、占用次序,比较两个算法得结果。四、设计思路与流程图1、输入系统进程数量n与资源类型数量m。2、输入每类资源得数量。3、输入每个进程每类资源得最大需求量与已获资源量。4、检验系统得安全。5、若检测结果为系统不安全,可以对死锁进行解除,直到安全为止再检测。6、重复5操作,直到所有进程运行完毕。主要数据结构及其说明intMax[100][100]={0};//各进程所需各类资源得最大需求;intAvailable[100]={0};//系统可用资源;charName[100]={0};//资源得名称;intAllocation[100][100]={0};//系统已分配资源;intNeed[100][100]={0};//还需要资源intRequest[100]={0};//请求资源向量;intTemp[100]={0};//存放安全序列;intWork[100]={0};//存放系统可提供资源;boolFinish[100]={0};//存放已完成得序列源程序并附上注释#include"stdafx、h"#include<iostream>ﻭ#defineFalse0#defineTrue1usingnamespacestd;ﻭintMax[100][100]={0};//各进程所需各类资源得最大需求;intAvailable[100]={0};//系统可用资源;charName[100]={0};//资源得名称;intAllocation[100][100]={0};//系统已分配资源;intNeed[100][100]={0};//还需要资源intRequest[100]={0};//请求资源向量;intTemp[100]={0};//存放安全序列;intWork[100]={0};//存放系统可提供资源;boolFinish[100]={0};intM=100;//作业得最大数intN=100;//资源得最大数intl=0;//记录安全进程得TEMP下标voidShowData()//初始化资源矩阵ﻭ{inti,j;cout<<"系统可用资源[Available]:"<<endl;for(i=0;i<N;i++)cout<<Name[i]<<"";cout<<endl;for(j=0;j<N;j++)cout<<Available[j]<<"";//显示可分配得资源cout<<endl;cout<<"MaxAllocationNeed"<<endl;cout<<"进程名";for(j=0;j<3;j++)//MAXALLOCATIONNEED共列{for(i=0;i<N;i++){cout<<Name[i]<<"";}cout<<"";}cout<<endl;for(i=0;i<M;i++){cout<<""<<i<<"";//输出进程名for(j=0;j<N;j++)cout<<Max[i][j]<<"";//输出最大cout<<"";for(j=0;j<N;j++)cout<<Allocation[i][j]<<"";//输出已分配cout<<"";for(j=0;j<N;j++)cout<<Need[i][j]<<"";//输出需求cout<<endl;}}ﻭboolSafe()//安全性算法{inti,j,k;for(i=0;i<N;i++)Work[i]=Available[i];//初始化工作向量ﻭfor(i=0;i<M;i++){Finish[i]=false;//判断进程i就是否已执行}for(i=0;i<M;i++){if(Finish[i]==true){continue;}else{for(j=0;j<N;j++)//验证每一个资源得需求量就是否小于可用资源量{if(Need[i][j]>Work[j]){
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

实验三死锁的检测和解除

文档大小:199KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
年会员
99.0
¥199.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用

手机号注册 用户名注册
我已阅读并接受《用户协议》《隐私政策》
已有账号?立即登录
我已阅读并接受《用户协议》《隐私政策》
已有账号?立即登录
登录
手机号登录 微信扫码登录
微信扫一扫登录 账号密码登录

首次登录需关注“豆柴文库”公众号

新用户注册
VIP会员(1亿+VIP文档免费下)
年会员
99.0
¥199.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用