




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、工作工作(gngzu)总结总结 存在存在(cnzi)问题问题改进改进(gijn)及讨论及讨论 系统演示系统演示 8567目录二目录二第1页/共17页第一页,共17页。目的(md)及方法 本课程设计通过模拟计算机操作系统中经典的“生产者消费者问题”,巩固在操作系统原理课上所学的知识,加深对操作系统中进程同步和互斥、临界区管理等问题认识和理解,同时又了解了软件设计的流程、方法以及(yj)思想,提高分析设计以及(yj)编程的能力。第2页/共17页第二页,共17页。技术技术(jsh)路线路线生产者生产者消费者消费者多生产者多消费者多生产者多消费者同步同步(tngb)互斥互斥并发并发(bngf)可视化可
2、视化P()()/ V()()多线程多线程Java Swing和和awtThreadJava中的中的wait()和和notify()管程实现管程实现第3页/共17页第三页,共17页。核心技术(1)public class Semaphore /信号量(即P V操作(cozu)的类)private int Value;/信号量值public Semaphore(int semValue)this.Value=semValue;PS:用:用Java中的中的wait()和和notify()模拟模拟(mn)操作系统的操作系统的P/V操作操作public synchronized void p(Strin
3、g s) /P操作(即申请资源)操作(即申请资源)Value-;if(Value0)/没有可用资源没有可用资源trySystem.out.print(+s+进入阻塞队列进入阻塞队列n);frame.a1.append(+s+进入阻塞队列进入阻塞队列n);this.wait(); /因资源不足而阻塞自己因资源不足而阻塞自己/System.out.print(+this.toString()+is waittingn);/*catch(InterruptedException e)类类Semaphore的定义定义和重要方法方法方法模拟操作系统的模拟操作系统的P操作操作public synchron
4、ized void v(String ss)/V操作操作Value+;if(Value0)/判断(pndun)有否发出signal操作的线程 next.v(s1+释放一个因发出signal操作而阻塞自己的线程n);/若有就释放一个/frame.a1.append(释放一个因发出signal操作而阻塞自己的线程n);else mutex.v(s1+离开管程n+开放管程); /否则开放管程 /frame.a1.append(线程即将要离开管程,在离开之前开放管程n); /System.out.print(n离开管程n);第6页/共17页第六页,共17页。核心(hxn)技术(2)续核心(hxn)函数
5、public void Wait(Semaphore x_sem,Count x_count,String s1)x_count.Cvalue+;/等待资源的线程数加等待资源的线程数加1,初始值为,初始值为0System.out.print(Waitn);frame.a1.append(s1+执行执行Wait操作操作 因资源不可用而该线程因资源不可用而该线程 即将即将 阻塞自己!(缓冲区已满或阻塞自己!(缓冲区已满或者者(huzh)已为空)已为空)n在阻塞自己之前,先判断是否有发出在阻塞自己之前,先判断是否有发出signal操作的线程。若有,则释放之。否操作的线程。若有,则释放之。否则准备开放
6、管程。之后便阻塞自己则准备开放管程。之后便阻塞自己 n );if(next_count0)/判断是否有发出判断是否有发出signal操作的线程。因为发出此操作的线程会阻塞自己。操作的线程。因为发出此操作的线程会阻塞自己。next.v(释放一个因发出释放一个因发出signal操作,唤醒了其他线程而阻塞自己的线程操作,唤醒了其他线程而阻塞自己的线程 现在现在n);/若有就释放一个若有就释放一个System.out.print(释放一个发出释放一个发出signal操作的线程操作的线程n);elsemutex.v(没有因发出没有因发出signal操作而阻塞自己的线程,也没有当前线程的可用资源操作而阻塞
7、自己的线程,也没有当前线程的可用资源 在阻塞当前线程之在阻塞当前线程之前先开放管程,让其他线程有机会获得管程前先开放管程,让其他线程有机会获得管程n);/否则开放管程否则开放管程System.out.print(开放管程开放管程n);x_sem.p(s1+线程因没有可用资源(即缓冲区)而线程因没有可用资源(即缓冲区)而);/等待资源的线程阻塞自己,等待资源的线程阻塞自己,X_sem初始化为初始化为0 x_count.Cvalue-;/等待资源的线程数减等待资源的线程数减1第7页/共17页第七页,共17页。核心(hxn)技术(2)续核心(hxn)函数public void Signal(Sema
8、phore x_sem,Count x_count,String s2) frame.a1.append(s2+执行Signal操作 若当前有等待资源的线程则唤醒该线程并阻塞自己。否则唤醒信号丢失n ); if(x_count.Cvalue0)/判断是否有等待资源的线程 System.out.print(Signaln); next_count+;/发出signal操作的线程数加1 x_sem.v(“ 资源可用,唤醒等待资源的线程! (缓冲(hunchng) 区不满或者不空) 现在n);/释放一个等待资源的线程next.p(s2+线程因发出Signal操作阻塞自己,等待已唤醒的线程退出管程或其
9、他 事件 n);/发出signal操作的线程阻塞自己,一旦阻塞,以下的next_count-;将不会执行,等待被其他管程内部事件的唤醒。 next_count-;/发出signal操作的线程数减1 第8页/共17页第八页,共17页。核心技术图示核心技术图示入口(r ku)出口(ch ku)等待(dngdi)进入管程的队列生产者阻塞队列消费者阻塞队列enterwaitsignalleave资源可用具体操作发出signal而阻塞自己的队列YN开关管程唤醒唤醒阻塞阻塞阻塞第9页/共17页第九页,共17页。测试情况测试情况(qngkung)及分析及分析 第10页/共17页第十页,共17页。工作工作(g
10、ngzu)总结总结寒假期间:小组成员共同选定课题项目,商讨开发语言,确定基本的技术路线,由组长完成程序框架及基本结构和类的设计。2月20日2月27:完成了核心程序并进行基本测试,编写出各类中的方法代码。完成方案幻灯片的制作。2月28日3月4日:完善核心程序。完成用户界面程序的编写。3月6日3月7日:完成将各模块函数的组合(zh),成功将核心程序与界面融合。完成算法汇报PPT3月8日:根据老师的要求改用管程实现,完善整体程序。3月9日现在:完成总结汇报PPT,进行进程跟踪测试分析。开始进行设计报告和提优论文的撰写。第11页/共17页第十一页,共17页。存在存在(cnzi)的问题的问题(1 1)对
11、于进程的追踪和管理(gunl)(gunl)尚不到位(2 2)(1 1)对软件开发流程还不熟悉(2 2)从理论到实践还有一定程度的困难第12页/共17页第十二页,共17页。改进改进(gijn)及讨论及讨论(1 1)因为应用JavaJava封装好的方法来阻塞和唤醒进程,不知道其具体实现的方式和管理方式,已经(y jing)(y jing)自定义了一个PCBPCB类尝试跟踪进程,取得一定的效果,但还未完全实现对其管理与控制。(2 2)在课程设计中发现了自身的不足,经过此锻炼,我们逐步熟悉了软件开发流程,也初步学会如何把理论知识转为实际(shj)(shj)应用。第13页/共17页第十三页,共17页。系统系统(xtng)演示演示开始开始(kish)界面:界面:可设置生产者数目(shm),消费者数目(shm)以及缓冲区大小,单击确定即可第14页/共17页第十四页,共17页。系统系统(xtng)演示演示主界面主界面(jimin):可按需要调可按需要调节生产者
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学生评教与反馈实施方案计划
- 静脉治疗报告
- 统编版小学语文二年级下册《语文园地三》精美课件
- 第四单元 《平行四边形的认识》教学设计-2024-2025学年四年级数学上册青岛版(五四学制)
- 养老床位建设服务方案(技术方案)
- 老年骨折手术护理
- 放射科护理相关知识课件
- 培训课件知识产权保护
- 2025年湛江道路客货运输从业资格证模拟考试下载
- 2025年上海货运从业资格证模拟试题答案大全
- GB/T 15970.7-2000金属和合金的腐蚀应力腐蚀试验第7部分:慢应变速率试验
- 中共一大会址
- 制度经济学:05团队生产理论
- 作文格子纸(1000字)
- 刻度尺读数练习(自制)课件
- 四年级下册美术课件 4纸卷魔术|苏少版
- 七年级数学苏科版下册 101 二元一次方程 课件
- ZL50装载机工作装置设计
- 2021年6月浙江省高考读后续写课件-高考英语复习备考
- 小学古诗词80首(硬笔书法田字格)
- 时间单位换算表
评论
0/150
提交评论