课程设计说明(含软件工程11和软件工程(嵌入式系统11)).pptVIP

课程设计说明(含软件工程11和软件工程(嵌入式系统11)).ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
课程设计说明(含软件工程11和软件工程(嵌入式系统11))

Chih-Chin Liu 操作系统课程设计 [题目]进程通信与进程同步机制实践 Linux或Windows或Unix环境下,采用系统调用中的信号量、P、V操作,编程解决以下问题。 题目:某银行提供5个服务窗口(4个对私服务窗口,1个对公服务窗口)和10个供顾客等待的座位。顾客到达银行时,若有空座位,则到取号机上领取一个号,等待叫号;若没有空座位,则在门外等待或离开。取号机每次仅允许一位顾客使用,有对公和对私两类号,每位顾客只能选取其中一个。当营业员空闲时,通过叫号选取一位顾客,并为其服务。请用P、V操作写出进程的同步算法。 说明 (1)可模拟设立一个服务时间区间如9:00-17:00,也可限定最大服务人数 (2)顾客达到时间随机,办理对私或对公业务随机,可通过随机数产生。 要求打印: 初始状态 中间变化的状态信息 以及最终状态信息。 [题目]进程通信与进程同步机制实践 课程设计报告撰写要求 1.内容:课程设计题目、目的、要求,原理及算法,主要数据结构和流程,实验测试结果及结果分析,课程设计总结,源程序清单。 2.将设计报告、源程序打包压缩为一个文件,上传到3的操作系统目录下的软件2011课程设计或嵌软2011课程设计中,同时提交纸质报告。 实验安排 时间:18周周一-周六下午5-8节, 19周周一-周二下午5-8节 地点:计算机楼304、310机房。 涉及到的相关知识 Linux操作系统环境下C的编译: ---编辑环境一般采用vi; ---编译命令: g++ 源文件名 可执行文件名 用到的相关系统调用 ---shmget( ):开辟共享存储区 ---semget():用于产生一个信号量数组或查找已创建的信号量数组的描述字。其中,semkey是用户指定的关键字,count规定信号量数组的长度,flag为操作标志。 ---semop():用于进行P、V操作。其中,semid是semget返回的描述字,oplist是用户提供的操作数组的指针,count是该数组的大小。Semop返回最后被操作的信号量在操作完成前的值。oplist中的每个元素包含三个内容;信号量序号、欲进行的操作值和标识。 gcc的使用 基本使用格式 $ gcc [ 选项 ] 文件名 常用选项及含义 gcc的常用选项 必须包含的头文件: #include sys/types.h #include sys/ipc.h #include sys/shm.h #include sys/sem.h #include errno.h 用到的数据结构:sembuf P操作的实现 设置oplist中的欲进行的操作值为-1, 后执行semop。 例如程序段如下: Struct sembuf{ unsigned short sem_num; short sem_op; short sem_flg; } Psembuf; semid = semget (SEMKEY,2, 0777); Psembuf.sem_num = first; Psem.sem_op = -1; Psem.sem_flg = SEM_UNDO; semop(semid, Psembuf, 1); V操作的实现 设置oplist中的欲进行的操作值为1, 后执行semop。 例如程序段如下: Struct sembuf{ unsigned short sem_num; short sem_op; short sem_flg; } Psembuf; semid = semget (SEMKEY,2, 0777); Psembuf.sem_num = first; Psem.sem_op = 1; Psem.sem_flg = SEM_UNDO; semop(semid, Psembuf, 1); 1、如何创建信号量,用来实现同步与互斥? 2、P、V如何实现? 例子 程序说明: 1.这个程序用于实现生产者-消费者问题。 原理:producer (任意多个)---- |++++++|(缓冲区:存放多个产品)----consumer(任意多个)   producer和consumer通过共享缓冲区进行通信,信号量用于对缓冲区互斥访问、对producer和consumer进行同步。 2.共有三个程序:control , producer , consumer.其中control是主控程序,producer是生产者, consumer是消费者。   control:实现对缓冲区的初始化,要最先执行,且只需要执行一次。   producer:生产一个产品放入缓冲区

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档