摘要: 一 为什么要使用信号量为了防止出现因多个程序同时访问一个共享资源而引发的一系列问题,我们需要一种方法,它可以通过生成并使用令牌来授权,在任一时刻只能有一个执行线程访问 代码的临界区域。临界区域是指执行数据更新的代码需要独占式地执行。而信号量就可以提供这样的一种访问机制,让一个临界区同一时间只有一个线... 阅读全文
posted @ 2014-10-21 11:36 xyecho 阅读(52784) 评论(0) 推荐(2) 编辑
摘要: 一 消息队列的介绍消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。每个数据块都被认为含有一个类型,接收进程可以独立地接收含有不同类型的数据结构。我们可以通过发送消息来避免命名管道的同步和阻塞问题。Linux用宏MSGMAX和MSGMNB来限制一条消息的最大长度和一个队列的最大长度。◆影... 阅读全文
posted @ 2014-10-21 11:16 xyecho 阅读(856) 评论(0) 推荐(0) 编辑
摘要: 一管道的局限性管道有两个局限性:(1)他是半双工(即数据只能在一个方向上流动)。(2)它只能在具有公共祖先的进程之间使用。一个管道由一个进程创建,然后该 进程调用fork,此后父子进程之间就可该管道。二 管道的创建 用函数pipe创建:#includeint pipe(int files[2]);参... 阅读全文
posted @ 2014-10-21 11:06 xyecho 阅读(653) 评论(0) 推荐(0) 编辑
摘要: 有名管道(FIFO)命名管道也被称为FIFO文件,是一种特殊的文件。由于linux所有的事物都可以被视为文件,所以对命名管道的使用也就变得与文件操作非常统一。(1)创建命名管道用如下两个函数中的其中一个,可以创建命名管道。#include #include int mkfifo(const char... 阅读全文
posted @ 2014-10-21 11:00 xyecho 阅读(28459) 评论(0) 推荐(1) 编辑
摘要: 一 什么是XSI IPC 有三种 IPC我们称作XSI IPC,即消息队列、信号量以及共享存储器(共享内存),它们之间有很多相似之处。二 标识符和键 每个内核中的 IPC结构(消息队列、信号量或共享内存)都用一个非负整数的标识符加以引用。 无论何时创建IPC结构(调用 msgget、semget ... 阅读全文
posted @ 2014-10-21 10:54 xyecho 阅读(1895) 评论(0) 推荐(0) 编辑
摘要: 一 进程间通信有如下的目的:1、数据传输,一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几M之间;2、共享数据,多个进程想要操作共享数据,一个进程对数据的修改,其他进程应该立刻看到;3、通知事件,一个进程需要向另一个或一组进程发送消息,通知它们发生了某件事情;4、资源共享,多个进程... 阅读全文
posted @ 2014-10-21 10:52 xyecho 阅读(312) 评论(0) 推荐(0) 编辑
摘要: 1.进程★进程,就是运行中的程序。一个可执行程序是一具机器指令及其数据的序列。一个进程是程序运行时的内存空间和设置。★shell是一个管理进程和运行程序的程序。Shell主要有三个功能:(1)运行程序(2)管理输入和输出(3)可编程。(1)greplsecho都是一些用C编写并被编译成机器语言的程序... 阅读全文
posted @ 2014-10-21 10:50 xyecho 阅读(441) 评论(0) 推荐(0) 编辑
摘要: 一共享内存介绍共享内存可以从字面上去理解,就把一片逻辑内存共享出来,让不同的进程去访问它,修改它。共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存。进程可以将同一段共享内存连接到它们自己的地址空间中,所有进程都可以访问共享内存中的地... 阅读全文
posted @ 2014-10-21 10:32 xyecho 阅读(17358) 评论(0) 推荐(0) 编辑