﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-mysileng-随笔分类-linux进程通信专题</title><link>http://www.cppblog.com/mysileng/category/20267.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 19 Dec 2012 14:46:55 GMT</lastBuildDate><pubDate>Wed, 19 Dec 2012 14:46:55 GMT</pubDate><ttl>60</ttl><item><title>Linux 环境进程间通信（六） 套接口(转)</title><link>http://www.cppblog.com/mysileng/archive/2012/12/18/196417.html</link><dc:creator>鑫龙</dc:creator><author>鑫龙</author><pubDate>Tue, 18 Dec 2012 06:04:00 GMT</pubDate><guid>http://www.cppblog.com/mysileng/archive/2012/12/18/196417.html</guid><wfw:comment>http://www.cppblog.com/mysileng/comments/196417.html</wfw:comment><comments>http://www.cppblog.com/mysileng/archive/2012/12/18/196417.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/mysileng/comments/commentRss/196417.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/mysileng/services/trackbacks/196417.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 转自https://www.ibm.com/developerworks/cn/linux/l-ipc/part6/， 作者：郑彦兴一个套接口可以看作是进程间通信的端点（endpoint），每个套接口的名字都是唯一的（唯一的含义是不言而喻的），其他进程可以发现、连接并且 与之通信。通信域用来说明套接口通信的协议，不同的通信域有不同的通信协议以及套接口的地址结构等等，因此，创建一个套接口时，要指明它...&nbsp;&nbsp;<a href='http://www.cppblog.com/mysileng/archive/2012/12/18/196417.html'>阅读全文</a><img src ="http://www.cppblog.com/mysileng/aggbug/196417.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/mysileng/" target="_blank">鑫龙</a> 2012-12-18 14:04 <a href="http://www.cppblog.com/mysileng/archive/2012/12/18/196417.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux环境进程间通信（五）: 共享内存（下）(转)</title><link>http://www.cppblog.com/mysileng/archive/2012/12/18/196416.html</link><dc:creator>鑫龙</dc:creator><author>鑫龙</author><pubDate>Tue, 18 Dec 2012 06:03:00 GMT</pubDate><guid>http://www.cppblog.com/mysileng/archive/2012/12/18/196416.html</guid><wfw:comment>http://www.cppblog.com/mysileng/comments/196416.html</wfw:comment><comments>http://www.cppblog.com/mysileng/archive/2012/12/18/196416.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/mysileng/comments/commentRss/196416.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/mysileng/services/trackbacks/196416.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 转自http://www.ibm.com/developerworks/cn/linux/l-ipc/part5/index2.html， 作者：郑彦兴系统调用mmap()通过映射一个普通文件实现共享内存。系统V则是通过映射特殊文件系统shm中的文件实现进程间的共享内存通信。也就是说，每个共享内存区域对应特殊文件系统shm中的一个文件（这是通过shmid_kernel结构联系起来的），后面还将阐述...&nbsp;&nbsp;<a href='http://www.cppblog.com/mysileng/archive/2012/12/18/196416.html'>阅读全文</a><img src ="http://www.cppblog.com/mysileng/aggbug/196416.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/mysileng/" target="_blank">鑫龙</a> 2012-12-18 14:03 <a href="http://www.cppblog.com/mysileng/archive/2012/12/18/196416.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux环境进程间通信（五）: 共享内存（上）(转)</title><link>http://www.cppblog.com/mysileng/archive/2012/12/18/196415.html</link><dc:creator>鑫龙</dc:creator><author>鑫龙</author><pubDate>Tue, 18 Dec 2012 06:03:00 GMT</pubDate><guid>http://www.cppblog.com/mysileng/archive/2012/12/18/196415.html</guid><wfw:comment>http://www.cppblog.com/mysileng/comments/196415.html</wfw:comment><comments>http://www.cppblog.com/mysileng/archive/2012/12/18/196415.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/mysileng/comments/commentRss/196415.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/mysileng/services/trackbacks/196415.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 转自http://www.ibm.com/developerworks/cn/linux/l-ipc/part5/index1.html， 作者：郑彦兴采用共享内存通信的一个显而易见的好处是效率高，因为进程可以直接读写内存，而不需要任何数据的拷贝。对于像管道和消息队列等通信方式，则需要在内 核和用户空间进行四次的数据拷贝，而共享内存则只拷贝两次数据[1]：一次从输入文件到共享内存区，另一次从共享内...&nbsp;&nbsp;<a href='http://www.cppblog.com/mysileng/archive/2012/12/18/196415.html'>阅读全文</a><img src ="http://www.cppblog.com/mysileng/aggbug/196415.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/mysileng/" target="_blank">鑫龙</a> 2012-12-18 14:03 <a href="http://www.cppblog.com/mysileng/archive/2012/12/18/196415.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux环境进程间通信（四） 信号灯(转)</title><link>http://www.cppblog.com/mysileng/archive/2012/12/18/196414.html</link><dc:creator>鑫龙</dc:creator><author>鑫龙</author><pubDate>Tue, 18 Dec 2012 06:02:00 GMT</pubDate><guid>http://www.cppblog.com/mysileng/archive/2012/12/18/196414.html</guid><wfw:comment>http://www.cppblog.com/mysileng/comments/196414.html</wfw:comment><comments>http://www.cppblog.com/mysileng/archive/2012/12/18/196414.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/mysileng/comments/commentRss/196414.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/mysileng/services/trackbacks/196414.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 转自http://www.ibm.com/developerworks/cn/linux/l-ipc/part4/， 作者：郑彦兴一、信号灯概述信号灯与其他进程间通信方式不大相同，它主要提供对进程间共享资源访问控制机制。相当于内存中的标志，进程可以根据它判定是否能够访问某些共享资源，同时，进程也可以修改该标志。除了用于访问控制外，还可用于进程同步。信号灯有以下两种类型：二值信号灯：最简单的信号灯形...&nbsp;&nbsp;<a href='http://www.cppblog.com/mysileng/archive/2012/12/18/196414.html'>阅读全文</a><img src ="http://www.cppblog.com/mysileng/aggbug/196414.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/mysileng/" target="_blank">鑫龙</a> 2012-12-18 14:02 <a href="http://www.cppblog.com/mysileng/archive/2012/12/18/196414.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux环境进程间通信（三） 消息队列(转)</title><link>http://www.cppblog.com/mysileng/archive/2012/12/18/196413.html</link><dc:creator>鑫龙</dc:creator><author>鑫龙</author><pubDate>Tue, 18 Dec 2012 06:01:00 GMT</pubDate><guid>http://www.cppblog.com/mysileng/archive/2012/12/18/196413.html</guid><wfw:comment>http://www.cppblog.com/mysileng/comments/196413.html</wfw:comment><comments>http://www.cppblog.com/mysileng/archive/2012/12/18/196413.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/mysileng/comments/commentRss/196413.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/mysileng/services/trackbacks/196413.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 转自http://www.ibm.com/developerworks/cn/linux/l-ipc/part3/， 作者：郑彦兴消息队列（也叫做报文队列）能够克服早期unix通信机制的一些缺点。作为早期unix通信机制之一的信号能够传送的信息量有限，后来虽然 POSIX 1003.1b在信号的实时性方面作了拓广，使得信号在传递信息量方面有了相当程度的改进，但是信号这种通信方式更像"即时"的通信方...&nbsp;&nbsp;<a href='http://www.cppblog.com/mysileng/archive/2012/12/18/196413.html'>阅读全文</a><img src ="http://www.cppblog.com/mysileng/aggbug/196413.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/mysileng/" target="_blank">鑫龙</a> 2012-12-18 14:01 <a href="http://www.cppblog.com/mysileng/archive/2012/12/18/196413.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux环境进程间通信（二）: 信号（下）(转)</title><link>http://www.cppblog.com/mysileng/archive/2012/12/18/196412.html</link><dc:creator>鑫龙</dc:creator><author>鑫龙</author><pubDate>Tue, 18 Dec 2012 06:00:00 GMT</pubDate><guid>http://www.cppblog.com/mysileng/archive/2012/12/18/196412.html</guid><wfw:comment>http://www.cppblog.com/mysileng/comments/196412.html</wfw:comment><comments>http://www.cppblog.com/mysileng/archive/2012/12/18/196412.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/mysileng/comments/commentRss/196412.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/mysileng/services/trackbacks/196412.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 转自http://www.ibm.com/developerworks/cn/linux/l-ipc/part2/index2.html，作者：郑彦兴一、信号生命周期从信号发送到信号处理函数的执行完毕对于一个完整的信号生命周期(从信号发送到相应的处理函数执行完毕)来说，可以分为三个重要的阶段，这三个阶段由四个重要事件来刻画：信号诞生；信号在进程中注册完毕；信号在进程中的注销完毕；信号处理函数执行完...&nbsp;&nbsp;<a href='http://www.cppblog.com/mysileng/archive/2012/12/18/196412.html'>阅读全文</a><img src ="http://www.cppblog.com/mysileng/aggbug/196412.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/mysileng/" target="_blank">鑫龙</a> 2012-12-18 14:00 <a href="http://www.cppblog.com/mysileng/archive/2012/12/18/196412.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux环境进程间通信（二）: 信号（上）(转)</title><link>http://www.cppblog.com/mysileng/archive/2012/12/18/196411.html</link><dc:creator>鑫龙</dc:creator><author>鑫龙</author><pubDate>Tue, 18 Dec 2012 06:00:00 GMT</pubDate><guid>http://www.cppblog.com/mysileng/archive/2012/12/18/196411.html</guid><wfw:comment>http://www.cppblog.com/mysileng/comments/196411.html</wfw:comment><comments>http://www.cppblog.com/mysileng/archive/2012/12/18/196411.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/mysileng/comments/commentRss/196411.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/mysileng/services/trackbacks/196411.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 转自http://www.ibm.com/developerworks/cn/linux/l-ipc/part2/index1.html， 作者：郑彦兴一、信号及信号来源信号本质信号是在软件层次上对中断机制的一种模拟，在原理上，一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是异步的，一个进程不必通过任何操作来等待信号的到达，事实上，进程也不知道信号到底什么时候到达。信号是进程间通...&nbsp;&nbsp;<a href='http://www.cppblog.com/mysileng/archive/2012/12/18/196411.html'>阅读全文</a><img src ="http://www.cppblog.com/mysileng/aggbug/196411.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/mysileng/" target="_blank">鑫龙</a> 2012-12-18 14:00 <a href="http://www.cppblog.com/mysileng/archive/2012/12/18/196411.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux环境进程间通信（一） 管道及有名管道(转)</title><link>http://www.cppblog.com/mysileng/archive/2012/12/18/196410.html</link><dc:creator>鑫龙</dc:creator><author>鑫龙</author><pubDate>Tue, 18 Dec 2012 05:59:00 GMT</pubDate><guid>http://www.cppblog.com/mysileng/archive/2012/12/18/196410.html</guid><wfw:comment>http://www.cppblog.com/mysileng/comments/196410.html</wfw:comment><comments>http://www.cppblog.com/mysileng/archive/2012/12/18/196410.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/mysileng/comments/commentRss/196410.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/mysileng/services/trackbacks/196410.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 转自http://www.ibm.com/developerworks/cn/linux/l-ipc/part1/， 作者：郑彦兴1、	管道概述及相关API应用1.1 管道相关的关键概念管道是Linux支持的最初Unix IPC形式之一，具有以下特点：管道是半双工的，数据只能向一个方向流动；需要双方通信时，需要建立起两个管道；只能用于父子进程或者兄弟进程之间（具有亲缘关系的进程）；单独构成一种独立...&nbsp;&nbsp;<a href='http://www.cppblog.com/mysileng/archive/2012/12/18/196410.html'>阅读全文</a><img src ="http://www.cppblog.com/mysileng/aggbug/196410.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/mysileng/" target="_blank">鑫龙</a> 2012-12-18 13:59 <a href="http://www.cppblog.com/mysileng/archive/2012/12/18/196410.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>深刻理解Linux进程间通信（IPC）(转)</title><link>http://www.cppblog.com/mysileng/archive/2012/12/18/196409.html</link><dc:creator>鑫龙</dc:creator><author>鑫龙</author><pubDate>Tue, 18 Dec 2012 05:58:00 GMT</pubDate><guid>http://www.cppblog.com/mysileng/archive/2012/12/18/196409.html</guid><wfw:comment>http://www.cppblog.com/mysileng/comments/196409.html</wfw:comment><comments>http://www.cppblog.com/mysileng/archive/2012/12/18/196409.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/mysileng/comments/commentRss/196409.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/mysileng/services/trackbacks/196409.html</trackback:ping><description><![CDATA[<p style="word-wrap: break-word; margin: 0px; padding: 5px 0px 0px; line-height: 1.5; font-family: 宋体, Arial; background-color: #f5f7f8; "><a name="N1003A" style="word-wrap: break-word; color: #63401b; ">转自http://www.ibm.com/developerworks/cn/linux/l-ipc/index.html，作者：</a><span style="word-wrap: break-word; line-height: 1.5; ">郑彦兴</span></p><p style="word-wrap: break-word; margin: 0px; padding: 5px 0px 0px; line-height: 1.5; font-family: 宋体, Arial; background-color: #f5f7f8; "><a name="N1003A" style="word-wrap: break-word; color: #63401b; ">序</a></p><p style="word-wrap: break-word; margin: 0px; padding: 5px 0px 0px; line-height: 1.5; font-family: 宋体, Arial; background-color: #f5f7f8; ">linux下的进程通信手段基本上是从Unix平台上的进程通信手段继承而来的。而对Unix发展做出重大贡献的两大主力 AT&amp;T的贝尔实验室及BSD（加州大学伯克利分校的伯克利软件发布中心）在进程间通信方面的侧重点有所不同。前者对Unix早期的进程间通信手 段进行了系统的改进和扩充，形成了&#8220;system V IPC&#8221;，通信进程局限在单个计算机内；后者则跳过了该限制，形成了基于套接口（socket）的进程间通信机制。Linux则把两者继承了下来，如图 示：</p><br style="word-wrap: break-word; font-family: 宋体, Arial; font-size: 12px; line-height: 15px; background-color: #f5f7f8; " /><img alt="" src="http://www.ibm.com/developerworks/cn/linux/l-ipc/1.gif" border="0" height="217" width="370" style="word-wrap: break-word; border: 0px; max-width: 650px; font-family: 宋体, Arial; font-size: 12px; line-height: 15px; background-color: #f5f7f8; " />&nbsp;<br style="word-wrap: break-word; font-family: 宋体, Arial; font-size: 12px; line-height: 15px; background-color: #f5f7f8; " /><p style="word-wrap: break-word; margin: 0px; padding: 5px 0px 0px; line-height: 1.5; font-family: 宋体, Arial; background-color: #f5f7f8; ">其中，最初Unix IPC包括：管道、FIFO、信号；System V IPC包括：System V消息队列、System V信号灯、System V共享内存区；Posix IPC包括：	 Posix消息队列、Posix信号灯、Posix共享内存区。有两点需要简单说明一下：1）由于Unix版本的多样性，电子电气工程协会（IEEE）开 发了一个独立的Unix标准，这个新的ANSI Unix标准被称为计算机环境的可移植性操作系统界面（PSOIX）。现有大部分Unix和流行版本都是遵循POSIX标准的，而Linux从一开始就遵 循POSIX标准；2）BSD并不是没有涉足单机内的进程间通信（socket本身就可以用于单机内的进程间通信）。事实上，很多Unix版本的单机 IPC留有BSD的痕迹，如4.4BSD支持的匿名内存映射、4.3+BSD对可靠信号语义的实现等等。</p><p style="word-wrap: break-word; margin: 0px; padding: 5px 0px 0px; line-height: 1.5; font-family: 宋体, Arial; background-color: #f5f7f8; ">图一给出了linux 所支持的各种IPC手段，在本文接下来的讨论中，为了避免概念上的混淆，在尽可能少提及Unix的各个版本的情况下，所有问题的讨论最终都会归结到 Linux环境下的进程间通信上来。并且，对于Linux所支持通信手段的不同实现版本（如对于共享内存来说，有Posix共享内存区以及System V共享内存区两个实现版本），将主要介绍Posix API。</p><p style="word-wrap: break-word; margin: 0px; padding: 5px 0px 0px; line-height: 1.5; font-family: 宋体, Arial; background-color: #f5f7f8; ">linux下进程间通信的几种主要手段简介：</p><ol style="word-wrap: break-word; margin: 0px; padding: 0px 0px 0px 2em; list-style-position: outside; list-style-image: none; line-height: 5px; font-family: 宋体, Arial; font-size: 12px; background-color: #f5f7f8; "><li style="word-wrap: break-word; margin: 1px; padding: 1px; list-style: decimal outside none; line-height: 1.5; ">管道（Pipe）及有名管道（named pipe）：管道可用于具有亲缘关系进程间的通信，有名管道克服了管道没有名字的限制，因此，除具有管道所具有的功能外，它还允许无亲缘关系进程间的通信；</li><li style="word-wrap: break-word; margin: 1px; padding: 1px; list-style: decimal outside none; line-height: 1.5; ">信号（Signal）：信号是比较复杂的通信方式，用于通知接受进程有某种事件发生，除了用于进程间通信外，进程还可以发送信号 给进程本身；linux除了支持Unix早期信号语义函数sigal外，还支持语义符合Posix.1标准的信号函数sigaction（实际上，该函数 是基于BSD的，BSD为了实现可靠信号机制，又能够统一对外接口，用sigaction函数重新实现了signal函数）；</li><li style="word-wrap: break-word; margin: 1px; padding: 1px; list-style: decimal outside none; line-height: 1.5; ">报文（Message）队列（消息队列）：消息队列是消息的链接表，包括Posix消息队列system V消息队列。有足够权限的进程可以向队列中添加消息，被赋予读权限的进程则可以读走队列中的消息。消息队列克服了信号承载信息量少，管道只能承载无格式字 节流以及缓冲区大小受限等缺点。</li><li style="word-wrap: break-word; margin: 1px; padding: 1px; list-style: decimal outside none; line-height: 1.5; ">共享内存：使得多个进程可以访问同一块内存空间，是最快的可用IPC形式。是针对其他通信机制运行效率较低而设计的。往往与其它通信机制，如信号量结合使用，来达到进程间的同步及互斥。</li><li style="word-wrap: break-word; margin: 1px; padding: 1px; list-style: decimal outside none; line-height: 1.5; ">信号量（semaphore）：主要作为进程间以及同一进程不同线程之间的同步手段。</li><li style="word-wrap: break-word; margin: 1px; padding: 1px; list-style: decimal outside none; line-height: 1.5; ">套接口（Socket）：更为一般的进程间通信机制，可用于不同机器之间的进程间通信。起初是由Unix系统的BSD分支开发出来的，但现在一般可以移植到其它类Unix系统上：Linux和System V的变种都支持套接字。</li></ol><p style="word-wrap: break-word; margin: 0px; padding: 5px 0px 0px; line-height: 1.5; font-family: 宋体, Arial; background-color: #f5f7f8; ">下面将对上述通信机制做具体阐述。</p><p style="word-wrap: break-word; margin: 0px; padding: 5px 0px 0px; line-height: 1.5; font-family: 宋体, Arial; background-color: #f5f7f8; ">附1：参考文献[2]中对linux环境下的进程进行了概括说明：</p><p style="word-wrap: break-word; margin: 0px; padding: 5px 0px 0px; line-height: 1.5; font-family: 宋体, Arial; background-color: #f5f7f8; ">一般来说，linux下的进程包含以下几个关键要素：</p><ul style="word-wrap: break-word; margin: 0px; padding: 0px 0px 0px 2em; list-style-position: outside; list-style-image: none; line-height: 24px; font-family: 宋体, Arial; font-size: 12px; background-color: #f5f7f8; "><li style="word-wrap: break-word; margin: 0px; padding: 0px 0px 0px 2em; list-style: disc outside none; ">有一段可执行程序；</li><li style="word-wrap: break-word; margin: 0px; padding: 0px 0px 0px 2em; list-style: disc outside none; ">有专用的系统堆栈空间；</li><li style="word-wrap: break-word; margin: 0px; padding: 0px 0px 0px 2em; list-style: disc outside none; ">内核中有它的控制块（进程控制块），描述进程所占用的资源，这样，进程才能接受内核的调度；</li><li style="word-wrap: break-word; margin: 0px; padding: 0px 0px 0px 2em; list-style: disc outside none; ">具有独立的存储空间</li></ul><p style="word-wrap: break-word; margin: 0px; padding: 5px 0px 0px; line-height: 1.5; font-family: 宋体, Arial; background-color: #f5f7f8; ">进程和线程有时候并不完全区分，而往往根据上下文理解其含义。</p><br style="word-wrap: break-word; font-family: 宋体, Arial; font-size: 12px; line-height: 15px; background-color: #f5f7f8; " /><p style="word-wrap: break-word; margin: 0px; padding: 5px 0px 0px; line-height: 1.5; font-family: 宋体, Arial; background-color: #f5f7f8; "><a name="resources" style="word-wrap: break-word; color: #63401b; ">参考资料</a></p><ul style="word-wrap: break-word; margin: 0px; padding: 0px 0px 0px 2em; list-style-position: outside; list-style-image: none; line-height: 24px; font-family: 宋体, Arial; font-size: 12px; background-color: #f5f7f8; "><li style="word-wrap: break-word; margin: 0px; padding: 0px 0px 0px 2em; list-style: disc outside none; ">UNIX环境高级编程，作者：W.Richard Stevens，译者：尤晋元等，机械工业出版社。具有丰富的编程实例，以及关键函数伴随Unix的发展历程。<br style="word-wrap: break-word; " /><br style="word-wrap: break-word; " /></li><li style="word-wrap: break-word; margin: 0px; padding: 0px 0px 0px 2em; list-style: disc outside none; ">linux内核源代码情景分析（上、下），毛德操、胡希明著，浙江大学出版社，提供了对linux内核非常好的分析，同时，对一些关键概念的背景进行了详细的说明。<br style="word-wrap: break-word; " /><br style="word-wrap: break-word; " /></li><li style="word-wrap: break-word; margin: 0px; padding: 0px 0px 0px 2em; list-style: disc outside none; ">UNIX网络编程第二卷：进程间通信，作者：W.Richard Stevens，译者：杨继张，清华大学出版社。一本比较全面阐述Unix环境下进程间通信的书（没有信号和套接口，套接口在第一卷中）。</li></ul><img src ="http://www.cppblog.com/mysileng/aggbug/196409.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/mysileng/" target="_blank">鑫龙</a> 2012-12-18 13:58 <a href="http://www.cppblog.com/mysileng/archive/2012/12/18/196409.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>