120240035黄乾-操作系统设计说课.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE  PAGE 12 北京化工大学北方学院 课程设计报告 课程名称 操作系统课程设计 设计题目 读者与写者问题 专业、班级 自控1202 学 号 120240035 姓 名 黄乾 指导教师 韩海花 设计时间 2015.10.19——2015.11.06 2015年 11 月 6 日 引言(简要说明设计题目的目的、意义、内容、主要任务等) 目的 在计算机知识当中,操作系统是一门尤为重要的课程,但是由于课程的特殊性,导致这门课程理论知识十分复杂,而且不太容易理解和接收,为了更深刻的理解操作系统的知识,更深入的去学习,能运用计算机知识解决实际问题,就需要我们平时不断的练习以提高自己的水平,通过课程设计,能使我们充分理解和学习计算机的相关知识以及运用,为我们以后的学习和生活打下坚实的基础。 意义 此次课程设计,我选择的是“读者与写者问题”,这个问题在计算机上很常见,即多个进程一起去访问同一个资源的问题,考察我们对多线程的理解和接受能力,同时也考察了我们对“临界资源”,线程的同步互斥关系这些基本概念的理解,能够加深我们对操作系统运行的了解程度,能够在一定程度上解决我们生活中常见的问题,并且通过解决问题,能使我们学习到解决问题的能力,为以后的学习生活打下基础。 通过模拟实现读者-写者问题,能更加深刻的理解操作系统的问题,了解多线程的知识,通过在实现中解决的问题,帮助我们学习更多的知识,为以后的工作和学习都有很大的帮助。 内容 用高级语言编写和调试一个采用写优先策略的读者写者问题的模拟程序。此报告主要描述了解决问题时用到的技术,算法分析,设计说明等。通过对程序的分析,说明和解释,使读者能一目了然,能够通过此文档正确的分析问题,解决问题,对具体的问题解决提出了一个可行的方案。 主要任务 通过自己的能力,采用高级编程语言,模拟读者-写者问题,提高自己解决问题的能力,提升自身的水平。并且学习操作系统的相关知识,能运用自己的能力独立解决问题,学习解决问题的能力,为以后的学习生活打下基础。正文(课程设计的主要内容,包括实验与观测方法和结果、仪器设备、计算方法、编程原理、数据处理、设计说明与依据、加工整理和图表、形成的论点和导出的结论等。正文内容必须实事求是、客观真切、准确完备、合乎逻辑、层次分明、语言流畅、结构严谨,符合各学科、专业的有关要求。) 1. 需求分析 (1)分析 本次课题需要用到的知识有多线程编程等知识。本次涉及到的读者-写者问题采用的是写者优先的方案,写者优先的设计思想是在一个写者到达时如果有正在工作的读者,那么该写者只要等待正在工作的读者完成,而不必等候其后面到来的读者就可以进行写操作。而且该算法当一个写者在等待时,后到达的读者是在写者之后被挂起,而不是立即允许进入。 为了达到我们的目的,我们在程序中要设置一个专门针对写者的标志位,由这个标志位以及其他条件共同维持进程资源的分配。 (2)描述 编程模拟读者与写者问题,要求显示结果。 ① 多个进程共享一个文件,其中只读文件的称之为读者,其余只写文件的称为写者。读者可以同时读,但是写者只能独立写。 ② 对①修改,使得它对写者优先,即一旦有写者到,后续的读者都必须等待,而无论是否有读者在读文件。 (3)课题描述 本次课程设计的主要内容是模拟读者-写者问题,读者-写者问题时一个经典的进程间同步的问题,计算机系统中的数据(文件、记录)常被多个进程共享,但其中某些进程可能只要求读数据,另一些进程则要求修改数据,这时就出现了一个问题,就是进程之间如何分配资源的问题,如何合理的让这些进程使用这些“共同的资源”,避免出现某些进程“霸占”资源,而某些进程长期得不到资源的现象。其中,进程分配有三种方式:①写者优先②读者优先③公平竞争。本次课题是根据“写者优先”的方式解决这个问题的。 2. 系统设计 (1)概要设计 该程序算法主要集中解决读者写者对资源分配的问题上。 ①本次课程设计使用Java语言来完成,根据题目分析,同一时间,只能有一个读者或写者能够占用资源,所以在某个进程或线程正在占用资源的时候,要对该资源“上锁”,所以在运行程序时,要保证该资源在运行时JVM中只有一个资源实例,即要保证单例。 ②在保证单例的情况下,还要配合使用Java的synchronized关键字,来保证多个线程运行时,只能有一个线程占用该对象。 (2)详细设计 读者开始读取:{ while(当前没有写者){ 挂起线程; }

您可能关注的文档

文档评论(0)

舞林宝贝 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档