文档库 最新最全的文档下载
当前位置:文档库 › 银行家算法例子答案

银行家算法例子答案

银行家算法例子答案
银行家算法例子答案

1、设系统中有3种类型的资源(A,B,C)和5个进程P1、P

2、

P3、P4、P5,A资源的数量为17,B资源的数量为5,C资源的数量为20。在T0时刻系统状态见下表(T0时刻系统状态表)所示。

系统采用银行家算法实施死锁避免策略。(12分)

T0时刻系统状态表

最大资源需求量已分配资源数量

A B C A B C

P1 5 5 9 2 1 2

P2 5 3 6 4 0 2

P3 4 0 11 4 0 5

P4 4 2 5 2 0 4

P5 4 2 4 3 1 4

T0时刻系统状态表

P2请求资源(0,3,4)(0,1,1)

(1)T0时刻是否为安全状态?若是,请给出安全序列。

(2)在T0时刻若进程P2请求资源(0,3,4),是否能实施资源

分配?为什么?

(3)在(2)的基础上,若进程P4请求资源(2,0,1),是否

能实施资源分配?为什么?

(4)在(3)的基础上,若进程P1请求资源(0,2,0),是否

能实施资源分配?为什么?

答:当前的系统状态描述为:

???

??

??

?????????=42

4

5241104

63

5955C ????????????????=413402

504

204212

A ???????

?

?????

???=-011

122

600

431743

A C

()20517=R ()332=V

(1)

在T0时刻,由于V (2,3,3)大于等于(C-A )中P5所在行的向量(1,1,0),因此V 能满足P5的运行,在P5运行后,系统的状态为:

???

??

??

?????????=000

402504

204212

A ?????

??

?

????????=-000122

600

431743

A C ()745'=V

同样的,在P5运行后,V ’(5,4,7)也大于等于C-A 中P4所在的行(2,2,1),则能满足P4的运行。P4运行后,系统的状态为:

???

??

??

?????????=000

000504

204212

A ?????

??

?

????????=-000000

600

431743

A C ()1147'=V

按照上述同样的方法,P4运行后,P3,P2,P1也能按顺序运行。(备注:考试时需要都写出来)。

因此,在T0时刻,存在安全序列:P5、P4、P3、P2、P1。 T0时刻是安全的。

(2)

P2申请资源(0,3,4),但在C-A中,P2所在行向量是(1,3,4)。对于资源R1,P2的申请超过它所预定的需求。因此,该申请不给予分配。

操作系统答案

第一章 4. 试说明推动多道批处理系统形成和发展的主要动力是什么?答:不断提高资源利用率和系统吞吐量的需要。 6.试说明推动分时系统形成和发展的主要动力是什么?答:用户的需要,即对用户来说,更好的满足了人—机交互,共享主机以及便于用户上机的需求。 7.实现分时系统的关键问题是什么?应如何解决?答:关键问题:及时接收,及时处理对于及时接收只需在系统中设置一多路卡,多路卡作用是是主机能同时接收用户各个终端上输入的数据;对于及时处理,应使所有的用户作业都直接进入内存,在不长的时间内,能是每个作业都运行一次。 12.试从交互性、及时性以及可靠性方面,将分时系统与实时系统进行比较。答:分时系统是一种通用系统,主要用于运行终端用户程序,因而它具有较强的交互能力;而实时系统虽然也有交互能力,但其交互能力不及前者。实时信息系统对实用性的要求与分时系统类似,都是一人所能接受的等待时间来确定;而实时控制系统的及时性则是以控制对象所要求的开始截止时间和完整截止时间来确定的。实时系统对系统的可靠性要求比分时系统对系统的可靠性要求高。 13.OS 有哪几大特征?其最基本的特征是什么?答:并发性,共享性,虚拟性,异步性;其中最主要的是并发性,共享性第二章 5. 在操作系统中为什么要引入进程的概念?它会产生什么样的影响? 答:为了使程序在多道程序环境下能并发执行,并能对并发执行的程序加以控制和描述,而引入了进程的概念。 影响:使程序并发执行得以实现。 6. 试从动态性、并发性和独立性上比较进程和程序。

答:动态性是进程最基本的特性,可表现为由创建而产生,由调度而执行,因得不到资源而暂停执行,以及由撤销而消亡,因而进程有一定的生命期;而程序只是一组有序指令的集合,是静态实体。 并发性是进程的重要特征,同时也是OS的重要特征,引入进程的目的正是为了使其程序能和其他进程的程序并发执行,而程序是不能并发执行的。 独立性是指进程实体是一个能独立运行的单位,同时也是系统中独立获得资源和独立调度的基本单位。而对于未建立任何进程的程序,都不能作为一个独立的单位参加运行。 7. 试说明PCB的作用,为什么说PCB是进程存在的唯一标志? 答:PCB是进程实体的一部分,是操作系统中最重要的记录型数据结构。PCB 中记录了操作系统所需的用于描述进程情况及控制进程运行所需的全部信息。因而它的作用是使一个在多道程序环境下不能独立运行的程序,成为一个能独立运行的基本单位,一个能和其他进程并发执行的进程。 在进程的整个生命周期中,系统总是通过其PCB 对进程进行控制,系统是根据进程的PCB 而不是任何别的什么而感知到该进程的存在的,所以说,PCB 是进程存在的唯一标志。 16. 进程在运行时存在哪两种形式的制约?并举例说明之。 18. 同步机构应遵循哪些基本准则?为什么? 答:空闲让进忙则等待有限等待让权等待 31. 为解决并行所带来的死锁问题,在wait 操作中引入AND 条件,其基本思想是将进

银行家算法例题——四步走解题

