操作系统多进程设计-课程设计

操作系统多进程设计-课程设计

ID:39558209

大小:58.66 KB

页数:9页

时间:2019-07-06

操作系统多进程设计-课程设计_第1页
操作系统多进程设计-课程设计_第2页
操作系统多进程设计-课程设计_第3页
操作系统多进程设计-课程设计_第4页
操作系统多进程设计-课程设计_第5页
资源描述:

《操作系统多进程设计-课程设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、操作系统多进程设计-课程设计操作系统课程设计设计文档一、选题根据本人编程的经验以及对操作系统的了解,决定选取题目一以完成本作业。 (附:题目一的内容)实现UP、DOWN原语产生3个进程:两个进程模拟需要进入临界区的用户进程。当需要进入临界区时,显示:“进程x请求进入临界区…”,同时向管理进程提出申请;申请返回,表示进入了临界区。在临界区中等待一段随机时间,并显示:“进程x正在临界区…”;当时间结束,显示:“进程x退出临界区…”,同时向管理进程提出退出申请;当申请返回,显示:“进程x已退出临界区。”一个进程作为原语的管理进程,接受

2、其他进程的临界区进入请求:如果允许进入,则根据DOWN原语的操作步骤设置相应变量,然后返回;如果不允许进入,则进入循环等待,直到允许为止;退出时模拟UP操作。进程间通信可以采用信号、消息传递、管道或网络通信方式。 二、文档2.1   选题相关原理题目要求建立三个进程,模拟进入临界区,然后用一个进程进行管理。在我们的操作系统,通过信号量进行访问是很常见的保证进程同步的方法。在我们的实验中,我决定用DELPIHI来模拟实现这一过程,具体思路如下:DELPHI程序运行后,主进程(在DELPHI中只有一个进程,但我们可以把线程看作进程)

3、就是我们看到的应用程序,这个程序应该理解是一个原语的管理进程,它可能管理我们的临界区,注意是管理,例如我决定用一个数来模拟临界区,如果该数大于0,那么临界区可用;如果该数小于0,那么临界区不可用;这个数的改变只能由主线程来做到,而其它的线程如果要申请临界区或退出临界区只能通过对主线程进行申请。因此这样设计是符合题目要求的。主要考虑建立以下函数,或功能及数据设计:(由于时间关系,就不画流程图了,但应该很容易理解)1、 主进程部分功能部分:(1)      根据线程的请求分配临界区:如果符合条件(临界区可被申请,而且还有临界区还有资

4、源),那么将该资源分配给申请线程,同时显示一下分配情况;如果不符合条件,那么要求线程等待资源;调功能(3)显示状态信息(2)      根据线程的请求释放临界区:如果正在临界区的线程请求退出,则实现DOWN操作,把信号量置位,把资源置位;调功能(3)显示状态信息(3)      显示GUI状态:如当前的状态,临界区资源的个数等等数据部分:(1)      要创建线程的名称列表,因此就可以创各种线程(绝对不止两个都可以)(2)      模拟临界区资源的一个内存变量,模拟是否使用临界区的另一个内存变量(这是因为事实上的控件都不支持

5、线程内读写)2、 子线程部分功能部分:(1)      申请资源:向主线程申请资源,如果成功,进入资源并利用,如果不成功,循环等待并SLEEP,如果10秒后仍没有资源可利用,线程自动停止(以免死锁)并报错误信息(2)      模拟使用:申请得资源后,随机使用一段时间(3)      申请释放;释放资源要向主进程提供申请,如果成功,那么停止,如果不成功,循环等待并SLEEP,如果10秒后仍没有得到主线程的答复,报错误信息并终止;数据部分:(1)      线程的名称,由线程创建时由主线程指定;(2)      是否申请到资源标志

6、(3)      是否终止标志(因此主线程就可以控制是否将线程终止)(4)      休眠时间:如果申请不到资源或不能申请退出等待的时间(5)      显示的信息列表:显示的信息有“不能申请资源”、“不能退出资源”两种情况(暂这样考虑)根据我们的这个设计,应该是能很好的模拟出题目要求的。 2.2   设计时有关的数据和代码实现数据和代码实现在这里不详述了,其实就是对上面那部分的实现。主要参考书《DELPHI6开发人员指南》;简单的介绍如下所示(请注意区分功能,因为这里不全的,详细信息请参看源代码部分)2.3   最终结果最终结

7、果,是一模拟程序。程序运行状态如下50操作系统多进程设计三、原代码      采用Delphi6.0集成工具开发,语言objectpascal,开发环境P41.8G+384DDR+Windows2000运行并测试成功; unituMain; interface 需要完整内容的请联系,本文免费, type TMain=class(TForm)   GroupBox1:TGroupBox;   lbox:TListBox;   Panel1:TPanel;   StatusBar1:TStatusBar;   GroupBox2:T

8、GroupBox;   btnstartMonitor:TBitBtn;   btnStopMonitor:TBitBtn;   GroupBox3:TGroupBox;   GroupBox4:TGroupBox;   Label3:TLabel;   Lab

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。