操作系统是用户与计算机之间的交互通道,管理和控制着系统资源。只有理解了操作系统,用户才能方便、灵活地使用计算机; 只有掌握了操作系统提供的各种功能强大的系统服务,用户才能更好地利用系统资源,在操作系统的基础上建立自己的应用系统,开发自己的应用软件。为了达到理论与实践相结合,突出操作系统各部分关键环节的概念、功能、原理和方法的目的,本书选择当前较为流行的、有代表性的操作系统——Windows和Linux为实例,深入分析和讲解了它们的部分关键环节的实现技术。此外,由于操作系统所介绍的原理与算法比较抽象,难以理解和掌握,笔者根据多年的教学经验,将一些典型实例引入本书,使读者通过实例的分析和应用,充分掌握操作系统的原理与算法思想,提高分析问题、解决问题的能力。考虑到近年来操作系统在技术与应用上都有了一些较新的进展,在本书中引入了线程、实时调度、多处理机、网络操作系统、分布式操作系统、嵌入式操作系统等新技术的介绍。本书共分为10章。第1章为绪论,从操作系统的发展和作用引入操作系统的概念,简要介绍操作系统的功能,依据操作系统的不同设计目标对操作系统进行了分类介绍; 第2章为操作系统的用户接口,介绍操作系统的两种接口,重点介绍Linux常用操作命令和系统调用的实现原理; 第3章为进程管理,从单道程序和多道程序执行的不同特征引入进程的概念,而后介绍进程的基本特征和运行状态及操作系统对进程的控制机构,通过实例分析进程的同步与互斥关系的解决方法以及进程通信的常用方式,最后介绍线程的概念和应用环境; 第4章为处理机调度与死锁,介绍处理机调度级别与常用调度算法的基本思想,并通过实例对不同的算法进行优劣比较,包括进程调度与实时调度和多处理机调度; 第5章为存储管理,从存储管理的内存分配、地址变换、内存扩充与内存保护4个方面分别介绍了分区式管理、页式管理、段式管理与段页式管理四种常用的存储管理方案; 第6章为设备管理,由低到高逐层介绍I/O系统的层次结构的一些关键技术; 第7章为文件管理,主要讲述文件与文件系统、文件的组织和存取以及文件的保护; 第8章为Linux内核结构,以目前十分流行的Linux系统为例,主要介绍Linux进程管理、Linux 存储管理、Linux 文件管理、Linux 设备管理的基本原理; 第9章为Windows系统模型,主要介绍Windows 2000/NT的操作系统模型、进程管理、线程管理、文件管理、内存管理和设备管理; 第10章为网络、分布式和嵌入式操作系统,以计算机的新应用模式为背景,着重讨论网络操作系统、分布式操作系统和嵌入式操作系统的特点及应用环境。总之,本教材具有如下特色:(1) 内容全面。本书融当前的主流操作系统于一体,既有操作系统的常用原理介绍,又有具体实现技术的详细分析,使读者通过本书的学习可较好地掌握各种常用操作系统的基本理论和实用技术。(2) 富有启发性。采用“实例引导,任务驱动”的编写方式,增加实例分析,使读者掌握操作系统实例解析题的解析方法,激发读者的学习兴趣。(3) 图文并茂。对于较深奥的理论知识,尽量以图表的形式来说明,便于读者理解和掌握。(4) 理论联系实际。具体分析当前流行的Linux操作系统和Windows操作系统的实现技术和方法,将抽象的原理和具体实例相结合,使读者能够在实际应用中更好地建立自己的应用系统,开发自己的应用软件。本书的第2~6章由长安大学的李芳编写; 第1、7、8章由长安大学的刘晓春编写,第9、10章由长安大学的李晓莉编写。由于编者水平有限,在本书的编写中,难免会有错误和不当之处,恳请读者批评指正。编者 2007年8月