银行家算法例题 系统中原有三类资源A、B、C和五个进程P1、P2、P3、P4、P5,A资源17,B资源5,C资源20。当前(T0时刻)系统资源分配和进程最大需求如下表。 1、现在系统T0时刻是否处于安全状态? 2、是否可以允许以下请求? (1)T1时刻:P2 Request2=(0,3,4) (2)T2时刻:P4 Request4=(2,0,1) (3)T3时刻:P1 Request1=(0,2,0) 注:T0 T1 T2 T3时刻是前后顺序,后一时刻是建立在前一时刻的基础上。

解:由题设可知Need=Max-Allocation AvailableA=17-(2+4+4+2+3)=2(原有-分配) 同理AvailableB=3,AvailableC=3 可得T0时刻资源分配表如下所示(表中数据顺序均为A B C): 1、判断T0时刻是否安全,需要执行安全算法找安全序列,过程如下表: T0时刻能找到一个安全序列{P4,P3,P2,P5,P1},故T0时刻系统处于安全状态。

2、判断T1 T2 T3时刻是否满足进程请求进行资源分配。 (1)T1时刻,P2 Request2=(0,3,4) //第一步判断条件 ①满足Request2=(0,3,4)<=Need2(1,3,4) ②不满足Request2=(0,3,4)<=Available(2,3,3) 故系统不能将资源分配给它,此时P2必须等待。 (2)T2时刻,P4 Request4=(2,0,1) //第一步判断条件①满足Request4=(2,0,1)<=Need4(2,2,1) ②满足Request4=(2,0,1)<=Available(2,3,3) //第二步修改Need、Available、Allocation的值 Available=Available-Request4= (0,3,2) Allocation4=Allocation4+Request4=(4,0,5) Need4=Need4-Request4=(0,2,0) //第三步执行安全算法,找安全序列 (注解:先写上work,其初值是系统当前进行试分配后的Available(0,3,2) ,找五个进程中Need小于work的进程,比如Need4<=Work满足,则将P4写在第一行的最前面,同时写出P4的Need和Allocation,以此类推)

计算机操作系统考试重点1必考

计算机操作系统考试重点1必考

计算机操作系统考试重点1必考

答:实时操作系统是指系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。引入实时OS 是为了满足应用的需求,更好地满足实时控制领域和实时信息处理领域的需要。 13.OS有哪几大特征?其最基本的特征是什么?(掌握) 答:并发性、共享性、虚拟性和异步性四个基本特征;最基本的特征是并发性。21.试描述什么是微内核OS。(了解) 答:1)足够小的内核2)基于客户/服务器模式 3)应用机制与策略分离原理4)采用面向对象技术。 22.在基亍微内核结构的OS中,应用了哪些新技术?(掌握) 答:在基于微内核结构的OS 中,采用面向对象的程序设汁技术。 第二章进程管理 2. 画出下面四条语句的前趋图:S1=a:=x+y; S2=b:=z+1; S3=c:=a –b;S4=w:=c+1;(了解) 答:其前趋图为: 6.试从劢态性,并収性和独立性上比较迚程和程序? (掌握) 答:(1)动态性是进程最基本的特性,表现为由创建而产生,由调度而执行,因得不到资源而暂停执行,由撤销而消亡。进程有一定的生命期,而程序只是一组有序的指令集合,是静态实体。 (2)并发性是进程的重要特征,同时也是OS 的重要特征。引入进程的目的正是为了使其程序能和其它进程的程序并发执行,而程序是不能并发执行的。 (3)独立性是指进程实体是一个能独立运行的基本单位,也是系统中独立获得资源和独立调度的基本单位。对于未建立任何进程的程序,不能作为独立单位参加运行。 7.试说明PCB 的作用,为什么说PCB 是迚程存在的惟一标志?(掌握)答:PCB 是进程实体的一部分,是操作系统中最重要的记录型数据结构。作用是使一个在多道程序环境下不能独立运行的程序,成为一个能独立运行的基

用银行家算法实现资源分配

南通大学 杏林学院 操作系统实验(用银行家算法实现资源分配)班级:计121 小组成员:方筱雯1213023008 周徐莲1213023014 指导老师:丁卫平

一:实验目的 为了了解系统的资源分配情况,假定系统的任何一种资源在任一时刻只能被一个进程使用。任何资源已经占用的资源只能由自己释放,而不能由其他进程抢占。当进程申请的资源不能满足时,必须等待。因此,只要资源分配算法能保证进程的资源请求,且不出现循环等待,则系统不会出现死锁。 编写模拟系统进行资源调度的程序,采用银行家算法,有效的避免死锁的产生。模拟进程的分配算法,了解死锁的产生和避免的办法。二:实验要求 (1):为了观察死锁产生和避免的情况,要求设计3到4个并发进程,共享系统的10个同类不可抢占的资源。各进程是动态进行资源的申请和释放。 (2):用银行家算法设计一个资源分配程序,运行这个程序,观察系统运行情况,并对系统运行的每一步进行显示。三:实验流程图

四:源程序 #include #include #include #include #define MaxNumber 100 //定义进程控制块 struct Process_struct{ int Available[MaxNumber]; //可利用资源数组 int Max[MaxNumber][MaxNumber]; //最大需求矩陈 int Allocation[MaxNumber][MaxNumber]; //分配矩陈 int Need[MaxNumber][MaxNumber]; //需求矩陈 int Request[MaxNumber][MaxNumber]; //M个进程还需要N类资源的资源量 int Finish[MaxNumber]; int p[MaxNumber]; }Process; int M,N; //M个进程,N类资源 int i,j,k,l=0; int Work[MaxNumber]; //可利用资源 int Pinput(); int Safe(); int Peques(); //进程输入 int Pinput() { int i,j; cout<<"输入进程的数目:\n"; cin>>M; cout<<"输入资源的种类:\n"; cin>>N; cout<<"输入每个进程最多所需的各类资源数,按照"<>Process.Max[i][j]; cout<<"输入每个进程已经分配的各类资源数,按照"<

