深入理解UNIX系统内核

深入理解UNIX系统内核
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: [美] , , ,
2015-05
版次: 1
ISBN: 9787111491453
定价: 119.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 484页
原版书名: UNIX Internals: The New Frontiers
62人买过
  •   《深入理解UNIX系统内核》由国际资深UNIX专家撰写,深入剖析UNIX操作系统的内核技术,包含丰富的图示与细节展示。作者从操作系统设计的角度来审视UNIX系统内核,针对内核中的每个模块,深入探讨其结构和设计,详细阐释主流UNIX系统如何选择具体模块的实现方法,以及每种方法的优缺点,为读者更好地理解操作系统内核知识、提升操作系统开发能力提供翔实指导。
      《深入理解UNIX系统内核》共17章:第1章追溯UNIX系统的演变并分析影响系统主要变化的因素;第2~7章介绍进程子系统,包括线程及其在内核和用户库中的实现,信号、作业控制及登录会话管理,UNIX调度器和对实时应用程序的支持,进程间通信的技术(IPC),Mach系统架构,以及在现代单处理器和多处理器系统中应用的同步框架;第8~11章介绍文件系统,内容涵盖用户可见的文件系统接口、定义内核和文件系统交互的vnode/vfs接口,原始的SystemV文件系统(s5fs)和伯克利快速文件系统(FFS)等一些具体文件系统的实现细节,还包括太阳微系统的网络文件系统(NFS)、AT&T的远程文件共享(RFS)和Transarc公司的分布式文件系统(DFS)等分布式文件系统,以及一些使用日志提供更高可靠性和性能的高级文件系统,同时介绍一种基于堆栈式vnode层的新文件系统框架;第12~15章介绍内存管理,涉及内核内存分配、虚拟内存的概念、SVR4和Solaris的虚拟内存架构、Mach和4.4BSD内存模型,以及旁路转换缓冲和虚拟地址缓存;第16~17章主要介绍I/O子系统,内容包括设备驱动程序框架、内核与I/O子系统的交互、SVR4设备驱动程序接口、内核与驱动程序交互接口规范,以及STREAMS框架。
      UreshVahalia,EMC公司副总裁,主管企业存储部门,领导美国和印度团队构建EMC下一代存储产品。Uresh专注于操作系统和存储技术的研发,在存储和操作系统领域拥有30余项专利和科研著作,并多次代表EMC参加SNIA、IEEE、CIFS和NFSv4工作组的行业论坛及专家座谈。

      李雨,阿里巴巴(中国)有限公司资深内核开发工程师,参与Linux内核的开发与维护,涉及内存管理、设备驱动等多个子系统,主要负责Linux内核的网络协议栈。他的研究兴趣是Linux内核和网络技术。

      薛磊,现就职甲骨文系统研发中心,负责Solaris内核中网络协议的开发。他是开源的拥趸,开发并维护了一些开源工具软件,还负责Solaris内核中iSCSI协议、iSER协议的开发和维护。

      黄庆新,毕业于厦门大学,曾是华为程序员,参与了标准协议栈(TCP/IP)和电信业务网关的开发。现就职于福建某网络公司,从事底层开发工作。
    出版者的话
    译者序
    序言
    前言
    第1章 从头说起
    1.1简介
    1.1.1 UNIX简史
    1.1.2 起源
    1.1.3 扩散
    1.1.4 BSD
    1.1.5 System V
    1.1.6 商业化
    1.1.7 Mach
    1.1.8 标准
    1.1.9 OSF和UI
    1.1.10 SVR4及其之后
    1.2 变革使命
    1.2.1 功能
    1.2.2 网络
    1.2.3 性能
    1.2.4 硬件变化
    1.2.5 质量提升
    1.2.6 变革
    1.2.7 其他应用程序领域
    1.2.8 小即是美
    1.2.9 灵活性
    1.3 回顾过去,展望未来
    1.3.1 UNIX系统的优点是什么
    1.3.2 UNIX系统的缺点是什么
    1.4 本书内容说明
    参考文献
    第2章 进程与内核
    2.1 简介
    2.2 模式、空间和上下文
    2.3 进程抽象
    2.3.1进程状态
    2.3.2 进程上下文
    2.3.3 用户凭据
    2.3.4 u区和proc结构
    2.4 执行在内核态中
    2.4.1 系统调用接口
    2.4.2 中断处理
    2.5 同步
    2.5.1 阻塞操作
    2.5.2 中断
    2.5.3 多处理器
    2.6 进程调度
    2.7 信号
    2.8 新的进程和程序
    2.8.1 fork和exec
    2.8.2 进程的创建
    2.8.3 fork的优化
    2.8.4 调用新的程序
    2.8.5 进程终止
    2.8.6 等待进程终止
    2.8.7 僵死进程
    2.9 小结
    2.10 练习题
    参考文献
    第3章 线程和轻量级进程
    3.1 简介
    3.1.1 动机
    3.1.2 多线程和多处理器
    3.1.3 并发和并行
    3.2 基本抽象
    3.2.1 内核线程
    3.2.2 轻量级进程
    3.2.3 用户线程
    3.3 轻量级线程设计时要考虑的问题
    3.3.1 fork的语义
    3.3.2 其他系统调用
    3.3.3 信号传递和处理
    3.3.4 可见性
    3.3.5 栈增长
    3.4 用户级别的线程库
    3.4.1 编程接口
    3.4.2 线程库的实现
    3.5 调度器激活
    3.6 Solaris和SVR4上的多线程
    3.6.1 内核线程
    3.6.2 轻量级进程的实现
    3.6.3 用户线程
    3.6.4 用户线程的实现
    3.6.5 中断处理
    3.6.6 系统调用处理
    3.7 Mach的线程
    3.7.1 Mach抽象:任务和线程
    3.7.2 Mach的C-threads
    3.8 Digital UNIX
    3.8.1 UNIX接口
    3.8.2 系统调用和信号
    3.8.3 pthreads库
    3.9 Mach 3.0的continuation
    3.9.1 编程模型
    3.9.2 使用continuation
    3.9.3 优化
    3.9.4 分析
    3.10 小结
    3.11 练习题
    参考文献
    第4章 信号和会话管理
    4.1 简介
    4.2 信号生成和处理
    4.2.1 信号处理
    4.2.2 信号的生成
    4.2.3 典型场景
    4.2.4 睡眠与信号
    4.3 不可靠的信号
    4.4 可靠的信号
    4.4.1 主要特性
    4.4.2 SVR3实现
    4.4.3 BSD信号管理
    4.5 SVR4上的信号
    4.6 信号的实现
    4.6.1 信号生成
    4.6.2 交付和处理
    4.7 异常
    4.8 Mach的异常处理
    4.8.1 异常端口
    4.8.2 错误处理
    4.8.3 调试器交互
    4.8.4 分析
    4.9 进程组和终端管理
    4.9.1 基本概念
    4.9.2 SVR3模型
    4.9.3 限制
    4.9.4 4.3BSD的进程组和终端
    4.9.5 缺点
    4.10 SVR4的会话体系结构
    4.10.1 动机
    4.10.2 会话和进程组
    4.10.3 数据结构
    4.10.4 控制终端
    4.10.5 4.4BSD的会话实现机制
    4.11 小结
    4.12 练习题
    参考文献
    第5章 进程调度
    5.1 简介
    5.2 时钟中断处理
    5.2.1 callout
    5.2.2 告警
    5.3 调度器目标
    5.4 传统的UNIX调度
    5.4.1 进程优先级
    5.4.2 调度器的实现
    5.4.3 运行队列的操作
    5.4.4 分析
    5.5 SVR4调度器
    5.5.1 类无关层
    5.5.2 调度类的接口
    5.5.3 分时类
    5.5.4 实时类
    5.5.5 priocntl系统调用
    5.5.6 分析
    5.6 Solaris 2.x调度的改善
    5.6.1 可抢占的内核
    5.6.2 多处理器的支持
    5.6.3 隐式调度
    5.6.4 优先级反转
    5.6.5 优先级继承的实现
    5.6.6 优先级继承的局限性
    5.6.7 turnstile
    5.6.8 分析
    5.7 Mach上的调度
    多处理器支持
    5.8 Digital UNIX的实时调度
    多处理器支持
    5.9 其他调度实现
    5.9.1 公平调度方法
    5.9.2 最终期限驱动调度方法
    5.9.3 三级调度器
    5.10 小结
    5.11 练习题
    参考文献
    第6章 进程间通信
    6.1 简介
    6.2 通用的IPC方法
    6.2.1 信号
    6.2.2 管道
    6.2.3 SVR4管道
    6.2.4 进程跟踪
    6.3 System V IPC
    6.3.1 公共元素
    6.3.2 信号量
    6.3.3 消息队列
    6.3.4 共享内存
    6.3.5 讨论
    6.4 Mach IPC
    基本概念
    6.5 消息
    6.5.1 消息数据结构
    6.5.2 消息传递接口
    6.6 端口
    6.6.1 端口命名空间
    6.6.2 端口数据结构
    6.6.3 端口转换
    6.7 消息传递
    6.7.1 转换端口权利
    6.7.2 out-of-line内存
    6.7.3 控制流
    6.7.4 通知
    6.8 端口操作
    6.8.1 销毁端口
    6.8.2 备份端口
    6.8.3 端口集合
    6.8.4 端口插补
    6.9 扩展性
    6.10 Mach 3.0的增强
    6.10.1 一次性的发送权利
    6.10.2 Mach 3.0的通知
    6.10.3 发送权利的用户引用计数
    6.11 讨论
    6.12 小结
    6.13 练习题
    参考文献
    第7章 同步和多处理器
    7.1 简介
    7.2 传统UNIX内核里的同步机制
    7.2.1 中断屏蔽
    7.2.2 睡眠和唤醒
    7.2.3 传统方法的局限性
    7.3 多处理器系统
    7.3.1 内存模型
    7.3.2 同步支持
    7.3.3 软件体系架构
    7.4 多处理器的同步问题
    7.4.1 唤醒丢失问题
    7.4.2 惊群问题
    7.5 信号量
    7.5.1 信号量提供互斥操作
    7.5.2 使用信号量提供事件等待
    7.5.3 使用信号量来控制可计数的资源
    7.5.4 信号量的缺点
    7.5.5 Convoy
    7.6 自旋锁
    7.7 条件变量
    7.7.1 实现问题
    7.7.2 事件
    7.7.3 阻塞锁
    7.8 读写锁
    7.8.1 设计考虑
    7.8.2 实现
    7.9 引用计数
    7.10 其他考虑
    7.10.1 死锁避免
    7.10.2 递归锁
    7.10.3 阻塞还是自旋
    7.10.4 锁什么
    7.10.5 粒度和持续时间
    7.11 案例研究
    7.11.1 SVR4.2/MP
    7.11.2 Digital UNIX
    7.11.3 其他实现
    7.12 小结
    7.13 练习题
    参考文献
    第8章 文件系统接口和框架
    8.1 简介
    8.2 文件的用户接口
    8.2.1 文件和目录
    8.2.2 文件属性
    8.2.3 文件描述符
    8.2.4 文件I/O
    8.2.5 分散-聚集I/O
    8.2.6 文件锁机制
    8.3 文件系统
    8.4 特殊文件
    8.4.1 符号链接
    8.4.2 管道和FIFO
    8.5文件系统框架
    8.6Vnode/Vfs架构
    8.6.1目标
    8.6.2 从设备I/O得到的注解
    8.6.3 vnode/vfs接口概览
    8.7 实现概览
    8.7.1 目标
    8.7.2 Vnodes以及打开文件
    8.7.3 Vnode
    8.7.4 Vnode引用计数
    8.7.5 Vfs对象
    8.8 文件系统相关对象
    8.8.1 每个文件的私有数据
    8.8.2 vnodeops结构
    8.8.3 vfs层中文件系统相关部分
    8.9 挂载文件系统
    8.9.1 虚拟文件系统转换表
    8.9.2 mount函数实现
    8.9.3 VFS_MOUNT过程
    8.10 文件操作
    8.10.1 路径遍历
    8.10.2 目录名查找缓存
    8.10.3 VOP_LOOKUP操作
    8.10.4 打开文件
    8.10.5 文件I/O
    8.10.6 文件属性
    8.10.7 用户凭据
    8.11 分析
    8.11.1 SVR4系统实现的缺点
    8.11.2 4.4BSD模型
    8.11.3 OSF/1方法
    8.12 小结
    8.13 练习题
    参考文献
    第9章 文件系统的实现
    9.1 简介
    9.2 System V文件系统(s5fs)
    9.2.1 目录
    9.2.2 inode
    9.2.3 超级块
    9.3 s5fs内核组织
    9.3.1 内存inode
    9.3.2 inode查找
    9.3.3 文件I/O
    9.3.4 inode的分配和回收
    9.4 s5fs的分析
    9.5 伯克利快速文件系统(FFS)
    9.6 硬盘结构
    9.7 磁盘组织
    9.7.1 块和片段
    9.7.2 分配策略
    9.8 FFS的增强功能
    9.9 分析
    9.10 临时文件系统
    9.10.1 内存文件系统
    9.10.2 tmpfs文件系统
    9.11 特殊用途文件系统
    9.11.1 specfs文件系统
    9.11.2 /proc文件系统
    9.11.3 处理器文件系统
    9.11.4 Trans lucent文件系统
    9.12 旧的缓冲区缓存
    9.12.1 基本操作
    9.12.2 缓冲区头结构
    9.12.3 优点
    9.12.4 缺点
    9.12.5 保证文件系统的一致性
    9.13 小结
    9.14 练习题
    参考文献
    第10章 分布式文件系统
    10.1 简介
    10.2 分布式文件系统的一般特征
    10.3 网络文件系统
    10.3.1 用户视角
    10.3.2 设计目标
    10.3.3 NFS的组件
    10.3.4 无状态设计
    10.4 NFS协议集
    10.4.1 外部数据表示
    10.4.2 远程过程调用
    10.5 NFS实现
    10.5.1 控制流
    10.5.2 文件句柄
    10.5.3 挂载操作
    10.5.4 路径名的查找
    10.6 UNIX语义
    10.6.1 打开文件许可
    10.6.2 已打开文件的删除
    10.6.3 读写操作
    10.7 NFS性能
    10.7.1 性能瓶颈
    10.7.2 客户端缓存
    10.7.3 延迟写
    10.7.4 重传缓存
    10.8 专用NFS服务器
    10.8.1 Auspex的Functional Multiprocessor 架构
    10.8.2 IBM的HA-NFS服务器
    10.9 NFS安全
    10.9.1 NFS访问控制
    10.9.2 UID重映射
    10.9.3 根用户重映射
    10.10 NFS版本
    10.11 远程文件共享
    10.12 RFS架构
    10.12.1 远程消息协议
    10.12.2 有状态操作
    10.13 RFS实现
    10.13.1 远程挂载
    10.13.2 RFS客户端和服务器
    10.13.3 崩溃恢复
    10.13.4 其他问题
    10.14 客户端缓存
    10.15 Andrew文件系统
    10.15.1 可伸缩架构
    10.15.2 存储和命名空间的组织
    10.15.3 会话级语义
    10.16 AFS实现
    10.16.1 缓存与一致性
    10.16.2 路径名查找
    10.16.3 安全性
    10.17 AFS的不足
    10.18 DCE的分布式文件系统
    10.18.1 DFS架构
    10.18.2 缓存一致性
    10.18.3 令牌管理器
    10.18.4 DFS的其他服务
    10.18.5 分析
    10.19 小结
    10.20 练习题
    参考文献
    第11章 高级文件系统
    11.1 简介
    11.2 传统文件系统的局限
    11.3 文件系统簇(SUN-FFS)
    11.4 日志方法
    11.5 日志结构文件系统
    11.6 4.4BSD日志结构文件系统
    11.7 元数据日志
    11.8 Episode文件系统
    11.9 "看门狗"监视器
    11.10 4.4BSD的portal文件系统
    11.11 可堆叠文件系统层次
    11.12 4.4BSD文件系统接口
    11.13 小结
    11.14 练习题
    参考文献
    第12章 内核内存分配
    12.1 简介
    12.2 功能需求
    12.3 资源映射分配器
    12.4 简单的幂空闲链表分配器
    12.5 McKusick-Karels分配器
    12.6 伙伴系统
    12.7 SVR4的惰性伙伴算法
    12.8 Mach和OSF/1的区块分配器
    12.9 一种针对多处理器系统的分层式分配器
    12.10 Solaris 2.4的Slab分配器
    12.11 小结
    12.12 练习题
    参考文献
    第13章 虚拟内存
    13.1 简介
    13.2 按需分页
    13.3 对硬件的需求
    13.4 4.3BSD-案例研究
    13.5 4.3 BSD 内存管理操作
    13.6 分析
    13.7 练习题
    参考文献
    第14章 SVR4 VM架构
    14.1 简介
    14.2 内存映射文件
    14.3 VM的设计理念
    14.4 基础抽象
    14.5 段驱动程序
    14.6 交换层
    14.7 VM操作
    14.8 与vnode子系统的交互
    14.9 Solaris的虚拟交换空间
    14.10 分析
    14.11 性能改进
    14.12 小结
    14.13 练习题
    参考文献
    第15章 其他内存管理技术
    15.1 简介
    15.2 Mach的内存管理设计
    15.3 内存共享机制
    15.4 内存对象与Pager
    15.5 外部pager和内部pager
    15.6 页面替换
    15.7 分析
    15.8 4.4BSD的内存管理
    15.9 旁路转换缓冲区的一致性
    15.10 Mach中的TLB击落算法
    15.11 SVR4和SVR4.2 UNIX中的TLB一致性
    15.12 其他TLB一致性算法
    15.13 虚拟地址缓存
    15.14 练习题
    参考文献
    第16章 设备驱动和I/O
    16.1 简介
    16.2 概述
    16.3 设备驱动程序框架
    16.4 输入输出(I/O)子系统
    16.5 poll系统调用
    16.6 块设备I/O操作
    16.7 DDI/DKI规范
    16.8 更新的SVR4发行版
    16.9 未来方向
    16.10 小结
    16.11 练习题
    参考文献
    第17章 STREAMS
    17.1 动机
    17.2 概述
    17.3 消息和队列
    17.4 流I/O
    17.5 配置和设置
    17.6 STREAMS的ioctl命令
    17.7 内存分配
    17.8 多路复用
    17.9 FiFO和管道
    17.10 网络接口
    17.11 小结
    17.12 练习题
    参考文献
  • 内容简介:
      《深入理解UNIX系统内核》由国际资深UNIX专家撰写,深入剖析UNIX操作系统的内核技术,包含丰富的图示与细节展示。作者从操作系统设计的角度来审视UNIX系统内核,针对内核中的每个模块,深入探讨其结构和设计,详细阐释主流UNIX系统如何选择具体模块的实现方法,以及每种方法的优缺点,为读者更好地理解操作系统内核知识、提升操作系统开发能力提供翔实指导。
      《深入理解UNIX系统内核》共17章:第1章追溯UNIX系统的演变并分析影响系统主要变化的因素;第2~7章介绍进程子系统,包括线程及其在内核和用户库中的实现,信号、作业控制及登录会话管理,UNIX调度器和对实时应用程序的支持,进程间通信的技术(IPC),Mach系统架构,以及在现代单处理器和多处理器系统中应用的同步框架;第8~11章介绍文件系统,内容涵盖用户可见的文件系统接口、定义内核和文件系统交互的vnode/vfs接口,原始的SystemV文件系统(s5fs)和伯克利快速文件系统(FFS)等一些具体文件系统的实现细节,还包括太阳微系统的网络文件系统(NFS)、AT&T的远程文件共享(RFS)和Transarc公司的分布式文件系统(DFS)等分布式文件系统,以及一些使用日志提供更高可靠性和性能的高级文件系统,同时介绍一种基于堆栈式vnode层的新文件系统框架;第12~15章介绍内存管理,涉及内核内存分配、虚拟内存的概念、SVR4和Solaris的虚拟内存架构、Mach和4.4BSD内存模型,以及旁路转换缓冲和虚拟地址缓存;第16~17章主要介绍I/O子系统,内容包括设备驱动程序框架、内核与I/O子系统的交互、SVR4设备驱动程序接口、内核与驱动程序交互接口规范,以及STREAMS框架。
  • 作者简介:
      UreshVahalia,EMC公司副总裁,主管企业存储部门,领导美国和印度团队构建EMC下一代存储产品。Uresh专注于操作系统和存储技术的研发,在存储和操作系统领域拥有30余项专利和科研著作,并多次代表EMC参加SNIA、IEEE、CIFS和NFSv4工作组的行业论坛及专家座谈。

      李雨,阿里巴巴(中国)有限公司资深内核开发工程师,参与Linux内核的开发与维护,涉及内存管理、设备驱动等多个子系统,主要负责Linux内核的网络协议栈。他的研究兴趣是Linux内核和网络技术。

      薛磊,现就职甲骨文系统研发中心,负责Solaris内核中网络协议的开发。他是开源的拥趸,开发并维护了一些开源工具软件,还负责Solaris内核中iSCSI协议、iSER协议的开发和维护。

      黄庆新,毕业于厦门大学,曾是华为程序员,参与了标准协议栈(TCP/IP)和电信业务网关的开发。现就职于福建某网络公司,从事底层开发工作。
  • 目录:
    出版者的话
    译者序
    序言
    前言
    第1章 从头说起
    1.1简介
    1.1.1 UNIX简史
    1.1.2 起源
    1.1.3 扩散
    1.1.4 BSD
    1.1.5 System V
    1.1.6 商业化
    1.1.7 Mach
    1.1.8 标准
    1.1.9 OSF和UI
    1.1.10 SVR4及其之后
    1.2 变革使命
    1.2.1 功能
    1.2.2 网络
    1.2.3 性能
    1.2.4 硬件变化
    1.2.5 质量提升
    1.2.6 变革
    1.2.7 其他应用程序领域
    1.2.8 小即是美
    1.2.9 灵活性
    1.3 回顾过去,展望未来
    1.3.1 UNIX系统的优点是什么
    1.3.2 UNIX系统的缺点是什么
    1.4 本书内容说明
    参考文献
    第2章 进程与内核
    2.1 简介
    2.2 模式、空间和上下文
    2.3 进程抽象
    2.3.1进程状态
    2.3.2 进程上下文
    2.3.3 用户凭据
    2.3.4 u区和proc结构
    2.4 执行在内核态中
    2.4.1 系统调用接口
    2.4.2 中断处理
    2.5 同步
    2.5.1 阻塞操作
    2.5.2 中断
    2.5.3 多处理器
    2.6 进程调度
    2.7 信号
    2.8 新的进程和程序
    2.8.1 fork和exec
    2.8.2 进程的创建
    2.8.3 fork的优化
    2.8.4 调用新的程序
    2.8.5 进程终止
    2.8.6 等待进程终止
    2.8.7 僵死进程
    2.9 小结
    2.10 练习题
    参考文献
    第3章 线程和轻量级进程
    3.1 简介
    3.1.1 动机
    3.1.2 多线程和多处理器
    3.1.3 并发和并行
    3.2 基本抽象
    3.2.1 内核线程
    3.2.2 轻量级进程
    3.2.3 用户线程
    3.3 轻量级线程设计时要考虑的问题
    3.3.1 fork的语义
    3.3.2 其他系统调用
    3.3.3 信号传递和处理
    3.3.4 可见性
    3.3.5 栈增长
    3.4 用户级别的线程库
    3.4.1 编程接口
    3.4.2 线程库的实现
    3.5 调度器激活
    3.6 Solaris和SVR4上的多线程
    3.6.1 内核线程
    3.6.2 轻量级进程的实现
    3.6.3 用户线程
    3.6.4 用户线程的实现
    3.6.5 中断处理
    3.6.6 系统调用处理
    3.7 Mach的线程
    3.7.1 Mach抽象:任务和线程
    3.7.2 Mach的C-threads
    3.8 Digital UNIX
    3.8.1 UNIX接口
    3.8.2 系统调用和信号
    3.8.3 pthreads库
    3.9 Mach 3.0的continuation
    3.9.1 编程模型
    3.9.2 使用continuation
    3.9.3 优化
    3.9.4 分析
    3.10 小结
    3.11 练习题
    参考文献
    第4章 信号和会话管理
    4.1 简介
    4.2 信号生成和处理
    4.2.1 信号处理
    4.2.2 信号的生成
    4.2.3 典型场景
    4.2.4 睡眠与信号
    4.3 不可靠的信号
    4.4 可靠的信号
    4.4.1 主要特性
    4.4.2 SVR3实现
    4.4.3 BSD信号管理
    4.5 SVR4上的信号
    4.6 信号的实现
    4.6.1 信号生成
    4.6.2 交付和处理
    4.7 异常
    4.8 Mach的异常处理
    4.8.1 异常端口
    4.8.2 错误处理
    4.8.3 调试器交互
    4.8.4 分析
    4.9 进程组和终端管理
    4.9.1 基本概念
    4.9.2 SVR3模型
    4.9.3 限制
    4.9.4 4.3BSD的进程组和终端
    4.9.5 缺点
    4.10 SVR4的会话体系结构
    4.10.1 动机
    4.10.2 会话和进程组
    4.10.3 数据结构
    4.10.4 控制终端
    4.10.5 4.4BSD的会话实现机制
    4.11 小结
    4.12 练习题
    参考文献
    第5章 进程调度
    5.1 简介
    5.2 时钟中断处理
    5.2.1 callout
    5.2.2 告警
    5.3 调度器目标
    5.4 传统的UNIX调度
    5.4.1 进程优先级
    5.4.2 调度器的实现
    5.4.3 运行队列的操作
    5.4.4 分析
    5.5 SVR4调度器
    5.5.1 类无关层
    5.5.2 调度类的接口
    5.5.3 分时类
    5.5.4 实时类
    5.5.5 priocntl系统调用
    5.5.6 分析
    5.6 Solaris 2.x调度的改善
    5.6.1 可抢占的内核
    5.6.2 多处理器的支持
    5.6.3 隐式调度
    5.6.4 优先级反转
    5.6.5 优先级继承的实现
    5.6.6 优先级继承的局限性
    5.6.7 turnstile
    5.6.8 分析
    5.7 Mach上的调度
    多处理器支持
    5.8 Digital UNIX的实时调度
    多处理器支持
    5.9 其他调度实现
    5.9.1 公平调度方法
    5.9.2 最终期限驱动调度方法
    5.9.3 三级调度器
    5.10 小结
    5.11 练习题
    参考文献
    第6章 进程间通信
    6.1 简介
    6.2 通用的IPC方法
    6.2.1 信号
    6.2.2 管道
    6.2.3 SVR4管道
    6.2.4 进程跟踪
    6.3 System V IPC
    6.3.1 公共元素
    6.3.2 信号量
    6.3.3 消息队列
    6.3.4 共享内存
    6.3.5 讨论
    6.4 Mach IPC
    基本概念
    6.5 消息
    6.5.1 消息数据结构
    6.5.2 消息传递接口
    6.6 端口
    6.6.1 端口命名空间
    6.6.2 端口数据结构
    6.6.3 端口转换
    6.7 消息传递
    6.7.1 转换端口权利
    6.7.2 out-of-line内存
    6.7.3 控制流
    6.7.4 通知
    6.8 端口操作
    6.8.1 销毁端口
    6.8.2 备份端口
    6.8.3 端口集合
    6.8.4 端口插补
    6.9 扩展性
    6.10 Mach 3.0的增强
    6.10.1 一次性的发送权利
    6.10.2 Mach 3.0的通知
    6.10.3 发送权利的用户引用计数
    6.11 讨论
    6.12 小结
    6.13 练习题
    参考文献
    第7章 同步和多处理器
    7.1 简介
    7.2 传统UNIX内核里的同步机制
    7.2.1 中断屏蔽
    7.2.2 睡眠和唤醒
    7.2.3 传统方法的局限性
    7.3 多处理器系统
    7.3.1 内存模型
    7.3.2 同步支持
    7.3.3 软件体系架构
    7.4 多处理器的同步问题
    7.4.1 唤醒丢失问题
    7.4.2 惊群问题
    7.5 信号量
    7.5.1 信号量提供互斥操作
    7.5.2 使用信号量提供事件等待
    7.5.3 使用信号量来控制可计数的资源
    7.5.4 信号量的缺点
    7.5.5 Convoy
    7.6 自旋锁
    7.7 条件变量
    7.7.1 实现问题
    7.7.2 事件
    7.7.3 阻塞锁
    7.8 读写锁
    7.8.1 设计考虑
    7.8.2 实现
    7.9 引用计数
    7.10 其他考虑
    7.10.1 死锁避免
    7.10.2 递归锁
    7.10.3 阻塞还是自旋
    7.10.4 锁什么
    7.10.5 粒度和持续时间
    7.11 案例研究
    7.11.1 SVR4.2/MP
    7.11.2 Digital UNIX
    7.11.3 其他实现
    7.12 小结
    7.13 练习题
    参考文献
    第8章 文件系统接口和框架
    8.1 简介
    8.2 文件的用户接口
    8.2.1 文件和目录
    8.2.2 文件属性
    8.2.3 文件描述符
    8.2.4 文件I/O
    8.2.5 分散-聚集I/O
    8.2.6 文件锁机制
    8.3 文件系统
    8.4 特殊文件
    8.4.1 符号链接
    8.4.2 管道和FIFO
    8.5文件系统框架
    8.6Vnode/Vfs架构
    8.6.1目标
    8.6.2 从设备I/O得到的注解
    8.6.3 vnode/vfs接口概览
    8.7 实现概览
    8.7.1 目标
    8.7.2 Vnodes以及打开文件
    8.7.3 Vnode
    8.7.4 Vnode引用计数
    8.7.5 Vfs对象
    8.8 文件系统相关对象
    8.8.1 每个文件的私有数据
    8.8.2 vnodeops结构
    8.8.3 vfs层中文件系统相关部分
    8.9 挂载文件系统
    8.9.1 虚拟文件系统转换表
    8.9.2 mount函数实现
    8.9.3 VFS_MOUNT过程
    8.10 文件操作
    8.10.1 路径遍历
    8.10.2 目录名查找缓存
    8.10.3 VOP_LOOKUP操作
    8.10.4 打开文件
    8.10.5 文件I/O
    8.10.6 文件属性
    8.10.7 用户凭据
    8.11 分析
    8.11.1 SVR4系统实现的缺点
    8.11.2 4.4BSD模型
    8.11.3 OSF/1方法
    8.12 小结
    8.13 练习题
    参考文献
    第9章 文件系统的实现
    9.1 简介
    9.2 System V文件系统(s5fs)
    9.2.1 目录
    9.2.2 inode
    9.2.3 超级块
    9.3 s5fs内核组织
    9.3.1 内存inode
    9.3.2 inode查找
    9.3.3 文件I/O
    9.3.4 inode的分配和回收
    9.4 s5fs的分析
    9.5 伯克利快速文件系统(FFS)
    9.6 硬盘结构
    9.7 磁盘组织
    9.7.1 块和片段
    9.7.2 分配策略
    9.8 FFS的增强功能
    9.9 分析
    9.10 临时文件系统
    9.10.1 内存文件系统
    9.10.2 tmpfs文件系统
    9.11 特殊用途文件系统
    9.11.1 specfs文件系统
    9.11.2 /proc文件系统
    9.11.3 处理器文件系统
    9.11.4 Trans lucent文件系统
    9.12 旧的缓冲区缓存
    9.12.1 基本操作
    9.12.2 缓冲区头结构
    9.12.3 优点
    9.12.4 缺点
    9.12.5 保证文件系统的一致性
    9.13 小结
    9.14 练习题
    参考文献
    第10章 分布式文件系统
    10.1 简介
    10.2 分布式文件系统的一般特征
    10.3 网络文件系统
    10.3.1 用户视角
    10.3.2 设计目标
    10.3.3 NFS的组件
    10.3.4 无状态设计
    10.4 NFS协议集
    10.4.1 外部数据表示
    10.4.2 远程过程调用
    10.5 NFS实现
    10.5.1 控制流
    10.5.2 文件句柄
    10.5.3 挂载操作
    10.5.4 路径名的查找
    10.6 UNIX语义
    10.6.1 打开文件许可
    10.6.2 已打开文件的删除
    10.6.3 读写操作
    10.7 NFS性能
    10.7.1 性能瓶颈
    10.7.2 客户端缓存
    10.7.3 延迟写
    10.7.4 重传缓存
    10.8 专用NFS服务器
    10.8.1 Auspex的Functional Multiprocessor 架构
    10.8.2 IBM的HA-NFS服务器
    10.9 NFS安全
    10.9.1 NFS访问控制
    10.9.2 UID重映射
    10.9.3 根用户重映射
    10.10 NFS版本
    10.11 远程文件共享
    10.12 RFS架构
    10.12.1 远程消息协议
    10.12.2 有状态操作
    10.13 RFS实现
    10.13.1 远程挂载
    10.13.2 RFS客户端和服务器
    10.13.3 崩溃恢复
    10.13.4 其他问题
    10.14 客户端缓存
    10.15 Andrew文件系统
    10.15.1 可伸缩架构
    10.15.2 存储和命名空间的组织
    10.15.3 会话级语义
    10.16 AFS实现
    10.16.1 缓存与一致性
    10.16.2 路径名查找
    10.16.3 安全性
    10.17 AFS的不足
    10.18 DCE的分布式文件系统
    10.18.1 DFS架构
    10.18.2 缓存一致性
    10.18.3 令牌管理器
    10.18.4 DFS的其他服务
    10.18.5 分析
    10.19 小结
    10.20 练习题
    参考文献
    第11章 高级文件系统
    11.1 简介
    11.2 传统文件系统的局限
    11.3 文件系统簇(SUN-FFS)
    11.4 日志方法
    11.5 日志结构文件系统
    11.6 4.4BSD日志结构文件系统
    11.7 元数据日志
    11.8 Episode文件系统
    11.9 "看门狗"监视器
    11.10 4.4BSD的portal文件系统
    11.11 可堆叠文件系统层次
    11.12 4.4BSD文件系统接口
    11.13 小结
    11.14 练习题
    参考文献
    第12章 内核内存分配
    12.1 简介
    12.2 功能需求
    12.3 资源映射分配器
    12.4 简单的幂空闲链表分配器
    12.5 McKusick-Karels分配器
    12.6 伙伴系统
    12.7 SVR4的惰性伙伴算法
    12.8 Mach和OSF/1的区块分配器
    12.9 一种针对多处理器系统的分层式分配器
    12.10 Solaris 2.4的Slab分配器
    12.11 小结
    12.12 练习题
    参考文献
    第13章 虚拟内存
    13.1 简介
    13.2 按需分页
    13.3 对硬件的需求
    13.4 4.3BSD-案例研究
    13.5 4.3 BSD 内存管理操作
    13.6 分析
    13.7 练习题
    参考文献
    第14章 SVR4 VM架构
    14.1 简介
    14.2 内存映射文件
    14.3 VM的设计理念
    14.4 基础抽象
    14.5 段驱动程序
    14.6 交换层
    14.7 VM操作
    14.8 与vnode子系统的交互
    14.9 Solaris的虚拟交换空间
    14.10 分析
    14.11 性能改进
    14.12 小结
    14.13 练习题
    参考文献
    第15章 其他内存管理技术
    15.1 简介
    15.2 Mach的内存管理设计
    15.3 内存共享机制
    15.4 内存对象与Pager
    15.5 外部pager和内部pager
    15.6 页面替换
    15.7 分析
    15.8 4.4BSD的内存管理
    15.9 旁路转换缓冲区的一致性
    15.10 Mach中的TLB击落算法
    15.11 SVR4和SVR4.2 UNIX中的TLB一致性
    15.12 其他TLB一致性算法
    15.13 虚拟地址缓存
    15.14 练习题
    参考文献
    第16章 设备驱动和I/O
    16.1 简介
    16.2 概述
    16.3 设备驱动程序框架
    16.4 输入输出(I/O)子系统
    16.5 poll系统调用
    16.6 块设备I/O操作
    16.7 DDI/DKI规范
    16.8 更新的SVR4发行版
    16.9 未来方向
    16.10 小结
    16.11 练习题
    参考文献
    第17章 STREAMS
    17.1 动机
    17.2 概述
    17.3 消息和队列
    17.4 流I/O
    17.5 配置和设置
    17.6 STREAMS的ioctl命令
    17.7 内存分配
    17.8 多路复用
    17.9 FiFO和管道
    17.10 网络接口
    17.11 小结
    17.12 练习题
    参考文献
