Linux系统程序设计教程(第2版) 电子教案25-进程间通信-信号量_第1页
Linux系统程序设计教程(第2版) 电子教案25-进程间通信-信号量_第2页
Linux系统程序设计教程(第2版) 电子教案25-进程间通信-信号量_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

教案第25次课2学时课题进程间通信-信号量教学目的与要求理解信号量的概念和使用方法重点难点重点:信号量的概念和使用方法难点:信号量的概念和使用方法教学进程安排一、复习旧课,引入新课(10分钟)提问:进程间通信方式有哪些提问:操作系统课程信号量在直接/间接制约关系时的使用方法?引入Linux下信号量的使用方式。二、实施本次课教学内容(知识点明确、突出重/难点、案例和课堂实践环节的设计等)板书:第10章进程间通信总体概述三种进程间通信(20分钟)1、对于信号量、消息队列、共享内存来说有两套系统调用板书:Linux进程间通信方式:信号管道:未命名/命名信号量:POSIX有名和无名/SystemV共享内存:POSIX/SystemV消息队列:POSIX/SystemVsocket2、SystemVIPC在本机中通信,不能跨网络生存期与内核相同,系统重启则消失生存期内,任何进程可使用整型标识符访问。没有i节点和路径名,所以不能像文件/目录一样访问可使用ipcs显示状态、ipcrm删除对象。访问权限:读、写,没有执行系统调用Xget、Xctl(X:sem-信号量,shm-共享内存,msg-消息队列)semop,shmat、shmdt,msgsnd、msgrcv3、POSIXIPC与SystemV区别(1)名字:SystemV可将路径名使用ftok函数生成关键字,Xget的参数为关键方式来打开对象返回整型标识符。POSIX直接使用名字,返回整型标识符(2)生存期内,POSIX使用sem_init创建的信号量仅能在进程内的线程间通信。(3)没有显示POSIXIPC状态的命令工具。(4)目前版本linux对POSIXIPC支持不是特别完善。信号量理论知识讲解(20分钟)4、信号量概念进程间有间接和直接的制约关系,用进程互斥与同步机制来协调两种制约关系。信号量就是一种同步机制,1965年Dijkstra首次提出。5、信号量分类(1)POSIX有名信号量:任何进程知道名字即可使用无名信号量:只能直接使用信号量相关信息对应的实际内存,而不是使用参数等方式传递的副本。(2)SystemV6、信号量意义不论具体实现时把信号量定义成什么类型的,都可以把它理解为一个计数器,代表可供并发进程使用的资源实体个数。某进程使用一个资源就将信号量减1,释放一个资源就将信号量加1。(1)首先确定资源实体个数(即信号量的值)(2)若某进程要使用一个资源,要申请先将信号量值减一

如果值>=0,则进程就可以使用一个资源,

如果值<0,则进程就要排队等待。(3)若某进程用完一个资源,要释放先将信号量值加一,

如果值<=0,则一定有进程在等待,唤醒第一个等

待进程再释放,

如果值>0,则直接释放。7、SystemV信号量POSIX信号量只针对一个信号量操作,SystemV信号量可以对一个信号量集合操作。基本步骤通过路径名设置信号量集合的关键字ftok建立信号量集合并得到标识符semget设置信号量集合semctl对信号量集合中任意个信号量操作(加减1)semop删除信号量集合操作使用semctl完成。8、信号量案例演示讲解,并让学生运行(30分钟)课程小结(10分钟)信号量是一种进程/线程同步机制SystemV信号量基本过程创建信号量并设置初值对信号量操作申请资源-1释放资源+1删除信号量课后学习任务布置课后任务;1将教材上关于本节课的例子自己在虚拟机中运行,观察结果。理

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论