实用UNIX编程

实用UNIX编程
作 者: Kay Robbins Steven Robbins 刘宗
出版社: 机械工业出版社
丛编项: 操作系统系列丛书
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: UNIX
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《实用UNIX编程》作者简介

内容简介

本书提供了在UNIX环境下的编程技术,特别为进程管理、并发和通信中许多基本概念提供了编程指导。本书用大量实例和图示阐述了UNIX操作系统中的抽象概念,为UNIXC编程人员提供了很好的参考。本书可作为计算机专业本科生和研究生的教材或参考书,也可作为自学UNIX操作系统的参考书。

图书目录

目 录

译者序

前言

第一篇 基础知识

第1章 并发

1.1多道程序设计和多重任务处理

1.2应用层次上的并发

1.2.1中断

1.2.2信号

1.2.3输入和输出

1.2.4线程和资源共享

1.2.5分布式计算网络

1.3UNIX标准

1.4UNIX中的编程

1.5使函数安全

1.6练习:参数数组

1.7附加读物

第2章 程序和进程

2.1可执行程序的布局

2.2静态对象

2.3进程ID

2.4进程状态

2.5进程创建和UNIXfork

2.6wait系统调用

2.7exec系统调用

2.8后台进程和守护进程

2.9进程环境

2.10UNIX中的进程终止

2.11临界区

2.12练习:进程链

2.13练习:进程扇

2.13.1runsim的说明

2.13.2测试runsim程序

2.14练习:简单的biff

2.15练习:新闻biff

2.15.1Biffing一个单个文件

2.15.2列表对象的创建

2.16附加读物

第3章 文件

3.1目录和路径

3.1.1读取目录

3.1.2搜索路径

3.1.3UNIX文件系统

3.2UNIX的文件表示

3.2.1目录表示

3.2.2链接

3.3文件句柄表示

3.3.1文件描述符

3.3.2文件指针和缓冲

3.3.3文件描述符的继承

3.4过滤程序和重定向

3.5管道

3.6读和写文件

3.7非阻塞的I/O

3.8select调用

3.9FIFO

3.10特殊文件——音频设备

3.11练习:遍历目录

3.12练习:proc文件系统

3.13练习:音频

3.14练习:终端控制

3.15附加读物

第4章 工程:令牌环

4.1形成一个环

4.2简单通信

4.3令牌的互斥

4.4通过投票的互斥

4.5匿名环上的领袖选举

4.6用于通信的令牌环

4.7流水线预处理器

4.8并行令牌算法

4.8.1图像滤波

4.8.2矩阵乘法

4.9可伸缩环

4.10附加读物

第二篇 异步事件

第5章 信号

5.1发送信号

5.2信号屏蔽和信号集合

5.3sigaction函数

5.4pause函数和sigsuspend函数

5.5一个例子——biff

5.6系统调用和信号

5.7siglongjmp和sigsetjmp函数

5.8实时信号

5.9异步I/O

5.10练习统计运行时间

5.11练习文件系统二进程

5.12练习:假脱机一个“慢 设备

5.13附加读物

第6章 工程:计时器

6.1UNIX中的计时器

6.2间隔计时器

6.2.1Spec1170的间隔计时器

6.2.2POSIX的间隔计时器

6.3工程概述

6.4简单的计时器

6.5设置五个独立计时器中的一个

6.5.1mytimers对象

6.5.2hardware timer对象

6.5.3主程序的实现

6.5.4showall对象

6.6多计时器

6.6.1设置多计时器

6.6.2对多计时器进行测试

6.7多处理器的安全执行

6.8cron工具

6.9POSIX计时器实现

6.10附加读物

第7章 工程:解剖shell

7.1一个简单的shell

7.2重定向

7.3管道线

7.4信号

7.5进程组、会议和控制终端

7.6在ush中处理后台进程

7.7作业控制

7.8ush的作业控制

7.8.1作业列表对象

7.8.2ush的作业列表

7.8.3ush中的作业控制

7.9附加读物

第三篇 并发

第8章 临界区和信号量

