《UNIX技术-系统程序设计篇》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:刘祖亮著;新智工作室改编
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2000
  • ISBN:7505357727
  • 页数:311 页
图书介绍:本书由浅入深地介绍了用C或C++进行UNIX系统程序设计的有关内容,并以大量的示例程序相辅,使有一定基础的读者进一步了解UNIX的程序设计。本书前7章主要介绍了UNIX的文件系统,包括:系统调用的基本概念,文件系统的基础知识,与文件系统有关的系统调用,终端机的系统调用,UNIX的快速缓冲区,文件销定与记录销定,几种常见的UNIX文件系统。从第8章起,重点转到进程控制系统,介绍了进程的管理,分时与实时系统调度,信号处理,进程间的通讯,UNIX的存储管理系统。最后一章则是对常见问题的讨论与概念清。本书根据台湾和硕科技文化有限公司出版的,由台湾刘祖亮先生编写的繁体版著作《新洞悉UNIX:系统程式设计篇》改编而成,适用于有一定的UNIX系统程序设计经验的人员,也可作为大学计算机系的教材。

前言页 1

第0章 导论 1

本书适用对象 2

本书的编排风格 2

阅读本书所必需的背景知识 2

本书的组织结构 2

第1章 认识系统调用 5

何谓系统调用 6

系统调用的使用 7

系统调用的执行 7

核心程序的结构 9

系统调用与一般函数的区别 9

STREAMS 11

第2章 认识文件系统 13

目录与文件 14

文件的存取权限与性质设定 15

UNIX文件系统的内部结构 19

INODE 19

文件的内部结构 21

文件存取的方式 28

第3章 操作文件的系统调用 29

认识文件描述符(file descriptor) 30

OPEN系统调用 31

read与write系统调用 32

close系统调用 32

lseek系统调用 34

dup系统调用 38

link系统调用 39

unlink系统调用 40

fentl系统调用 41

stat与fatat系统调用 43

access系统调用 44

chomod系统调用 45

chown系统调用 45

chdir系统调用 46

chroot系统调用 46

mkdir与rmdir系统调用 47

mknod系统调用 47

pipe系统调用 49

mount与umount系统调用 52

文件描述符与文件指针的关系 53

将文件指针转换为文件描述符的函数 54

更周延稳定的系统调用 54

关于inode的进一步认识 55

第4章 控制终端机的系统调用 57

ioctl系统调用与终端机的输出输入 58

输入模式 60

输出模式 61

控制模式 62

区域模式 63

ioctl()在系统接口上的改进 69

STREAMS的概念 71

STREAMS的应用 73

Stream信息(message) 74

信息类型(Message Type) 74

控制信息与数据(Control Information Data) 75

信息的结构 76

putmsg()与getmsg() 77

信息的接收与传递 77

模块与驱动程序(Modules Drivers) 80

多任务(Multiplexing) 81

select()与poll() 85

异步输出输入(Asynchronous I/O)) 87

第5章 UNIX的快速缓冲区 89

为何要使用快速缓冲区 90

快速缓冲区的运作 90

快速缓冲区的数据结构 91

与快速缓冲区运作有关的子程序 96

breada子程序 97

bwrite子程序 97

bread子程序 97

binit子程序 97

getblk子程序 98

brelse子程序 99

使用快速缓冲区的负面影响 100

第6章 文件锁定与记录锁定 101

为什么需要文件锁定 102

文件锁定技术的变革 102

锁定的方式和种类 103

锁定的继承权 106

深入研究fentl()系统调用 106

lockf()函数 115

死锁(dead lock) 122

第7章 文件系统 125

s5文件系统 126

BSD.4.4的文件系统 126

快速文件系统(FFS) 126

记录结构文件系统(LFS) 127

存储器基本文件系统(MFS) 127

UFS-AT T版的快速文件系统 128

ufs的启动块 129

ufs的超级块 129

ufs的inode 129

ufs的存储(数据)块 130

ufs对目录的处理 131

sfs文件系统 132

vxfs文件系统 135

AIX的文件系统—JFS 136

AIX的虚拟文件系统 137

JFS的结构 137

UNIX的文件格式 137

ELF文件格式 140

第8章 进程的管理 143

进程与程序 144

进程的建立与执行 144

exec系统调用 150

fork与exec的应用实例 157

进程的优先权 157

线程(Thread)的概念 159

线程与资源 159

线程的类型 160

以函数库为基础的线程 160

以核心支持为基础的线程 161

第9章 分时与实时系统调度 163

前言 164

系统调度的目标 164

时间配额 164

UNIX的调度程序(Scheduler) 165

进程的状态变化 167

实时系统(real time System) 168

UNIX如何支持实时系统 169

扩充原有的系统功能 169

主从(host/target)支持 170

兼容作业 170

重建核心程序但维持标准UNIX接口 170

加入夺取点(Preemption points) 171

实时系统的效率评估 171

控制系统调度的指令 171

构造调度程序 173

第10章 信号处理 177

何谓信号(signal) 178

SVR4及POSIX.1所定义的信号列表 179

信号的处理 184

处理信号的系统调用 184

sigset系统调用 189

kill系统调用 191

alarm系统调用 191

pause系统调用 192

旧有信号处理子程序的弊病 193

阻塞信号(Block Signal) 196

供需系统的模拟 198

信号屏蔽 205

SVR4新增的信号子程序 207

更多的例子 211

工作控制(Job Control) 227

信号使用实例——精确地计算时间 229

第11章 进程间的通讯 235

背景知识 236

pipe系统调用 236

命名管道与mknod系统调用 240

命名管道的应用——客户与服务器 241

第12章 进程间通讯进阶 251

IPC对象与消息队列 252

IPC对象的内容 252

观察IPC对象内容的系统指令 253

消息队列的使用 254

messgget系统调用 257

msgsnd与msgrcy系统调用 258

信息队列的限制 264

信号与讯号 264

CRTICAL SECTION 264

DIJKSTRA演算法 265

UNIX SVR4的信号 267

操作信号的系统调用 268

共享存储器 277

第13章 UNIX的存储器管理 287

UNIX的存储器管理策略 288

需求分页 289

trap的种类 290

将进程锁定在主存储器中 290

认识Trap 290

UNIX系统的存储器配置 291

进程的虚拟存储器寻址 291

fork与vfork 295

用户模式与核心程序模式的转换 295

第14章 问题与解答 297

何谓System Panics 298

什么是监视狗重设(Watchdog reset) 299

如何建立两个超级用户帐号 299

Zombie进程 300

每次登录都看到的信息是哪里来的 300

如何暂停造成高负荷的程序 304

O_NONBLOCK与O_NDELAY标志 304

挽救被误删的文件 305

ed的臭虫(bug) 306

目录上的常驻位 306

同样的程序为什么输出结果不同 307

魔术数字 308

启动X窗口时出现奇怪的信息 309

script的循环为何只执行一次 310

如何让程序在启动文件之前执行 310