中南大学操作系统课程设计

合集下载

操作系统课程设计题目和要求

操作系统课程设计题目和要求

操作系统课程设计一、课程设计目的通过课程设计,加深学生对教材中的重要算法的理解,同时通过用C语言编程实现这些算法,并在LINUX或Windows平台上实现,让学生更好地掌握操作系统的原理及实现方法,提高学生综合运用各专业课知识的能力。

二、课程设计内容课题1 进程调度算法的模拟1.用语言来实现对n个进程采用不同调度算法的进程调度。

2.每个用来标识进程的进程控制块PCB用结构来描述,包括以下字段:(1)进程优先数ID,其中0为闲逛进程,用户进程的标识数为1,2,3…。

(2)进程优先级Priority,闲逛进程(idle)的优先级为0,用户进程的优先级大于0,且随机产生,优先数越大,优先级越高。

(3)进程占用的CPU时间CPUtime,进程每运行一次,累计值等于4。

(4)进程总共需要运行时间Alltime,利用随机函数产生。

(5)进程状态,0:就绪态;1:运行态;2:阻塞态。

(6)队列指针next,用来将多个进程控制块PCB链接为队列。

3.优先数改变的原则(1)进程在就绪队列中每呆一个时间片,优先数增加1。

(2)进程每运行一个时间片,优先数减3。

4.在调度前,系统中拥有的进程数PCB_number由键盘输入,经初始化后,所有的进程控制块PCB链接成就绪队列。

以下两题任选一题课题2.1 系统动态分配资源的模拟编程序模拟银行家算法,要求能体现算法的全过程课题2.2 进程同步模拟编写程序模拟实现五哲学家就餐问题。

以下两题任选一题课题3.1 设计一个虚拟存储区和内存工作区,编程序演示下述算法的具体实现过程,并计算访问命中率:1、先进先出的算法(FIFO)2、最近最少使用算法(LRU)3、最佳淘汰算法(OPT)4、最不经常使用算法(LFU)课题3.2 内存管理模拟使用Windows 2000/XP 的API 函数,编写一个包含两个线程的进程,一个线程用于模拟内存分配活动,一个线程用于跟踪第一个线程的内存行为,而且要求两个线程之间通过信号量实现同步。

中南大学_操作系统课件.ppt

中南大学_操作系统课件.ppt
外存起址、传输字节数;
2、CPU启动控制器进行数据I/O; 3、I/O完成,DMA向CPU发送中断信号;
解决2方法:
1、增加通路,提高系统的灵活性、可靠性;(图 例)
2、设置缓冲区,增加I/O设备的独立性。
2019年12月27日星期五
计算机操作系统
字节多路通道示意图
字节多路通道
控制器1 控制器2
...
控制器n
2019年12月27日星期五
计算机操作系统
6.2 I/O控制方式
I/O控制方式发展宗旨: 尽量减少CPU对I/O的干预,提高CPU
CPU
RAM
I/O1
... ...
I/On
2019年12月27日星期五
计算机操作系统
主机I/O系统结构图例
主机 RAM
通道1
控制器1 控制器2
CPU 通道2
增加通路按任意键...
控制器3 控制器4
2019年12月27日星期五
计算机操作系统
设备1 设备2 设备3 设备4
设备5 设备6 设备7 设备8
2019年12月27日星期五
计算机操作系统
6.1 I/O系统的组成
6.1.1 I/O系统的结构 一、微型机I/O系统
无通道的I/O系统,以CPU为中心(图 例)。
二、主机I/O系统 有通道的I/O系统,以主存为中心,属四
级结构(图例)
OVER
2019年12月27日星期五
计算机操作系统
设备类型
微型机I/O系统结构图例
目的:提高CPU的利用率。 与CPU的2个区别:1、仅能执行与I/O有关指令;
2、无独立主存,与CPU共享; 有通道系统I/O示例:

中南大学操作系统安全课设任务管理器

中南大学操作系统安全课设任务管理器

