欢迎来到毕设资料网! | 帮助中心 毕设资料交流与分享平台
毕设资料网
全部分类
  • 毕业设计>
  • 毕业论文>
  • 外文翻译>
  • 课程设计>
  • 实习报告>
  • 相关资料>
  • ImageVerifierCode 换一换
    首页 毕设资料网 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    操作系统课程设计 (4)

    • 资源ID:1396030       资源大小:129.50KB        全文页数:11页
    • 资源格式: DOC        下载积分:100金币
    快捷下载 游客一键下载
    账号登录下载
    三方登录下载: QQ登录
    下载资源需要100金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。

    操作系统课程设计 (4)

    1、 1 设计设计 1 1 题目题目 进程同步(读者进程同步(读者- -写者问题)写者问题) 一、一、问题描述与分析问题描述与分析 一个数据文件或记录, 可被多个进程共享, 我们把只要求读该文件的进程 称为“Reader”进程,其他进程则称为“Writer 进程”允许多个进程同时读 一个共享对象,因为读操作不会使数据文件混乱。但不允许一个 Writer 进程 和其他Reader进程或Writer进程同时访问将会引起混乱。 所谓读者写者问题, 是指保证一个 writer 进程必须与其他进程互斥地访问共享对象的同步问题。 读者写者问题可以这样的描述, 有一群写者和一群读者, 写者在写同一本 书,读者也

    2、在读这本书,多个读者可以同时读这本书,但是,只能有一个写者 在写书,并且,读者必写者优先,也就是说,读者和写者同时提出请求时,读 者优先。当读者提出请求时需要有一个互斥操作,另外,需要有一个信号量 S 来当前是否可操作。 二、二、设计要求和目的设计要求和目的 1.设计要求设计要求 通过解决读者写者问题实现进程同步。 即(1)实现写-写互斥,(2)读-写互斥(3)读-读允许(4)写者优先 2. 设计设计目的目的 (l).用信号量来实现读者写者问题,掌握进程同步机制及其实现机理。 (2).理解和运用信号量、PV 原语、进程间的同步互斥关系等基本知识。 三三、背景知识背景知识 1.参考操作系统课本中

    3、关于进程同步这方面的知识以及结合老师上课的 讲解,仔细研究利用信号量实现读写者问题。读者写者问题的定义如下:有一 个许多进程共享的数据区,这个数据区可以是一个文件或者主存的一块空间; 有一些只读取这个数据区的进程(Reader)和一些只往数据区写数据的进程 2 (Writer),此外还需要满足以下条件: (1) 任意多个读进程可以同时读这个文件; (2) 一次只有一个写进程可以往文件中写; (3) 如果一个写进程正在进行操作,禁止任何读进程度文件。 我们需要分两种情况实现该问题: 读优先: 要求指一个读者试图进行读操作时, 如果这时正有其他读者在进 行操作,他可直接开始读操作,而不需要等待。

    4、写优先: 一个读者试图进行读操作时, 如果有其他写者在等待进行写操作 或正在进行写操作,他要等待该写者完成写操作后才开始读操作。 本实验主要实现的是写者优先。 2.去图书馆借了对此方面有所介绍的书籍, 从网上查询解决设计过程中遇 到的疑难问题,实现设计功能。 如进程的创建 pcbCount = new PCB();/申请进程控制块 pcbCount.Id = Count+1; pcbCount.Name = “读者 1“; sequnce.add(pcbCount); Count+; 实现创建读者进程 四、四、概要设计概要设计 1. 为了实现读者和写者的读写过程,将每个读者和每个写者作为了一个

    5、单独 的线程,所以设置了两个类,一个是读者类 Reader,一个是写者类 Writer. 2. 为了实现读者写者之间的写-写互斥,读-写互斥,读-读允许,需要另外一个 类 Database,类中分别用关于读者的方法和写者的方法来控制读写之间的这 种关系. (1)创建读写者类 3 public class Reader extends Thread 创建读者类 public class Writer extends Thread 创建写者类 (2)分别设置写者、读者的两个方法,开始写和结束写开始读和结束读 public synchronized int startRead()开始读 public

    6、 synchronized int endReading()结束写 public synchronized void startWriting()开始写 public synchronized void endWriting()结束读 方法中用读者布尔变量dbReading和写者布尔变量dbWriting控制读写者之间 的关系,具体的控制过程在详细设计中会体现 (3)在操作系统总的 main类中为读者写者创建进程。 pcbCount = new PCB();/申请进程控制块 创建读者进程 pcbCount.Id = Count+1; pcbCount.Name = “读者 1“; sequnce.add(pcbCount); Count+; pcbCount = new PCB();/申请进程控制块 创建写者进程 pcbCount.Id = Count+1; pcbCount.Name = “写者 1“; sequnce.add(pcbCount); Count+; 五、五、详细设计详细设计


    注意事项

    本文(操作系统课程设计 (4))为本站会员(毕****文)主动上传,毕设资料网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请联系网站客服QQ:540560583,我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们
    本站所有资料均属于原创者所有,仅提供参考和学习交流之用,请勿用做其他用途,转载必究!如有侵犯您的权利请联系本站,一经查实我们会立即删除相关内容!
    copyright@ 2008-2025 毕设资料网所有
    联系QQ:540560583