操作系统之调度算法和死锁中的银行家算法习题答案

操作系统之调度算法和死锁中的银行家算法习 题答案 集团文件发布号:(9816-UATWW-MWUB-WUNN-INNUL-DQQTY-

1. 有三个批处理作业,第一个作业 10:00 到达,需要执行 2 小时;第二个作业在10:10到达,需要执行 1 小时;第三个作业在 10:25 到达,需要执行 25 分钟。分别采用先来先服 务,短作业优先和最高响应比优先三种调度算法,各自的平均周转时间是多少?解: 先来先服务: (结束时间=上一个作业的结束时间+执行时间 周转时间=结束时间-到达时间=等待时间+执行时间) 按到达先后,执行顺序:1->2->3 短作业优先: 1)初始只有作业1,所以先执行作业1,结束时间是12:00,此时有作业2和3; 2)作业3需要时间短,所以先执行; 3)最后执行作业2 最高响应比优先:

高响应比优先调度算法既考虑作业的执行时间也考虑作业的等待时间,综合了先来先服务和最短作业优先两种算法的特点。 1)10:00只有作业1到达,所以先执行作业1; 2)12:00时有作业2和3, 作业2:等待时间=12:00-10:10=110m;响应比=1+110/60=2.8; 作业3:等待时间=12:00-10:25=95m,响应比=1+95/25=4.8; 所以先执行作业3 3)执行作业2 2. 在一单道批处理系统中,一组作业的提交时刻和运行时间如下表所示。试计算一下三种 作业调度算法的平均周转时间 T 和平均带权周转时间 W。 ( 1)先来先服务;( 2)短作业优先( 3)高响应比优先 解: 先来先服务: 作业顺序:1,2,3,4 短作业优先: 作业顺序:

银行家算法例题

银行家算法例题 假定系统中有五个进程{P0,P1,P2,P3,P4} 和三类资源{A ,B,C},各种资源的数量分别为10、5、7,在T0 时刻的资源分配情况 (1)T0时刻的安全性 利用安全性算法对T0时刻的资源分配情况进行分析 (2)P1请求资源:P1发出请求向量Request1(1,0,2),系统按银行家算法进行检查 ①Request1(1,0,2)≤Need1(1,2,2) ②Request1(1,0,2)≤Available1(3,3,2) ③系统先假定可为P1分配资源,并修改Available ,Allocation1和Need1向量,由此形成 资源情况 进程 Max Allocation Need Available A B C A B C A B C A B C P0 7 5 3 0 1 0 7 4 3 3 3 2 P1 3 2 2 2 0 0 1 2 2 P2 9 0 2 3 0 2 6 0 0 P3 2 2 2 2 1 1 0 1 1 P4 4 3 3 0 0 2 4 3 1 资源情况 进程 Work A B C Need A B C Allocation A B C Work+Allocatio n A B C Finish P1 3 3 2 1 2 2 2 0 0 5 3 2 TRUE P3 5 3 2 0 1 1 2 1 1 7 4 3 TRUE P4 7 4 3 4 3 1 0 0 2 7 4 5 TRUE P2 7 4 5 6 0 0 3 0 2 10 4 7 TRUE P0 10 4 7 7 4 3 0 1 0 10 5 7 TRUE

银行家算法习题1

银行家算法流程

安全性算法流程图

银行家算法例题 1.假定系统中有4个进程1P ,2P ,3P ,4P , 3种类型的资源1R ,2R ,3R ,数量分别为9,3,6, 0T 时刻的资源分配情况如表2-1所示。 表2-1 T 0时刻的资源分配情况 试问: (1) T 0时刻是否安全? (2) T 0时刻以后,若进程P 2发出资源请求Request 2(1,0,1), 系统能否将资源分配给它? (3) 在进程P 2申请资源后,若P1发出资源请求Request 1(1,0,1), 系统能否将资源分配 给它? (4) 在进程P 1申请资源后,若P3发出资源请求Request 3(0,0,1), 系统能否将资源分配 给它? 2. 在银行家算法中,出现以下资源分配情况(见表2-2) 系统剩余资源数量=(3,3,2) (1) 该状态是否安全(给出详细的检查过程) (2) 如果进程依次有如下资源请求: P1:资源请求request (1,0,2) P2:资源请求request (3,3,0) P3:资源请求request (0,1,0) 则系统该如何进行资源分配才能避免死锁?

3.设系统中有3种类型的资源(A、B、C)和5个进程P1、P2、P3、P4、P5,A资源的数量为17,B资源的数量为5,C资源的数量为20。在T0时刻,系统状态见表2-3。系统采用银行家算法实现死锁避免。 (1)T0时刻是否为安全状态?若是,请给出安全序列 (2)在T0时刻,若进程P2请求资源(0,3,4),是否能实施资源分配?为什么? (3)在(2)的基础上,若进程P4请求资源(2,0,1),是否能实施资源分配? (4)在(3)的基础上,若进程P1请求资源(0,2,0),是否能实施资源分配? 4.某系统有R1、R2、R3共三种资源,在T0时刻P1、P2、P3、P4这四个进程对资源的占用和需求情况见表2-24,此时系统的可用资源矢量为(2,1,2)。试问: 1)将系统中各种资源总数和此刻各进程对各资源的需求数目用矢量或矩阵表示出来。2)如果此时进程P1和进程P2均发出资源请求矢量Request(1,0,1),为了保证系统的安全性,应如何分配资源给这两个进程?说明所采用策略的原因。 3)如果2)中两个请求立即得到满足后,系统此刻是否处于死锁状态? 5.考虑某个系统在表2-25时刻的状态