操作系统安全课程设计实验报告题目:任务管理器学院:信息科学与工程学院专业班级:信息安全1401班指导老师:胡小龙学号:0906140106姓名:孙毅目录第一章前言 (3)第二章概述 (3)2.1 课程设计目的 (3)2.2设计的任务与要求 (3)2.2.1设计任务: (3)2.2.2具体要求: (3)第三章设计的基本概念和原理 (3)3.1流程分析 (4)3.2特色功能 (4)3.3运行环境 (4)第四章详细设计 (5)4.1模块实现 (5)4.1.1应用程序 (5)4.1.2进程 (8)4.1.3模块 (11)第五章完成情况 (14)5.1. 实验结果截图 (14)5.2. 结果讨论 (17)第六章总结 (18)6.1. 结束语 (18)鸣谢 (20)参考文献 (20)第一章前言Windows任务管理器提供了有关计算机性能的信息,并显示了计算机上所运行的程序和进程的详细信息;如果连接到网络,那么还可以查看网络状态并迅速了解网络是如何工作的。

它的用户界面提供了文件、选项、查看、窗口、关机、帮助等六大菜单项,其下还有应用程序、进程、性能、联网、用户等五个标签页,窗口底部则是状态栏,从这里可以查看到当前系统的进程数、CPU使用比率、更改的内存<容量等数据,默认设置下系统每隔两秒钟对数据进行1次自动更新,也可以点击“查看→更新速度”菜单重新设置。

第二章概述2.1 课程设计目的操作系统安全是整个计算机系统安全的重要基础,主要针对操作系统层面的安全进行剖析,是上层运行的重要保证。

与计算机原理、编译原理、汇编语言、计算机网络、程序设计等专业课程关系十分密切。

本课程设计的目的综合应用学生所学知识,建立安全系统的概念,理解和巩固操作系统基本理论、原理和方法,掌握安全操作系统开发的基本技能。

2.2设计的任务与要求2.2.1设计任务:进程监控程序的设计与开发2.2.2具体要求:(1)可获取当前正在运行的所有进程,包括进程PID、进程名称、CPU使用情况、当前用户名、内存占用量等;(2)能进一步获取各进程的所有线程情况;(3)能通过命令终止某个进程的执行,终止时能将其子孙进程全部终止;(4)要求界面友好。

《操作系统》课程设计报告

《操作系统》课程设计报告

长江大学操作系统课程设计报告系(院):计算机科学学院专业班级:软工******姓名: ******* ***学号: 2013*****指导教师: *** **设计时间: 2015.12.27 - 2016.1.5设计地点: 4教5楼机房目录一、基本要求 (3)二、课程设计内容 (3)三、运行环境 (3)四、算法原理 (3)4.1银行家算法原理 (3)4.2页面置换算法原理 (3)4.3电梯调度算法原理 (4)五、程序结构 (4)5.1银行家算法结构 (4)5.2页面置换算法结构 (5)5.3电梯调度算法结构 (6)六、核心代码 (7)6.1银行家算法核心代码 (7)6.2页面置换算法核心代码 (13)6.3电梯调度算法核心代码 (17)七、运行结果截图 (20)7.1银行家算法截图 (20)7.2页面置换算法截图 (21)7.3电梯调度算法截图 (22)八、总结 (23)一、基本要求1.熟悉操作系统原理知识,理解各类管理算法。

2.能根据具体问题的数据特点,选用适当的数据结构,实现数据的组织和管理。

3.进一步巩固程序设计与数据结构的实践技能。

二、课程设计内容1.银行家算法模拟;2.页面置换算法模拟(OPT,FIFO,LRU);3.电梯调度算法(磁盘调度)模拟。

三、运行环境编程语言:C++,编程软件Microsoft Visual C++6.0,操作系统:Windows7。

四、算法原理4.1银行家算法原理银行家算法:系统中有限的资源要供多个进程使用,必须保证得到的资源的进程能在有限的时间内归还资源,以供其他进程使用资源。

如果资源分配不得到就会发生进程循环等待资源,则进程都无法继续执行下去的死锁现象。

把一个进程需要和已占有资源的情况记录在进程控制中,假定进程控制块PCB其中“状态”有就绪态、等待态和完成态。

当进程在处于等待态时,表示系统不能满足该进程当前的资源申请。

”资源需求总量”表示进程在整个执行过程中总共要申请的资源量。

《操作系统》课程设计

《操作系统》课程设计

《操作系统》课程设计一、课程目标知识目标:1. 让学生掌握操作系统的基本概念,包括进程、线程、内存管理、文件系统等核心知识;2. 了解操作系统的历史发展,掌握不同类型操作系统的特点及使用场景;3. 掌握操作系统的性能评价方法和常用的调度算法。

