| 注册
home doc ppt pdf
请输入搜索内容

热门搜索

年终总结个人简历事迹材料租赁合同演讲稿项目管理职场社交

银行家算法《操作系统》课程设计报告

文***享

贡献于2020-12-13

字数:6550




操作系统课程设计报告


课题: 银行家算法




专业
计算机科学技术
学生姓名

班级
计算机
学号

指导教师




信息工程学院




实验求实验目
实验目:课程设计学生学完操作系统原理课程进行次全面综合训练通课程设计学生更掌握操作系统原理实现方法加深操作系统基础理重算法理解加强学生动手力
实验求:课程设计目出发通设计工作环节达教学求:两组组题目中选(拟题目需指导教师意)学生必须独立完成课程设计相互抄袭组者文档相设计完成完成工作交指导教师检查求写出份详细设计报告
二设计容:
课题编制银行家算法通程序检测状态系统安全性
1)银行家算法中数结构:
利资源量Available含m 元素数组中元素代表类利资源数目初始值系统中配置该类全部资源数目数值该类资源分配回收动态改变Available[j]K表示系统中现Rj 类资源K
需求矩阵Maxn*m矩阵定义系统中n进程中进程m类资源需求果Max[ij]K表示进程i需Rj类资源数目K
1 分配矩阵Allocationn*m矩阵定义系统中类资料前已分配没进程资源数果Allocation[ij]K表示进程i前已分Rj类资源数目K需求矩阵Needn*m矩阵表示进程尚需类资源数果Need[ij]K表示进程i需Rj类资源K方完成务
述三矩阵存关系: Need[ij] Max[ij] Allocation[ij]
2)银行家算法
设Request[i] 进程Pi请求量果Request[ij]K表示进程Pi需KRj类型资源Pi发出资源请求系统述步骤进行检查:果Request[ij]< Need[ij]便转步骤2否认出错需资源数已超宣布值
三设计思路
设计思路A 设计进程资源申请表示初值确定B 设定系统提供资源初始状态C 设定次某进程类资源申请表示D 编制程序银行家算法决定申请否满足
四详细设计
1初始化:户输入数分利资源量矩阵AVAILABLE需求矩阵MAX分配矩阵ALLOCATION需求矩阵NEED赋值
2银行家算法:避免死锁方法中施加限制条件较弱获令满意系统性该方法中系统状态分安全状态安全状态系统始终处安全状态便避免发生死锁银行家算法基思想分配资源前判断系统否安全分配具代表性避免死锁算法
设进程cusneed提出请求REQUEST [i]银行家算法规进行判断
(1)果REQUEST [cusneed] [i]< NEED[cusneed][i]转(2)否出错
(2)果REQUEST [cusneed] [i]< AVAILABLE[cusneed][i]转(3)否出错
银行家算法数结构
假设M进程N类资源数结构
#define W 10
#define R 20
int M                       总进程数
int N                     资源种类
int ALL_RESOURCE[W]        种资源数目总
int MAX[W][R]             M进程N类资源资源需求量
int AVAILABLE[R]          系统资源数
int ALLOCATION[W][R]      M进程已N类资源资源量
int NEED[W][R]            M进程需N类资源资源量
int Request[R]            请求资源数
3安全性检测算法
1)先定义两变量表示推算程数
F[n]A[n]表示推算程中系统中剩余资源量变化
J[n]False表示推算程中进程否假设已完成
系统试探分配资源修改相关数:
AVAILABLE[i]REQUEST[cusneed][i]
ALLOCATION[cusneed][i]+REQUEST[cusneed][i]NEED[cusneed][i]REQUEST[cusneed][i]
4安全性检查算法
1)设置两工作量WorkAVAILABLEFINISH
2)进程集合中找满足述条件进程
FINISHfalse
NEED找执行(3)否执行(4)
3)设进程获资源利执行直完成释放资源
Work+ALLOCATION
Finishtrue
GOTO 2
4)进程Finish true表示安全否系统安全
安全状态 某时刻系统中进程排列安全序列{P1P2`````Pn}刚称时系统安全
谓安全序列{P1P2`````Pn}指P2需剩余资源数量系统掌握剩余空间资源Pi(j安全状态产生死锁
目前状态 需求 尚需
P1         3                9             6
P2       5                10            5
P3        2                4             2
次进程中申请资源判定实际分配话系统否安全
银行家算法数结构
五代码清单
#include
#include
#include
#include
#include
#include

const int MAX_P20
const int MAXA10 定义A类资源数量
const int MAXB5
const int MAXC7

typedef struct node{
int a
int b
int c
int remain_a
int remain_b
int remain_c
}bank

typedef struct node1{
char name[20]
int a
int b
int c
int need_a
int need_b
int need_c
}process

bank banker
process processes[MAX_P]
int quantity

初始化函数
void initial()
{
int i

bankeraMAXA
bankerbMAXB
bankercMAXC
bankerremain_aMAXA
bankerremain_bMAXB
bankerremain_cMAXC

for(i0istrcpy(processes[i]name)
processes[i]a0
processes[i]b0
processes[i]c0
processes[i]need_a0
processes[i]need_b0
processes[i]need_c0
}

}
新加作业
void add()
{
char name[20]
int flag0
int t
int need_aneed_bneed_c
int i
cout<cout<<新加作业<cout<<请输入新加作业名
cin>>name

for(i0iif(strcmp(processes[i]namename)){
flag1
break
}
}
if(flag){
cout<<错误作业已存<}
else{
cout<<作业需A类资源
cin>>need_a
cout<<作业需B类资源
cin>>need_b
cout<<作业需C类资源
cin>>need_c
t1
cout<if(need_a>bankerremain_a){
cout<<错误需A类资源银行家剩A类资源<t0
}
if(need_b>bankerremain_b){
cout<<错误需B类资源银行家剩B类资源<t0
}
if(need_c>bankerremain_c){
cout<<错误需C类资源银行家剩C类资源<t0
}
if(t){
strcpy(processes[quantity]namename)
processes[quantity]need_aneed_a
processes[quantity]need_bneed_b
processes[quantity]need_cneed_c
quantity++
cout<<新加作业成功<}
else{
cout<<新加作业失败<}
}
}
作业申请资源
void bid()
{
char name[20]
int ip
int abc
int flag

cout<cout<<申请资源作业名
cin>>name

p1
for(i0iif(strcmp(processes[i]namename)){
pi
break
}
}
if(p1){
cout<<该作业申请A类资源数量
cin>>a
cout<<该作业申请B类资源数量
cin>>b
cout<<该作业申请C类资源数量
cin>>c
flag1
if((a>bankerremain_a)||(a>processes[p]need_aprocesses[p]a)){
cout<<错误申请A类资源银行家剩A类资源该进程需数量<flag0
}
if((b>bankerremain_b)||(b>processes[p]need_bprocesses[p]b)){
cout<<错误申请B类资源银行家剩B类资源该进程需数量<flag0
}
if((c>bankerremain_c)||(c>processes[p]need_cprocesses[p]c)){
cout<<错误申请C类资源银行家剩C类资源该进程需数量<flag0
}
if(flag){
bankerremain_aa
bankerremain_bb
bankerremain_cc
processes[p]a+a
processes[p]b+b
processes[p]c+c
cout<<作业申请资源成功<}
else{
cout<<作业申请资源失败<}
}
else{
cout<<该作业存<}
}
撤消作业
void finished()
{
char name[20]
int ip

cout<cout<<撤消作业名
cin>>name

p1
for(i0iif(strcmp(processes[i]namename)){
pi
break
}
}
if(p1){
bankerremain_a+processes[p]a
bankerremain_b+processes[p]b
bankerremain_c+processes[p]c
for(ipiprocesses[i]processes[i+1]
}
strcpy(processes[quantity1]name)
processes[quantity1]a0
processes[quantity1]b0
processes[quantity1]c0
processes[quantity1]need_a0
processes[quantity1]need_b0
processes[quantity1]need_c0
quantity
cout<<撤消作业成功<}
else{
cout<<撤消作业失败<}
}
查资源情况
void view()
{
int i
cout<cout<<银行家剩资源(剩余资源总资源)<cout<cout<< B类<cout<< C类<cout<if(quantity>0){
for(i0icout<<作业名<cout<cout<< B类<cout<< C类<cout<}
}
else{
cout<<前没作业<}
}
显示版权信息函数
void version()
{
cout<cout<< 银行家算法 <cout<}
void main()
{
int chioce
int flag1

initial()
version()
while(flag){
cout<<1新加作业 2作业申请资源 3撤消作业<cout<<4查资源情况 0退出系统<cout<<请选择
cin>>chioce
switch(chioce){
case 1
add()
break
case 2
bid()
break
case 3
finished()
break
case 4
view()
break
case 0
flag0
break
default
cout<<选择错误<}
}
}
六说明
运行环境CFREE40新建务编制代码输入运行环境中

F5:出现图示窗口提示新建作业:wujun作业分配资源A:3B:4C:5输入2作业分配资源三种资源数量分配分A3B5C4输入4查资源情况出现出错提示申请B类资源超银行家剩B类资源作业申请资源失败输入0退出系统

重新加入作业:wujun1作业分配资源分A3B3C3该作业分配资源A3B2C2输入4查资源情况
显示输出银行家算法剩资源(剩余资源总资源)
七实验心
八参考文献
汤子瀛等计算机操作系统西安电子科技学出版社2001年5月
蒋静 徐志伟操作系统原理•技术编程『M』北京机械工业出版社2004
文档香网(httpswwwxiangdangnet)户传

《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 2 香币 [ 分享文档获得香币 ]

该文档为用户出售和定价!

购买文档

相关文档

《操作系统 银行家算法》课程设计报告

《操作系统--银行家算法》课程设计报告姓 名: 学 号: 班 级: 计科班 专 业:计算机科学与技术 XX大学 计算机科学与信息学院目 录1 课程设计目的 ………………………………………

文***品 3年前 上传812   0

银行家算法《操作系统》课程设计报告

《操作系统》课程设计报告课题: 银行家算法 专业计算机科学与技术学生姓名班级计算机学号指导教师信息工程学院一、实验要求和实验目的实验目的:本课程设计是学生学习完《操作系统原理》课程后,进行的一次全面的综合训练,通过课程设计,让学生更好地掌握操作系统

文***享 3年前 上传698   0

操作系统课程设计银行家算法的模拟实现

操作系统课程设计报告专业计算机科学与技术学生姓名班级学号指导教师完成日期信息工程学院题目: 银行家算法的模拟实现 一、设计目的本课程设计是学习完“操作系统原理”课程后进行的一次全面的综合训练,通过课程设计,更好地掌握操作系统的原理及实现方法,加深对操作系统基础理论和重要算法的理解,加强学生的动手能力。

文***品 3年前 上传687   0

操作系统课程设计编程序模拟银行家算法

课程设计报告书 课程名称: 操作系统原理 题 目: 编程序模拟银行家算法 系 名: 信息工程系 专业班级: 软件 姓 名: 学 号:

文***品 3年前 上传726   0

操作系统实验报告C语言实现银行家算法

实 验 报 告题 目名 称C语言实现银行家算法院 系信息科学与工程学院班 级完成时间指导老师本次实验成绩组长联系电话邮件地址组员(姓名,学号)主要任务程序算法的编写、实现、运行调试组员(姓名,学号)主要任务实验报告的完成组员(姓名,学号)主要任务实验报告的完成

文***品 3年前 上传470   0

合工大页面置换算法操作系统课程设计报告

计算机与信息学院《操作系统综合设计》报告设计题目:页面置换算法学生姓名:学 号:专业班级:计算机科学与技术班2015 年 X月一、设计题目 3二、开发环境与工具 3三、设计原理 31.最佳(Optimal)置换算法 32.先进先出(FIFO)页面置换算法 43.最近最久未使

文***品 3年前 上传558   0

进程调度算法的实现计算机操作系统课程设计

题目2 进程调度算法的实现2.1 题目的主要研究内容及预期达到的目标(1)设计进程控制块; (2)设计多个进程队列; (3)设计多个进程(≥20); (4)动态生成时间片、执行时间和优先级,将这些信息输出至文件中; (5)设计基于时间片的多优先级调度算法; (6)动态调度,并把所有调度信息输出至文件中。(7)理解进程调度相关理论;(8)掌握时间片调度原理;(9)掌握高优先级

文***品 3年前 上传586   0

操作系统课程设计磁盘调度算法

操作系统课程设计磁盘调度算法目 录1 课程设计目的及要求……………………………………………………12 相关知识…………………………………………………………………13 题目分析…………………………………………………………………24 概要设计…………………………………………………………………2 4.1 先来先服务(FCFS)的设计思想………

文***享 3年前 上传549   0

操作系统课程设计磁盘调度算法

《计算操作系统》课程设计报告 姓名: 班级:软件 学号: 指导老师:

文***品 3年前 上传462   0

操作系统实验(进程调度+存储管理+磁盘调度++银行家算法+文件系统设计)

操作系统实验(进程调度+存储管理+磁盘调度++银行家算法+文件系统设计)实验三 进程调度一、 实验目的多道程序设计中,经常是若干个进程同时处于就绪状态,必须依照某种策略来决定那个进程优先占有处理机。因而引起进程调度。本实验模拟在单处理机情况下的处理机调度问题,加深对进程调度的理解。二、 实验要求1. 设计进程调度算法,进程数不定2. 包含几种调度算法,并加以实现3. 输出进程的调度

文***享 3年前 上传643   0

驱动程序实验报告操作系统课程设计报告

操作系统课程设计报告班级: 计科 姓名: 学号: 老师: 时间:2012年X月X日一、设计目的操作系统课程主要讲述的内容是多道操作系统的原理与技术,与其它计算机原理、编译原理、汇编语言、计算机网络、程序设计等专业课程关系十分密切。本课程设计的目的综合应用学生所学

文***享 1年前 上传301   0

操作系统实验四主存空间的分配与回收首次适应算法和循环首次适应算法

实验报告【实验名称】 首次适应算法和循环首次适应算法 【实验目的】理解在连续分区动态的存储管理方式下,如何实现主存空间的分配与回收。【实验原理】首次适应(first fit,FF)算法FF算法要求空闲分区链以地址递增的次序链接。在分配内存时,从链首开始顺序查找,直至找到一个大小能满足要求的空闲分区即可。然后再按照作业的大小,从该分区中划出一块内存空间,分配给请求者,

文***品 3年前 上传1047   0

数据结构和算法课程设计题目

XX大学课程设计课程名称: 数 据 结 构 与 算 法院(部)名 称: 信息与计算科学学院组长姓名学号 同组人员姓名指导教师姓名: 设 计 时 间: 2010.6.7----2009.6.27一、《数据结构与算法》课程设计参考题目(一)参考题目一(每位同学选作一个,同组人员

文***品 1年前 上传382   0

哲学家进餐问题操作系统课程设计报告

XX学院 《操作系统》课程设计报告题 目: 哲学家进餐问题 班 级: 学 号: 作者姓名: 指导教师: 2011年X月X日目 录1.

z***u 2年前 上传780   0

操作系统课程设计报告树型目录文件系统

操作系统课程设计报告题目:树型目录文件系统 学 院 计算机学院 专 业 网络工程 年级班别 班 学 号 学生姓名 指导教师

文***享 3年前 上传544   0

数据结构课程设计报告最小生成树Kruskal算法

计算机科学与技术系课程设计报告 2014-2015学年第二学期课程数据结构课程设计名称Kruskal算法求最小生成树学生姓名 学号 专业班级 软件工程指导教师 2014年X月题目:设计程序完成如下功能:对给定过的网和起点,用kruskal算法的基本思想求解其所有的最小生成树1、问题分析和任务定义根据课设题目要求,拟将整体程序分为三大模块

文***品 1年前 上传209   0

操作系统实验三磁盘调度算法的实现

XX大学计算机与通信工程学院实验报告2013 至 2014 学年 第 一 学期课程名称操作系统学号 学生姓名 年级 专业 教学班号 实验地点 实验时间 2013年 月 日 第 节 至 月 日 第 节主讲教师 辅导教师 实验( 三 )实验名称磁盘调度算法的

文***享 3年前 上传479   0

操作系统课程设计动态分区分配存储管理

操作系统课程设计设计题目 动态分区分配存储管理学生姓名号学 号指导教师专业班级计算机班 第一章 课程设计概述1.1 设计任务:动态分区分配存储管理1.2 设计要求建立描述内存分配状况的数据结构;l建立描述进程的数据结构;l使用两种方式产生进程:(a)自动产生, (b)手工输入;l 在屏幕上显示内存的分配状况、每个进程的执行情况

文***品 2年前 上传422   0

算法与数据结构的商品货架管理课程设计报告(还有程序源代码)

课程设计课 程: 算法与数据结构 题 目: 商品货架管理 专 业: 计算机类 班 级: 座 号: 姓 名: 2012年 X月 X 日一、要解决的问题商店货架以栈

文***品 1年前 上传325   0

生产者与消费者算法模拟课程设计

课程设计说明书题目: 生产者与消费者算法模拟 院 系: 计算机科学与工程 专业班级: 信息安全(xxxx)班 学 号: 学生姓名: xxxx 指导教师: xxxx 2013年 xx月 xx 日 xxxx大学课程设计

文***享 3年前 上传657   0

操作系统实习报告样本

操作系统实习报告样本  1 操作系统实习报告内容(1)    基本信息:完成人姓名、学号、报告日期(2)    实习内容(3)    实习目的(4)    实习题目(5)    设计思路和流程图(6)    主要数据结构及其说明(7)    源程序并附上注释(8)    程序运行时的初值和运行结果(9)    实习体会:实习中遇到的问题及解决过程、实习中产生的错误及原因分析、实习的体会及收获

q***9 9年前 上传576   0

操作系统实践报告

学 号: 实践课设计报告课程名称计算机操作系统题 目模拟设计存储管理的分配与回收学 院计算机科学与技术学院专 业计算机科学与技术班 级姓 名指导教师年月日模拟设计存储管理的分配与回收一、 需求分析 本次实验主要是要求实现动态的页式存储管理。根据本次实验的要求,可以分析出本次实验需要实现

文***享 1年前 上传464   0

操作系统 七次实验报告 常用页面置换算法模拟实验

操作系统课程第七次实验报告姓名学号系计算机任课教师指导教师评阅教师实验地点 综合楼B102 实验时间2012-9-26实验课表现出勤和个人表现Q1(15+15(组长评分)=30分)得分:实验总分(Q1+Q2+Q3+Q4)实验完成情况Q2(45分(组长与教师评分的加权平均))得分:实验编号与实验名称:实验七、常用页面置换算法模拟

文***品 3年前 上传746   0

密度聚类算法报告

密度聚类算法报告1. 摘要聚类分析是数据挖掘的重要方法。该文阐述了基于密度聚类分析的基本概念及其经典的算法思想,并提出了一种基于核心点进行聚类的算法。该算法首先对点进行分类,分出核心点、边界点和噪音点。然后采用自下而上的方式对簇进行合并。对所有数据进行分类并合并标记后,给出最后结果图。算法保证了数据处理的完整性。2. 密度聚类的相关概念对于构成簇的每个对象,其Eps邻域包含的对象个数必须

文***享 3年前 上传590   0

首次适应算法最佳适应算法

姓名:学号:实验名称:进程调度模拟实验 实验目的:了解动态分区存储管理方式中的数据结构和分配算法,加深对动态分区存储管理方式及其实现技术的理解。实验内容:#include<iostream.h>#include <malloc.h>typedef struct Spare{ int SA; int size;}spare;void init(spare *S,in

文***享 3年前 上传1630   0