操作系统课后题答案 (1)

课本课后题部分答案 第一章 1.设计现代OS的主要目标是什么? 答:(1)有效性(2)方便性(3)可扩充性(4)开放性 2.OS的作用可表现在哪几个方面? 答:(1)OS作为用户与计算机硬件系统之间的接口 (2)OS作为计算机系统资源的管理者 (3)OS实现了对计算机资源的抽象 13.OS有哪几大特征?其最基本的特征是什么? 答:并发性、共享性、虚拟性和异步性四个基本特征;最基本的特征是并发性。14.处理机管理有哪些主要功能?它们的主要任务是什么? 答:处理机管理的主要功能是:进程管理、进程同步、进程通信和处理机调度; 进程管理:为作业创建进程,撤销已结束进程,控制进程在运行过程中的状态转换。进程同步:为多个进程(含线程)的运行______________进行协调。 通信:用来实现在相互合作的进程之间的信息交换。 处理机调度: (1)作业调度。从后备队里按照一定的算法,选出若干个作业,为他们分配运行所需的资源(首选是分配内存)。 (2)进程调度:从进程的就绪队列中,按照一定算法选出一个进程,把处理机分配给它,并设置运行现场,使进程投入执行。 15.内存管理有哪些主要功能?他们的主要任务是什么? 北京石油化工学院信息工程学院计算机系3/48 《计算机操作系统》习题参考答案余有明与计07和计G09的同学们编著 3/48 答:内存管理的主要功能有:内存分配、内存保护、地址映射和内存扩充。 内存分配:为每道程序分配内存。 内存保护:确保每道用户程序都只在自己的内存空间运行,彼此互不干扰。 地址映射:将地址空间的逻辑地址转换为内存空间与对应的物理地址。 内存扩充:用于实现请求调用功能,置换功能等。 16.设备管理有哪些主要功能?其主要任务是什么? 答:主要功能有: 缓冲管理、设备分配和设备处理以及虚拟设备等。 主要任务: 完成用户提出的I/O 请求,为用户分配I/O 设备;提高CPU 和I/O 设 备的利用率;提高I/O速度;以及方便用户使用I/O设备. 17.文件管理有哪些主要功能?其主要任务是什么? 答:文件管理主要功能:文件存储空间的管理、目录管理、文件的读/写管理和保护。文件管理的主要任务:管理用户文件和系统文件,方便用户使用,保证文件安全性。 第二章 1. 什么是前趋图?为什么要引入前趋图? 答:前趋图(Precedence Graph)是一个有向无循环图,记为DAG(Directed Acyclic Graph),用于描述进程之间执行的前后关系。

银行家算法报告和代码

1
课程设计(论文)
题 目: 银行家算法 院 (系): 信息与控制工程系 专业班级: 姓 名: 学 号: 指导教师:
2016 年 1 月 15 日
页脚内容 16

1
西安建筑科技大学华清学院课程设计(论文)任务书
专业班级: 学生姓名:
指导教师(签名):
一、课程设计(论文)题目
银行家算法:设计一个 n 个并发进程共享 m 个系统资源的程序以实现银行家算法。
二、本次课程设计(论文)应达到的目的
操作系统课程实践性比较强。课程设计是加强学生实践能力的一个强有力手段。课程设计要求学 生在完成程序设计的同时能够写出比较规范的设计报告。严格实施课程设计这一环节,对于学生基本 程序设计素养的培养和软件工作者工作作风的训练,将起到显著的促进作用。
本题目要达到目的:了解多道程序系统中,多个进程并发执行的资源分配。掌握银行家算法,了 解资源在进程并发执行中的资源分配情况。掌握预防死锁的方法,系统安全状态的基本概念。
三、本次课程设计(论文)任务的主要内容和要求(包括原始数据、技术参 数、设计要求等)
要求: 1)能显示当前系统资源的占用和剩余情况。 2)为进程分配资源,如果进程要求的资源大于系统剩余的资源,不与分配并且提示分配不成功; 3)撤销作业,释放资源。 编写和调试一个系统动态分配资源的简单模拟程序,观察死锁产生的条件,并采用适当的算法, 有效地防止和避免死锁的发生。 银行家算法分配资源的原则是:系统掌握每个进程对资源的最大需求量,当进程要求申请资源时, 系统就测试该进程尚需资源的最大量,如果系统中现存的资源数大于或等于该进程尚需求资源最大量 时,就满足进程的当前申请。这样就可以保证至少有一个进程可能得到全部资源而执行到结束,然后 归还它所占有的全部资源供其它进程使用。
四、应收集的资料及主要参考文献:
操作系统经典算法的编程实现资料非常丰富,可以在图书馆找书籍或在因特网上找资料,都很容 易找到,但是大部分代码是不全的,不能直接运行,希望大家只是把它当参考,编码还是自己做。
参考文献: 【1】汤小丹、梁红兵、哲凤屏、汤子瀛 编著.计算机操作系统(第三版).西安:西 安电子科技大学出版社,2007.5 【2】史美林编.计算机操作系统教程.北京:清华大学出版社,1999.11 【3】徐甲同编著.操作系统教程.西安:西安电子科技大学出版社,1996.8 【4】Clifford,A.Shaffer 编著.数决结构与算法分析(C++版).北京:电子工业出版 社,2005.7 【5】蒋立翔编著.C++程序设计技能百练.北京:中国铁道出版社,2004.1
五、审核批准意见
教研室主任(签字)
1 页脚内容

(完整版)操作系统课后题答案

