第一部分简介 第1章简介2 1.1概述2 1.2进程、线程与信息共享3 1.3IPC对象的持续性4 1.4名字空间5 1.5fork、exec和exit对IPC对象的影响7 1.6出错处理:包裹函数8 1.7Unix标准9 1.8书中IPC例子索引表11 1.9小结13 习题13 第2章PosixIPC14 2.1概述14 2.2IPC名字14 2.3创建与打开IPC通道16 2.4IPC权限18 2.5小结19 习题19 第3章SystemVIPC20 .3.1概述20 3.2key_t键和ftok函数20 3.3ipc_perm结构22 3.4创建与打开IPC通道22 3.5IPC权限24 3.6标识符重用25 3.7ipcs和ipcrm程序27 3.8内核限制27 3.9小结28 习题29 第二部分消息传递 第4章管道和FIFO32 4.1概述32 4.2一个简单的客户-服务器例子32 4.3管道32 4.4全双工管道37 4.5popen和pclose函数39 4.6FIFO40 4.7管道和FIFO的额外属性44 4.8单个服务器,多个客户46 4.9对比迭代服务器与并发服务器50 4.10字节流与消息51 4.11管道和FIFO限制55 4.12小结56 习题57 第5章Posix消息队列58 5.1概述58 5.2mq_open、mq_close和mq_unlink函数59 5.3mq_getattr和mq_setattr函数61 5.4mq_send和mq_receive函数64 5.5消息队列限制67 5.6mq_notify函数68 5.7Posix实时信号78 5.8使用内存映射I/O实现Posix消息队列85 5.9小结101 习题101 第6章SystemV消息队列103 6.1概述103 6.2msgget函数104 6.3msgsnd函数104 6.4msgrcv函数105 6.5msgctl函数106 6.6简单的程序107 6.7客户-服务器例子112 6.8复用消息113 6.9消息队列上使用select和poll121 6.10消息队列限制122 6.11小结124 习题124 第三部分同步 第7章互斥锁和条件变量126 7.1概述126 7.2互斥锁:上锁与解锁126 7.3生产者-消费者问题127 7.4对比上锁与等待131 7.5条件变量:等待与信号发送132 7.6条件变量:定时等待和广播136 7.7互斥锁和条件变量的属性136 7.8小结139 习题139 第8章读写锁140 8.1概述140 8.2获取与释放读写锁140 8.3读写锁属性141 8.4使用互斥锁和条件变量实现读写锁142 8.5线程取消148 8.6小结153 习题153 第9章记录上锁154 9.1概述154 9.2对比记录上锁与文件上锁157 9.3Posixfcntl记录上锁158 9.4劝告性上锁162 9.5强制性上锁164 9.6读出者和写入者的优先级166 9.7启动一个守护进程的独一副本170 9.8文件作锁用171 9.9NFS上锁173 9.10小结173 习题174 第10章Posix信号量175 10.1概述175 10.2sem_open、sem_close和sem_ unlink函数179 10.3sem_wait和sem_trywait函数180 10.4sem_post和sem_getvalue函数180 10.5简单的程序181 10.6生产者-消费者问题186 10.7文件上锁190 10.8sem_init和sem_destroy函数191 10.9多个生产者,单个消费者193 10.10多个生产者,多个消费者19
2017/1/14 5:24:31
42.17MB
操作系统
1