云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 操作系统课程设计报告之和尚喝水 孟衡

操作系统课程设计报告之和尚喝水 孟衡

  • 62 次阅读
  • 3 次下载
  • 2025/6/22 0:15:38

学院:专业:

课程设计报告

课程名称:操作系统课程设计

设计题目:进程同步P、V操作模拟—和尚喝水

管理工程学院 信息管理与信息系统

组别:第组

学生姓名:孟衡学号:1141807103 指导教师:张正伟

目录

1需求分析 .................................................................................................. 3 1.1需求概述 ....................................................................................... 3 1.2需求设计 ....................................................................................... 3 2功能设计 .................................................................................................. 4 2.1 实现方案 ...................................................................................... 4 2.2模块说明 ....................................................................................... 5 2.3 操作的流程图 .............................................................................. 6 3开发环境及源程序的主要部分 ............................................................. 7 3.1开发环境 ....................................................................................... 8 3.2源程序............................................................................................ 9 4测试用例,测试过程及情况分析 ....................................................... 10 4.1测试用例 ..................................................................................... 13 4.2测试过程及情况分析 ................................................................. 14 5心得体会 ................................................................................................ 15

2

进程P、V操作模拟设计

——和尚喝水

1需求分析

1.1需求概述

一个寺庙里有小老和尚若干,有一口水井由小和尚挑水入缸给老和尚饮用。水缸可以装10桶水,水取自同一口井,水井口较窄,每次只可容纳一只桶取水,寺庙里一共有3只水桶,每次倒入取用缸中水的量均为1桶,且二者不可同时进行。用P,V操作实现老和尚、小和尚、取水、用水喝水的同步进程控制,水缸水量用semaphore表示,水桶用pail表示,水缸容量用empty表示。

1.2需求设计

以上问题是进程同步的模拟,可以把井中取水、倒水入缸、用水喝水的过程可以看作是一个个进程的操作,这些进程是互斥的,同时也存在一定的同步关系。通过实际编程时来看,就是随机调用其中一个进程的操作,而这些进程的操作相当于程序中的函数调用。而计算机在执行的每一个时刻只能执行一个操作,这就默认了互斥。还有同步模拟是实现函数调用的前提关系,即先决条件。所以这样进程同步模拟就完全能够通过函数的调用来实现。

具体每一个操作对应的函数变量关系: 水井取水:semaphore

小和尚准备取水:mutex1=1

水缸喝水:empty

老和尚用桶喝水mutex2=1 水缸初始量:full=0(最大值10)

3

水桶数量:pail=3

2功能设计

2.1 实现方案

(1)用一个变量full表示没水,初始值为0,当取水时full加1,用水时full减1。变量full=10是最大值,当值为10时表示水缸已经满,此时若进行装水操作,则将处于等待状态;为0时表示水缸无水,此时若进行用水喝水操作,则操作将处于等待状态。

(2)变量mutex1和mutex2分别表示小和尚取水和老和尚喝水,初始都为1,semaphore=mutex1+mutex2。

(3)用6个bool型的变量full_lag,semaphore_lag,mutex1_lag,mutex2_lag empty_lag,psil_lag表示六个进程是否处于等待状态。处于等待时,变量值为true。

(4)若取水、喝水的进程同时处于等待状态时,用水的操作将自动执行等待取水的操作,执行按等待的先后顺序;若水缸满了、桶全用去喝水了的进程同时候处于等待状态时,取水的操作将自动执行等待喝水的操作,按等待的先后顺序进行。

(5)用一个随机的函数产生0—5的6个整数,分别对应六个进程的调用。

2.2模块说明

2.2.1 main函数

用一个随机的函数产生0—5的6个整数,分别对应六个进程的调用,调用时程序

自动输入,本程序共产生了10次随机的调用进程。 .2.2.2 6个进程函数

水井取水:semaphore

4

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

学院:专业: 课程设计报告 课程名称:操作系统课程设计 设计题目:进程同步P、V操作模拟—和尚喝水 管理工程学院 信息管理与信息系统 组别:第组 学生姓名:孟衡学号:1141807103 指导教师:张正伟 目录 1需求分析 .................................................................................................. 3 1.1需求概述 ....................................................................................... 3 1.2需求设计 ......

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com