技能目标:1. 培养学生运用操作系统知识解决实际问题的能力,如分析系统性能瓶颈、优化系统资源分配等;2. 培养学生具备基本的操作系统编程能力,如进程创建、线程同步、文件操作等;3. 提高学生的团队协作能力和沟通能力,通过小组讨论和项目实践,学会共同解决问题。

情感态度价值观目标:1. 培养学生对操作系统学科的兴趣,激发学生的学习热情,使其形成积极向上的学习态度;2. 培养学生具备良好的信息素养,尊重知识产权,遵循法律法规;3. 培养学生的创新精神和批判性思维,敢于质疑、勇于探索,形成独立思考的能力。

课程性质:本课程为计算机科学与技术专业的核心课程,旨在让学生掌握操作系统的基本原理和实现方法,提高学生的系统分析和编程能力。

学生特点:学生具备一定的编程基础和计算机系统知识,具有较强的逻辑思维能力和动手实践能力。

教学要求:结合学生特点和课程性质,注重理论与实践相结合,通过案例分析和项目实践,帮助学生将所学知识内化为具体的学习成果。

在教学过程中,关注学生的学习进度和反馈,及时调整教学策略,确保课程目标的实现。

二、教学内容1. 操作系统概述:介绍操作系统的定义、发展历程、功能、类型及特点,对应教材第一章内容。

- 操作系统的起源与发展- 操作系统的功能与类型- 操作系统的主要特点2. 进程与线程:讲解进程与线程的概念、状态、调度算法,对应教材第二章内容。

- 进程与线程的定义与区别- 进程状态与转换- 进程调度算法3. 内存管理:分析内存管理的基本原理、策略和技术,对应教材第三章内容。

- 内存分配与回收策略- 虚拟内存技术- 页面置换算法4. 文件系统:介绍文件系统的基本概念、结构、存储原理,对应教材第四章内容。

操作系统课程设计实验报告(附思考题答案)

操作系统课程设计实验报告(附思考题答案)

操作系统课程设计实验报告(附思考题答案)课程设计(综合实验)报告( 2015 -- 2016 年度第 1 学期)名称:操作系统综合实验题目:oslab综合实验院系:计算机系班级:学号:学生姓名:指导教师:设计周数:分散进行成绩:日期:2015 年10 月29 日一、综合实验的目的与要求1. 理解和掌握操作系统的基本概念、基本组成与工作原理;2. 理解和掌握操作系统中主要功能模块的工作原理及其实现算法;3. 掌握软件模块设计技能;熟悉并能较好地利用软件开发环境独立编程、调试和分析程序运行情况,逐渐形成创新思维和从事系统软件的研究和开发能力。

二、实验正文实验1:实验环境的使用1.1实验目的:1.熟悉操作系统集成实验环境OS Lab 的基本使用方法。

2.练习编译、调试EOS 操作系统内核以及EOS 应用程序。

1.2实验内容:1.启动OS Lab2.学习OS Lab 的基本用法● 新建 Windows 控制台应用程序项目(1)在“文件”菜单中选择“新建”,然后单击“项目”。

(2)在“新建项目”对话框中,选择项目模板“控制台应用程序(c)”。

(3)在“名称”中输入新项目使用的文件夹名称“oslab ”。

(4)在“位置”中输入新项目保存在磁盘上的位置“C:\test ”。

(5)点击“确定”按钮。

● 生成、执行项目●3.EOS 内核项目的生成和调试● 新建 EOS 内核项目并按F7生成项目● 调试项目● 查看软盘镜像文件中的内容、EOS SDK (Software Development Kit )文件夹4.EOS 应用程序项目的生成和调试● 新建 EOS 应用程序项目● 修改 EOS 应用程序项目名称使用断点中断执行查看变量的值5.退出OS Lab6.保存EOS内核项目1.3思考与练习●在实验1中,生成EOS SDK文件夹的目的和作用是什么?答:SDK文件夹中提供了开发EOS应用程序需要的所有文件。

debug文件夹是在使用debug配置生成项目时生成的,其中存放了调试版本的EOS二进制文件。

中南大学操作系统实验

中南大学操作系统实验

《计算机操作系统》实验设计设计目的1、增强学生对计算机操作系统基本原理、基本理论、基本算法的理解2、提高和培养学生的动手能力设计要求1、每人至少选作1题,多做不限。

2、每人单独完成,可以讨论,但每人的设计内容不得完全相同,抄袭或有2人/多人设计完全一样者,不能通过。

