操作系统02 process management
* 3. 进程同步方式 发送进程阻塞、 接收进程阻塞。 (2) 发送进程不阻塞、 接收进程阻塞。 (3) 发送进程和接收进程均不阻塞。 * 2.6.4 消息缓冲队列通信机制 1. 消息缓冲队列通信机制中的数据结构 (1) 消息缓冲区。在消息缓冲队列通信方式中,主要利用的数据结构是消息缓冲区。它可描述如下: type message buffer=record sender; 发送者进程标识符 size; 消息长度 text; 消息正文 next; 指向下一个消息缓冲区的指针 end * (2) PCB中有关通信的数据项 在PCB中应增加的数据项可描述如下: type processcontrol block=record … mq; 消息队列队首指针 mutex; 消息队列互斥信号量 sm; 消息队列资源信号量 … end 1. 消息缓冲队列通信机制中的数据结构 * procedure send(receiver, a) begin getbuf(a.size,i); 根据a.size申请缓冲区; i.sender∶ =a.sender; 将发送区a中的信息复制到消息缓冲区之中 i.size∶ =a.size; i.text∶ =a.text; i.next∶ =0; getid(PCB set, receiver.j); 获得接收进程内部标识符; wait(j.mutex); insert(j.mq, i); 将消息缓冲区插入消息队列; signal(j.mutex); signal(j.sm); end 2. 发送原语 * 2. 发送原语 * 3. 接收原语 procedure receive(b) begin j∶ =internal name; j为接收进程内部的标识符; wait(j.sm); wait(j.mutex); remove(j.mq, i); 将消息队列中第一个消息移出; signal(j.mutex); b.sender∶ =i.sender; 将消息缓冲区i中的信息复制到接收区b b.size∶ =i.size; b.text∶ =i.text; end * 补充四:Windows2000线程间通信 * Windows2000线程间通信 Windows 2000提供的线程间通讯类内核对象允许同一进程或跨进程的线程之间互相发送信息,包括文件、文件映射、邮件位和命名管道等,其中最常用的是文件和文件映射 * 文件对象 文件对象是人们所熟悉的永久存储的传统元素。 内核允许开发人员在系统设备或网络上创建代表永久存储数据块的文件对象。这些文件对象是对永久存储数据的低级访问者;用C++ 运行库或其他方法打开的所有文件最终都要变成对CreateFile() API的调用。 * 文件对象API API名称 功能描述 CreateFile() 创建文件内核对象,用于代表文件系统中新的或已经存在的大量数据 ReadFile() 从文件系统中的由文件对象句柄引用的文件发送数据。读操作开始于当前文件的指针位置,每读取一个字节,该位置增加 WriteFile() 从文件系统中的由文件对象句柄引用的文件发送数据。写操作开始于当前文件的指针位置,每写入一个字节,该位置增加 SetFilePointer() 将文件中的当前文件指针位置移动一个相对或绝对距离 SetEndOfFile() 将文件的终止记号移动到当前文件指针的位置 LockFile() 防止其他进程访问传递的文件内的一个区域 GetFileType() 决定传递的句柄是否引用磁盘文件、控制台或命名的管道 GetFileSizeEx() 提取64位的文件容量 G
您可能关注的文档
最近下载
- 市场部门市场营销专员工作手册(标准版).doc VIP
- 2025新课标义务教育数学(2022年版)课程标准试题库(含答案).docx VIP
- 电力工程专业设计工日定额-送电工程750kV部分.doc VIP
- 基于K-means和主成分分析的京张体育文化旅游带冰雪运动旅游市场研究.pdf VIP
- 电力工程设计收工日定额2012-3-28.doc VIP
- 人教版七年级下册英语全册教学设计(配2025年春新版教材).docx
- 电力工程专业设计工日定额-送电工程±500kV(直流)部分.doc VIP
- 2021春人教版九年级数学下册 第29章 全章教案.doc VIP
- 2025年湖北专升本武汉文理学院《动画概论》考试及答案.docx VIP
- 医院门诊服务优化与创新体系构建ppt课件.pptx
原创力文档

文档评论(0)