《操作系统原理与Linux系统实验》全面、系统地阐述了现代操作系统的基本原理、主要功能及实现技术,重点论述多用户、多任务操作系统的运行机制,系统资源管理的策略和方法,操作系统提供的用户界面。《操作系统原理与Linux系统实验》给出了一个操作系统实验体系。该实验体系涉及操作系统的核心实现技术和一些重要的实际应用,包括进程控制、增加新的系统功能调用、增加新的设备驱动程序等操作系统功能模块的实现方法;还包括Linux文件系统、服务器配置与应用的范例。每个实验都是一个完整的小体系,包括:预备知识、实验指导、实验目的和内容以及实验中的程序范例。
《操作系统原理与Linux系统实验》既可作为高等院校计算机和信息类本科、专科各专业和其他相关专业的教材,亦可供从事计算机科学、工程和应用等方面工作的科技人员参考。
庞丽萍,华中科技大学教授,博士生导师,1967年毕业于北京邮电学院(现北京邮电大学)无线电通信专业。曾任国家教育部工科计算机基础课程教学指导委员会委员、中国计算机学会教育与培训专业委员会委员。长期从事计算机操作系统、分布式计算机系统的研究和教学工作;主要研究方向为并行分布式系统。编著的《操作系统原理》(第三版)2002年获全国普通高等学校优秀教材二等奖;主持的“操作系统原理”课程获2007年国家级精品课程;编著了《操作系统原理》等11本教材:1995年获首届“孺子牛金球奖”[香港柏宁顿(中国)教育基金会颁发];2003年获湖北省科技进步一等奖1项;获2004年度宝钢教育奖优秀教师奖。
郑然,华中科技大学博士,副教授。主要从事操作系统原理、多核操作系统实践等课程的讲授,主要研究方向为高性能计算、图像处理应用、计算系统虚拟化。在国内外学术刊物和国际会议上发表论文30余篇,主持并参与多个国家项目。2003年获湖北省科技进步一等奖1项,2008年获湖北省科技进步二等奖1项;获得国家发明专利3项,软件著作版权5项。
前言
教学建议
第一篇 操作系统原理
第1章 绪论
1.1 操作系统与计算机系统的关系
1.1.1 计算机系统的组成
1.1.2 操作系统在计算机系统中的位置
1.1.3 操作系统与计算机体系结构的关系
1.2 操作系统的发展历程_
1.2.1 操作系统的发展阶段
1.2.2 多道程序设计技术与分时技术
1.3.操作系统的基本概念
1.3.1 操作系统的定义和特性
1.3.2 操作系统的资源管理功能
1.4 操作系统的基本类型
I.4.1 批量操作系统
1.4.2 分时操作系统
1.4.3 实时操作系统
1.4.4 个人计算机操作系统
1.4.5 网络操作系统
1.4.6 分布式操作系统
1.5 操作系统采用的关键技术
1.5.1 操作系统采用的并行处理技术
1.5.2 操作系统采用的虚拟技术
习题1
第2章 操作系统的运行基础与结构
2.1 操作系统的运行基础
2.1.1 处理机的态
2.1.2 特权指令
2.1.3 中断概念及类型
2.1.4 国断进入
2.1.5 软件中断处理过程
2.1.6 向量中断
2.2 操作系统虚拟机
2.3 操作系统的逻辑结构
2.3.1 操作系统的四种组织结构
2.3.2 Linux操作系统的逻辑结构
2.4 操作系统运行时的调用方式
习题2
第3章 操作系统的用户界面
3.1 操作系统提供的环境
3.1.1 操作系统的生成和系统引导
3.1.2 应用程序的处理
3.2 用户界面
3.2.1 用户界面概述
3.2.2 操作系统提供的用户界面
3.3 系统功能调用
3.3.1 系统功能调用的定义
3.3.2 系统功能调用的实现
3.3.3 应用编程接口
习题3
第4章 进程及进程管理
4.1 进程的引入
4.1.1 程序的顺序执行
4.1.2 程序的并发执行
4.2 进程的相关概念
4.2.1 进程的定义
4.2.2 进程的状态与变迁
4.2.3 进程描述
4.2.4 线程的定义与状态
4.3 进程控制
4.3.1 进程控制的概念
4.3.2 进程创建与撤销
4.3.3 进程等待与唤醒
4.4 进程协作与系统的支持
4.4.1 进程竞争与合作
4.4.2 进程互斥的概念
4.4.3 进程同步的概念
4.4.4 锁和上锁、开锁操作
4.4.5 信号灯和P、V操作
4.5 进程互斥与同步的实现
4.5.1 用锁机制实现进程互斥
4.5.2 用信号灯机制实现进程互斥
4.5.3 进程同步的实现
4.5.4 生产者-消费者问题
4.6 进程通信
4.6.1 进程通信的概念
4.6.2 进程通信方式
习题4
第5章 操作系统的资源管理
5.1 资源管理的机制与策略
5.1.1 资源管理任务
5.1.2 虚拟资源
5.1.3 资源分配机制
5.1.4 资源分配策略
5.2 死锁及其解决方法
5.2.1 死锁的定义与例子
5.2.2 产生死锁的原因和必要条件
5.2.3 解决死锁问题的策略
5.2.4 锁的预防
5.2.5 死锁的避免
5.3 处理机管理
5.3.1 处理机的多级调度
5.3.2 作业调度
5.3.3 进程调度的功能
5.3.4 调度方式
5.3.5 进程调度算法
5.3.6 调度用的进程状态变迁图
5.4 主存管理
5.4.1 主存管理的功能
5.4.2 分区存储管理及其存在的问题
5.4.3 分页存储管理的基本概念
5.4.4 页式地址变换
5.4.5 请求页面的机制
5.4.6 淘汰机制与策略
5.4.7 段页式存储管理
5.5 设备管理
5.5.1 设备管理的功能
5.5.2 设备独立性与设备控制块
5.5.3 缓冲技术
5.5.4 设备分配技术
5.5.5 输入/输出控制
5.6 文件系统
5.6.1 文件与文件系统
5.6.2 文件的逻辑结构和存取方法
5.6.3 文件的物理结构
5.6.4 文件目录
5.6.5 文件共享与安全
5.6.6 文件操作与文件备份
习题5
第6章 Linux系统简介
6.1 Linux的发展历程
6.2 Linux的基本特性
6.3 Linux的发行版本
……
第二篇 Linux系统实验
3)微观上串行。从微观上看,主存中的多道程序轮流或分时地占有CPU,交替执行。
如何理解宏观上并行这一特征?在单处理机系统中只有一个指令计数器。CPU严格地按照指令计数器的内容顺序地执行每一个操作,即一个时刻只能有一个程序在CPU上运行。那么,多道程序如何并行执行呢?由于计算机系统有多个物理部件(如CPU、输入机、打印机等),进入主存的多道程序可以在不同的部件上进行操作。例如某时刻程序A正在CPU上运行,程序B在打印输出,程序C正在输入数据,从宏观上看,这几道程序的工作都在向前推进,它们都处于执行状态。微观上串行这一特征表现在同时被接收进入计算机的多道程序在CPU上是相互穿插地运行,当正在CPU上运行的程序因为输入或输出等原因而不能继续运行下去时,就将CPU分配给另一道程序。所以从微观上看,一个时刻只有一个程序在CPU上运行。
多道程序同时进入系统进行成批处理,形成了批处理系统。在这样的系统中,大量的用户程序以作业为单位成批进入系统。用户以脱机操作方式使用计算机,即用户事先把自己的算题程序和数据以及操作说明书(包含了用户对作业的控制意图和对系统资源的需求)交给操作员后,他就完全脱离了自己的作业,待处理结束后,用户才能拿到计算结果,根据结果分析下一步方案。脱机工作方式使计算机的效率提高了,但却给用户使用计算机带来了麻烦。
2.分时技术
由用户通过终端设备直接操作、控制自己程序的运行,这种操作方式称为联机工作方式。在这种方式下,用户可以通过终端向计算机发出各种控制命令,使系统按自己的意图控制程序的运行;另一方面,系统在运行过程中输出一些必要的信息,例如给出提示符,报告运行情况和操作结果,以便让用户根据此信息决定下一步的工作。这样,用户和计算机可采用直接的问答方式来处理用户的程序。人们希望能直接控制自己程序的运行,随时了解其运行情况,也就是希望和计算机“会话”。
……