2.OS的作用可表现在哪几个方面? 答:(1)OS作为用户与计算机硬件系统之间的接口;(2)OS作为计算机系统资源的管理者; (3)OS实现了对计算机资源的抽象。 5.何谓脱机I/O和联机I/O? 答:脱机I/O 是指事先将装有用户程序和数据的纸带或卡片装入纸带输入机或卡片机,在外围机的控制下,把纸带或卡片上的数据或程序输入到磁带上。该方式下的输入输出由外围机控制完成,是在脱离主机的情况下进行的。而联机I/O方式是指程序和数据的输入输出都是在主机的直接控制下进行的。 11.OS有哪几大特征?其最基本的特征是什么? 答:并发性、共享性、虚拟性和异步性四个基本特征;最基本的特征是并发性。 20.试描述什么是微内核OS。 答:(1)足够小的内核;(2)基于客户/服务器模式;(3)应用机制与策略分离原理;(4)采用面向对象技术。 25.何谓微内核技术?在微内核中通常提供了哪些功能? 答:把操作系统中更多的成分和功能放到更高的层次(即用户模式)中去运行,而留下一个尽量小的内核,用它来完成操作系统最基本的核心功能,称这种技术为微内核技术。在微内核中通常提供了进程(线程)管理、低级存储器管理、中断和陷入处理等功能。 第二章进程管理 2. 画出下面四条语句的前趋图: S1=a:=x+y; S2=b:=z+1; S3=c:=a – b;S4=w:=c+1; 答:其前趋图为: 7.试说明PCB 的作用,为什么说PCB 是进程存在的惟一标志? 答:PCB 是进程实体的一部分,是操作系统中最重要的记录型数据结构。作用是使一个在多道程序环境下不能独立运行的程序,成为一个能独立运行的基本单位,成为能与其它进程并发执行的进程。OS是根据PCB对并发执行的进程进行控制和管理的。 11.试说明进程在三个基本状态之间转换的典型原因。 答:(1)就绪状态→执行状态:进程分配到CPU资源;(2)执行状态→就绪状态:时间片用完;(3)执行状态→阻塞状态:I/O请求;(4)阻塞状态→就绪状态:I/O完成. 19.为什么要在OS 中引入线程?

《银行家算法的模拟实现》—实验报告

《银行家算法的模拟实现》 --实验报告 题目: 银行家算法的模拟实现 专业: 班级: 组员: 指导老师:

一、实验目的 死锁会引起计算机工作僵死,因此操作系统中必须防止。本实验的目的在于让学生独立的使用高级语言编写和调试一个系统动态分配资源的简单模拟程序,了解死锁产生的条件和原因,并采用银行家算法有效地防止死锁的发生,以加深对课堂上所讲授的知识的理解。 二、实验内容 模拟实现银行家算法实现死锁避免。要求:初始数据(如系统在T0时刻的资源分配情况、每一种资源的总数量)从文本文件读入,文件中给出最大需求矩阵Max、分配矩阵Allocation,在程序中求得需求矩阵Need和可利用资源向量Available。 三、实验分析过程 1、整个银行家算法的思路。 先对用户提出的请求进行合法性检查,再进行预分配,利用安全性检查算法进行安全性检查。 1)进程一开始向系统提出最大需求量. 2)进程每次提出新的需求(分期贷款)都统计是否超出它事先提出的最大需求量. 3)若正常,则判断该进程所需剩余剩余量(包括本次申请)是否超出系统所掌握的 剩余资源量,若不超出,则分配,否则等待 2、算法用到的主要数据结构和C语言说明。 (1)、可利用资源向量INT A V AILABLE[M] M为资源的类型。 (2)、最大需求矩阵INT MAX[N][M] N为进程的数量。 (3)、已分配矩阵INT ALLOCA TION[N][M] (4)、还需求矩阵INT NEED[N][N] (5)、申请各类资源数量int Request[x]; // (6)、工作向量int Work[x]; (7)、int Finish[y]; //表示系统是否有足够的资源分配给进程,0为否,非0为是 3、银行家算法(主程序) (1)、系统初始化。输入进程数量,资源种类,各进程已分配、还需求各资源数量,各资源可用数量等 (2)、输入用户的请求三元组(I,J,K),为进程I申请K个J类资源。 (3)、检查用户的请求是否小于还需求的数量,条件是K<=NEED[I,J]。如果条件不符则提示重新输入,即不允许索取大于需求量 (4)、检查用户的请求是否小于系统中的可利用资源数量,条件是K<=A V ALIABLE[I,J]。 如果条件不符则申请失败,阻塞该进程,重新进行进程动态资源申请(使用goto语句) (5)、进行资源的预分配,语句如下: A V ALIBLE[I][J]= A V ALIBLE[I][J]-K; ALLOCATION[I][J]= ALLOCATION[I][J]+K; NEED[I][J]=NEED[I][J]-K;

操作系统课后题及答案

