没有合适的资源?快使用搜索试试~ 我知道了~
首页读者与写者算法C++的实现
读者与写者算法C++的实现
![](https://csdnimg.cn/release/wenkucmsfe/public/img/star.98a08eaa.png)
读者-写者问题的读写操作限制如下: 写-写互斥:不能有两个写者同时进行写操作 读-写互斥:不能同时有一个线程在读,而另一个线程在写。 读-读允许:可以有一个或多个读者在读。
资源详情
资源推荐
![](https://csdnimg.cn/release/download_crawler_static/3026159/bg1.jpg)
计算机科学与技术学院
操作系统课程设计报告
读者与写者算法的实现
![](https://csdnimg.cn/release/download_crawler_static/3026159/bg2.jpg)
目 录
第 1 章 课程设计简介.......................................................................................................................1
1.1 本课程设计题目...................................................................................................................1
1.2 本课程设计要求及任务.......................................................................................................1
1.3 课程设计思想.......................................................................................................................1
1.5 软硬件开发环境...................................................................................................................2
1.6 开发工具...............................................................................................................................2
第 2 章 概要设计...............................................................................................................................2
2.1 数据结构分析.......................................................................................................................2
2.2 模块设计...............................................................................................................................3
第 3 章 详细设计...............................................................................................................................3
3.1 算法实现流程图...................................................................................................................3
3.2 设计程序...............................................................................................................................6
第 4 章 调试与操作说明.................................................................................................................14
第 5 章 课程设计总结与体会.........................................................................................................16
第 6 章 致 谢....................................................................................................................................17
![](https://csdnimg.cn/release/download_crawler_static/3026159/bg3.jpg)
操作系统课程设计 读者与写者算法的实现
第 1 章 课程设计简介
1.1 本课程设计题目
读者与写者算法的实现
1.2 本课程设计要求及任务
在 Windows2000 环境下,创建一个控制台进程,此进程包含 n 个线程。用这 n 个线程
来表示 n 个读者或写者。每个线程按相应测试数据文件的要求进行读写操作。
用信号量机制分别实现读者优先和写者优先问题。
读者-写者问题的读写操作限制如下:
写-写互斥:不能有两个写者同时进行写操作
读-写互斥:不能同时有一个线程在读,而另一个线程在写。
读-读允许:可以有一个或多个读者在读。
读者优先的附加限制:如果读者申请进行读操作时已有另一个读者正在进行读操作,
则该读者可直接开始读操作。
写者优先的附加限制:如果一个读者申请进行读操作时已有另一个写者在等待访问共
享资源,则该读者必须等到没有写者处于等待状态后才能开始读操作。
运行结果显示要求:要求在每个线程创建、发出读写申请、开始读写操作和结束读写
操作时分别显示一行提示信息,以确定所有处理都遵守相应的读写操作限制。
1.3 课程设计思想
根据题目要求,首先分析了以下 4 种可能发生的情况:
第 1 种情况: 读者的优先权比写者高,而且,不用调配。
所有读者的优先权都比写者的优先权高,而且,不用调配。一个读者需要等待的唯一情
况是,一个写者已经占用了文件。一个写者可以取得文件的条件是,没有一个读者处在
等待状态或正在读文件。允许读者们结盟,以便能长期占用文件,而禁止写者的写。
第 2 种情况: 在一个读者已经占有了文件的时候,全体读者的优先权才比写者高。
在没有任何一个读者在读文件时,读者的优先权和写者的优先权相同。相反,如果有一
个读者正在读文件,则其余的各读者都可以读文件,而不管有多少写者处在等待状态。
所有读者都有权结盟,以便垄断文件。
第 3 种情况: 写者的优先权比读者的优先权高。
第 1 页
![](https://csdnimg.cn/release/download_crawler_static/3026159/bg4.jpg)
操作系统课程设计 读者与写者算法的实现
在一个写者提出要访问文件时,就必须使其尽可能的得到文件,而且不用调配。也就是
说,在出现这一请求时,占据着文件的各进程都被执行完以后,写者可以立即得到文件。
因此,在文件已为一写者请求之后到来的那些读者都必须等待,尽管某些读者正在应用
文件,也是如此。所有写者可以结盟,以便能长期禁止读者的读。
1.5 软硬件开发环境
计算机一台,Microsoft Windows XP Professional 版本 2002 Service Pack 2, 内存 1G
1.6 开发工具
Visual C++ 6.0
第 2 章 概要设计
2.1 数据结构分析
struct pro
{
int id;
char caption;
int stat;
struct pro *link;
};
typedef struct pro PRO;
struct sem
{
int val;
struct pro *bhead;
struct pro *btail;
};
typedef struct sem SEM;
全局变量设计:
第 2 页
剩余18页未读,继续阅读
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/92c188ff79d643d3830a334b12cf3978_hg159hg.jpg!1)
hg159hg
- 粉丝: 49
- 资源: 2
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- BSC关键绩效财务与客户指标详解
- 绘制企业战略地图:从财务到客户价值的六步法
- BSC关键绩效指标详解:财务与运营效率评估
- 手持移动数据终端:常见问题与WIFI设置指南
- 平衡计分卡(BSC):绩效管理与战略实施工具
- ESP8266智能家居控制系统设计与实现
- ESP8266在智能家居中的应用——网络家电控制系统
- BSC:平衡计分卡在绩效管理与信息技术中的应用
- 手持移动数据终端:常见问题与解决办法
- BSC模板:四大领域关键绩效指标详解(财务、客户、运营与成长)
- BSC:从绩效考核到计算机网络的关键概念
- BSC模板:四大维度关键绩效指标详解与预算达成分析
- 平衡计分卡(BSC):绩效考核与战略实施工具
- K-means聚类算法详解及其优缺点
- 平衡计分卡(BSC):从绩效考核到战略实施
- BSC:平衡计分卡与计算机网络中的应用
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)