基本信息

内容简介
计算机书籍
本书从原理、技术、实现三个方面讲述操作系统原理和编程思想以及编程方法。这种集原理、技术、实现于一身的讲述操作系统原理的方法是本书的独到之处。本书分别给出了四个大的核心层次和若干应用程序层次上的编程实例。因此,全书并没有只停留在介绍操作系统普遍使用的基本概念和基本原理,而是进一步探究Un叮核心数据结构和程序设计思路以及编程方法,并在一定范围内探讨了Linux内核的实现方案所具有的优缺点,从而启迪和锻炼读者的创新意识。
本书适合作为高年级本科生和研究生操作系统课程教材,也可以作为操作系统开发人员以及系统管理员参考用书。
本书是针对计算机操作系统原理课程的教材,从原理、技术、实现三个方面讲述了操作系统原理和编程思想以及编程方法。书中探究了Linux核心数据结构和程序设计思路,并在一定范围内探讨了Linux内核的实现 方案所具有的优缺点,从而启迪和锻炼读者的创新意识。本书不仅适用作高年级本科生和研究生教材,也可以供开发人员和系统管理员参考。
作译者
徐志伟,男,1956年生,1982年于成都电讯工程学院获学士学位,1984年在美国普度大学获硕士学位,1987年在美国南加州大学获博士学位。曾任国产超级计算机曙光2000总设计师、曙光信息产业有限公司总工程师。现任中科院计算所副所长、研究员、《计算机研究与发展》杂志主编,《International Journal of Grid Computing》杂志编委、IEEE高级会员、中国计算机学会理事、国际联络工委主任。目前在中科院计算所负责由863计划、中科院知识创新工程、国家杰出青年科学基金支持的“织女星网格”研究项目。曾与黄铠合著《可扩展并行计算》一书。
目录
第1章 操作系统概述
1.1 操作系统的定义
1.1.1 计算机系统层次结构图
1.1.2 操作系统的定义
1.2 操作系统发展过程中的设计需求分析
1.2.1 没有操作系统的第一代计算机
1.2.2 具有简单批处理操作系统的第二代计算机
1.2.3 简单批处理操作系统功能分析
1.2.4 多道程序设计的批处理操作系统
1.2.5 多道程序设计的分时操作系统
1.2.6 其他操作系统
1.3 内核体系结构模型
1.3.1 大型系统软件分析方法
1.3.2 操作系统结构模型
1.3.3 UNIX内核系统结构模型
1.4 Linux操作系统的出现
1.5 操作系统如何运行一个用户程序
1.5.1 操作系统运行的全过程
1.5.2 客户/服务器工作流程
前言
(1)学生反映,虽然学了操作系统课程,但是由于没有亲手编写过操作系统源代码,所以只掌握了一些肤浅的概念,而对操作系统的基本原理还是似懂非懂,学习效果不佳。
(2)用人单位反映,计算机专业的本科学生,还不能根据某种需求灵活运用操作系统原理对核心源代码进行使用、修改和扩展,更谈不上创新。
(3)操作系统课程所涉及的知识内容较多,对初学者来说,在很短的时间内全面掌握的确存在很大难度。即使那些理解能力较强的学生,对许多问题也存在认识上的混淆。
为了解决上述存在的问题,本书从原理、核心技术和编程实现三方面讲解操作系统科学。
讲述方法如下:
一、讲原理:包括操作系统中最重要的基本概念、算法和基本原理。为了易学易懂,在讲解操作系统原理时,结合Linux/i386源代码中的内核实例进行分析,使讲解真正达到深入浅出的目的。
二、讲核心技术:包括实现操作系统功能的设计思路及实现方法。对最核心的内核模块以及核心数据结构进行剖析。并介绍在Linux内核源代码中如何用C语言实现面向对象的编程方法。
三、讲编程实例:给出编写操作系统程序的若干大实例和小实例。一些短小精悍的小编程实例有助于读者准确理解概念。大的编程实例可以指导学生编写内核模块的源代码,以便使学生在今后工作中可以根据所研发的各种操作系统技术指标要求,对现有源代码进行改造、扩展或压缩,以生成适合自己需求的操作系统代码。
本书共给出5个大的编程实例:(1)编写守护进程。(2)如何修改内核调度算法。(3)如何在核心添加新编写的系统调用。(4)如何编写可加载的内核设备驱动程序模块。(5)如何编写套接口模式的客户/服务器程序。
本书内容组织如下:
第一部分中第1章讲解什么是操作系统以及操作系统的重要思想和理论进展。其他3章主要讲述Linux操作系统上电初始化的详细过程。
第二部分共6章主要研究和讲解进程和并发机制下进程的控制原理,包括:同步与互斥,死锁与饥饿,进程调度,中断机制和系统调用接口技术。
第三部分共3章主要分析和研究操作系统管理系统资源的基本原理和关键技术以及Linux实现方法,内容包括:存储管理,文件管理和I/O设备管理。
第四部分共5章主要分析和研究本地进程间通信方式以及网络通信方式的基本原理和实现方法。讲解普遍使用的TCP/IP协议和套接口编程方法。
本书的每一章都有小结、练习题和参考文献,“小结”中列出了每章内容的基本原理、关键技术和基本概念要点,“练习题”可以帮助读者巩固所学知识,“参考文献”提供更多信息来源,使读者可以进一步思考和研究存在的问题,以便加深理解内核设计原理。
实际上,操作系统就是一个大程序,是一个能够根据用户的要求对硬件以及软件进行操作的、有着复杂逻辑的函数(程序)集合。而操作系统中所有的概念、算法和原理都是由源代码来实现的。因此说,源代码是这门学科的最终着陆点,所以要重视分析和阅读源代码的工作。
本书在编写过程中参考了国内外大量的相关著作和教材,也包括Internet上提供的技术资料。还要特别感谢在编写本书的过程中,中国科学院计算技术研究所提供的精良设备和宽松的环境,使我们以十分愉快的心情从事本书的写作。
我们要特别感谢梁爽同志在百忙中调试了本书中的主要编程实例。李伟、冯百鸣、李丙辰、王源、刘兴武、董方鹏、龚奕利、谈恩华、王宇、刘昊植、肖丽娟、徐京京和汪浩同志仔细阅读了本书各个章节后给出了专业评述,并提出了宝贵的修改意见。在此一并表示我们最诚挚的谢意。
作 者