第一章 1 .设计现代OS 的主要目标是什么? 答:(1)有效性(2)方便性(3)可扩充性(4)开放性 2 .OS 的作用可表现在哪几个方面? 答:(1)OS作为用户与计算机硬件系统之间的接口 (2)OS 作为计算机系统资源的管理者 (3)OS 实现了对计算机资源的抽象 4 .试说明推动多道批处理系统形成和发展的主要动力是什么?答:主要动力来源于四个方面的社会需求与技术发展: (1)不断提高计算机资源的利用率; (2)方便用户; (3)器件的不断更新换代; (4)计算机体系结构的不断发展。 7 .实现分时系统的关键问题是什么?应如何解决?答:关键问题是当用户在自己的终端上键入命令时,系统应能及时接收并及时处理该命令,在用户能接受的时延内将结果返回给用户。 解决方法:针对及时接收问题,可以在系统中设置多路卡,使主机能同时接收用户从各个终端上输入的数据;为每个终端配置缓冲区,暂存用户键入的命令或数据。针对及时处理问题,应使所有的用户作业都直接进入内存,并且为每个作业分配一个时间片,允许作业只在自己的时间片内运行,这样在不长的时间内,能使每个作业都运行一次。 12 .试从交互性、及时性以及可靠性方面,将分时系统与实时系统进行比较。 答:( 1 )及时性:实时信息处理系统对实时性的要求与分时系统类似,都是以人所能接受的等待时间来确定;而实时控制系统的及时性,是以控制对象所要求的开始截止时间或完成截止时间来确定的,一般为秒级到毫秒级,甚至有的要低于100 微妙。 (2)交互性:实时信息处理系统具有交互性,但人与系统的交互仅限于访问系统中某些特定的专用服务程序。不像分时系统那样能向终端用户提供数据和资源共享等服务。 (3)可靠性:分时系统也要求系统可靠,但相比之下,实时系统则要求系统具有高度 的可靠性。因为任何差错都可能带来巨大的经济损失,甚至是灾难性后果,所以在实时系统中,往往都采取了多级容错措施保障系统的安全性及数据的安全性。 13 .OS 有哪几大特征?其最基本的特征是什么?答:并发性、共享性、虚拟性和异步性四个基本特征;最基本的特征是并发性。

银行家算法例子+答案

1、设系统中有3种类型的资源(A , B , C )和5个进程P1、P 2、P3 P4 P5, A 资源的数量为 17, B 资源的数量为5, C 资源的数量为20。在T o 时刻系统状 态见下表(T o 时刻系统状态表)所示。系统米用银行家算法实施死锁避免策 略。(12分) T o 时刻系统状态表 T0时刻系统状态表 (1) T o 时刻是否为安全状态?若是,请给出安全序列。 (2) 在T o 时刻若进程P2请求资源(0, 3, 4),是否能实施资源分配?为 什么? 满足P5的运行,在P5运行后,系统的状态为: 2 1 2 3 4 7 4 o 2 1 3 4 A 4 o 5 C A o o 6 V' 5 4 7 2 o 4 2 2 1 o o o o o o 同样的, 在 P5运行后,V ' (5, 4, 7)也大于等于 C-A 中P4所在的行(2, 2, 1),则能满 足P4的运行。P4运行后,系统的状态为: ⑷ 在(3) 的基; 础上, 若进程 P1 请求资源(o , 2, o ),是否能实施资源 分配?为什么 ,? 答: 当前 的系 统状态描述为: 5 5 9 2 1 2 3 4 7 5 3 6 4 o 2 1 3 4 C 4 o 11 A 4 o 5 C A o o 6 4 2 5 2 o 4 2 2 1 4 2 4 3 1 4 1 1 o R 17 5 2o V 2 3 3 (3)在(2)的基础上,若进程 分配?为什么? P4请求资源(2, o , 1),是否能实施资源 (1) 在To 时刻,由于V (2, 3, 3)大于等于(C-A )中P5所在行的向量(1 , 1 ,。),因此V 能

操作系统实验四-银行家算法

银行家算法 xxx 711103xx 2012年5月21日一、实验目的 通过实验,加深对多实例资源分配系统中死锁避免方法——银行家算法的理解,掌握Windows环境下银行家算法的实现方法,同时巩固利用Windows API进行共享数据互斥访问和多线程编程的方法。 二、实验内容 1. 在Windows操作系统上,利用Win32 API编写多线程应用程序实现银行家算法。 2. 创建n个线程来申请或释放资源,只有保证系统安全,才会批准资源申请。 3. 通过Win32 API提供的信号量机制,实现共享数据的并发访问。 三、实验步骤(设计思路和流程图) 最主要的用以实现系统功能的应该有两个部分,一是用银行家算法来判断,二是用安全性算法来检测系统的安全性。 1、银行家算法 设Requesti是进程Pi的请求向量,如果Requesti[j]=K,表示进程Pi 需要K个Rj类型的资源。当Pi发出资源请求后,系统按下述步骤进行检查:

(1) 如果Requesti[j]≤Need[i,j],便转向步骤2;否则认为出错,因为它所需要的资源数已超过它所宣布的最大值。 (2) 如果Requesti[j]≤Available[j],便转向步骤(3);否则,表示尚无足够资源,Pi须等待。 (3) 系统试探着把资源分配给进程Pi,并修改下面数据结构中的数值:Available[j]∶=Available[j]-Requesti[j]; Allocation[i,j]∶=Allocation[i,j]+Requesti[j]; Need[i,j]∶=Need[i,j]-Requesti[j]; (4) 系统执行安全性算法,检查此次资源分配后,系统是否处于安全状态。若安全,才正式将资源分配给进程Pi,以完成本次分配;否则,将本次的试探分配作废,恢复原来的资源分配状态,让进程Pi等待。 2、安全性算法 (1) 设置两个向量:①Work∶=Available; ②Finish (2) 从进程集合中找到一个能满足下述条件的进程:①Finish[i]=false; ②Need[i,j]≤Work[j];若找到,执行步骤(3),否则,执行步骤(4)。(3) 当进程Pi获得资源后,可顺利执行,直至完成,并释放出分配给它的资源,故应执行:Work[j]∶=Work[i]+Allocation[i,j]; Finish[i]∶=true; go to step 2; (4) 如果所有进程的Finish[i]=true都满足,则表示系统处于安全状态;否则,系统处于不安全状态。

习题和答案汇总-给学生

