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

合集下载

中南大学_操作系统课件.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)要求界面友好。

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

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

操作系统课程设计题目名称:银行家算法姓名学号专业班级指导教师编写日期目录第一章问题描述 (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编写多线程应用程序实现银行家算法。

中南大学PLC课程设计说明书

中南大学PLC课程设计说明书

PLC课程设计说明书姓名学号班级指导老师机电工程学院目录第一章 设计任务及总体方案第二章 PLC 等硬件设计 (3)2.1传感器的选型及安装........................................3 2.2气缸的选型及安装 .........................................4 2.3 PLC 的选型................................................5 2.4 I/O 地址分配表 ...........................................6 2.5 I/O 连接图...............................................7 2.6控制面板布置图.. (8)第三章 PLC 软件设计 (9)3.1用户程序流程图............................................9 3.2顺序功能图...............................................10 3.3梯形图编程第四章 总结 (15)参考文献 (16)第一章设计任务及总体方案设计题目:自动分捡传送线的机电一体化系统设计题目类型: 机电一体化工程设计时间: 2013.12专业班级:机械10级指导教师:设计内容要求:某自动分捡传送线要求完成检测物件尺寸大小,并根据检测结果将大、中、小号物件分配到特定位置的工作,该分捡传送线系统组成及其PLC控制系统输入输出信号示意图如图所示。

物件被机械手Y0供给上传送带后,大、中、小号物件分别被上X1、中X2、下X3光电传感器检测,并经过分捡控制器Y3,中号物件通过前面的传送带传送,大、小号物件通过后面的传送带传送。

其后,大号物件由图中X4信号处滑落,中号物件在图中X5信号处由机械手提走,小号物件在图中X6信号处由气缸Y6推出。

中南大学操作系统实验

中南大学操作系统实验

《计算机操作系统》实验设计设计目的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. 文档质量:课程设计报告是否详细、准确,是否能够完整反映设计过程和成果。

中南大学c课程设计报告

中南大学c课程设计报告

中南大学《高级程序设计实践(C++)》课程设计报告设计题目教学设备管理系统指导老师设计者专业班级设计日期目录一课题的基本内容和要求二程序功能简介三主体内容:1 设计分析2 程序整体结构3 部分模块的结构4 相关模块源程序5 操作方法6试验结果7设计体会8 参考文献一基本内容和要求(一)基本要求本设计采用教师指导、学生自学和独立编程操作方式,先由学生查阅与本设计有关的书籍和资料,利用Visual C++ 6.0设计环境与开发工具,在两周时间内,完成课程设计内容中的一个管理系统,具体要求如下:1、独立思考:独立完成课程设计中各任务的设计和调试。

2、上机准备:每次上机前,要事先编制好准备调试的程序,认真想好调试步骤和有关环境的设置方法,准备好有关的文件。

3、数据管理:管理系统中的数据可用数据库(如Access数据库)的形式保存,也可用普通文件(文本文件或二进制文件)的形式保存。

4、程序要求:界面美观、可操作性强、稳定性好。

(二)基本内容:教学设备管理系统为方便管理学校教学设备,编写一个教学设备管理系统软件。

系统记录必须包括设备编号、设备名称、生产厂家、购置日期、台数、单价、及备注等。

二程序功能简介(1)添加:增加一台设备的记录到管理系统中。

(2)查询:可以根据设备编号查找某台设备的相关信息,若找到则显示其信息。

(3)修改:在管理系统中修改一台设备的记录。

(4)保存:将所有教学设备信息保存在一个文件中(数据库文件或普通的文本文件)。

(5)读取:从文件中读取已保存了数据。

(6)删除:从管理系统中删除一条记录。

(7)恢复:能恢复被删除的记录。

(8)统计:(A)统计每页合计台数及金额;(B)累计设备的总台数及总金额;(C)统计单价在:200元以下、200~800元之间和800元以上的设备总台数及总金额。

(D)以表格形式打印教学设备明细表。

(9)其他:可以根据自己的思路设计其他功能。

三主体内容1 设计分析根据问题描述和要求,系统要求能够添加设备,按设备编号查询,修改,保存,读取,删除,恢复设备的信息。

操作系统课程设计报告

操作系统课程设计报告

操作系统课程设计报告1. 引言操作系统是计算机系统中最核心的软件之一,它负责管理和优化计算机资源的分配和调度,为用户和应用程序提供一个可靠、高效的执行环境。

在操作系统课程设计中,我们通过设计一个简单的操作系统,深入理解操作系统的原理和功能,提升对操作系统的理解和实践能力。

本报告将详细介绍我们小组在操作系统课程设计过程中所完成的工作和实现的目标。

2. 设计目标在本次操作系统课程设计中,我们的设计目标包括:•实现一个基本的中断处理、进程调度和内存管理机制;•设计一个简单的文件系统;•确保操作系统的稳定性和可靠性;•实现用户命令解析和执行功能。

3. 系统架构我们的操作系统设计采用了经典的分层结构,主要由硬件抽象层、内核和用户接口层组成。

1.硬件抽象层:负责与硬件进行交互,提供基本的底层硬件接口,如处理器管理、中断处理、设备控制等。

2.内核:实现操作系统的核心功能,包括进程管理、内存管理、文件系统管理等。

这一层是操作系统的核心,负责管理和调度系统资源。

3.用户接口层:为用户提供简单友好的界面,解析用户输入的命令并调用内核功能进行处理。

用户可以通过命令行或图形界面与操作系统进行交互。

4. 功能实现4.1 中断处理中断是操作系统与外部设备通信的重要机制,我们的操作系统设计中实现了基本的中断处理功能。

通过在硬件抽象层中捕获和处理硬件的中断信号,内核可以对中断进行相应的处理,保证系统的响应能力和稳定性。

4.2 进程调度进程调度是操作系统中的重要任务之一,它决定了系统如何分配和调度上下文切换。

我们的操作系统设计中实现了一个简单的进程调度算法,通过时间片轮转算法和优先级调度算法来管理多个进程的执行顺序,以提高系统的吞吐量和响应性能。

4.3 内存管理内存管理是操作系统中必不可少的功能,它负责对系统内存的分配和回收。

我们的操作系统设计中实现了基本的内存管理功能,包括内存分区、内存空闲管理和地址映射等。

通过合理的内存管理,可以提高系统的内存利用率和性能。

  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所示:1)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向量,由此形成的资源变化情况如表2所示:④再利用安全性算法检查此时系统是否安全。

