《最新《操作系统》课程设计指导书.doc》由会员分享,可在线阅读,更多相关《最新《操作系统》课程设计指导书.doc(81页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date操作系统课程设计指导书操作系统课程设计指导书(06本科)2008.6操作系统课程设计 指导书信息技术系二0一0年六月课程设计任务(一):进程调度一、目的与要求1、目的进程是操作系统最重要的概念之一,进程调度又是操作系统核心的主要内容。本任务要求学生独立地用C语言(或其它程序设计语言)编写和调试一个简单的进程调度程序。调度算法(如,简单轮转法和优先数法等)可任意选择或自
2、行设计。以加深对进程调度和各种调度算法的理解。2、 要求(1) 设计一个有n个进程并行的进程调度程序。每个进程由一个进程控制块(PCB)表示。进程控制块通常应包含下述信息:进程名、进程优先数、进程需要运行的时间、占用CPU的时间以及进程的状态等,且可按调度算法的不同而增删。(2) 调度程序可包含45种不同的调度算法,运行时可任意选一种,以利于各种算法的分析比较。完成1种调度算法得基本分即60分,每增加1种加10分,满分100分。(3) 系统应能显示各进程状态和参数的变化情况,便于观察诸进程的调度过程二、示例1、题目 本程序可选用优先数法或简单轮转法对五个进程进行调度。每个进程处于运行R(run
3、)、就绪W(wait)和完成F(finish)三种状态之一,并假设起始状态都是就绪状态W。为了便于处理,程序进程的运行时间以时间片为单位计算。各进程的优先数或轮转时间片数、以及进程需要运行的时间片数,均由伪随机数发生器产生。进程控制块结构如下:PCB进程标识数链指针优先数/轮转时间片数占用CPU时间片数进程所需时间片数进程状态进程控制块链结构如下:TAILRUN1RHEAD3W5W2W其中:RUN当前运行进程指针;HEAD进程就绪链链首指针;TAID进程就绪链链尾指针。2、 算法与框图(1) 优先数法。进程就绪链按优先数大小从高到低排列,链首进程首先投入运行。每过一个时间片,运行进程所需运行的
4、时间片数减1,说明它已运行了一个时间片,优先数也减3,理由是该进程如果在一个时间片中完成不了,优先级应该降低一级。接着比较现行进程和就绪链链首进程的优先数,如果仍是现行进程高或者相同,就让现行进程继续进行,否则,调度就绪链链首进程投入运行。原运行进程再按其优先数大小插入就绪链,且改变它们对应的进程状态,直至所有进程都运行完各自的时间片数。(2) 简单轮转法。进程就绪链按各进程进入的先后次序排列,进程每次占用处理机的轮转时间按其重要程度登入进程控制块中的轮转时间片数记录项(相当于优先数法的优先数记录项位置)。每过一个时间片,运行进程占用处理机的时间片数加1,然后比较占用处理机的时间片数是否与该进
5、程的轮转时间片数相等,若相等说明已到达轮转时间,应将现运行进程排到就绪链末尾,调度链首进程占用处理机,且改变它们的进程状态,直至所有进程完成各自的时间片。(3) 程序框图如下图1所示。图1 进程调度框图3、 程序运行结果格式(1)程序运行结果格式TYPE THE ALGORITHM:PRIORITYOUTPUT OF PRIORITY= = = = = = = = = = = = = = = = = = = = = = = = = = = = = =RUNNING PROC. WAITING QUEUE3 4 1 5= = = = = = = = = = = = = = = = = = = =
6、 = = = = = = = = = =ID 1 2 3 4 5PRIORITY 9 38 30 29 0CPUTIME 0 0 0 0 0ALLTIME 3 3 6 3 4STATE W R W W WNEXT 5 3 4 1 0= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =SYSTEM FINISHED(2)说明:程序启动后,屏幕上显示“TYPE THE ALGORTITHM”,要求用户打入使用何种调度算
7、法。本程序只编制了优先数法(“priority”)和简单轮转法(“Round Robin”)两种。打入某一算法后,系统自动形成各进程控制块,实施该算法的进程调度算法,并打印各进程在调度过程中的状态和参数的变化。4、 小结本任务用较简单的二种方法模拟进程调度,在进程运行时间和进程状态变化方面也做了简化,但已经能够反映进程调度的实质。本任务能加深对进程调度的理解和熟悉它的实施方法。三、设计题自行设计一个进程调度程序,在计算机上调试和运行该程序,其功能应该不亚于示例。直观地评测各种调度算法的性能。提示1:可编写一个反馈排队法(FB方法)的进程调度程序。该算法的基本思想是设置几个进程就绪队列,如队列1
8、队列i ,同一队列中的进程优先级相同,可采用先进先出方法调度。各队列的进程,其优先级逐队降低。即队列1的进程优先数最高,队列i的最低。而时间片,即以此占用CPU的时间正好相反,队列1的最短,队列i则最长。调度方法是开始进入的进程都在队列1中参加调度,如果在一个时间片内该进程完不成,应排入队列2,即优先级要降低,但下一次运行的时间可加长(即时间片加长了)。以此类推,直至排到队列i。调度时现在队列1中找,待队列1中已无进程时,再调度队列2的进程,一旦队列1中有了进程,又应返回来调度队列1的进程。这种方法最好设计成运行过程中能创造一定数量的进程,而不是一开始就生成所有进程。提示2:可综合各种算法的优
9、先,考虑在各种不同情况下的实施方法,如上述FB算法。也可选用有关资料中报导的一些方法,加以分析、简化和实现。四、思考题(1) 示例中的程序,没有使用指针型(pointer)数据结构,如何用指针型结构改写本实例,使更能体现C语言的特性。(2) 如何在程序中真实地模拟进程运行的时间片?(3) 如果增加进程的“等待”状态,即进程因请求输入输出等问题而挂起的状态,如何在程序中实现?课程设计任务(二):请求页式存储管理一、目的与要求1、目的近年来,由于大规模集成电路(LSI)和超大规模集成电路(VLSI)技术的发展,使存储器的容量不断扩大,价格大幅度下降。但从使用角度看,存储器的容量和成本总是受到一定的
10、限制。所以,提高存储器的利用效率始终是操作系统研究的重要课题之一。其中虚拟存储技术是用来扩大内存容量的一种重要方法。学生应独立地用C语言(或其它程序设计语言)编写几种常用的存储分配算法,并设计一个存储管理的模拟程序,对各种算法进行分析比较,评测其性能优劣,从而加深对这些算法的了解。2、 要求为了比较真实地模拟存储管理,可预先生成一个大致符合实际情况的指令地址流。然后模拟这样一种指令序列的执行来计算和分析各种算法的访问命中率。二、示例1、题目 本示例采用页式分配存储管理方案,并通过分析计算不同页面淘汰算法情况下的访问命中率来比较各种算法的优劣。另外也考虑到改变页面大小和实际存储器容量对计算结果的
11、影响,从而可为选择好的算法、合适的页面尺寸和实存容量提供依据。本程序是按下述原则生成指令序列的:(1) 50%的指令是顺序执行的。(2) 25%的指令均匀散布在前地址部分。(3) 25%的指令均匀散布在后地址部分。示例中选用最佳淘汰算法(OPT)和最近最少使用页面淘汰算法(LRU)计算页面命中率。公式为假定虚存容量为32K,页面尺寸从1K至8K,实存容量从4页至32页。2、 算法与框图(1) 最佳淘汰算法(OPT)。这是一种理想的算法,可用来作为衡量其他算法优劣的依据,在实际系统中是难以实现的,因为它必须先知道指令的全部地址流。由于本示例中已预先生成了全部的指令地址流,故可计算出最佳命中率。该
12、算法的准则是淘汰已满页表中不再访问或是最迟访问的的页。这就要求将页表中的页逐个与后继指令访问的所有页比较,如后继指令不在访问该页,则把此页淘汰,不然得找出后继指令中最迟访问的页面淘汰。可见最佳淘汰算法要花费较长的运算时间。(2) 最近最少使用页淘汰算法(LRU)。这是一种经常使用的方法,有各种不同的实施方案,本例采用不断调整页表链的方法,即总是淘汰页表链链首页,而把新访问的页插入链尾。如果当前调用页已在页表内,则把它再次调整到链尾。这样就能保证最近使用的页,总是处于靠近链尾部分,而不常使用的页则移到链首,逐个被淘汰,在页表较大时,调整页表链的代价也是不小的。(3) 程序框图如下图2所示。图2
13、计算页面命中率框图3、程序运行结果格式(1) 程序运行结果格式THE VIRTUAL ADDRESS STREAM AS FOLLOWS:a0 =16895 a1=16896 a2=16897 a3=16302a4=25403 a5=13941 a6=13942 a7=8767A252=23583 a253=20265 a254=20266 a255=20267= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =The algorithm is:optPAGE NUMBER WIT
14、H SIZE 1k FOR EACH ADDRESS IS:pageno0=17pageno1=17 pageno2=17 pageno3=16pageno4=25 pageno5=14 pageno6=14 pageno7=9pageno252=24 pageno253=20 pageno254=20 pageno255=20vmsize=32k pagesize=1k- -page assigned pages_in/total references47.0000E-167.0000E-188.0000E-1108.0000E-1128.0000E-1149.0000E-1169.0000
15、E-1189.0000E-1209.0000E-1229.0000E-1249.0000E-1269.0000E-1289.0000E-1309.0000E-1329.0000E-1PAGE NUMBER WITH SIZE 2k EACH ADDRESS IS:PAGE NUMBER WITH SIZE 4k EACH ADDRESS IS:PAGE NUMBER WITH SIZE 8k EACH ADDRESS IS:End the result for opt* *the algorithm is lru同上End the result for lru*(2)示例中使用的有关数据结构、
16、常量和变量说明如下:length 被调试的指令地址流长度,可作为一个常量设定。called当前请求的页面号。pagefault页面失效标志,如当前请求页called已在页表内,则置pagefault=false,否则为true。table 页表。tablei=j,表示虚存的第j页在实存的第i页中。used当前被占用的实存页面数,可用来判断当前实存中是否有空闲页。(3)本程序启动后,屏幕上显示“the algorithm is:”,用户可选择最佳淘汰算法(打入“OPT”)或者最近最少使用淘汰算法(打入“LRU”) 计算页面命中率。当然还可以加入各种其他的算法。4、小结(1) 编制评测各种算法性能
17、的模拟程序是研制系统程序,尤其是操作系统所必须的。模拟的环境愈是真实,其结果愈是可靠,也就更有利于选择合适的方案。本任务虽然简单,但可作为一个尝试。(2) 注意正整数的范围只能从032767,限制程序中的虚存尺寸为32K,实际如采用更大的虚存实存,更能说明问题。三、设计题(1) 编制和调试示例给出的请求页式存储管理程序,并运行之。2种算法均完成得70分。(2) 增加2种已学过的淘汰算法,计算它们的页面访问命中率。试对各种算法的命中率加以比较分析。每增加1种加15分,满分100分。提示:可选用FIFO方法,即先访问的页先淘汰,也可选用LRU方法中的其他方案。如在页表中设置标志位,按标志位值得变化
18、来淘汰。也可用LFU方法,为页表中各页面设置访问计数器,淘汰访问频率最低的页(注意:当前访问的页不能淘汰)等等。四、思考题(1)设计一个界地址存储管理的模拟系统,模拟界地址方式下存储区的分配和回收过程。提示1:必须设置一个内存分配表,按照分配表中有关信息实施存储区的分配,并不断根据存储区的分配和回收修改该表。算法有首次匹配法,循环首次匹配法和最佳匹配法等。可用各种方法的比较来充实实习内容。可使用碎片收集和复盖等技术。(2)自行设计或选用一种较为完善的内存管理方法,并加以实现。提示2:设计一个段页式管理的模拟程序或通过一个实际系统的消化和分析,编制一个程序来模拟该系统。课程设计任务(三):文件操
19、作与管理一、目的与要求1、目的随着社会信息量的不断增长,要求计算机处理的信息与日俱增,涉及到社会生活的各个方面。因此,文件管理是操作系统的一个极为重要的组成部分。学生应独立地用C语言(或其它程序设计语言)编写和调试一个简单的文件系统,模拟文件管理的工作过程。从而对各种文件操作命令的实质内容和执行过程有比较深入的了解,掌握它们的实施方法,加深理解课堂上讲授过的知识。2、要求(1) 设计一个有n个用户的文件系统,每个用户最多可保存m个文件。(2) 限制用户在一次运行中只能打开l个文件。(3) 系统应能检查输入命令的正确性,出错要显示出错原因。(4) 对文件必须设置保护措施,如只能执行,允许读、允许
20、写等。在每次打开文件时,根据本次打开的要求,再次设置保护级别,即可有二级保护。(5) 对文件的操作至少应有下述几条命令:creat 建立文件。delete 删除文件。open 打开文件。close 关闭文件。read 读文件。write 写文件。二、示例1. 题目(1) 本任务设计一个10个用户的文件系统,每个用户最多可保存10个文件,一次运行中用户可打开5个文件。(2) 程序采用二级文件目录,即设置主文件目录(MFD)和用户文件目录(UFD)。前者应包含文件主(即用户)及他们的目录区指针;后者应给出每个文件主占有的文件目录,即文件名,保护码,文件长度以及他们存放的位置等。另外为打开文件设置运
21、行文件目录(AFD),在文件打开时应填入打开文件号,本次打开保护码和读写指针等。(3) 为了便于实现,简化对文件的读写操作,在执行读写命令时,只修改读写指针,并不进行实际文件的读写操作。2. 算法与框图(1) 因系统小,文件目录的检索使用了简单的线性搜索,而没有采用Hash等有效算法。(2) 文件保护简单实用了三位保护码,对应于允许读、允许写和运行执行,如下所示:1 1 1 允许写允许读允许执行如对应位为0,则不允许。(3) 程序中使用的主要数据结构如下:UFDMFD用户名文件目录指针用户名文件目录指针用户名文件目录指针文件名保护码文件长度文件名文件名保护码文件长度文件名主文件目录和用户文件目
22、录打开文件号打开保护码读写指针打开文件目录(4) 程序框图如图3所示。图3 文件系统框图3. 程序运行结果格式(1) 程序运行结果格式RUN YOUR NAME ? YOUIJINYOUR NAME IS NOT N THE USER NAME TABLE,TRY AGAIN.YOUR NAME ? YOUJINYOUR FILE DIRECTORYFILE NAME PROTECTION CODE LENGTHXUMAIN1119999F1111 0YOUJINYU111100*000 0*000 0*000 0*000 0*000 0*000 0COMMAND NAME? CREATERC
23、OMMAND NAME GIVEN IS WRONG!IT SHOULD BE ONE OF FOLLOWING : CREATE, DELETE, OPEN, CLOSE, READ, WRITE, BYE.TRY AGAINCOMMAND NAME?CREATETHE NEW FILE S NAME(LESS THAN 9 CHARS)? F2THE NEW FILES PROTECTION CODE? 101THE NEW FILE IS CREATED.ENTER THE OPEN MODE? 101THIS FILE IS OPENED,ITS OPEN NUMBER IS 1COM
24、MAND NAME? READOPEN FILE NUMBER?ERROR MESSAGE:IT IS NOT ALLOWED TO READ THIS FILE !COMMAND NAME?WRITEOPEN FILE NUMBER? 1HOW MANY CHARACTERS TO BE WRITTEN INTO THAT FILE? 190COMMAND NAME ? OPENFILE NAME TO BE OPENED? F1ENTER THE OPEN MODE? 111THIS FILE IS OPENED,ITS OPEN NUMBER IS 2COMMAND NAME? WRIT
25、EOPEN FILE NUMBER?2COMMAND NAME? CLOSETHE OPENED FILE NUMBER TO BE CLOSED?2THIS FILE IS CLOSED.COMMAND NAME? BYENOW YOUR FILE DIRECTORY IS FOLLOWING:XUMAN 1119999F1111 1900YOUJINYU111100F2101190*0000*0000*0000*0000GOOD BXE.(2)本程序用交互方式工作。启动程序后,系统查询:YOUR NAME? 输入用户名,登入主目录后,系统立即响应。注意,本程序中前一个登录用户名的程序,用户
26、需实现在主目录中登入用户名。系统响应后会给出用户文件目录,然后显示:COMMAND NAME? 打入相应命令后就可建立、删除、读、写、打开和关闭文件,如命令输错,系统会指出并给用户提示。操作完成后应关闭文件,然后输入“BYE”命令退出文件系统。退出前系统再次打印当前文件目录。4.小结 文件系统的管理有各种各样的方案和算法。由于时间和条件的限制,本示例只是简单的模拟了文件的几种操作命令,学生可从其它途径进一步深入学习和探讨。三、设计题(1)编制和调试示例给出的文件操作与管理程序,并运行之。2种算法均完成得70分。(2)增加3个文件操作命令,并加以实现。每增加1种加10分,满分100分。提示:可以
27、增加移动读写指针命令,如把指针移至某一起始位置或文件头;改变文件属性的命令,如更改文件名,改变文件保护级别等。四、思考题(1)编制一个通过屏幕选择命令的文件管理系统,每幅屏幕要为用户提供足够的选择信息,不需要输入冗长的命令。提示1:为了便于用户操作,微机大多采用按照屏幕的提示选择命令,这里可以使用高级语言编制通过屏幕显示选择文件操作命令的文件管理模拟程序。(2)设计一个树形目录结构的文件系统,其根目录为root,各分支可以是目录,也可以是文件,最后的叶子都是文件。提示2:可以参考Linux操作系统的文件结构和管理方法。采用多级保护,即把用户分成文件主,伙伴和普通用户三类,分别给予使用权。为了缩
28、短搜索文件的路径,可设置工作目录,能在当前使用的目录下查找文件,不必每次都从根目录开始查找。(3)根据学校的各级机构,编制一个文件系统,要求上级机构能查阅和修改下级机构的文件,而下级机构只有在授权情况下才能查阅上级的文件,但不能修改,同一级的文件可以共享。提示3:学校机构可由如下图4组成:校董事会、校长教务处科研处校务处一 系十系教学行政科教学研究所研究生科科研科情报资料室技术服务部财务科基建科房管科总务科一一一实验室一二教研室一三研究室一一教研室一一三实验室一二教研室一三研究室一一教研室图4 学校机构图课程设计任务(四):死锁观察与避免一、目的与要求1、目的死锁会引起进程僵死,严重的话会造成
29、整个系统瘫痪。因此,死锁现象是操作系统特别是大型系统中必须设法防止的。学生应独立的使用C语言(或其它程序设计语言)编写和调试一个系统动态分配资源的简单模拟程序,观察死锁产生的条件,并采用适当的算法,有效的防止死锁的发生。从而更直观地了解死锁的起因,初步掌握防止死锁的简单方法,加深理解课堂上讲授过的知识。2、要求(1)设计一个由n个并发进程共享m个系统资源的系统。系统中进程可动态地申请资源和释放资源。系统按各进程的申请动态地分配各资源。(2)系统应能显示各进程申请和释放资源以及系统动态分配资源的过程,便于用户观察和分析。(3)系统应能选择是否采用防止死锁算法或选用何种防止算法(如有多种算法)。在
30、不采用防止算法时观察死锁现象的发生过程。在使用防止死锁算法时,了解在同样申请条件下,防止死锁的过程。二、示例1、题目 本示例采用银行家算法防止死锁的发生。假设有三个并发进程共享十个系统。在三个进程申请的系统资源之和不超过10时,当然不可能发生死锁,因为各个进程申请的资源都能满足。在有一个进程申请的系统资源数超过10时,必然会发生死锁。应该排除这二种情况。程序采用人工输入各进程的申请资源序列。如果随机给各进程分配资源,就可能发生死锁,这就是不采用防止死锁算法的情况。假如,按照一定的规则,为各进程分配资源,就可以防止死锁的发生。示例中采用了银行算法。2、算法与框图 程序框图如图5,6,7所示:图5
31、 防止死锁程序框图图6 死锁处理程序框图图7 safe函数框图3、程序运行结果格式(1)程序运行结果格式INPUT:OPTION =0CLAIM OF PROCESS 1 IS: 1 2 3 -1 -1 0CLAIM OF PROCESS 2 IS: 2 3 1 1 -2 0CLAIM OF PROCESS 3 IS: 1 2 5 -1 -2 0MAXCLAIM OF PROCESS 1 IS: 6MAXCLAIM OF PROCESS 2 IS: 7MAXCLAIM OF PROCESS 3 IS:8THE SYSTEM ALLOCTION PROCESS IS AS FOLLOWS: PR
32、OCESS CLAIM ALLOCATION REMAINDER 1 11 9RESOURCE IS ALLOCATED TO PROCESS 1 2 22 7RESOURCE IS ALLOCATED TO PROCESS 2 3 11 6RESOURCE IS ALLOCATED TO PROCESS 3 1 23 4RESOURCE IS ALLOCATED TO PROCESS 1 2 32 4IF ALLOCATED,DEADLOCK MAY OCCUR 1 23 4THE REMAINDER IS LESS THAN PROCESS 2 CLAIMS 3 00 10PROCESS
33、3 HAS FINISHED, RETURN ITS RESOURSETHE WHOLE WORK IS COMPLETED*(2)程序中使用的数据结构和变量名说明如下:OPTION 选择标志 =0 选用“防止死锁”算法 =1 不用“防止死锁”算法AP(I,J) 资源请求矢量 n0 第I进程第J次申请n个资源。 n0 第I进程第J次释放n个资源。 n=0 第I进程在第J次种植。VPMAXCLAIM(I) 第I进程对资源的最大需求量VALLOCATION(I) 第I进程已分配到资源数VPSTATUS(I) 第I进程完成请求标志,为1时表示已完成各次请求。VCOUNT(I) 第I进程请求次数计数器
34、。其值表示该进程第几次请求。TOTAL 已分配的系统资源总数。REMAINDER 剩余的系统资源数。INQUIRY 当前运行进程号(3)程序中定义的过程和函数说明如下:FRONT过程:初始化过程,装入所有初始数据,为各有关变量置初值,检查每个进程请求的资源总数是否超过系统所能提供的资源数。PRINT过程:输出一次分配结果。RETRIEVE过程:当测得资源不够分配或分配后可能产生死锁,回收已假定分配了的资源。TERMINATION过程:检查每个进程时候都已完成或者发生死锁。如果进程全部完成或发生死锁,则将全局变量ADVANCE置成true,不然置成false。R2过程:为检查进程的分配资源数是否
35、超过了它的最大申请量,或是释放的资源数是否超过占有数,这里是检查例外情况。R4过程:为各进程设置能执行完标志T,对于还不能完成的进程将它的标志T置1,能完成的进程标志T置0.SAFE函数:测试在当前分配状态下,会不会产生死锁,若不会,死锁函数值返回true,否则返回false。ALLOCATE过程:按申请想当前进程分配或收回资源。RETURN过程:收回当前进程的全部资源,并将此进程的VPSTATUS 置1。(4)程序启动后要求输入各进程的资源请求序列和各种进程的最大申请资源数。同时,要求输入选择标志OPTION。程序运行后,输出相应结果和有关信息。输出格式如下:(详见运行结果输出)(I) n1
36、 n2 n3 n4其中:I 自然序号n1(PROCESS) 进程号n2(CLAIM) 本次申请资源数n3(ALLOCATION) 已分配给该进程的资源数n4(REMAINDER) 系统的总剩余资源数4、小结 死锁的防止是比较复杂的。虽然可用防死锁的方法或是用检测死锁然后予以恢复的方法来解决死锁问题,但花费的代价是很大的。三、设计题(1)编制和调试示例给出的死锁观察与避免程序,并用进程的各种资源请求序列测试死锁的形成和避免死锁的过程,强调过程显示。完成得80分。(2)修改并调试一个使用有序资源使用法来预防死锁的模拟程序,并用进程的各种资源请求序列测试死锁的形成和预防死锁的过程。完成加20分。本设
37、计题要求运用矩阵运算来实现这一过程。提示:首先要把系统中所有资源类别按其紧缺程度排成一定的序号。要求进程必须严格按递增次序请求资源,即对低序号设备的要求未能满足之前,不准申请高序号的资源,这样就能有效地预防死锁的产生。四、思考题 (1)编制一个利用可在使用资源图的资源请求矩阵和分配矩阵的简化运算来检测死锁的模拟程序。提示:可再使用资源图的分配矩阵为(Aij),元素Aij=|(Rj,Pi)|;请求矩阵为(Bij),元素Bij=|(Pi ,Rj)|,还需要一个可用资源向量(rj),元素。其中,P表示进程,R表示资源,t表示某类资源的总数。简化过程:先设法满足请求边,使它变成分配边,然后把只有分配边而无请求边的节点的所有分配边撤销(相当于解放已全部满足某进程的所有资源)。再次检查能否将请求边变成分配边,再撤销已无请求边的所有分配边,直至撤销所有的边,此时,可再使用资源图完全可化简。如果状态是死锁,当且仅当它的可再使用资源图不是完全可化简的。也就是肯定有一些边无法撤消。课程设计任务(五):自拟一、目的与要求1、目的为提高学生的学习积极性,充分发挥其主观能动性,学生可根据自身的学习状况和学习兴趣自拟一任务完成课程设计任务。2、要求(1) 需符合本课程设计教学大纲要求。(2) 需获得指导老师认可。(3) 自主编制相关指导书。-