第一章 课后习题: 1.设计现代OS的主要目标是什么? 答:方便性,有效性,可扩充性和开放性. 2. OS的作用可表现为哪几个方面? 答: a. OS作为用户与计算机硬件系统之间的接口(用户观点); b. OS作为计算机系统资源的管理者(设计者观点); c. OS作为扩充机器.(虚拟机观点) 13、OS具有哪几大特征?它的最基本特征是什么? a. 并发(Concurrence)、共享(Sharing)、虚拟(Virtual)、异步性(Asynchronism)。 b. 其中最基本特征是并发和共享。 25、从资源管理的角度看,操作系统具有哪些功能? 处理机管理、存储器管理、设备管理和文件管理。 补充习题: 1、在计算机系统中配置操作系统的主要目的是(A),操作系统的主要功能是管理计算机系统中的(B),其中包括(C)管理和(D)管理,以及设备管理和文件管理。这里的(C)管理主要是对进程进行管理。 A:(1)增强计算机系统的功能;(2)提高系统资源的利用率; (3)提高系统的运行速度;(4)合理地组织系统的工作流程,以提高系统吞吐量。 B:(1)程序和数据;(2)进程;(3)资源;(4)作业;(5)任务。 C、D:(1)存储器;(2)虚拟存储器;(3)运算器;(4)处理机;(5)控制器。 2、操作系统有多种类型: (1)允许多个用户以交互方式使用计算机的操作系统,称为(A); (2)允许多用户将若干个作业提交给计算机系统集中处理的操作系统称为(B); (3)在(C)的控制下,计算机系统能及时处理由过程控制反馈的数据,并做出响应。A、B、C:(1)批处理操作系统;(2)分时操作系统;(3)实时操作系统;(4)微机操作系统;(5)多处理机操作系统。 3、从下面关于操作系统的论述中,选出一条正确的论述:( ) (1)对批处理作业,必须提供相应的作业控制信息; (2)对于分时系统,不一定全部提供人机交互功能; (3)从响应角度看,分时系统与实时系统的要求相似; (4)采用分时操作系统的计算机系统中,用户可以独占计算机操作系统的文件系统;(5)从交互角度看,分时系统与实时系统相似。 4、操作系统是一种(A),在OS中采用多道程序设计技术,能有效地提高CPU、内存和I/O设备的(B),为实现多道程序设计需要有(C)。 A:(1)应用软件;(2)系统软件;(3)通用软件;(4)软件包。 B:(1)灵活性;(2)可靠性;(3)兼容性;(4)利用率。 C:(1)更大的内存(2)更快的CPU;(3)更快的外部设备;(4)更先进的终端。 5、操作系统是一种应用软件。() 6、分时系统中,时间片越小越好。() 7、多道程序设计是指在一台处理机上同一时刻运行多个程序。()

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

操作系统课程设计 (银行家算法的模拟实现) 一、设计目的 1、进一步了解进程的并发执行。 2、加强对进程死锁的理解。 3、用银行家算法完成死锁检测。 二、设计内容 给出进程需求矩阵C、资源向量R以及一个进程的申请序列。使用进程启动拒绝和资源分配拒绝(银行家算法)模拟该进程组的执行情况。 三、设计要求 1、初始状态没有进程启动。 2、计算每次进程申请是否分配,如:计算出预分配后的状态情况(安全状态、不安全状态),如果是安全状态,输出安全序列。 3、每次进程申请被允许后,输出资源分配矩阵A和可用资源向量V。 4、每次申请情况应可单步查看,如:输入一个空格,继续下个申请。 四、算法原理 1、银行家算法中的数据结构

(1)、可利用资源向量Available,这是一个含有m个元素的数组,其中的每个元素代表一类可利用资源的数目,其初始值是系统中所配置的该类全部资源的数目,其数值随该类资源的分配和回收而动态改变。如果Available[j]=K,则表示系统中现有Rj类资源K个。 (2)、最大需求矩阵Max,这是一个n*m的矩阵,它定义了系统中n个进程中的每一个进程对m类资源的最大需求。如果 Max[i,j]=K,则表示进程i需要Rj类资源的最大数目为K。 (3)、分配矩阵Allocation。这也是一个n*m的矩阵,它定义了系统中每一类资源当前已分配给每一进程的资源数。如果Allocation[i,j]=K,则表示进程i当前已经分得Rj类资源的数目为K。 (4)、需求矩阵Need。这也是一个n*m的矩阵,用以表示每个进程尚需要的各类资源数。如果Need[i,j]=K,则表示进程i还需要 Rj类资源K个,方能完成其任务。上述三个矩阵间存在以下关系:Need[i,j]=Max[i,j]-Allocation[i,j] 2、银行家算法应用 模拟实现Dijkstra的银行家算法以避免死锁的出现,分两部分组成:一是银行家算法(扫描);二是安全性算法。 (1)银行家算法(扫描) 设Requesti是进程Pi的请求向量,如果Requesti[j]=K,表示进程Pi需要K个Ri类型的资源。当Pi发出资源请求后,系统按下述步骤进行检查: ①如果Requesti[j]<=Need[i,j],便转向步骤②;否则认为出错,

银行家算法的实现

