- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统多线程同步与互斥课程设计报告
燕山大学课程设计说明书课程设计名称:操作系统 题目:多道程序缓冲区协调操作班级:14计算机科学与技术1班 开发小组名称:砺剑编码小组 课题负责人:刘 课题组成员:刘14计算机1班 A 14计算机1班 B 14计算机1班 B 14计算机1班 C课题开发日期:2016.12.19-2016.12.301.概述1.1目的通过运用操作系统基本原理, 解决进程同步控制;实现多道程序缓冲区协调操作设计,了解多线程的创建,运行原理;通过信号量机制的运用了解各线程间的协调工作机制;通过界面编程,熟练掌握可视化编程工具的能力;独立完成项目的需求分析和总体设计、详细设计,提升软件工程能力。1.2主要完成的任务如下图1所示,有多个PUT操作要不断循环地向Buffer1送字符数据,有Move1操作不断地将Buffer1的数据取到Buffer2,Move2操作不断地将Buffer1的数据取到Buffer3,有多个GET操作要不断地从Buffer2和Buffer3中取数据。PUT、 MOVE、 GET每次操作一个数据,为了在操作的过程中要保证数据不丢失,每个Buffer每次只能接受一个PUT或一个Move或一个Get。运用进程同步和互斥机制设计一个多道程序完成上述操作。图1 Buffer操作基本功能要求:(1) 可以随机产生字符数据,由put操作将数据放入Buff,buffer中容量单位是字符;(2)提供良好图形界面,显示Buffer的操作过程,可以暂停和继续系统的执行;(3) 可以设定各Buffer的容量、PUT、GET、Move操作的个数;(4) 可以设定PUT、GET、Move操作的速度;(5) 实时显示每个Buffer中已放入的数据和数据个数,当前Buffer中数据的个数和数据的内容,空闲Buffer的空间的个数;(6) 实时显示线程、进程所处于等待(阻塞)状态的个数;(7)程序运行结束,显示汇总数据,如:总的运行时间;Buffer中数据的个数;已放入BUFFER的数据个数;已取出的数据个数;平均每个buffer中的数据个数。(8)能够将每次的实验输入和实验结果存储起来,下次运行时或以后可查询。1.3使用的开发工具 操作系统:Window10开发语言:Java开发环境:NetBeans IDE 8.11.4解决的主要问题(1)界面的设计;(2)界面显示各个buffer的模拟put字符,move字符和get字符操作;(3)线程间的同步和互斥问题;(4)各个线程状态的控制;(5)设置的速度、容量等参数的传递问题。2.使用的基本概念和原理2.1线程线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行。线程基本上是轻量级的进程,它负责在单个程序里执行多任务。2.2多线程通常由操作系统负责多个线程的调度和执行。多线程是这样一种机制,它允许在程序中并发执行多个指令流,每个指令流都称为一个线程,彼此间互相独立。线程又称为轻量级进程,它和进程一样拥有独立的执行控制,由操作系统负责调度。2.3信号量信号量是一个在一定范围内变化的整形数据,用来表示一种临界资源,线程通过信号量的值来确定自己的状态是执行还是挂起,各线程间也是通过信号量机制来协调运行顺序一起完成任务。2.4同步与互斥(1)进程同步进程同步是进程之间直接的制约关系,是为完成某种任务而建立的两个或多个线程,这个线程需要在某些位置上协调他们的工作次序而等待、传递信息所产生的制约关系。进程间的直接制约关系来源于他们之间的合作。(2)进程互斥进程互斥是进程之间的间接制约关系。当一个进程进入临界区使用临界资源时,另一个进程必须等待。只有当使用临界资源的进程退出临界区后,这个进程才会解除阻塞状态。3.总体设计3.1 基本的技术路线本课程设计使用面向对象的编程语言Java,应用Java的多线程编程技术,模拟各个缓冲区之间的动作。3.2软件的总体结构、模块关系、总体流程3.2.1总体结构图2总体结构3.2.2模块关系本课程设计共创建8个类,可分为三个模块分别是界面模块,共享资源模块和Runnable接口类模块。8个类分别为主界面类Main_win,结果统计输出界面Result_win,共享资源类BUFFER,以及实现Runnable接口的5个类:BUFFER_PUT、BUFFERT_MOVE、BUFFERTH_MOVE、BUFFERT_GET、BUFFERTH_GET。各模块关系可用下图表示图3 模块关系3.2.3总体流程图4 总体流程3.3创立的线程(1)据BUFFER_PUT类建立的线程体buffer1,通过buffer1建立两个线程t11、t12,模拟多个put操作。(2)据BUFFERT
有哪些信誉好的足球投注网站
文档评论(0)