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

    和尚挑水问题课程设计

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

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

    和尚挑水问题课程设计

    1、 课 程 设 计 书 学学 院院 计算机学院 专专 业业 计算机科学与技术 班班 级级 课课 程程 题题 目目 和尚挑水问题和尚挑水问题 教教 师师 学学 生生 I 摘 要 Linux 是一类 Unix 计算机操作系统的统称,也是自由软件和 开放源代码发展中最著名的例子。 Linux作为一个免费、 自由软件, 内核版本不断升级。新的内核修订了旧内核的 bug,并增加了许多 新的特性。同时也使得 Linux系统更加稳定、更加安全,进一步满 足用户的功能需求。 Linux 中的信号量(semphore)是一种资源锁,如果有一个任 务试图获得一个已经被占用的信号量时,信号量会将其推到一个 等待队列中

    2、,这时处理器会重获自由从而去执行其它代码,当持 有信号量的进程将信号量释放后,处于等待队列中的那个任务将 会被唤醒,并将获得该信号量。信号量是一种对多个进程访问共 享资源进行控制的机制,其实为了解决互斥共享资源的同步问题 而引入的机制。不能单独定义一个信号量,而只能定义一个信号 量集,其中包括一组信号量,同一信号量集中的信号量使用同一 引用 ID,这样设置是为了多个资源或同步操作的需要。 关键词:信号量,同步,互斥 II 目 录 1 课程设计的目的及要求1 1.1 课程设计的目的 . 1 1.2 课程设计的要求 . 1 2 准备工作2 2.1 硬件及软件需要 . 2 2.2 了解信号量及信号量

    3、的系统调用函数: 2 2.2.1信号量定义 2 2.2.1信号量集得创建与打开 semget().3 2.2.2信号量的操作 semop().4 2.2.3信号量的控制 semctl().6 3 需求分析7 4 整体设计8 4.1 概要设计 8 4.2 程序流程图及运行结果 . 8 实验结果.14 总 结.15 参考文献.16 附 录.17 1 1 课程设计的目的及要求 1.1 课程设计的目的 某寺庙中有小和尚、老和尚若干人。庙内有一水缸,由小和 尚提水入缸,供老和尚饮用。水缸可容纳 30 桶水,每次入水、 取水仅为 1 桶,不可同时进行。水取自同一水井,水井路窄,每 次只能容纳一个水桶取水,

    4、设水桶个数为 5 个。和尚挑水问题就 是使用某种机制,能够使得若干名老和尚可以顺利地喝到水,若 干名小和尚之间能够有条不紊地往水缸中入水。 本课程设计的目的是使用 Linux 的信号量机制编程解决和尚 挑水问题,通过本课程设计掌握 Linux 进程创建的方法,掌握信 号量的使用方法。 1.2 课程设计的要求 本课题所设计的系统要求实现以下功能。 编写 2 个程序,程序 1 创建 3 个子进程,分别编号 A、B、 C, 用于模拟 3 名老和尚; 程序 2 创建 3 个子进程, 分别编号 C、 D、E,用于模拟 3名小和尚。通过向屏幕输出语句模拟取水过程, 如输出“目前水缸水量为 10 桶”表示目

    5、前水缸中有存水 10桶; 输出“小和尚取水成功”表示从水井中成功取到 1 桶水;输出 “小和尚倒 1 桶水到水缸中”表示小和尚将 1 桶水倒入水缸 中。通过观察输出语句,可以发现执行过程是否发成冲突。 使用 Linux 的信号量机制,编写解决和尚挑水问题的代码。 要求给出编译所用到的 makefile 文件。 2 2 准备工作 2.1 硬件及软件需要 CentOS6.4 gcc 编译器 vim 编辑器 2.2 了解信号量及信号量的系统调用函数: 2.2.1 信号量定义 最简单的信号量是一个只有 0 与 1 两个值的变量,二值信号 量。这是最为通常的形式。具有多个正数值的信号量被称之为通 用信号

    6、量。在本章的其余部分,我们将会讨论二值信号量。 P 与 V 的定义出奇的简单。假定我们有一个信号量变量 sv, 两个操作定义如下: P(sv) 如果 sv 大于 0,减小 sv。如果 sv 为 0,挂起这个进程的 执行。 V(sv) 如果有进程被挂起等待 sv,使其恢复执行。如果没有进行 被挂起等待 sv,增加 sv。 信号量的另一个理解方式就是当临界区可用时信号量变量 sv 为 true, 当临界区忙时信号量变量被 P(sv)减小, 从而变为 false, 当临界区再次可用时被 V(sv)增加。注意,简单的具有一个我们可 以减小或是增加的通常变量并不足够,因为我们不能用 C,C+或 是其他的编程语言来表述生成信号,进行原子测试来确定变量是 否为 true,如果是则将其变为 false。这就是使得信号量操作特 殊的地方。 3 信号量函数定义如下: #include intsemctl(intsem_i


    注意事项

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




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