3)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)输入的资源请求不能超过系统所有资源数,以及进程所需资源数。

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

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

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

因为这次是一个人一个题目,所以整个课程设计是自己独立完成的。

本次课程设计对银行家算法的实现不同于以往简单的模拟,需要调用Win32的API来创建线程,以及调用Win32 API提供的信号量机制,实现共享数据的并发访问。

这些我以前都没有尝试过,所以一开始不知道怎么下手,这也是本次课程设计中我遇到的最大的问题。

所以在正式编程前我先着重了解了一下这些API的使用,编一些程序去实验这些API的功能作用,再进行银行家算法的编程。

了解了这些API同时也帮助自己对信号量,线程有了更深的认识。

除此之外,在程序中,我们也得强调一下对输入合法性的判断,比如,我们输入的的预申请资源的进程号没有在系统已存在的进程中,或者进程资源数不能为负数等等,我们需要对这些情况进行判断,让程序报错返回重新输入而不是因错误而中断。

通过本次课程设计,我对软件的开发的过程有了较为深入的了解,虽然只是对一个问题的简单实现,但麻雀虽小五脏俱全,我对相关问题的解决已经有了一定的认识,对软件技术这门课程也有了更为透彻的感悟。

本次课程设计,锻炼了我分析问题和解决问题的能力,为今后相关问题的解决积累了宝贵经验,也增强了自己的耐心与自信,受益匪浅。

[参考文献]【1】严蔚敏,吴伟民.数据结构(C语言版).清华大学出版社.1997【2】汤小丹,梁红兵,哲凤屏,汤子瀛.计算机操作系统(第三版).西安电子科技大学出版社.2010.【3】谭浩强.C程序设计(第四版).清华大学出版社.2010.。

相关文档
最新文档