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

    操作系统课程设计实验报告

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

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

    操作系统课程设计实验报告

    1、 操作系统课程设计操作系统课程设计 题目名称:题目名称: 读者与写者读者与写者 目录 问题描述34 系统设计59 源代码清单.919 运行结果测试与分析.20 总结与心得.20 一、问题描述 读者与写者问题主要是涉及到操作系统中的进程同步、 互斥以及信号量机制 的概念,可以有多个读者进程同时进行,但是当写者进程到来时,所有的读者进 程都要进入等待状态,而且写者进程只能独立。 实现读者与写者的总体思路是使用多线程,每当一个读者到来时,如果当前 没有写者进程正在进行,则立即开启一个读者线程,如果当前有写者正在进行, 则此读者应当进入等待状态,直到写者进程完成,每当一个写者到来时,若此时 有读者正在

    2、进行,则立即将正在进行的读者设置为等待状态,开启写者进程,并 且当下一个写者到来时,只能进入等待状态,除非当前写者完成。 进程同步与互斥: 进程互斥是多处理机系统中的典型间接作用, 通常是两个或两个以上进程需 要同时访问某个共享变量,在这个程序中此共享变量就是共享文件。我们一般将 发生能够共享变量的程序段称为临界区。两个进程不能同时进入临界区,否则就 会导致数据的不一致,产生与时间有关的错误。我们解决互斥问题时要遵循互斥 和公平两个原则,即任意时刻只允许一个进程进入临界区,且不能让任意进程进 入无限的等待。 进程同步是进程之间的直接作用。简单的理解就是,若有两个进程 A,B, 若只有当 A 进

    3、程完成后 B 进程才能够启动,则说 A 进程与 B 进程是同步的。 实现同步与互斥有多种机制,比如信号量、管程、会合、分布式系统,在这 个程序中简单的用信号量来实现。 信号量 信号量机制是荷兰学者 Dijkstra 于 1955 提出的一种解决进程同步与互斥 的有效工具在此机制中,信号量 S 是一个整数,S 大于等于零代表可供并发 进程使用的资源数, 当S小于零时表示正在等待使用临界区的进程数。 Dijkstra 同时提出了对信号量操作的 PV 原语: P 原语操作动作: (1)、S 减一; (2)、若 S 减一后仍大于或等于零,则进程继续进行。 (3)、若 S 减一小于零,则进程被阻塞后进入

    4、与该信号量相对应的队列 中,然后转进程调度。 V 原语操作动作: (1)、S 加一; (2)、若 S 加一后结果大于零,则进程继续; (3)、若 S 加一后结果小于或等于零,则从该信号的等待队列中唤醒一 等待进程再返回原进程继续执行或转向进程调度。 PV 操作对于每一个进程来说,都只能进行一次,而且必须成对使用。在 PV 执行期间不允许有中断发生。 信号量机制分整型信号量机制、 记录型信号量机制、 and 型信号量机制以及信号量集,在这个程序中使用的是整型信号量机制。 假设共享文件是一个 JTextArea,在这个 JTextArea 中,可以向其写入文件, 也可以从其中读取文件,遵循的原则是

    5、,多个读者可以同时进行,但写者只能单 独进行,而且写者优先。当一个读者到来时,先判断有无写者正在进行,可用一 个布尔变量 bwrite, 当其为 true 时表示有写者正在进行, 表示此时来到的读者只 能进入等待状态。当其为 false 时,表示暂无写者正在进行,来到的读者可以立 即开启。 读者到来:空闲情况下,直接开启一个读者,就是将共享文件中的内容简单 的读取出,并且显示在相应读者的显示框中。当有读者正在进行时,由于多个读 者可以同时进行,因此这种情况下也是立即开启一个读者进程,同时读取。当有 写者正在进行时,由于写者优先,因此到来的读者必须进入等待状态,直到所有 写者进程全部完成。一段时

    6、间后,这个读者应当完成,并且要释放资源,即共享 文件的被引用次数减一。 写者到来:空闲情况下,直接开启一个写者,由于写者只能单独进行,因此 开启一个写者后要将共享区锁住,禁止其他读者或者写者进入。若此前有读者正 在进行,则正在进行的读者马上进入等待状态,进入等待队列,立即将此写者开 启,直到该写者完成,在从等待队列中拿出处于等待的读者继续。若此前有写者 正在进行,则刚到的这个写者要进入等待队列。而且若后面还有读者到来,则当 前写者完成后,要先判断写者等待队列是否为空,若写者等待队列为非空,则应 先唤醒处于等待状态的写者,直到写者等待队列为空,再去唤醒处于等待状态的 读者。 这里要用到两个队列:读者等待队列,写者等待队列。 产生 java.lang.IllegalMonitorStateException 异常:原因是没有注意 notify(),notifyAll(),wait()方法的使用条件, 如果当前的线程不是此对象锁的所有者, 却调用该对象的 notify(),notifyAll(),wait()方法。解决方法是在调用 wait()的方法前 加上 synchro


    注意事项

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




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