操作系统哲学家问题.pdf

上传人:赵** 文档编号:20010886 上传时间:2022-06-12 格式:PDF 页数:4 大小:188.53KB
返回 下载 相关 举报
操作系统哲学家问题.pdf_第1页
第1页 / 共4页
操作系统哲学家问题.pdf_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《操作系统哲学家问题.pdf》由会员分享,可在线阅读,更多相关《操作系统哲学家问题.pdf(4页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、操作系统实验报告操作系统实验报告实验序号:03实验项目名称:哲学家问题学号实验地点文波楼 217 实验室姓名指导教师专业、班时间信管 13032014 年 11 月29 日一、实验目的及要求一个房间里有 5 个哲学家,他们的生活是思考和吃饭,房间里有一张圆桌, 中间放着一碗饭菜(假设饭菜无限多), 桌子周围放有 5 把椅子,分别属于 5 位哲学家,每两位哲学家之间有一把勺子,哲学家进食时必须同时使用左右两把勺子,请为每位哲学家设计一个程序,解决他们的吃饭问题。二、实验设备(环境)及要求硬件:一台计算机软件:装有 Linux 操作系统,终端窗口,文本编辑器。三、实验内容与步骤实验代码:#incl

2、ude#include#include#include#include#define F1 PROT_READ|PROT_WRITE#define F2 MAP_SHARED|MAP_ANONYMOUS#define N 5/人数#define L 3/行为循环次数typedef struct sem_t phN; sem_t mutex;int stateN;int t;pair;pair * p;void think(int i) printf(%d 号哲学家在思考.n, i); srand(unsigned)time(NULL);int n=rand()%10; usleep(10000

3、00*n); printf(%d 号哲学家思考完成!n, i);void eat(int i) printf(%d 号哲学家在吃饭n, i); srand(unsigned)time(NULL);int n=rand()%4; usleep(4000000+n*1000000); printf(%d 号哲学家吃饭结束!nn, i);void test(int i)if(p-statei=2) & (p-state(i+1)%N!=3) & (p-state(N+i-1)%N!=3) p-statei=3; sem_post(&(p-phi); void philosopher(int i)in

4、t l=L;while(l-) think(i); sem_wait(&(p-mutex); p-statei=2; test(i); sem_post(&(p-mutex); sem_wait(&(p-phi); eat(i); sem_wait(&(p-mutex); p-statei=1; test(N+i-1)%N); test(i+1)%N); sem_post(&(p-mutex); p-t+;/t=0 时父进程也要结束 exit(0);void main() p=(pair*)mmap(NULL, sizeof(pair), F1, F2, -1, 0);/为变量开辟共享内存in

5、t i, pid;for(i=0;istatei=1; sem_init(&(p-phi), 1, 0); sem_init(&(p-mutex), 1, 1); p-t=0-N;for(i=0;i0) while(1)if(p-t)0) printf(.n); usleep(5000000); else/子进程已经结束,for(i=0;iphi); sem_destroy(&(p-mutex); printf(程序结束!n); exit(0); 运行时也要注意线程,要输入 lpthread四、实验结果与数据处理运行界面:五、分析与讨论这个问题看起来难以实现,虽然老师上课讲过,但开始拿到也觉得没那么容易,思想解决了,代码还要一步步运行,这个程序对P,V 操作的用法很深,一不小心就会弄错,但是写完了之后也发现并不是想象中的那么难。六、教师评语签名:日期:成绩

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com