当前位置:首页 > 工业技术
4.4BSD操作系统设计与实现
4.4BSD操作系统设计与实现

4.4BSD操作系统设计与实现PDF电子书下载

工业技术

  • 电子书积分:13 积分如何计算积分?
  • 作 者:(美)麦库斯克等著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2012
  • ISBN:9787111366478
  • 页数:399 页
图书介绍:本书首先回顾了BSD系统的历史和目标,然后给出了当前BSD系统设计和实现的一个综述。接着在解释设计原则的同时,作者详述了为实现系统功能所使用的概念、数据结构和算法。本书适合操作系统实现者、系统程序员、Unix应用程序开发人员、系统管理员和对操作系统感兴趣的读者阅读。
《4.4BSD操作系统设计与实现》目录

第一部分 综述 1

第1章BSD系统的历史和目标 1

1.1 UNIX系统的历史 1

1.1.1 UNIX系统的起源 1

1.1.2 UNIX系统的研究与发展 3

1.1.3 AT&T的UNX系统Ⅲ和系统Ⅴ 5

1.1.4其他组织 5

1.1.5关于BSD系统 5

1.1.6 UNIX世界 6

1.2 BSD和其他系统 7

1.3 4BSD的设计目标 9

1.3.1 4.2BSD设计目标 9

1.3.2 4.3BSD设计目标 10

1.3.3 4.4BSD设计目标 10

1.4系统的发布 11

参考资源 13

第2章4.4BSD设计综述 16

2.1 4.4 BSD模块与内核 16

2.2内核结构 17

2.3内核提供的服务 19

2.4进程管理 19

2.4.1信号 20

2.4.2进程组和会话 21

2.5内存管理 22

2.5.1 BSD内存管理设计要点 22

2.5.2.内核中的内存管理 23

2.6 I/O系统 24

2.6.1描述符与I/O 24

2.6.2描述符管理 25

2.6.3设备 25

2.6.4套接字IPC 26

2.6.5分散/聚集I/O 27

2.6.6多文件系统支持 27

2.7文件系统 27

2.8文件库(filestore) 30

2.9网络文件系统 31

2.10终端 32

2.11进程间通信 32

2.12网络通信 33

2.13网络实现 33

2.14系统操作 34

习题 34

参考资源 34

第3章 内核服务 36

3.1内核组织 36

3.1.1系统进程 36

3.1.2系统入口 36

3.1.3内核的运行时结构 37

3.1.4内核的入口 38

3.1.5内核的返回 39

3.2系统调用 39

3.2.1结果处理 39

3.2.2系统调用的返回 40

3.3陷阱和中断 40

3.3.1陷阱 40

3.3.2 I/O设备中断 41

3.3.3软件中断 41

3.4时钟中断 42

3.4.1统计和进程调度 42

3.4.2超时 43

3.5内存管理服务 44

3.6时间服务 46

3.6.1标准时间 47

3.6.2调整时间 47

3.6.3外部表示 47

3.6.4间隔时间 47

3.7用户、组和其他标识符 48

3.7.1主机标识符 50

3.7.2进程组和会话 50

3.8资源服务 51

3.8.1进程优先级 51

3.8.2资源利用 51

3.8.3资源限制 51

3.8.4文件系统配额 52

3.9系统操作服务 52

习题 53

参考资源 54

第二部分 进程 55

第4章 进程管理 55

4.1进程管理概述 55

4.1.1多程序机制 56

4.1.2调度 56

4.2进程状态 57

4.2.1进程结构 58

4.2.2用户结构 61

4.3上下文切换 62

4.3.1进程状态 63

4.3.2底层上下文切换 63

4.3.3主动上下文切换 63

4.3.4同步 65

4.4进程调度 67

4.4.1进程优先级的计算 67

4.4.2进程优先级例程 68

4.4.3进程运行队列和上下文切换 69

4.5进程创建 70

4.6进程终止 72

4.7信号 72

4.7.1与POSIX信号的比较 74

4.7.2发送信号 75

4.7.3传递信号 77

4.8进程组和会话 78

4.8.1会话 79

4.8.2作业控制 80

4.9进程调试 81

习题 83

参考资源 84

第5章 内存管理 85

5.1术语 85

5.1.1进程与内存 86

5.1.2分页 86

5.1.3替换算法 87

5.1.4工作集模型 87

5.1.5交换 88

5.1.6虚拟内存的优点 88

5.1.7虚拟内存的硬件要求 88

5.2 44BSD虚拟内存系统综述 89

5.3内核内存管理 91

5.3.1内核映射和子映射 91

5.3.2内核地址空间的分配 92

5.3.3内核内存分配 93

5.4进程独立拥有的资源(Per-Process Resource) 95

5.4.1 44BSD进程虚拟地址空间 95

5.4.2缺页调度 96

