C语言进程间通信.pptxVIP

  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文档。上传文档
查看更多
;培训大纲;同步与互斥的概念;同步与互斥;   信号量说明:信号量就是操作系统中所用到的PV原语,广泛用于进程或线程间的同步与互斥。本质上是一个非负的整数计数器,被用来控制对公共资源的访问。 PV原语是对整数计数器信号量sem的操作。一次P操作使sem减一,而一次V操作使sem加一。进程或线程根据信号量的值来判断是否对公共资源具有访问权限 当信号量sem的值大于等于零时,该进程或线程具有公共资源的访问权限 相反,当信号量sem的值小于零时,该进程或线程就将阻塞直到信号量sem的值大于等于0为止 PV原语主要用于进程或线程间的同步和互斥两种典型情况。 如用于互斥,几个进程或线程往往只设置一个信号量sem 当信号量用于同步操作时,往往会设置多个信号量,并安排不同的初始值来实现他们之间的顺序执行 P操作和V操作是不可中断的程序段,称为原语.P,V原语中P是荷兰语Passeren,相当于英文的pass,V是荷兰语的Verhoog,相当于increment。;信号量的定义;信号量的物理含义;P操作;V操作;注意;培训大纲;进程号;进程复制fork();system()方式;进程执行exec;所有用户态进程的产生进程init;培训大纲;进程间通信概述;进程间通信概述;管道;管道通信;管道通信;半双工管道;半双工管道;半双工管道;命名管道(FIFO);创建命名管道;命名管道(FIFO);IPC结构;IPC结构;IPC结构;IPC结构;消息队列;消息队列;消息队列;消息队列;消息队列;信号量;信号量;信号量;信号量;信号量;信号量;具有依赖关系的作业调度问题;解法(1);解法(2);生产者—消费者问题;生产者—消费者问题示意图;共享内存 概述 一种最为高效的进程间通信的方式 进程可以直接读写内存。不需要任何数据的拷贝 内核专门留出一段内存区,使得多个进程间交换信息 此段内存区可以由需要访问的进程将其映射到自己的私有地址空间 共享内存的实现 实现分为两个步骤 创建共享内存:用到的函数shmget,即从内存中获得一段共享内存区域 映射共享内存:把这段创建的共享内存映射到具体的进程空间,使用的函数shmat 还有撤销映射的操作,函数为shmdt;共享内存;共享内存;函数格式;共享内存;共享内存;共享内存;信号通信 信号概述 信???是UNIX中使用的进程通信最古老的一种方法。 在软件层次上对中断机制的一种模拟,是一种异步通信方式 信号可以直接进行用户空间进程和内核进程之间的交互,内核进程也可以利用它来通知用户空间进程发生了哪些系统事件 一个完整的信号生命周期可以分为3个重要阶段,这3个阶段由4个重要事件来刻画 信号产生 信号在进程中注册 信号在进程中注销 执行信号处理函数;信号概述;相邻两个事件的时间间隔构成信号生命周期的一个阶段 信号处理有多种方式,一般是由内核完成的,当然也可以有用户进程完成 不可靠信号的处理过程 发现该信号已经在进程中注册,则忽略该信号 故若前一个信号还未注销又产生了相同的信号就会产生信号丢失 可靠信号的处理过程 发现信号不管该信号是否已经在进程中注册,都会被再注册 所有可靠信号都支持排队,而不可靠信号则都不支持排队 ;信号;下面是几个常见的信号。 1).SIGHUP: 从终端上发出的结束信号; 2).SIGINT: 来自键盘的中断信号(Ctrl-C); 3).SIGQUIT:来自键盘的退出信号(Ctrl-\); 8).SIGFPE: 浮点异常信号(例如浮点运算溢出); 9).SIGKILL:该信号结束接收信号的进程; 11). SIGSEGV:对执行一个无效存储访问的进程产生一个SIGSEGV 14).SIGALRM:进程的定时器到期时,发送该信号; 15).SIGTERM:kill 命令发出的信号; 17).SIGCHLD:标识子进程停止或结束的信号; 19).SIGSTOP:来自键盘(Ctrl-Z)或调试程序的停止执行信号 …………;信号发送与捕捉 kill()和raise() kill函数同kill系统命令一样,可以发送信号给进程或进程组。 注意:它不仅可以中止进程,也可以向进程发送其他信号 raise()与kill不同的是,它允许进程向自身发送信号 alarm()和pause() alarm也称为闹钟函数,它可以在进程中设置一个定时器,当定时器指定的时间到时,它就向进程发送SIGALARM信号。 注意:一个进程只能有一个闹钟时间,如果在调用alarm之前已设置过闹钟时间,则任何以前的闹钟时间都被新值所代替 pause()函数是用于将调用进程挂起直至扑捉到信号为止。可用于判断信号是否已到 信号的处理 特定的信号是与一定的进程相联系的 一个进程可以决定在该进程中需要对哪些信号进程什么样的处理;信号处理函数;同时一个进程还

文档评论(0)

职教魏老师 + 关注
官方认证
服务提供商

专注于研究生产单招、专升本试卷,可定制

版权声明书
用户编号:8005017062000015
认证主体莲池区远卓互联网技术工作室
IP属地河北
统一社会信用代码/组织机构代码
92130606MA0G1JGM00

1亿VIP精品文档

相关文档