3、设计完成后,应上交课程设计文档,文档格式应是学校课程设计的标准格式,所有学生的封面大小、格式也必须一样4、同时上交设计的软盘(或以班刻录光盘)设计题目设计类✧在i386下写一个程序,从实地址模式进入保护虚地址模式,进而启动分页机制平台:语言:汇编、C✧DOS下中断程序设计设计热键、中断接管程序等平台:DOS语言:ASM、Turbo C、Pascal等✧DOS下的菜单、图形界面程序设计同1✧DOS、下的I/O设备处理程序,如打印机驱动程序、字符设备、块设备、网络设备、USB设备驱动程序平台:DOS语言:ASM TC✧多进程处理程序,进程创建、通信(管道、信号量、共享内存、消息队列等、mmap)、互斥平台:Windows、Linux语言:同上✧多线程程序线程创建、同步、互斥平台:Windows、Linux语言:VC LINUX-GCC JA V A✧Windows下设备驱动程序设计(块设备、字符设备、网络设备、USB设备)✧Linux下设备驱动程序设计(块设备、字符设备、网络设备、USB设备)✧Linux调度实验与参数调整如改变时间片、优先级等✧Linux操作系统内存管理机制实验✧Linux文件管理实验,并增加一个系统调用✧Linux系统调用过程实验,并增加一个系统调用如跟综一个系统调用算法模拟类✧调度算法的模拟模拟各种调度算法,并进行调度性能分析✧银行家算法模拟✧内存管理算法模拟✧页面置换算法模拟✧模拟分段、分页情况下的地址变换逻辑地址-线性地址-物理地址实验一、进程调度试验[目的要求]用高级语言编写和调试一个进程调度程序,以加深对进程的概念及进程调度算法的理解.[准备知识]一、基本概念1、进程的概念;2、进程的状态和进程控制块;3、进程调度算法;二、进程调度1、进程的状态2、进程的结构——PCB进程都是由一系列操作(动作)所组成,通过这些操作来完成其任务。

操作系统课程设计(完整规范版)

操作系统课程设计(完整规范版)

操作系统课程设计(完整规范版)一、设计目的操作系统课程设计旨在让学生深入了解操作系统的基本原理,掌握操作系统的设计与实现方法,培养学生在实际操作系统中分析和解决问题的能力。

通过本次课程设计,学生将能够:1. 加深对操作系统理论知识的理解与应用;2. 提高动手实践能力,培养创新精神和团队协作意识;3. 为今后从事操作系统相关领域的研究和工作奠定基础。

二、设计要求(1)进程管理:包括进程的创建、撤销、调度等;(2)内存管理:实现内存分配、回收、页面置换等;(3)文件系统:实现文件的创建、删除、读写等操作;(4)设备管理:实现设备的分配、回收、驱动等功能。

(1)代码规范:编写清晰、易读、易维护的代码;(3)团队协作:合理分工,确保团队成员共同参与、共同进步。

三、设计步骤1. 需求分析:分析课程设计所需实现的功能,明确各个模块的具体要求;2. 概要设计:根据需求分析,制定总体设计方案,划分模块,确定模块间接口;3. 详细设计:针对每个模块,进行具体实现方案的设计;4. 编码实现:按照设计文档,编写代码,实现各个功能模块;5. 测试与调试:对实现的功能进行测试,发现问题并进行调试;6. 优化与改进:根据测试结果,对代码进行优化,提高系统性能;四、预期成果1. 完成一套具有基本功能的模拟操作系统,能够演示进程管理、内存管理、文件系统和设备管理的主要操作;2. 提供完整的,包括注释,以便他人理解和学习;3. 形成一份详尽的课程设计报告,记录设计过程中的思考、遇到的问题及解决方案;4. 通过课程设计,提升个人在操作系统领域的理论知识和实践能力。

五、评价标准1. 功能完整性:各功能模块是否按照要求实现,系统是否能正常运行;3. 创新性:设计过程中是否有独特的想法,是否对现有技术有所改进;4. 团队协作:团队成员之间沟通是否顺畅,分工是否合理,协作是否高效;5. 文档质量:课程设计报告是否详细、准确,是否能够完整反映设计过程和成果。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

