发布时间:2012-12-17 11:41:57
1)管道(Pipe):管道可用于具有亲缘关系进程间的通信,允许一个进程和另一个与它有共同祖先的进程之间进行通信。 2)命名管道(named pipe):命名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。命名管道在文件系统中有对应的文件名。命名管道通过命令mkfifo或系统调用mkfifo来创建。 3)信号(Signal):信号是比较复杂的通信方式,用于通知接受进程有某种事件发生,除了用于进程间通信外,进程还可以发送信号给进程本身;linux除了支持Unix早期信号语义函数sigal外,还支持语义符合Posix.1标准的信号函数sigactio......【阅读全文】
发布时间:2012-12-17 11:41:46
1.1理解通信协议的概念通信协议的两个特点:1.通信的流程 首先要能连接上服务器,连接上后,双方必须遵守严格约定的消息发送顺序,否则就无法保持双方的交流。2.通信消息格式的定义 客户端在连接通道上向服务器发送消息时,服务器必须知道凭什么来界定收到的数据算是“一条”消息? 打电话时,我们听到的一句话是根据中文的语法基础决定的。当两台机器通信时,这个规则必须定义明确,且双方遵守。多人聊天室开发过程中,大家容易犯这样的错误:如果客户端发送的消息不加上“\r\n”做一条消息的标识符,服务器就无法读到这条消息。 根据这个思路,可以和服务器约定......【阅读全文】
发布时间:2012-12-17 11:41:04
一. 信号量 l信号量: 解决进程之间的同步与互斥的IPC机制 多个进程同时运行,之间存在关联 •同步关系 •互斥关系互斥与同步关系存在的根源在于临界资源 •临界资源是在同一个时刻只允许有限个(通常只有一个)进程可以访问(读)或修改(写)的资源 –硬件资源(处理器、内存、存储器以及其他外围设备等) –软件资源(共享代码段,共享结构和变量等) •临界区,临界区本身也会成为临界资源 一个称为信号量的变量 •信号量对应于某一种资源,取一个非负的整型值 •信号量值指的是当前......【阅读全文】
发布时间:2012-12-17 09:11:33
通常会说:进程之间的地址空间是独享的,而线程是共享进程的地址空间,线程的资源比进程小,创建线程比创建进程快,线程间切换快,线程间通信快,线程资源利用率好.下面做个补充:1,线程挂则可能导致进程挂,稳定性差。对长时间运行的serve程序,这一点尤为重要。所以为了兼顾稳定性和性能,很多程序中采用multi-process +multi-thread.2,线程受进程资源的限制,比如:ulimit -a可以看到的若干。3,线程在同一进程内,方便的共享内存。进程则需做内存映射,相关的互斥量等也需要设置为进程共享。4,同步相对复杂,不利于资源的管理和维护。在开发经验中你会懂得:1)web服务器都支持mas......【阅读全文】