linux进程
文章平均质量分 85
zhengzhoudaxue2
这个作者很懒,什么都没留下…
展开
-
linuxIPC——管道
1、 管道概述及相关API应用1.1 管道相关的关键概念管道是Linux支持的最初Unix IPC形式之一,具有以下特点:管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道;只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程);单独构成一种独立的文件系统:管道对于管道两端的进程而言,就是一个文件,但它不是普通的文件,它不属于某种文件系统,而是自立门户,单独构成一种文件系统,并且只存在与内存中。数据的读出和写入:一个进程向管道中写的内容被管道另一端的进程读出。写入的内容每次都添加在管原创 2010-12-28 12:15:00 · 558 阅读 · 0 评论 -
linuxIPC——信号(下)
<br />一、信号生命周期<br />从信号发送到信号处理函数的执行完毕<br />对于一个完整的信号生命周期(从信号发送到相应的处理函数执行完毕)来说,可以分为三个重要的阶段,这三个阶段由四个重要事件来刻画:信号诞生;信号在进程中注册完毕;信号在进程中的注销完毕;信号处理函数执行完毕。相邻两个事件的时间间隔构成信号生命周期的一个阶段。<br /><br /><br /><br />下面阐述四个事件的实际意义:信号"诞生"。信号的诞生指的是触发信号的事件发生(如检测到硬件异常、定时器超时以及调用信号发送函原创 2010-12-28 12:21:00 · 630 阅读 · 0 评论 -
linuxIPC——共享内存(上)
<br />采用共享内存通信的一个显而易见的好处是效率高,因为进程可以直接读写内存,而不需要任何数据的拷贝。对于像管道和消息队列等通信方式,则需要在内 核和用户空间进行四次的数据拷贝,而共享内存则只拷贝两次数据[1]:一次从输入文件到共享内存区,另一次从共享内存区到输出文件。实际上,进程之间在共 享内存时,并不总是读写少量数据后就解除映射,有新的通信时,再重新建立共享内存区域。而是保持共享区域,直到通信完毕为止,这样,数据内容一直保存在共 享内存中,并没有写回文件。共享内存中的内容往往是在解除映射时才原创 2010-12-28 12:29:00 · 605 阅读 · 0 评论 -
linuxIPC——共享内存(下)
<br />系统调用mmap()通过映射一个普通文件实现共享内存。系统V则是通过映射特殊文件系统shm中的文件实现进程间的共享内存通信。也就是说,每个共享内存区域对应特殊文件系统shm中的一个文件(这是通过shmid_kernel结构联系起来的),后面还将阐述。<br />1、系统V共享内存原理<br />进程间需要共享的数据被放在一个叫做IPC共享内存区域的地方,所有需要访问该共享区域的进程都要把该共享区域映射到本进程的地址空间 中去。系统V共享内存通过shmget获得或创建一个IPC共享内存区域,并返原创 2010-12-28 12:30:00 · 604 阅读 · 0 评论 -
linuxIPC——信号(上)
<br />一、信号及信号来源<br />信号本质<br />信号是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是异步的,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候到达。<br />信号是进程间通信机制中唯一的异步通信机制,可以看作是异步通知,通知接收信号的进程有哪些事情发生了。信号机制经过POSIX实时扩展后,功能更加强大,除了基本通知功能外,还可以传递附加信息。<br />信号来源<br />信号事件的发原创 2010-12-28 12:19:00 · 499 阅读 · 0 评论 -
linuxIPC——消息队列
<br />消息队列(也叫做报文队列)能够克服早期unix通信机制的一些缺点。作为早期unix通信机制之一的信号能够传送的信息量有限,后来虽然 POSIX 1003.1b在信号的实时性方面作了拓广,使得信号在传递信息量方面有了相当程度的改进,但是信号这种通信方式更像"即时"的通信方式,它要求接受信号 的进程在某个时间范围内对信号做出反应,因此该信号最多在接受信号进程的生命周期内才有意义,信号所传递的信息是接近于随进程持续的概念 (process-persistent),见 附录;管道及有名管道及有原创 2010-12-28 12:24:00 · 2667 阅读 · 0 评论 -
linuxIPC——基于套接字的通讯
<br />套接口(Socket)为目前Linux上最为广泛使用的一种的进程间通信机制,与其他的Linux通信机制不同之处在于除了它可用于单机内的进程 间通信以外,还可用于不同机器之间的进程间通信。但是由于Socket本身不支持同时等待和超时处理,所以它不能直接用来多进程之间的相互实时通信。<br />本文提出一个基于Socket的多进程之间通信的实现方法。原理是建立一个进程专门用来做为通信服务器(server)来中转各个进程之间的 通信。它首先启动一个用来监视连接要求的listening Sock原创 2010-12-28 20:24:00 · 583 阅读 · 0 评论 -
linuxIPC——进程执行的优先级
<br />本文深入介绍基础的 Linux 进程管理技术。您将学习如何:理解进程优先级设置进程优先级更改进程优先级<br />本文帮助您准备 Linux Professional Institute's Junior Level Administration (LPIC-1) 考试 101 的 103 主题下的 103.6 考核目标。该考核目标的权值为 2。<br />先决条件<br />为了从本文获得最大的收益,您应该具备基础的 Linux 知识,并且具有一个能够正常运行原创 2010-12-28 20:13:00 · 859 阅读 · 0 评论 -
我关于一个小程序所想到的
前几日,我再看书的时候,仔细的回顾了关于信号的这一章,当时,我想到了如果是在调用系统调用,这个时候给进程发发送一个信号,会产生什么效果,很多人都说了,就算是系统调用,他会很快的执行完成的,也是,Linux信号有一种机制就是延时投递,比如这时,你的进程正在malloc分配内存,或者执行其他的原子操作,但是会很快的执行完成,这就会触发这种机制! 但是,如果我们是阻塞方式的socket套接字调用rea原创 2011-12-20 22:32:27 · 1235 阅读 · 0 评论