5.4.3映射对象 97

5.4.4对象 98

5.4.5页对象 98

5.5共享内存 99

5.5.1 mmap模型 100

5.5.2共享映射 102

5.5.3私有映射 102

5.5.4压缩影子链 104

5.5.5私有快照 105

5.6新进程的创建 106

5.6.1保留内核资源 106

5.6.2复制用户地址空间 107

5.6.3不采用复制技术创建新进程 108

5.7文件的执行 108

5.8进程地址空间的操作 109

5.8.1进程大小的改变 109

5.8.2文件映射 110

5.8.3改变保护机制 111

5.9进程的终止 112

5.10分页器接口 112

5.10.1 vnode分页器 114

5.10.2设备分页器 115

5.10.3交换分页器 115

5.11分页 117

5.12页面替换 121

5.12.1换页参数 122

5.12.2页面换出守护进程 123

5.12.3交换 124

5.12.4换入进程 125

5.13可移植性 126

5.13.1 pmap模块的角色 128

5.13.2初始化和启动 130

5.13.3映射的分配和释放 132

5.13.4改变映射的访问和锁定属性 134

5.13.5页表使用信息的管理 135

5.13.6物理页面的初始化 135

5.13.7内部数据结构的管理 136

习题 137

参考资源 137

第三部分I/O系统 139

第6章I/O系统综述 139

6.1从用户到设备的I/O映射 139

6.1.1设备驱动程序 140

6.1.2 I/O队列 141

6.1.3中断处理 141

6.2块设备 142

6.2.1块设备的入口点 142

6.2.2磁盘I/O请求的排序 143

6.2.3磁盘标签 144

6.3字符设备 145

6.3.1原始设备和物理I/O 146

6.3.2面向字符的设备 147

6.3.3字符设备驱动程序的入口点 148

6.4描述符管理和服务 148

6.4.1打开文件入口 149

6.4.2对描述符的管理 151

6.4.3文件描述符的锁定 152

6.4.4描述符上的多路复用I/O操作 154

6.4.5 select的实现 155

6.4.6在内核中数据的移动 157

6.5虚拟文件系统的接口 159

6.5.1 vnode的内容 159

6.5.2对vnode的操作 160

6.5.3路径名翻译 161

6.5.4导出文件系统服务 162

6.6独立于文件系统的服务 163

6.6.1名字缓存 164

6.6.2缓冲区管理 165

6.6.3缓冲区管理的实现 167

6.7可堆叠的文件系统 169

6.7.1简单文件系统层 170

6.7.2联合安装的文件系统 171

6.7.3其他的文件系统 173

习题 174

参考资源 175

第7章 本地文件系统 176

7.1文件系统的分层管理 176

7.2索引节点的结构 177

7.3命名 180

7.3.1目录 180

7.3.2在目录中查找名字 181

7.3.3路径名转化 182

7.3.4链接 182

7.4配额 185

7.5文件锁定 187

7.6其他文件系统机制 191

7.6.1大文件支持 191

7.6.2文件标志 192

习题 193

参考资源 193

第8章 本地文件库 194

8.1文件库概述 194

8.2 Berkeley快速文件系统 196

8.2.1 Berkeley快速文件系统的组织 197

8.2.2存储策略的优化 198

8.2.3文件的读/写操作 199

8.2.4文件系统参数化 201

8.2.5布局策略 202

8.2.6分配机制 203

8.2.7块的成簇 205

8.2.8同步操作 207

8.3日志结构的文件系统 208

8.3.1日志结构的文件系统组织 209

8.3.2索引文件 211

8.3.3读日志 212

8.3.4写日志 212

8.3.5块统计 213

8.3.6缓存 215

8.3.7目录操作 215

8.3.8文件的创建 216

8.3.9读写文件 217

8.3.10文件系统清理 217

8.3.11文件系统参数化 219

8.3.12文件系统的崩溃恢复 219

8.4基于内存的文件系统 220

8.4.1基于内存的文件系统的组织 221

8.4.2文件系统性能 223

8.4.3展望 223

习题 224

参考资源 225

第9章 网络文件系统 227

9.1历史和概况 227

9.2 NFS结构和操作 229

9.2.1 NFS协议 231

9.2.2 44BSD的NFS实现 233

9.2.3客户端/服务器的交互 236

9.2.4 RPC的传输问题 236

9.2.5安全问题 237

9.3提高性能的技术 239

9.3.1租约 241

9.3.2崩溃恢复 244

习题 245

参考资源 246

第10章 终端处理 248

10.1终端处理模式 248

10.2行规程 249

10.3用户接口 250

10.4 tty数据结构 251

10.5进程组、会话和终端控制 253

10.6字符列表 253

10.7 RS-232和调制解调器控制 254

10.8终端操作 255

10.8.1打开 255

