电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

操作系统实验消息的发送与接收

操作系统实验消息的发送与接收_第1页
1/7
操作系统实验消息的发送与接收_第2页
2/7
操作系统实验消息的发送与接收_第3页
3/7
MSG 一、实验目的 1、了解什么是消息 2、熟悉消息传送的机理。 二、实验内容 消息的创建、发送和接收。使用系统调用msgget( ),msgsnd( ),msgrev( ),及 msgctl( )编制一长度为1k 的消息发送和接收的程序 三、实验内容指导提示 (一)、什么是消息 消息(message)是一个格式化的可变长的信息单元。消息机制允许由一个进程给其它任意的进程发送一个消息。当一个进程收到多个消息时,可将它们排成一个消息队列。消息使用二种重要的数据结构:一是消息首部,其中记录了一些与消息有关的信息,如消息数据的字节数;二个消息队列头表,其每一表项是作为一个消息队列的消息头,记录了消息队列的有关信息。 1、消息机制的数据结构 (1)消息首部 记录一些与消息有关的信息,如消息的类型、大小、指向消息数据区的指针、消息队列的链接指针等。 (2)消息队列头表 其每一项作为一个消息队列的消息头,记录了消息队列的有关信息如指向消息队列中第一个消息和指向最后一个消息的指针、队列中消息的数目、队列中消息数据的总字节数、队列所允许消息数据的最大字节总数,还有最近一次执行发送操作的进程标识符和时间、最近一次执行接收操作的进程标识符和时间等。 2、消息队列的描述符 UNIX 中,每一个消息队列都有一个称为关键字(key )的名字,是由用户指定的;消息队列有一消息队列描述符,其作用与用户文件描述符一样,也是为了方便用户和系统对消息队列的访问。 (二)、涉及的系统调用 1. msgget( ) 创建一个消息,获得一个消息的描述符。核心将搜索消息队列头表,确定是否有指定名字的消息队列。若无,核心将分配一新的消息队列头,并 对它进行初 始 化,然 后给用户返 回一个消息队列描述符,否则 它只 是检 查 消息队列的许可权 便返 回 。 系统调用格式: msgqid=msgget(key ,flag) 该 函 数使用头文件如下 : #inclu de #include #include 参数定义 int msgget(key,flag) key_t key; int flag; 其中: key是用户指定的消息队列的名字;flag 是用户设置的标志和访问方式。如 IPC_CREAT |0400 是否该队列已被创建。无则创建,是则打开; IPC_EXCL |0400 是否该队列的创建应是互斥的。 msgqid 是该系统调用返回的描述符,失败则返回-1。 2. msgsnd() 发送一消息。向指定的消息队列发送一个消息,并将该消息链接到该消息队列的尾部...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

操作系统实验消息的发送与接收

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部