操作系统课程设计题目名称:银行家算法姓名学号专业班级指导教师编写日期目录第一章问题描述 (3)1.1 课设题目重述 (3)1.2 问题分析 (3)1.3 实验环境 (3)第二章系统设计 (4)3.1 主要数据结构 (4)3.2 银行家算法 (4)3.3 安全性检查算法 (6)3.4 银行家算法安全性序列分析之例 (7)第三章源代码清单 (10)3.1 函数清单 (10)3.2 各函数的调用关系图 (12)第四章运行结果测试与分析 (13)4.1 程序的正常输出结果 (13)4.2 程序的差错控制 (15)第五章结论与心得 (18)[参考文献] (18)第一章问题描述1.1课设题目重述设计目的:了解多道程序系统中,多个进程并发执行的资源分配。

设计要求:管理员可以把一定数量的作业供多个用户周转使用,为保证作业的安全,管理员规定:当一个用户对作业的最大需求量不超过管理员现有的资金就要接纳该用户;用户可以分期贷款,但贷款的总数不能超过最大需求量;当管理员现有的作业不能满足用户的所需数时,对用户的请求可以推迟支付,但总能使用户在有限的时间里得到请求。

当用户得到所需的全部作业后,一定能在有限的时间里归还所有的作业。

1.2问题分析银行家算法是最具有代表性的避免死锁的算法。

我们可以把操作系统看作是银行家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求分配资源相当于用户向银行家贷款。

在死锁的避免中,银行家算法把系统状态分为安全状态和不安全状态,只要能使系统始终处于安全状态,便可以避免发生死锁。

所谓安全状态,是指系统能按某种顺序为每个进程分配所需资源,直到最大需求,使每一个进程都可以顺利完成,即可找到一个安全资源分配序列。

所以我们需要解决问题有:1)熟悉银行家算法的工作原理,明白如何判断系统处于安全状态,避免死锁。

2)在Windows操作系统上,如何利用Win32 API编写多线程应用程序实现银行家算法。

3)创建n个线程来申请或释放资源,如何保证系统安全,批准资源申请。

4)通过Win32 API提供的信号量机制,实现共享数据的并发访问。

1.3实验环境操作系统:windows 8.1实验语言:c++第二章系统设计3.1主要数据结构1)可利用资源向量Available。

如果Available[j]=K,则表示系统中现有Rj类资源K个。

2)最大需求矩阵Max。

如果Max[i,j]=K,则表示进程i需要Rj类资源的最大数目为K。

3)分配矩阵Allocation。

如果Allocation[i,j]=K,则表示进程i当前已分得Rj类资源的数目为K。

4)需求矩阵Need。

如果Need[i,j]=K,则表示进程i还需要Rj类资源K个,方能完成其任务。

Need[i,j]=Max[i,j]-Allocation[i,j]。

3.2银行家算法在避免死锁的方法中,所施加的限制条件较弱,有可能获得令人满意的系统性能。

在该方法中把系统的状态分为安全状态和不安全状态,只要能使系统始终都处于安全状态,便可以避免发生死锁。

银行家算法的基本思想是分配资源之前,判断系统是否是安全的;若是,才分配。

设进程cusneed提出请求REQUEST [i],如果REQUEST [cusneed][i],表示进程Pi需要K个Rj类型的资源。

则银行家算法按如下规则进行判断。

1)如果REQUEST [cusneed][i]<= NEED[cusneed][i],则转向步骤(2);否则,出错,为它所需要的资源数已超过它所宣布的最大值。

2)如果REQUEST [cusneed][i]<= AVAILABLE[cusneed][i],则转向步骤(3);否则,出错,因为它所需要的资源数已超过它所宣布的最大值。

3)系统试探分配资源,修改相关数据:AVAILABLE[i]-=REQUEST[cusneed][i];ALLOCATION[cusneed][i]+=REQUEST[cusneed][i];NEED[cusneed][i]-=REQUEST[cusneed][i];4)系统执行安全性检查,如安全,则分配成立;否则试探险性分配作废,系统恢复原状,进程等待。

5)对于某一进程i,若对所有的j,有NEED[i][j]=0,则表此进程资源分配完毕,应将占用资源释放。

根据以上步骤,所以银行家算法流程图如下所示图1 银行家算法流程图3.3安全性检查算法1)设置了两个变量①工作向量Work,表示系统可提供给进程继续运行所需的各类资源数目。

开始时,Work:=Available。

②Finish,表示系统是否有足够的资源分配给进程,使之运行完成。

开始时令Finish[i]:=false;当有足够的资源分配给进程时,再令Finish[i]:=true。

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都满足,则表示系统处于安全状态;否则,系统处于不安全状态。

