操作系统课程设计并发进程的模拟
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计说明书题目: 并发进程的模拟
院系:计算机科学与工程
专业班级:
学号:
学生姓名:
指导教师:
2014年 11月 12 日
安徽理工大学课程设计(论文)任务书
2014年11月21日
安徽理工大学课程设计(论文)成绩评定表
I
目录
1问题描述 0
2需求分析 0
3概要设计 (1)
1. P操作 (1)
2. V操作 (2)
3. P,V操作实现进程同步 (3)
4. 功能模块设计 (4)
4详细设计 (6)
1.主界面的设计程序 (6)
2.进程Pa的执行 (7)
3.进程Pb的执行 (8)
4.进程Pc的执行 (8)
5.按钮的执行 (9)
5 调试的分析与运行结果 (10)
6 设计体会 (12)
参考文献 (13)
1问题描述
在进程并发执行的过程中,进程之间存在协作的关系,例如,有互斥、同步的关系。该课程设计的是了解进程同步的概念,理解信号量机制的原理,掌握运用信号量解决进程并发控制问题的方法,进而学会运用进程的同步,利用信号灯的P,V操作实现三个进程的同步。这三个进程的同步关系如下:
从上图中可以看出:任务启动后pa先执行,当它结束后,pb、pc可以开始执行,pb、pc 都执行完毕后,任务终止;设两个同步信号灯sb、sc分别表示进程pb和pc能否开始执行,其初值均为0。
在现代操作系统中,有大量的并发进程在活动,它们都处在不断的申请资源,使用资源以及其它进程的相互制约的活动中,这些进程什么时候停止运行,什么时候该继续向前推进,应根据事先的约定来规范它们的行为,这时我们可以根据同步信号灯来实现进程的同步协调工作。例如本题中,只有pa进程顺利的进行完,Pb,Pc这两个进程才能正常的进行。如果进程Pa在进行中出现停止或中断,则Pb和Pc是不会顺利的完成的;而进程Pb,Pc这两个进程是并行执行的,两个进程的进行是互不干扰的,只要进程Pa完成后,进程Pb和Pc才会正常执行,否则只有处在等待就绪中。
2需求分析
进程执行的并发性的意义是关于一组进程的执行在是时间上是重叠的,从宏观上看,并发性反应的是一个时间段中几个进程都在同一个处理器上,处于运行还未运行结束状态。从微观上看,任何一个时刻仅有一个进程在处理器上运行。并发的实质是一个处理器在几个进程之间的多路复用,并发是对有限的物理资源强制行驶多用户共享,消除计算机部件之间的乎等现象,以提高系统资源利用率。
并发进程分为无关的和交往的,无关的并发进程是一组并发进程分别在不同的变量集合上操作,一个进程的执行与其他并发进程的进展无关。引入进程是为了更好的解决实际中存在的竞态问题,进程同步的主要任务是对多个相关的进程在执行次序上进行协调,以便并发执行的诸进程之间能有效的共享资源和相互合作,从而使执行更具有可再现性。利用进程同步可以更好地解决生活中有先后执行顺序的问题,进程的交往包括金正与写作,多个进程之间彼此相关或者是无关,二资源金正的两个控制问题一个是死锁(Deadlock)问题,一个是饥饿(Starvation)问题,系统中既要解决饥饿问题,又要解决死锁问题。解决进程间的竞争关系(简介制约关系)的手段是进程互斥,进程互斥指的的就是资源的共享问题,以往内在同一时刻最多允许一个进程使用,其他进程必须等待,我们这个任务所需要的就是先执行其中的一个任务,在结束之后进行另外的进程。所以我们解决这个问题的同时学习并发进程。
3概要设计
1.P操作
对信号灯的P操作记为P(s)。P(s)是一个不可分割的原语操作,即取信号灯值减一,若相减结果为负,则调用P(s)的进程被阻,并插入到信号灯的等待队列中,否则可以继续执行。
P操作的主要动作:
a)s值减一;
b)若相减结果大于或等于0,则进程继续执行;
c)若相减结果小于0,则进程被封锁,并将它插入到该信号灯的等待队列
中,然后转进进程调度程序。
P操作的流程图:
1
2.V操作
对信号灯的V操作记为V(s)。V(s)一个不可分割的原语操作,即取信号灯值加1,若相加结果大于0,进程继续执行,否则,唤醒在信号灯等待队列上的一个进程。
V操作的主要动作
a)s值加一;
b)若相减结果大于0,则进程继续执行;
c)若相减结果小于或等于0,则从该信号灯的等待队列中移出一个进程,解除它的等待状态,然后返回本进程继续执行。
V操作的流程图:
3.P,V操作实现进程同步
(1)编程用信号灯的p、v操作实现这三个进程的同步。
(2)任务启动后pa先执行,当它结束后,pb、pc可以开始执行,pb、pc 都执行完毕后,任务终止。
(3)设两个同步信号灯sb、sc分别表示进程pb和pc能否开始执行,其初值均为0。其题目的算法描述如下:
3
4.功能模块设计
本实验用JAVA语言实现
(1)在Frame工程中新建一个ThreadProcess类,定义一些静态变量;主函数main()中定义一个ThreadFrame类,并构造一个对象thFrame,通过调用函数将界面,窗口展示出来;创建三个线程threadPa, threadPb, threadPc。
(2)ThreadFrame类继承JFrame类,设置每个界面的长宽,调用类方法ThreadFrame()显示一些信息。
(3)threadPanel类继承JPanel类,调用paintComponent()方法设置进程长宽以及字体等,还有threadPanel()类方法设置进程前景与背景颜色,从而展示出进程动态变化,重要一点是开始Start和暂停Stop按钮设置,控制进程开始与暂停效果。