查看详情
其他版本 / 全部 (1)
系列丛书 / 更多
深入理解UNIX系统内核
Java编程思想(第4版)
[美]Bruce Eckel 著;陈昊鹏 译
深入理解UNIX系统内核
数据挖掘:概念与技术(原书第3版)
[美]Jiawei、[美]Micheling、[美]Jian Pei 著;范明、孟小峰 译
深入理解UNIX系统内核
算法导论(原书第3版)
[美]Thomas、[美]Charles、[美]Ronald、[美]Clifford Stein 著;殷建平、徐云、王刚 译
深入理解UNIX系统内核
数据结构与算法分析:Java语言描述
[美]马克·艾伦·维斯 著;陈越 译
深入理解UNIX系统内核
C程序设计语言(第2版·新版) 习题解答
吉米拜尔 著;杨涛 译;[美]汤朵
深入理解UNIX系统内核
C程序设计语言(第二版)
[美]Brian(布莱恩·克尼汉)、[美]Dennis M.Ritchie(丹尼斯·里奇) 著;徐宝文、李志 译
深入理解UNIX系统内核
深入理解计算机系统(原书第3版)
[美]兰德尔 E.布莱恩特(Randal E.·Bryant) 著;龚奕利、贺莲 译
深入理解UNIX系统内核
计算机科学丛书·云计算:概念、技术与架构
[美]Thomas、[英]Zaigham、[巴西]Ricardo Puttini 著;龚奕利、贺莲、胡创 译
深入理解UNIX系统内核
数据库系统概念:(原书第6版)
[美]Abraham、Henry、S.Sudarshan 著;杨冬青、李红燕、唐世渭 译
深入理解UNIX系统内核
计算机科学导论:原书第3版
[美]Behrouz Forouzan 著;刘艺 译
深入理解UNIX系统内核
编译原理:原理、技术与工具
[美]阿霍 著;赵建华 译
深入理解UNIX系统内核
软件工程:实践者的研究方法(原书第8版 本科教学版)
[美]罗杰 S. 普莱斯曼 著;郑人杰、马素霞 译
相关图书 / 更多
深入理解UNIX系统内核
深入理解移动互联网
吴功宜 吴英 编著
深入理解UNIX系统内核
深入实施“四个育人”,彰显本科人才培养特色——云南大学本科教育改革与创新优秀论文集
主编唐旭光
深入理解UNIX系统内核
深入浅出C语言程序设计(第3版·微课版)
李俊·c;强振平;荣剑;张晴晖;赵毅力;钟丽辉
深入理解UNIX系统内核
深入浅出C#(视频教学版)
赵云
深入理解UNIX系统内核
深入实践Kotlin元编程
霍丙乾 著
深入理解UNIX系统内核
深入北方的小路(布克奖震撼杰作。人生在世,行走于地狱屋顶,凝望花朵。余华力荐“了不起的小说”!)
[澳]理查德·弗兰纳根 著;新经典 出品
深入理解UNIX系统内核
深入学习习近平关于科技创新的重要论述
科学技术部编写组 著
深入理解UNIX系统内核
深入浅出IoT:完整项目通关实战
[英]吉姆·贝内特(Jim Bennett) 著;柴火创客空间 译;[美]珍·福克斯(Jen Fox);[美]珍·卢珀(Jen Looper)
深入理解UNIX系统内核
深入浅出SSD:固态存储核心技术、原理与实战 第2版
SSDFans 胡波 石亮 岑彪
深入理解UNIX系统内核
深入地心 少儿科普 新华正版
英国尤斯伯恩出版公司
深入理解UNIX系统内核
深入理解FFmpeg
刘歧 赵军 杜金房 赵文杰 宋韶颍
深入理解UNIX系统内核
深入人心:数字产品设计的底层逻辑
林婕
您可能感兴趣 / 更多
深入理解UNIX系统内核
孩子,把你的手给我1:怎么说孩子才爱听,怎么教孩子才肯学?帮助每一位3-12岁孩子的父母结束与孩子的所有冲突!
[美]海姆·G.吉诺特
深入理解UNIX系统内核
怎样做成大事
[美]丹·加德纳(Dan Gardner) 著;贾拥民 译;湛庐文化 出品;[丹麦]傅以斌(Bent Flyvbjerg)
深入理解UNIX系统内核
1200年希腊罗马神话
[美]伊迪丝·汉密尔顿
深入理解UNIX系统内核
爱情心理学(新编本)
[美]罗伯特·J. 斯腾伯格 (美)凯琳·斯腾伯格 倪爱萍 译
深入理解UNIX系统内核
黄金圈法则
[美]西蒙·斯涅克 著;磨铁文化 出品
深入理解UNIX系统内核
汤姆·索亚历险记 彩图注音版 一二三四年级5-6-7-8-9岁小学生课外阅读经典 儿童文学无障碍有声伴读世界名著童话故事
[美]马克 吐温
深入理解UNIX系统内核
富兰克林自传 名家全译本 改变无数人命运的励志传奇 埃隆马斯克反复推荐 赠富兰克林签名照及精美插图
[美]本杰明·富兰克林 著;李自修 译
深入理解UNIX系统内核
意大利文艺复兴新艺术史
[美]迈克尔·韦恩·科尔 著;[美]斯蒂芬·J·坎贝尔;邵亦杨
深入理解UNIX系统内核
汤姆素亚历险记:中小学生课外阅读快乐读书吧 儿童文学无障碍有声伴读世界名著童话故事
[美]马克·吐温
深入理解UNIX系统内核
老人与海 彩图注音版 一二三四年级5-6-7-8-9岁小学生课外阅读经典 儿童文学无障碍有声伴读世界名著童话故事
[美]海明威
深入理解UNIX系统内核
养育的觉醒:全面激发孩子自驱力,教你如何心平气和做妈妈
[美]凯文·莱曼 著;唐晓璐 译;斯坦威 出品
深入理解UNIX系统内核
国际大奖图画书系列 共11册(小老鼠的恐惧的大书,大灰狼,红豆与菲比,别烦我,下雪了 ,穿靴子的猫 ,先有蛋,绿 ,特别快递,如果你想看鲸鱼 ,一个部落的孩子 ) 麦克米伦世纪
[美]莱恩·史密斯 (英)埃米莉·格雷维特 (美)劳拉·瓦卡罗·等/文 (英)埃米莉·格雷维特 等/图 彭懿 杨玲玲 阿甲 孙慧阳 白薇 译