实验四银行家算法的实现 1、实验目的 通过编写和调试银行家算法的模拟程序以加深对避免死锁方案的理解。熟悉银行家算法的分配思想。 2、实验要求 设计一个银行家方案。并编写模拟程序实现之。已知系统总共的资源数、进程名、进程已分配的资源、进程运行完毕最大最资源的需求量,以书上例题为例,分析某一时刻系统的安全状态,如果安全,输出安全序列。 3、算法描述 银行家算法中数据结构如下: n :系统中的进程个数; m :系统中的资源类数。 1)Available(m):现有资源向量。 Available(j)=k表示k个未分配的j类资源 2)Max(n,m):资源最大申请量矩阵。 Max(i,j)=k表示第i个进程在运行过程中对第j类资源的最大申请量为k。 3)Allocation(n,m):资源分配矩阵。 Allocation(i,j)=k表示进程i已占有k个j类资源。 4)Need(n,m):进程以后还需要的资源矩阵。 Need(i,j)=k表示进程i以后还需要k个第j类资源。 显然有Need[i,j]=Max[i,j]-Allocation[i,j]。 5)Request(n,m):进程申请资源矩阵。 Request(i,j)=k表示进程i申请k个第j类资源。 银行家算法思想如下: 若进程i申请资源,申请资源向量为Request(i),则有如下资源分配过程: 1)如果Request(i)〉Need(i),则报错返回。 2)如果Request(i)〉Avaliable,则进程i进入等待资源状态,返回。 3)假设进程进程i的申请已获批准,于是修改系统状态: Avaliable=Avaliable-Request(i) Allocation(i)=Allocation(i)+Request(i) Need(i)=Need(i)-Request(i) 4)调用安全状态检查算法。 设Work(m)为临时工作向量。初始时Work=Available。令N={1,2,……n}。 寻求j∈N 使其满足:Need(j)<=Work,若不存在这样的j则转至3)。 Work=Work+Allocation(j)N=N-{j} 转至1)。 如果N=空集则返回(系统安全)。如果N≠空集则返回(系统不安全)。 5)若系统处于安全状态,则将进程i申请的资源分配给进程i,返回。 6)若系统处于不安全状态,则不将进程i申请的资源分配给进程i,恢复原来的资源分配状态,让进程i等待。 Avaliable = Avaliable + Request(i) Allocation(i)=Allocation(i)-Request(i) Need(i)=Need(i)+ Request(i) 4、源程序代码

操作系统之调度算法和死锁中的银行家算法习题答案

1.有三个批处理作业,第一个作业10:00 到达,需要执行2 小时;第二个作业在10:10 到达,需要执行1 小时;第三个作业在10:25 到达,需要执行25 分钟。分别采用先来先服务,短作业优先和最高响应比优先三种调度算法,各自的平均周转时间是多少? 解: 先来先服务: (结束时间=上一个作业的结束时间+执行时间 周转时间=结束时间-到达时间=等待时间+执行时间) 短作业优先: 1)初始只有作业1,所以先执行作业1,结束时间是12:00,此时有作业2和3; 2)作业3需要时间短,所以先执行; 最高响应比优先: 高响应比优先调度算法既考虑作业的执行时间也考虑作业的等待时间,综合了先来先服务和最短作业优先两种算法的特点。 1)10:00只有作业1到达,所以先执行作业1; 2)12:00时有作业2和3, 作业2:等待时间=12:00-10:10=110m;响应比=1+110/60=2.8; 作业3:等待时间=12:00-10:25=95m,响应比=1+95/25=4.8; 所以先执行作业3 2.在一单道批处理系统中,一组作业的提交时刻和运行时间如下表所示。试计算一下三种作业调度算法的平均周转时间T 和平均带权周转时间W。 (1)先来先服务;(2)短作业优先(3)高响应比优先

解: 先来先服务: 短作业优先: 作业顺序: 1)8:00只有作业1,所以执行作业1; 2)9:00有作业2和3,作业3短,所以先执行3; 3)9:12有作业2和4,作业4短,所以先执行4; 高响应比优先: 作业顺序: 1)8:00只有作业1,所以执行作业1; 2)9:00有作业2和3 作业2等待时间=9:00-8:30=30m,响应比=1+30/30=2; 作业3等待时间=9:00-9:00=0m,响应比=1+0/12=1; 所以执行作业2; 3)9:30有作业3和4 作业3等待时间=9:30-9:00=30m,响应比=1+30/12=3.5; 作业4等待时间=9:30-9:06=24m,响应比=1+24/6=5;

操作系统作业第三章1,第四章的答案

第三章操作系统的答案 1. 高级调度与低级调度的主要任务是什么?为什么要引入中级调度? a. 作业调度又称宏观调度或高级调度,其主要任务是按一定的原则对外存上处于后备状态的作业进行选择,给选中的作业分配内存,输入输岀设备等必要的资源,并建立相应的进程,以使该作业的进程获得竞争处理机的权利. b. 进程调度又称微观调度或低级调度,其主要任务是按照某种策略和方法选取一个处于就绪状态的进程,将处理机分配给它. c.为了提高内存利用 6. 在抢占调度方式中,抢占的原则是什么? a. 优先权原则 b. 短作业(进程)优先原则 c. 时间片原则 7. 选择调度方式和调度算法时,应遵循的准则是什么? a. 面向用户的准则有周转时间短,响应时间快,截止时间的保证,以及优先权准则 b. 面向系统的准则有系统吞吐量高,处理机利用率好,各类资源的平衡利用 18. 何谓死锁?产生死锁的原因和必要条件是什么? a.死锁是指多个进程因竞争资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再向前推进; b. 产生死锁的原因有二,一是竞争资源,二是进程推进顺序非法; c. 必要条件是:互斥条件,请求和保持条件,不剥夺条件和环路等待条件 19. 在解决死锁问题的几个方法中,哪种方法最容易实现?哪种方法使资源的利用率最高? a. 解决死锁可归纳为四种方法:预防死锁,避免死锁,检测死锁和解除死锁; b. 其中,预防死锁是最容易实现的; c.避免死锁使资源的利用率最高. 21.在银行家算法的例子中,如果P0发出的请求向量由Request0(0,2,0)改为RequestO(O,1,O), 问系统可 否将资源分配给它?

相关文档