根据以上步骤,所以安全性检查算法流程图如下所示:图2 安全性检查算法流程图3.4银行家算法安全性序列分析假定系统中有五个进程{P0, P1, P2, P3, P4}和三类资源{A, B, C},各种资源的数量分别为10、5、7,在T0时刻的资源分配情况如表1 所示:资源情况进程Max Allocation Need Available A B C A B C A B C A B CP0 7 5 3 0 1 0 7 4 3 3 3 2 P1 3 2 2 2 0 0 1 2 2P29 0 2 3 0 2 6 0 0P3 2 2 2 2 1 1 0 1 1P4 4 3 3 0 0 2 4 3 11)T0时刻的安全性:资源情况进程Work Need Allocation Work+Allocation Finish A B C A B C A B C A B CP1 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 TRUEP47 4 3 4 3 1 0 0 2 7 4 5 TRUEP27 4 5 6 0 0 3 0 2 10 4 7 TRUEP010 4 7 7 4 3 0 1 0 10 5 7 TRUE 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向量,由此形成的资源变化情况如表2所示:资源情况进程Max Allocation Need Available A B C A B C A B C A B CP0 7 5 3 0 1 0 7 4 3 2 3 0 P1 3 2 2 3 0 2 0 2 0P29 0 2 3 0 2 6 0 0P3 2 2 2 2 1 1 0 1 1P4 4 3 3 0 0 2 4 3 1④再利用安全性算法检查此时系统是否安全。

资源情况进程Work Need Allocation Work+Allocation Finish A B C A B C A B C A B CP1 2 3 0 0 2 0 3 0 2 5 3 2 TRUE P3 5 3 2 0 1 1 2 1 1 7 4 3 TRUE P47 4 3 4 3 1 0 0 2 7 4 5 TRUE P27 4 5 6 0 0 3 0 2 10 4 7 TRUE P010 4 7 7 4 3 0 1 0 10 5 7 TRUE3)P4请求资源:P4发出请求向量Request4(3,3,0),系统按银行家算法进行检查:①Request4(3, 3, 0)≤Need4(4, 3, 1);②Request4(3, 3, 0)<Available(2, 3, 0),让P4等待。

第三章源代码清单3.1函数清单工程中出现的所有自己编写的函数调用系统的重要函数,他们的函数功能都被列在这张表中了,如下表所示:3.2各函数的调用关系图图是本次课程设计工程所有自己编写的函数调用系统的重要函数的函数调用关系,箭头指向某函数表示某函数被调用。

图3 各函数的调用关系图第四章运行结果测试与分析4.1程序的正常输出结果1)程序刚进入时的界面,5秒倒计时后进入银行家算法初始化输入。

2)初始化,输入进程数目,资源种类数,每个进程所需的各种资源,每个进程现已分配的资源数以及各资源现有数目。

3)初始化后的各进程的资源状态列表,此时系统是安全的,存在一个安全序列1->3->0->2->4。

进程1进行资源请求分配,请求资源数1,0,2。

4)第一次分配结果成功,存在一个安全序列:1->3->0->2->4。

因为这是进程1所需资源数不为0,即NEED[1]!=0,所以系统不释放进程1的资源。

第二次分配,4号进程请求系统资源数1 ,2, 0。

预分配后,系统进行安全性检测时,不存在一个安全序列,所以请求被拒绝。

5)进程1再次请求资源0,2,0。

存在一个安全序列1->3->0->2->4。

这时进程1的所需要的资源总数为0,即NEED[1]=0,所以系统释放进程1的资源。

6)按照一个安全序列,使所有进程都获得资源并释放资源。

4.2程序的差错控制1)对进入银行家算法进行输入控制,输入1,0以外的字符,系统提示为非法输入,用户重新输入。

2)进程最多所需的资源数不能为负,下图为系统提示哪个进程的第几个资源输入错误。

3)进程已分配的资源数不能为负,同时已分配的资源数不能大于进程最多所需的资源数。

下图为系统提示哪个进程的第几个资源输入错误。

4)输入的资源请求不能超过系统所有资源数,以及进程所需资源数。

第五章结论与心得本次设计中首先要解决的问题是对所做题目的理解。

简单的文字描述总是生涩难懂,像银行家算法这一问题,联系实际生活中银行贷款这一现象,再来看问题时,一切开始显得清晰,再根据书上对这个问题的描述,便可以把自己究竟该作何工作搞清楚。

明白了需求,下一个难点是如何通过软件实现。

相关文档
最新文档