Solaris内核结构(原书第2版)

Solaris内核结构(原书第2版)
作 者: Jim Mauro Richard McDougall 冯锐
出版社: 机械工业出版社
丛编项: Sun公司核心技术丛书
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: solaris
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《Solaris内核结构(原书第2版)》作者简介

内容简介

本书介绍Solaris操作系统的内核,提供了内核结构以及该操作系统中使用的主要数据结构和算法的大量信息。主要内容包括:Solaris内核概述、So1aris存储系统线程、进程和IPC、文件和文件系统。本书还讲解了该系统的实际应用,用大量实例阐述了应用方法和技巧。本书对于使用So1aris操作系统的各类技术人员来讲是一本极具参考价值的专著。

图书目录

目 录

前言

第一部分 Solaris内核简介

第1章 So1aris入门

1. 1 Solaris简史

1. 2 关键的不同之处

1. 3 内核概述

1. 3. 1 Solaris内核体系结构

1. 3. 2 内核的模块化实现

1. 4 进程. 线程和调度

1. 4. 1 两级线程模型

1. 4. 2 全局进程优先级和调度

1. 5 进程间通信

1. 5. 1 传统的UNIX IPC

1. 5. 2 System V IPC

1. 5. 3 POSDC IPC

1. 5. 4 高级Solaris IPC

1. 6 信号

1. 7 存储管理

1. 7. 1 全局内存分配

1. 7. 2 内核存储管理

1. 8 文件和文件系统

1. 8. 1 文件描述符和文件系统调用

1. 8. 2 虚拟文件系统结构

1. 9 I/0体系结构

第2章 内核服务

2. 1 访问内核服务

2. 2 进入内核模式

2. 2. 1 上下文

2. 2. 2 内核线程和中断上下文

2. 2. 3 UltraSPARC I&II陷阱

2. 3 中断

2. 3. 1 中断优先级

2. 3. 2 中断监控

2. 3. 3 处理器内部中断和交叉调用

2. 4 系统调用

2. 4. 1 一般的系统调用

2. 4. 2 快速陷阱系统调用

2. 5 内核标注表

2. 5. 1 Solaris 2. 6和7的标注表

2. 5. 2 Solaris 2. 5. 1标注表

2. 6 系统时钟

2. 6. 1 进程执行时间的统计

2. 6. 2 高按时钟中断

2. 6. 3 高频计时器

2. 6. 4 日期时间时钟

第3章 内核同步原语

3. 1 同步

3. 2 并行系统体系结构

3. 3 加锁和同步的硬件考虑

3. 4 关于同步对象的介绍

3. 4. 1 同步过程

3. 4. 2 同步对象操作向量

3. 5 互斥锁

3. 5. 1 概述

3. 5. 2 Solaris 7互斥锁的实现

3. 6 读/写锁

3. 6. 1 Solaris 7中的读/写锁

3. 6. 2 Solaris 2. 6中RW锁的差异

3. 6. 3 Solaris 2. 5. 1中的RW锁的差异

3. 7 旋转栅门和优先级继承

3. 7. 1 Solaris 7中的旋转栅门

3. 7. 2 Solaris 2. 5. 1和2. 6中的旋转栅门

3. 8 调度锁

3. 9 内核信号量

第4章 内核引导和初始化

4. 1 内核的目录层次

4. 2 内核引导和初始化

4. 2. 1 加载引导块

4. 2. 2 加载ufsboot

4. 2. 3 定位核心内核映像和链接

4. 2. 4 加载内核模块

4. 2. 5 创建内核结构. 资源和组件

4. 2. 6 完成引导过程

4. 2. 7 引导过程中创建系统内核线程

4. 3 内核模块的加载和链接

第二部分 Solaris内存管理

第5章 So1aris内存体系结构

5. 1 为什么需要虚拟内存系统

5. 2 模块化的实现

5. 3 虚拟地址空间

5. 3. 1 可执行代码和库的共享

5. 3. 2 SPARC地址空间

5. 3. 3 Intel芯片地址空间的布局

5. 3. 4 进程内存分配

5. 3. 5 栈

5. 3. 6 地址空间管理

5. 3. 7 虚拟内存保护模式

5. 3. 8 地址空间的页错误

5. 4 内存的段

5. 4. 1 vnod6段:seg_vn

