版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、3.5 进程通信,3.5.1 信号通信机制 3.5.2 共享文件通信机有制 3.5.3 共享存储区通信机制 3.5.4 消息传递通信机制 3.5.5 有关消息传递实现的若干问题,进程通信概念(1),并发进程之间的交互必须满足两个基本要求:同步和通信。 进程竞争资源时要实施互斥,互斥是一种特殊的同步,实质上需要解决好进程同步问题, 进程同步是一种进程通信,通过修改信号量,进程之间可建立起联系,相互协调运行和协同工作。,进程通信概念(2),进程协同工作时,需要互相交换信息,有些情况下进程间交换的少量信息,有些情况下进程间交换大批数据。 进程之间互相交换信息的工作称为进程通信IPC(InterPro
2、cess Communication)。,进程间通信的方式(1),信号(signal)通信机制; 共享存储区(shared memory)通信机制; 共享文件(shared file)通信机制; 消息传递(message passing)通信机制。,进程间通信的方式(2),低级通信机制,适用于集中式操作系统 高级通信机制,既适用于集中式操作系统,又适用于分布式操作系统,3.5.1 信号通信机制,信号机制又称软中断,一种简单的通信机制,通过发送一个指定信号来通知进程某个异常事件发生。 信号不但能从内核发给一个进程,也能由一个进程发给另一个进程。,UNIX系统信号分成以下几类(1),与进程终止相关
3、的信号SIGCLD、SIGHUP、SIGKILL、SIGCHLD等,如进程结束、进程杀死子进程,; 与进程例外事件相关的信号SIGBUS、SIGSEGV、SIGPWR、SIGFPE等,如进程执行特权指令、写只读区、地址越界、总线超时,硬件故障; 与进程执行系统调用相关的信号SIGPIPE、SIGSYS、SIGILL等,如进程执行非法系统调用、管道存取错;,UNIX系统信号分成以下几类(2),与进程终端交互相关的信号SIGINT、SIGQUT等,如进程挂断终端、用户按delete键或break健。 用户进程发信号SIGTERM、SIGALRM、SIGUSR1、SIGUS2等,如进程向另一进程发一
4、个信号、要求报警; 跟踪进程执行的信号SIGTRAP等。,UNIX软中断机制,具有以下功能:软中断信号的发送,软中断信号的响应和软中断信号的处理。 信号发送工作由系统调用kill完成 信号响应使用系统调用signal完成 信号的处理过程,3.5.2 共享文件通信机制(1),管道(pipeline)是连接读写进程的一个特殊文件,允许进程按先进先出方式传送数据,也能使进程同步执行操作。 发送进程以字符流形式把大量数据送入管道,接收进程从管道中接收数据,所以叫管道通信。 管道的实质是一个共享文件,基本上可借助于文件系统的机制实现,包括(管道)文件的创建、打开、关闭和读写。,共享文件通信机制(2),读
5、写进程相互协调,必须做到: 进程对通信机构的使用应该互斥,一个进程正在使用某个管道写入或读出数据时,另一个进程就必须等待。 发送者和接收者双方必须能够知道对方是否存在,如果对方已经不存在,就没有必要再发送信息。,共享文件通信机制(3),管道长度有限,发送信息和接收信息之间要实现正确的同步关系。 write阻塞。 read阻塞。,共享文件通信机制(5),共享文件通信机制(6),3.5.3 共享存储区通信机制,与共享存储有关的系统调用, shmget(key,size,permflags) shmat(shm-id,daddr,shmflags) shmdt(memptr) shmctl(shm-
6、id,command, /*信箱大小*/ count:integer; /*现有信件数*/ letter:array1.n of message; /*信箱*/ S1,S2:semaphore; /*等信箱和等信件信号量*/ end,间接通信(6),procedure send(varB:box,M:message) var I:integer; begin if B.count=B.size then W(B.s1); i:=B.count+1; B.letteri:=M; B.coumt:=I; R(B.S2) end;send,间接通信(6),procedure receive(varB
7、:box,x:message) var i:integer; begin if B.count=0 then W(B.s2); B.count:=B.count-1; x:=B.letter1; if B.count not=0 then for i=1 to b.count do B.letteri:=B.letteri+1; R(B.S1); end;receive,3.5.5 有关消息传递实现的若干问题,信箱容量问题 多进程与信箱相连的信件接收问题 信箱的所有权问题 信件的格式问题 通信进程并行性问题,消息缓冲通信涉及的数据结构,sender:发送消息的进程名或标识符 size:发送的消
8、息长度 text:发送的消息正文 next-ptr:指向下一个消息缓冲区的指针 在进程的PCB中涉及通信的数据结构: mptr:消息队列队首指针 mutex:消息队列互斥信号量, 初值为1 sm:表示接收进程消息队列上消息的个数,初值为0,是控制收发进程同步的信号量,消息缓冲通信过程,UNIX的消息传递机制(1),消息缓冲池和消息缓冲区(msgbuf),前者包含消息缓冲池大小和首地址;后者除存放消息正文外,还有消息类型字段。 消息头结构和消息头表 ,消息头表是由消息头结构组成的数组。消息头结构包含消息类型、消息正文长度、消息缓冲区指针和消息队列中下一个消息头结构的链指针。,UNIX的消息传递机制(2),消息队列头结构和消息队列头表,由于可有多个消息队列,于是对应每个消息队列都有一个消息队列头结构, 消息队列头表是由消息队列头结构组成的数组。 消息队列头结构包括:指向队列中第一个消息的头指针、指向队列中最后一个消息的尾指针、队列中消息个数、队列中消息数据的总字节数、队列允许的消息数据最大字节数、最近一次发送/接收消息进程标识和时间。,UNIX的消息传递机制(3),信件的格式问题和其他有关问题,单机系统中信件的格式可以分直接信件(又叫定长格式)和间接信件(又叫变长格式)。 网络环境下的信件格式较为复杂,通常分成消息头和消息体,前者包括了发送者
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届山西省运城市新绛县中考二模英语试题含答案
- 船舶浮台锚链防腐处理技术优化可行性研究报告
- 精英度假岛的运营方案
- 电子商务新零售运营方案
- 商务按摩运营方案
- 运营短视频直播方案策划
- 智能温室作物生长调控项目分析方案
- 家具分销运营方案
- 防疫运营方案范文
- 天马用户运营方案
- 2026湖南长沙市生态环境局所属事业单位公开招聘普通雇员笔试备考题库及答案解析
- 养老机构铺床培训课件
- 2026年高考生物全真模拟试卷及答案(共五套)
- 口腔科HIV阳性患者诊疗感染控制
- 2025四川成都空港兴城投资集团有限公司下属企业招聘一线岗位104人笔试历年参考题库附带答案详解
- GD2016《2016典管》火力发电厂汽水管道零件及部件典型设计(取替GD2000)-101-200
- 电磁场生物效应-洞察及研究
- 企业品牌建设模板工具
- 临床成人留置导尿护理及并发症处理-2025团体标准
- 2024-2025学年辽宁省丹东市振兴区北师大版五年级下册期末测试数学试卷(含答案)
- DB11∕T 596-2021 停车场(库)运营服务规范
评论
0/150
提交评论