8.1原子操作

8.2信号量

8.2.1用TestAndSet实现信号量

8.2.2无须“忙等待”信号量

8.2.3AND同步机制

8.3POSIX信号量

8.3.1无名信号量的初始化

8.3.2POSIX信号量操作

8.3.3有名信号量

8.4系统V中的信号量

8.4.1信号量集

8.4.2信号量创建

8.4.3系统V信号量操作

8.4.4信号量控制

8.4.5信号量状态

8.5信号量和信号

8.6练习:POSIX无名信号量

8.7练习:POSIX有名信号量

8.8练习:许可权管理

8.9练习:系统V共享存储器

8.9.1系统V共享存储器的综述

8.9.2软管道实现的规格说明

8.10练习:系统V消息队列

8.11附加读物

第9章 POSIX线程

9.1问题的引出:监视文件描述符

9.1.1简单轮询

9.1.2消除忙等的异步I/O

9.1.3使用select来消除忙等

9.1.4使用po11来消除忙等

9.1.5多线程

9.2POSIX线程

9.3基本线程管理

9.4用户线程与内核线程

9.5线程属性

9.6练习:并行文件拷贝

9.7附加读物

第10章 线程同步

10.1互斥

10.2信号量

10.3条件变量

10.4信号处理和线程

10.5练习:线程化打印服务

10.6附加读物

第11章 工程:简化的并行虚拟机

11.1简化的并行虚拟机

11.2NTPVM 工程概貌

11.2.1START TASK 包

11.2.2DATA包

11.2.3DONE包

11.3分派程序的I/O和测试

11.4无输入的单任务

11.5顺序任务

11.5.1版本A:非线程分派程序的实现

11.5.2版本B:线程分派程序的实现

11.6并发任务

11.6.1版本A:用select和po11来实现

11.6.2版本B:用线程来实现

11.7广播和BARRIER

11.8Terminate和Signals

11.9附加读物

第四篇 通信

第12章 客户机/服务器通信

12.1客户机/服务器策略

12.2通用Internet通信接口

12.2.1UICI服务器

12.2.2UICI客户机

12.2.3UICI实现

12.3网络通信

12.4UICI的套接口实现

12.5传输层接口

12.6流

12.7UICI的流实现

12.8UICI的线程安全

12.9练习:音频传输

12.10练习:Ping服务器

12.11附加读物

第13章 工程:Internet广播

13.1多路传输概述

13.2单向通信

13.3双向通信

13.4传输缓冲区

13.5多路传输缓冲区

13.6网络接收器

13.7收听与关闭

13.8网络广播者

13.9信号处理

13.10附加读物

第14章 远程过程调用

14.1基本操作

14.2将简单局域调用转换为RPC

14.3改进的远程伪随机数服务

14.4服务状态与有效请求

14.5远程有效文件服务

14.6联编与命名服务

14.7失败

14.8NFS——网络文件系统

14.9线程与远程过程调用

14.10练习:无状态文件服务

14.11附加读物

第15章 工程:元组空间

15.1Linda语言

15.2Richard:一种简化的Linda语言

15.3简单的Richard元组空间

15.3.1元组数据结构

15.3.2表示元组空间

15.3.3元组空间操作

15.3.4转换为远程服务器

15.4黑板:一个元组空间应用

15.4.1n皇后问题

15.4.2贪婪回溯算法

15.4.3黑板与agent

15.5Richard中的活动元组

15.5.1简化的设计

15.5.2与eval的通信

15.6以元组空间作为Richard中的元组

15.7Richard多线程服务器

15.8附加读物

第五篇 附录

附录A UNIX基础

A.1获得帮助

A.1.1系统调用与C库函数

A.1.2UNIX命令与实用程序

A.1.3与man相关的命令

A.2编译

A.3Makefiles

A.4头文件

A.5链接与库

A.6调试帮助

A.7用户环境

A.8附加读物

附录B UICI实现

B.1UICI原型

B.2Socket实现

B.3TLI实现

B.4流实现

B.5线程安全UICI实现