- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
w@
燕山大学课程设计说明书课程设计名称:操作系统
题目:多道程序缓冲区协调操作
班级:
开发小组名称:OS同行
课题负责人:王喆w@
课题组成员:
课题开发日期:2016年11月
第1页共17页
w@
目录
1概述 3
1.1设计背景 3
1.2设计目的 3
1.3主要完成的任务 3
1.4使用的开发工具 3
1.5解决的主要问题 4
2使用的基本概念和原理 4
2.1多道程序 4
2.2信号量: 4
2.3线程 4
2.4进程: 4
2.5进程同步 5
2.6进程互斥 5
2.7进程调度 5
2.8死锁 5
2.9死锁的起因 5
2.10银行家算法避免死锁 5
3总体设计 6
3.1总体结构、模块关系、总体流程 6
3.2基本技术路线 6
3.2.1面向对象程序设计 6
3.2.2Java多线程 6
3.2.3JavaGUl(用户图形界面) 7
4详细设计 7
4.1线程(PV操作) 7
4.2Java多线程 7
4.2.1Java实现线程同步时的常用方法 7
4.2.2Java线程相关类库 7
4.2.3JAVA线程调度函数: 8
1、调整线程优先级 8
2、线程睡眠 8
3、线程等待 8
4、线程让步 8
5、线程加入 8
6、线程唤醒 8
4.2.4Java线程函数实现的线程生命周期: 9
4.3Java界面实现 9
4.3.1JavaGUl相关类库 9
4.3.2建立图形用户界面: 10
4.3.3布局管理器 10
4.3.4图形用户界面的行为事件 11
2.事件产生和处理的流程 12
第2页共17页
w@
3.事件处理的过程 12
4.4程序界面和运行状态 13
4.5运行结果 13
4.6代码展示 14
5总结 16
第3页共17页
w@
1概述
1.1设计背景
1.2设计目的
(1)掌握信号量的基本概念及PV操作的原理;
(2)进一步熟悉信号量解决的经典问题;
(3)利用信号量的原理结合其他方法以及编程语言实现线程同步互斥问题。
1.3主要完成的任务
有多个PUT操作要不断循环地向Bufferl送字符数据,有Move1操作不断地将Buffer1的数据取到Buffer2,Move2操作不断地将Bufferl的数据取到Buffer3,有多个GET操作要不断地从Buffer2和Buffer3中取数据。PUT、MOVE、GET每次操作一个数据,为了在操作的过程中要保证数据不丢失,每个Buffer每次只能接受一个PUT或一个Move或一个
Get。运用进程同步和互斥机制设计一个多道程序完成上述操作。
Move1
Buffer2
Put
Buffer1
Move2Buffer3
Move2
图1.1流程图
Get1
Get2
利用线程之间的同步互斥工具,通过设置BUFFER1、BUFFER2、BUFFER3的容量,来协调PUT、MOVE、GET这三种线程(5个具体线程);同时利用图形界面把线程的就绪、阻塞
(等待)、执行的状态以及同步互斥的过程用图形动态的显示出来。
1.4使用的开发工具
主语言:Java:jdk1.8.0_92
开发平台:Eclipseneon、Myeclipse2016CI7(bling版)、windows10
第4页共17页
w@
项目版本控制:SVN
1.5解决的主要问题
(1)可以随机产生字符数据,由put操作放入Buff1,buffer中容量单位是字符。
(2)提供良好图形界面,显示Buffer的操作过程。
(3)可以设定各Buffer的容量、PUT、GET、Move操作的个数;
(4)可以设定PUT、GET、Move操作的速度;
(5)实时显示每个Buffer中数据的个数和数据的内容,空闲Buffe
文档评论(0)