
UNP2
文章平均质量分 70
安菲拉尔
这个作者很懒,什么都没留下…
展开
-
UNIX网络编程卷二 笔记 管道和FIFO
第1章 管道和FIFO1.1 pipeint pipe(intfd[2]); 创建一个单向、半双工管道,其中fd[0]用于读,fd[1]用于写。1.2 fork管道很少在单个进程内使用,一般用在两个有亲缘关系的进程间,父进程在pipe后fork,然后和子进程或子进程的后裔利用这个管道通信。pipe(fd);if ((pid =fork()) == 0){原创 2013-08-01 10:48:25 · 1861 阅读 · 0 评论 -
UNIX网络编程卷二 笔记 Posix共享内存区
第6章 Posix共享内存区6.1 共享内存区共享内存区是可用IPC形式中最快的,只有映射和解除映射需要进入内核的系统调用,映射后对共享内存区的访问和修改不再需要系统调用(内核只要负责好页表映射和处理页面故障即可),但通常需要同步手段。一个客户-服务器间传递文件数据的例子中,FIFO或消息队列等IPC方式需要4次内核-进程间的数据复制,每次都需要切换地址空间,开销很大;共享内原创 2013-08-09 11:02:08 · 1070 阅读 · 0 评论 -
UNIX网络编程卷二 笔记 互斥锁和条件变量
第3章 互斥锁和条件变量3.1 概述 默认情况下互斥锁和条件变量用于线程间同步,若将它们放在共享内存区,也能用于进程间同步。 对一个公共对象的访问若不能原子进行,就需要某种形式的同步。3.2 互斥锁 静态分配的互斥锁变量可以用常值PTHREAD_MUTEX_INITIALIZER初始化,动态分配和用于共享内存的互斥锁变量要用pthread_mutex_i原创 2013-08-04 10:39:39 · 1640 阅读 · 0 评论 -
UNIX网络编程卷二 笔记 Posix信号量
第5章 Posix信号量5.1 概述Posix信号量分为两种:1. 有名信号量:使用Posix IPC名字标识。2. 内存信号量:存放在共享内存区中。Posix信号量不必在内核中维护(System V信号量由内核维护),由可能为路径名的名字来标识。5.2 基本操作三种基本操作:1. 创建(create):指定初始值。2. 等待(wait):如果原创 2013-08-06 11:58:10 · 1531 阅读 · 0 评论 -
UNIX网络编程卷二 笔记 Posix消息队列
第2章 Posix消息队列2.1 概述每个消息都是一个有优先级的记录,进程写入消息前,不需要有其它进程在等待消息。消息队列具有随内核的持续性。Posix消息队列与System V消息队列的两个主要区别:1. Posix读返回最高优先级的最早消息,System V返回指定优先级的最早消息。2. 向空队列放置一个消息时,Posix可以产生一个信号或启动一个线程。原创 2013-08-03 15:16:43 · 1167 阅读 · 0 评论 -
UNIX网络编程卷二 笔记 读写锁和记录上锁
第4章 读写锁和记录上锁4.1 读写锁读写锁用于读取数据比修改数据更频繁的场景,它的分配规则如下:1. 没有线程持有写锁时,任意多的线程可以持有读锁。2. 仅当没有线程持有读锁或写锁时,才能分配写锁。当已有线程持有读锁时,另一线程申请写锁则会阻塞,若后续还有读锁的申请,此时有两种策略:1. 对后续的读锁请求都通过,可能会造成因读锁不断被分配,写锁申请始终阻塞原创 2013-08-06 11:56:20 · 1250 阅读 · 0 评论