出版时间:2010-11 出版社:电子工业出版社 作者:王雷 页数:235
前言
随着计算机系统的广泛应用和普及,作为计算机系统软件基础的计算机操作系统,受到了软件行业技术人员的广泛重视。随着开放源代码方式的兴起,在操作系统方面除了Linux系统之外,2005年Sun公司的Solaris10系统也全部开放了源代码。微软公司也在2006年开放了Windows操作系统的部分源代码,该系统命名为WRK(WindowsResearchKernel)。因此我们也有机会看到商业操作系统的代码,并可以将它们与Linux系统进行比较。作者曾在1999年负责一个将Linux移植新硬件平台的项目,开始对Linux操作系统内核有了比较深入的了解。2001年应微软亚洲研究院的邀请,参加了Windows2000及以后的WindowsServer2003的代码分析工作。2006年微软开放了WRK系统,作者分析了内存管理和线程切换部分,并设计了工作集和Continuation实验。2006年应Sun中国工程院邀请,参加了Solaris文件系统的分析工作。在这些工作的基础上,作者一直想把这些操作系统放到一起进行比较,定量地分析它们之间性能的差异,从而可以更深入地理解操作系统的设计。2007年,作者在北京航空航天大学为研究生开设了“操作系统结构分析”课程,这几年一直在进行这几个系统的比较工作。但是这项工作的难度超过作者的想象,因此本书成书比较仓促,很多运行结果作者也无法说明其中的原因,只好选择了在一个单CPU机器上的运行结果进行分析。如果读者对此感兴趣,可以来信共同探讨。全书共分为5章:第1章概述,简单介绍了Linux、WRK和Solaris的系统结构和特点。第2章过程控制,介绍了三个操作系统中进程与线程的数据结构、创建过程、调度与切换过程及同步机制。第3章分析了三个操作系统的内存地址布局、地址变换、页错误处理、用户与内核内存管理、物理内存管理等方面。第4章描述了三个操作系统的文件系统模型、文件系统与文件的相关数据结构、文件系统相关系统调用等。第5章介绍了一些常用的评测基准,对三个操作系统的系统调用、进程创建、内存访问、页错误处理、文件创建及读/写等进行了测试,并根据三个操作系统的结构特征对测试结果进行了分析。
内容概要
本书为北京市高等教育精品教材立项项目和北京航空航天大学精品课程建设成果。全书具体分析了Linux、WRK和Solaris三个操作系统,并对它们的性能进行了评测。书中没有介绍操作系统的基本原理,而是以Linux、WRK和Solaris为实例,结合源代码直接分析了Linux、WRK和Solaris的进程管理、内存管理和文件系统模块。通过对LMbench等测试用例的裁剪,针对三个操作系统进行了微观和宏观的性能评测。结合三个操作系统的实现细节,分析了产生性能差异的原因。 本书适合作为高年级本科生、研究生操作系统课程的教材或参考书,也可以作为软件专业人员分析操作系统源代码的参考资料。
书籍目录
第1章 概述 1.1 Linux 1.2 WRK 1.3 Solaris 1.4 本书的组织第2章 进程管理 2.1 Linux进程管理 2.1.1 进程控制块 2.1.2 Iinux的进程创建 2.1.3 Iinux的进程状态变化图 2.1.4 Linux进程调度 2.1.5 Linux进程切换 2.1.6 Linux的线程 2.2 windows进程管理 2.2.1 WRK的进程 2.2.2 WRK的线程 2.2.3 WRK进程创建 2.2.4 WRK的线程调度 2.2.5 线程切换 2.2.6 WRK中的同步 2.3 Solaris进程管理 2.3.1 Solaris进程与线程 2.3.2 相关数据结构 2.3.3 进程创建 2.3.4 Solairs的线程调度 2.3.5 Solaris的进程与线程切换 2.3.6 Solairs内核同步机制第3章 存储管理 3.1 Linux存储管理 3.1.1 Linux进程的虚存空间及划分 3.1.2 Linux进程用户空间的管理 3.1.3 Linux的页错误处理 3.1.4 Linux的物理内存管理 3.1.5 交换机制 3.2 wRK内存管理 3.2.1 32位地址空间的布局 3.2.2 32位地址转换机制 3.2.3 体系结构兼容性设计 3.2.4 用户空间内存分配方式 3.2.5 系统内存分配 3.2.6 页错误处理 3.2.7 工作集 3.2.8 物理内存管理 3.3 solaris的内存管理 3.3.1 虚拟内存管理 3.3.2 虚地址到物理地址的变换 3.3.3 物理内存 3.3.4 内核内存管理第4章 文件系统 4.1 Linux文件系统 4.1.1 主要数据结构 4.1.2 VFS基本工作框架 4.1.3 Ext3结构分析 4.1.4 Linux系统的文件操作 4.2 windows文件系统 4.2.1 WindowsFSD体系结构 4.2.2 NTFS 4.3 solaris文件系统 4.3.1 Solaris文件系统框架 4.3.2 UFS文件系统 4.3.3 ZFS文件系统第5章 Linux、WRK和Solaris性能评测 5.1 测试基准简介 5.2 测试硬件设备 5.3 微观测试 5.3.1 微观测试程序 5.3.2 微观评测方法及相关工具 5.3.3 微观测试结果 5.4 综合测试 5.5 小结参考文献
章节摘录
插图:1995年以前,John Ousterhout开发的程序包能够评测操作系统的性能。该程序包独立了一系列OS-Kemel原语,能得到原语的部分性能。但该程序的测试结果非常粗略,不能通过它获得硬件的性能特征。1995年,McVoy发布了专门进行操作系统性能评测的软件包LMbench。该软件包提供一些精干的小程序来评测系统硬件和OS原语的性能。LMbench把操作系统分解为与硬件性能密切相关的原语,针对每个原语进行详细评测,测试结果反映了操作系统与硬件设备的关系。LMbench能够针对不同的UNIX系统进行系统级别的评测,可以测试包括文件读写、内存操作、进程创建销毁开销、网络等性能。同时,为了保证LMbench的测量结果更为准确,LMbench采用了两种统计方法对测量值加以处理:一是LMbench保留的统计值(100-2n)%,即是将结果中的最好值和最差值的,n%去掉,在通常的情况下n=10;二是为保证测量的准确性,LMbench将测量结果中显著背离的情况控制在一定范围内,使显著背离的情况不超过1%。基于LMbench的工作,后来提出的hbench在思想和基准测试代码本身上发生了显著的改变:包括LMbench中几个bug修正(如bw-ile-rd和lat-ctx这两个重要修正);扩大了测试基准的范围(包括L1/L2高速缓存带宽和更多的系统调用测试),以及在批量数据传输设计中可变的传输缓冲区;更加灵活的数据采集与分析;所有的结果数据通过内置或用户定义的数据减少政策保存下来使能够进行离线分析;对数据进行更加严格的统计处理;基准重构以维护内部基准一致性;可以动态调整基准大小以克服时间分辨度低的问题;支持在一台独立于机器的框架中的硬件周期计数器和事件计数器(虽然目前只适用于英特尔奔腾和更高架构)等特点。
编辑推荐
《操作系统分析》:高等学校工程创新“十二五”规划计算机教材
图书封面
评论、评分、阅读与下载