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

    操作系统原理课程设计读者-写者问题的实现

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

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

    操作系统原理课程设计读者-写者问题的实现

    1、 * 实践教学实践教学 * 计算机与通信学院 2012 年秋季学期 操作系统原理操作系统原理课程设计课程设计 题 目: 读者-写者问题的实现 专业班级: 姓 名: 学 号: 指导教师: 成 绩: 1 目录目录 摘 要 . 2 1 设计思想 . 3 2 各模块的伪码算法 . 4 3. 函数关系调用图 . 6 4 程序测试结果 . 7 设计总结 10 参考文献 11 致 谢 12 2 摘摘 要要 本设计的读者写者问题,是指一些进程共享一个数据区。数据区可以使一个 文件、一块内存空间或者一组寄存器。Reader 进程只能读数据区中的数据,而 writer 进程必须与其他进程互斥地访问共享对象的同步问

    2、题。 读者写者问题可以这样的描述, 有一群写者和一群读者, 写者在写同一本 书, 读者也在读这本书, 多个读者可以同时读这本书。但是,只能有一个写者在 写书, 并且,读者必写者优先,也就是说, 读者和写者同时提出请求时,读者优先。 当读者提出请求时需要有一个互斥操作, 另外, 需要有一个信号量 S 来确定当 前是否可操作。 本设计方案就是通过利用记录型信号量对读者写者问题的解决过程进行模 拟演示,形象地阐述记录型信号量机制的工作原理。 关键词关键词:共享对象,互斥,同步,信号量 3 1 1 设计思想设计思想 本设计借助 C 语言实现进程同步和互斥的经典问题-读者写者问题, 用高级 语言编写和调

    3、试一个进程同步程序,以加深对进程同步机制的理解。通过用 C 语言模拟进程同步实现,加深理解有关进程同步和互斥机制的概念及 P、V 操作 的应用。学生通过该题目的设计过程,掌握读者、写者问题的原理、软件开发方 法并提高解决实际问题的能力。 在 Windows 环境下,创建一个包含 n 个线程的控制台进程。 用这 n 个线每个 线程按相应测试数据文件的要求,进行读写操作。程来表示 n 个读者或写者。 请用信号量机制分别实现读者优先和写者优先的读者-写者问题。 将所有的读者和所有的写者分别放进两个等待队列中,当读允许时就让读 者队列释放一个或多个读者,当写允许时,释放第一个写者操作。 读者-写者的读

    4、写限制(包括读者优先和写者优先) 1)写-写互斥,即不能有两个写者同时进行写操作; 2)读-写互斥,即不能同时有一个读者在读,同时却有一个写者在写; 3)读读允许,即可以有 2 个以上的读者同时读; 4)读者优先附加条件:如果一个读者申请进行读操作,同时又有一个读操 作正在进行读操作,则该读者可以直接开始读操作; 5)写者优先附加条件:如果一个读者申请进行读操作时已经有一个写者在 等待访问共享资源,则该读者必须等到没有写者处于等待状态后才能开始读操 作。 4 2 2 各模块各模块的伪码算法的伪码算法 读者优先算法:读者优先算法: 设置两个互斥信号量: rwmutex 用于写者与其他读者/写者互

    5、斥的访问共享数据 rmutex 用于读者互斥的访问 读者计数器 readcount semaphore rwmutex=1, rmutex=1; int readcount = 0; reader i /读者进程 i=1,2,. do P(rmutex); /读者互斥 readcount+; /读者数加 1 if (readcount = 1) P(rwmutex); /读者写者互斥 V(rmutex); 读者读数据; P(rmutex); Readcount-; if (readcount = 0) V(rwmutex); V(rmutex); while(1); writer j /写者进

    6、程 j = 1,2,. do P(rwmutex); 写文件; V(rwmutex); while(1); 写者优先算法:写者优先算法: 设置三个互斥信号量: rwmutex 用于写者与其他读者/写者互斥的访问共享数据 rmutex 用于读者互斥的访问 读者计数器 readcount nrmutex 用于写者等待已进入读者退出,所有读者退出前互斥写操作 semaphore rwmutex= 1,rmutex= 1,nrmutex= 1; 5 int readcount = 0; reader i /读者进程 i=1,2,. do P(rwmutex); P(rmutex); readcount+; if (readcount = 1) P(nrmutex); /


    注意事项

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




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