5. 4. 2 写入时拷贝

5. 4. 3 页保护与通知

5. 5 匿名内存

5. 5. 1 匿名内存层

5. 5. 2 Swapfs层

5. 5. 3 匿名内存统计

5. 6 虚拟内存观测点

5. 7 全局页管理

5. 7. 1 页——So1aris内存的基本单元

5. 7. 2 页的Hash列表

5. 7. 3 特定MMU的页结构

5. 7. 4 物理页列表

5. 7. 5 页级函数接口

5. 7. 6 页的中止

5. 7. 7 页面大小

5. 7. 8 页的分配

5. 8 页扫描程序

5. 8. 1 页扫描程

5. 8. 2 出页算法和参数

5. 8. 3 共享库的优化

5. 8. 4 优先级分页算法

5. 8. 5 页扫描程序的实现

5. 8. 6 内存调度程序

5. 9 硬件地址转换层

5. 9. 1 虚拟内存上下文和地址空间

5. 9. 2 UltraSPARC-I和II型的HAT

5. 9. 3 地址空间标识符

5. 9. 4 大页面

第6章 内核内存

6. 1 内核虚拟地址规划

6. 1. 1 内核地址空间

6. 1. 2 内核正文段和数据段

6. 1. 3 虚拟内存数据结构

6. 1. 4 SPARC V8和V9内核的

核心程序

6. 1. 5 可加载的内核模块正文和数据

6. 1. 6 内核地址空间和段

6. 2 内核内存的分配

6. 2. 1 内核映射

6. 2. 2 资源映射分配程序

6. 2. 3 内核内存段驱动程序

6. 2. 4 内核内存片分配程序

第7章 内存的监控

7. 1 内存监控的简单介绍

7. 1. 1 物理内存总数

7. 1. 2 内核内存

7. 1. 3 空闲内存

7. 1. 4 文件系统缓存内存

7. 1. 5 内存不足的检测

7. 1. 6 交换空间

7. 2 内存监控工具

7. 3 vmstat命令

7. 3. 1 空闲内存

7. 3. 2’交换空间

7. 3. 3 页调度计数器

7. 3. 4 进程内存的使用情况, ps和

pmap命令

7. 4 MemToo1:没有绑定的内存工具

7. 4. 1 Memtoo1的实用程序

7. 4. 2 命令行工具

7. 4. 3 MemToo1的图形用户界面

7. 5 其他内存工具

7. 5. 1 运行空间的监视程序:wsm

7. 5. 2 一个扩充vmstat的命令:memstat

第三部分 线程. 进程和IPc

第8章 Solaris多线程的进程体系

结构

8. 1 So1aris进程简介

8. 1. 1 进程的体系结构

8. 1. 2 进程映像

8. 2 进程结构

8. 2. 1 进程结构

8. 2. 2 用户区

8. 2. 3 轻量级进程

8. 2. 4 内核线程

8. 3 内核进程表

8. 3. 1 进程限制

8. 3. 2 LWP限制

8. 4 进程创建

8. 5 进程终止

8. 5. 1 LWP/kthead模型

8. 5. 2 deadthrow

8. 6 Procfs———进程文件系统

8. 6. 1 Procfs的实现

8. 6. 2 进程资源使用

8. 6. 3 微状态计数器

8. 7 信号

8. 7. 1 信号的实现

8. 7. 2 SICWAITING特殊信号

8. 8 会话和进程组

第9章 So1aris内核调度程序

9. 1 概述

9. 1. 1 调度等级

9. 1. 2 调度表

9. 2 内核调度程序

9. 2. 1 调度队列

9. 2. 2 线程优先级

9. 2. 3 调度程序功能

9. 3 内核睡眠/唤醒程序

9. 3. 1 条件变量

9. 3. 2 睡眠队列

9. 3. 3 睡眠过程

9. 3. 4 唤醒机制

9. 4 调度程序激活

9. 4. 1 用户线程激活

9. 4. 2 LWP池激活

9. 5 内核处理器控制和处理器集

9. 5. 1 处理器控制

9. 5. 2 处理器集

第10章 进程间通信

10. 1 通用System V IPC支持

10. 1. 1 模块创建

10. 1. 2 资源映射

10. 2 System共享内存

10. 2. 1 共享内存内核实现

10. 2. 2 相似共享内存