10.8.2输出行规程 256

10.8.3输出的上半部 257

10.8.4输出的下半部 258

10.8.5输入的下半部 258

10.8.6输入的上半部 259

10.8.7 stop例程 260

10.8.8 ioctl例程 260

10.8.9调制解调器转换 261

10.8.10关闭终端设备 261

10.9其他的行规程 262

10.9.1串行线路IP规程 262

10.9.2图表行规程 263

习题 263

参考资源 263

第四部分 通信 265

第11章 进程间通信 265

11.1进程间通信模型 265

11.2实现结构和概述 270

11.3内存管理 271

11.3.1 mbufs 271

11.3.2存储管理算法 273

11.3.3 mbuf操作例程 274

11.4数据结构 275

11.4.1通信域 275

11.4.2套接字 276

11.4.3套接字地址 278

11.5建立连接 279

11.6数据传送 281

11.6.1传送数据 281

11.6.2接收数据 283

11.6.3传递访问权限 285

11.6.4在本地域传递访问权限 286

11.7关闭套接字 287

习题 288

参考资源 289

第12章 网络通信 290

12.1内部结构 290

12.1.1数据流 291

12.1.2通信协议 291

12.1.3网络接口 293

12.2套接字到协议的接口 297

12.2.1协议用户请求例程 298

12.2.2内部请求 300

12.2.3协议控制-输出例程 300

12.3协议到协议的接口 301

12.3.1 pr output 301

12.3.2 pr_input 301

12.3.3 pr_ctlinput 301

12.4协议和网络接口之间的接口 302

12.4.1数据包的传送 302

12.4.2数据包的接收 303

12.5路由 305

12.5.1内核路由表 306

12.5.2路由查找 308

12.5.3路由重定向 311

12.5.4路由表接口 311

12.5.5用户级的路由策略 312

12.5.6用户级路由接口:路由套接字 312

12.6缓存和拥塞控制 313

12.6.1协议缓存策略 313

12.6.2队列限制 314

12.7原始套接字 314

12.7.1控制块 314

12.7.2输入处理 315

12.7.3输出处理 315

12.8其他的网络子系统主题 315

12.8.1带外数据 316

12.8.2地址解析协议 316

习题 317

参考资源 318

第13章 网络协议 320

13.1 Internet网络协议 320

13.1.1 Internet地址 322

13.1.2子网 322

13.1.3广播地址 324

13.1.4 Internet多播 324

13.1.5 Internet端口与关联 325

13.1.6协议控制块 325

13.2用户数据报协议(UDP) 325

13.2.1初始化 326

13.2.2输出 327

13.2.3输入 327

13.2.4控制操作 328

13.3互联网协议(IP) 328

13.3.1输出 329

13.3.2输入 330

13.3.3转发 331

13.4传输控制协议(TCP ) 332

13.4.1 TCP连接状态 333

13.4.2序列变量 336

13.5 TCP算法 337

13.5.1定时器 338

13.5.2往返程时间的估计 339

13.5.3连接建立 340

13.5.4连接关闭 341

13.6 TCP输入处理 342

13.7 TCP输出处理 344

13.7.1数据的发送 345

13.7.2避免傻瓜窗口综合征 346

13.7.3避免小数据包 346

13.7.4延迟的确认及窗口更新 347

13.7.5重发状态 348

13.7.6慢启动 348

13.7.7源抑制的处理 349

13.7.8缓冲区与窗口大小调整 349

13.7.9使用慢启动避免拥塞 350

13.7.10快速重发 351

13.8 Internet控制报文协议(ICMP ) 352

13.9 OSI实现中的问题 353

13.10联网和进程间通信综述 355

13.10.1通信通道的创建 355

13.10.2数据的发送与接收 356

13.10.3数据传送或接收的终止 356

习题 357

参考资源 359

第五部分 系统操作 361

第14章 系统启动 361

14.1概述 361

14.2引导 362

14.3内核的初始化 363

14.3.1汇编语言启动 363

14.3.2机器相关初始化 364

14.3.3消息缓冲区 364

14.3.4系统数据结构 364

14.4自动配置 365

14.4.1设备的探测 366

14.4.2设备连接 367

14.4.3新的自动配置数据结构 367

14.4.4新的自动配置函数 368

14.4.5设备命名 368

14.5独立于机器的初始化 369

14.6用户级初始化 371

14.6.1 /sbin/init 371

14.6.2 /etc/rc 372

14.6.3 /usr/libexe/getty 372

14.6.4 /usr/bin/login 372

14.7系统启动的相关话题 373

14.7.1内核的配置 373

14.7.2系统关机与自动重启 373

14.7.3系统调试 374

14.7.4同内核来回传递信息 374

习题 375

参考资源 376

附录 术语表 377

相关图书
作者其它书籍
返回顶部