10. 3 System V信号量

10. 3. 1 信号量内核资源

10. 3. 2 System V信号量的内核实现

10. 3. 3 Solaris内部的信号量操作

10. 4 System V消息队列

10. 4. 1 消息队列使用的内核资源

10. 4. 2 消息队列的内核实现

10. 5 POSIX IPC

10. 5. 1 P0SIX共享内存

10. 5. 2 POSIX信号量

10. 5. 3 P0SIX消息队列

10. 6 Solaris门

10. 6. 1 门概述

Io. 6. 2 门实现

第四部分 文件和文件系统

第11章 So1aris文件和文件I/0

11. 1 Solaris的文件

11. 2 文件的应用程序编程接口

11. 2. 1 标准I/0

11. 2. 2 C运行期文件句柄

11. 2. 3 标准I/0缓冲区大小

11. 3 系统文件I/0

11. 3. 1 文件I/0系统调用

11. 3. 2 文件打开模式和文件描述符

标志

11. 4 异步I/0

11. 4. 1 文件系统异步I/0

11. 4. 2 内核异步I/0

11. 5 内存映射文件I/0

11. 5. 1 映射选项

11. 5. 2 为存储系统提供建议

11. 6 Solaris中的64位文件

11. 6. 1 Solaris 2. 0中的64位设备

支持

11. 6. 2 Solaris 2. 5. t中的以位文件

应用程序编程接口

11. 6. 3 Solaris 2. 6:大文件0S

11. 6. 4 文件系统对大文件的支持

第12章 文件系统综述

12. 1 为什么要有文件系统

12. 2 支持多个文件系统类型

12. 3 普通文件系统

12. 3. 1 分配和存储策略

12. 3. 2 文件系统容量

12. 3. 3 支持可变块大小

12. 3. 4 访问控制列表

12. 3. 5 文件系统日志报表

12. 3. 6 扩大和缩小文件系统

12. 3. 7 直接I/0

第13章 文件系统框架

13. 1 Solaris文件系统框架

13. 1. 1 统一的文件系统接口

13. 1. 2 文件系统框架程序

13. 2 vnode

13. 2. 1 vnode类型

13. 2. 2 Vnode方法

13. 2. 3 vnde引用计数

13. 2. 4 分页vnde缓存的接口

13. 2. 5 vnode页上的块I/0

13. 3 vfs对象

13. 3. 1 文件系统交换表

13. 3. 2 安装的vfs列表

13. 4 文件系统I/0

13. 4. 1 内存映射I/0

13. 4. 2 系统调用read()和write()

13. 4. 3 Seg_map段

13. 5 路径名管理

13. 5. 1 lookupname()和lookuppn()方g

13. 5. 2 vop_lookup()方法

13. 5. 3 vop_readdir()方法

13. 5. 4 路径名遍历函数

13. 5. 5 目录名查询缓存

13. 5. 6 文件系统模块

13. 5. 7 安装和拆卸

13. 6 文件系统刷新守护进程

第14章 UNIX文件系统

14. 1 UFS发展历史

14. 2 UFS磁盘格式

14. 2. 1 UFSInode

14. 2. 2 UPS目录

14. 2. 3 UFS硬链接

14. 2. 4 UFS结构

14. 2. 5 磁盘块定位

14. 2. 6 UFS块分配

14. 2. 7 UFS分配和参数

14. 3 UFS的实现

14. 3. 1 文件映射到磁盘块

14. 3. 2 读写UFS文件的方法

14. 3. 3 核心内的UFS Inode

14. 3. 4 UF5目录和路径名

第15章 Solaria文件系统缓存

15. 1 文件缓存简介

15. 1. 1 Solaris页缓存

15. 1. 2 块缓冲区缓存

15. 2 页缓存和虚存系统

15. 3 分页对系统到底好不好

15. 4 影响文件系统性能的分页参数

15. 5 用直接I/0绕过页缓存

15. 5. 1 UFS直接I/0

15. 5. 2 Veritas VxFS的直接I/0

15. 6 目录名缓存

15. 7 Inode缓存

15. 7. 1 UFSInode缓存大小

15. 7. 2 VxFSInode缓存

第五部分 吩 录

附录A 内核的调整. 开关和限制参数

附录B 内核虚拟地址映射

附录C 一个Procfs程序示例

参考文献