内容简介
《全国计算机等级考试四级教程:操作系统原理(2018年版)》根据教育部考试中心新颁布的《全国计算机等级考试四级操作系统原理考试大纲(2018年版)》的要求编写而成。主要内容包括:操作系统的基本概念、基本结构及运行机制,进程线程模型,进程线程同步机制,内存管理方案,文件系统的设计、实现及性能提升,I/O设备管理,死锁的概念及解决方案。在
《全国计算机等级考试四级教程:操作系统原理(2018年版)》的最后附有新版的考试大纲、样题及参考答案。
《全国计算机等级考试四级教程:操作系统原理(2018年版)》的编写目标是使考生具备操作系统基础知识,掌握操作系统中各部分功能的工作原理及关联性,熟悉各种典型实现技术,从而能够在应用开发中运用所掌握的知识。
《全国计算机等级考试四级教程:操作系统原理(2018年版)》可供报考四级操作系统原理的全国计算机等级考试考生使用,也可作为普通高等学校计算机操作系统课程的参考书。
内页插图
目录
第1章 操作系统概论
1.1 操作系统的概念
1.1.1 计算机系统
1.1.2 操作系统的定义
1.1.3 操作系统的特征
1.1.4 研究操作系统的观点
1.1.5 操作系统的功能
1.2 操作系统的发展
1.2.1 手工操作
1.2.2 监控程序(早期批处理)
1.2.3 多道批处理
1.2.4 分时系统
1.2.5 UMIX通用操作系统
1.2.6 个人计算机操作系统
1.2.7 Android操作系统
1.3 操作系统分类
1.3.1 批处理操作系统
1.3.2 分时系统
1.3.3 实时操作系统
1.3.4 嵌入式操作系统
1.3.5 个人计算机操作系统
1.3.6 网络操作系统
1.3.7 分布式操作系统
1.3.8 智能卡操作系统
1.4 操作系统结构
1.4.1 整体式结构
1.4.2 层次结构
1.4.3 微内核(客户机/服务器)结构
第2章 操作系统运行机制
2.1 中央处理器(CPU)
2.1.1 CPU的均成与基本工作方式
2.1.2 特权指令和非特权指令
2.1.3 处理器的状态
2.1.4 程序状态字PSW
2.2 存储体系
2.2.1 存储器的层次结构
2.2.2 存储保护
2.3 中断与异常机制
2.3.1 中断与异常的概念
2.3.2 中断系统
2.3.3 中断优先级与中断屏蔽
2.4 系统调用
2.4.1 系统调用简介
2.4.2 系统调用的处理过程
2.5 I/0技术
2.6 时钟
第3章 进程线程模型
3.1 多道程序设计模型
3.1.1 程序的顺序执行
3.1.2 多道程序系统中程序执行环境的变化
3.1.3 程序的并发执行
3.2 进程模型
3.2.1 进程的概念
3.2.2 进程的状态及其状态转换
3.2.3 进程控制块
3.2.4 进程控制
3.3 线程模型
3.3.1 线程的引入
3.3.2 线程的基本概念
3.3.3 线程实现机制
3.3.4 Pthread线程包
3.4 进程(线程)调度
3.4.1 概述
3.4.2 调度算法设计原则
3.4.3 进程(线程)调度算法
第4章 并发与同步
4.1 进程(线程)间相互作用
4.2 进程互斥
4.3 信号量(Semap}lore)
4.4 经典的进程同步问题
4.5 管程
4.6 进程通信
4.6.1 共享内存
4.6.2 消息机制
第5章 内存管理
5.1 基本概念
5.1.1 存储体系
5.1.2 存储管理的任务
5.1.3 地址转换
5.2 分区存储管理方案
5.2.1 固定分区
5.2.2 T变分区
5.2.3 分区管理方案的优缺点
5.3 覆盖技术与交换技术
5.3.1 覆盖技术
5.3.2 交换技术
5.4 页式存储管理方案
5.4.1 基本思想
5.4.2 存储空间的分配与回收
5.4.3 地址转换与快表
5.5 虚拟存储技术与虚拟页式存储管理方案的实现
5.5.1 虚拟存储技术
5.5.2 虚拟页式存储管理
5.5.3 段式与段页式存储管理方案
第6章 文件管理
6.1 概述
6.1.1 文件和文件系统
6.1.2 文件分类
6.1.3 文件系统的功能
6.2 文件的结构
6.2.1 文件的逻辑结构
6.2.2 文件的物理结构
6.2.3 文件的存储介质
6.2.4 文件的存取方式
6.3 文件目录
6.3.1 文件目录的组成
6.3.2 文件目录结构
6.3.3 树形目录
6.3.4 路径名
6.3.5 目录操作
6.4 文件系统的实现
6.4.1 存储空间的分配与回收
6.4.2 实现文件系统的表目
6.4.3 记录的成组与分解
6.4.4 文件的操作
6.5 文件的保护和安全
6.5.1 文件的共享
6.5.2 文件的保护
6.5.3 文件的存取权限
6.5.4 文件的保密
6.6 文件系统的性能
6.7 WindOWS的FAT文件系统和UNIX文件系统
6.7.1 windows的FAT文件系统
6.7.2 UNIX文件系统
第7章 I/O设备管理
7.1 设备与设备分类
7.1.1 设备管理的重要性
7.1.2 设备管理的任务
7.1.3 设备的分类
7.2 I/O硬件组成
7.2.1 计算机I/0系统的结构
7.2.2 I/O设备数据传送控制方式
7.3 I/0软件的特点及结构
7.3.1 设备驱动程序
7.3.2 与设备无关的系统软件
7.3.3 用户空间的I/0软件
7.4 典型的I/O技术
7.4.1 缓冲技术
7.4.2 设备分配技术
7.5 I/O性能问题及解决方案
小结
第8章 死锁
8.1 死锁基本概念
8.1.1 死锁的概念
8.1.2 死锁产生的原因
8.1.3 产生死锁的必要条件
8.1.4 解决死锁的方法
8.2 死锁预防
8.2.1 破坏“互斥条件”
8.2.2 破坏“不可剥夺”条件
8.2.3 破坏“请求和保持”条件
8.2.4 破坏“循环等待”条件
8.3 死锁避免
8.3.1 安全与不安全状态
8.3.2 银行家算法
8.4 死锁检测与解除
8.4.1 死锁检测
8.4.2 死锁解除
8.5 资源分配图
8.5.1 死锁的表示——资源分配图
8.5.2 死锁判定法则
8.5.3 资源分配图化简法
附录1 全国计算机等级考试四级操作系统原理考试大纲(2018年版)
附录2 全国计算机等级考试四级操作系统原理样卷及参考答案
参考文献
前言/序言
本书是根据教育部考试中心最新制订的《全国计算机等级考试四级操作系统原理考试大纲(2018年版)》和计算机专业基础课程“操作系统原理”的教学要求进行编写的。
本书主要内容包括:操作系统的基本概念、基本结构,操作系统运行机制,进程线程模型,进程线程同步机制,内存管理方案,文件系统的设计、实现及性能提升,I/O设备管理,死锁的概念及解决方案。
操作系统课程是计算机科学与技术专业的专业基础课,该课程不仅理论体系经典严谨,与实践结合紧密,同时又具有相关设计原理与技术发展迅速、课程知识深度和广度强的特点。通过学习,要求考生能掌握操作系统的基本概念和主要特征,深入理解操作系统运行机理,掌握并应用进程线程模型、进程线程调度算法,掌握并应用进程线程同步机制,掌握虚拟存储技术及虚拟页式存储管理方案的设计与实现,掌握并应用文件系统设计与实现,理解I/O设备管理及典型实现技术,理解死锁的概念及解决方法,了解操作系统技术的发展演化。
本书由北京大学陈向群主编,参加编写的人员包括陈向群(第1、2、6、8章)、向勇(第3、4章)、王雷(第5章)、马洪兵(第7章)。清华大学史美林教授对书稿进行了审阅。
由于编写时间仓促,编者水平有限,疏漏之处在所难免,望读者提出宝贵意见,以便修订时改正。
一本关于计算机系统运作核心的深度探索 本书将带领读者深入理解计算机系统最基础、最核心的组成部分——操作系统。它并非一本技术手册,更不是针对某项特定考试的备考指南。相反,它旨在构建一个关于操作系统为何存在、如何工作、以及其在现代计算中所扮演关键角色的完整知识体系。通过对操作系统原理的细致剖析,读者将能跳出“会用”的层面,达到“理解”的高度,从而更深刻地认识计算机的本质,并为未来更高级的技术学习打下坚实基础。 从何而来,为何重要:操作系统诞生的必然 在深入具体概念之前,我们首先要探讨操作系统的起源和其存在的根本原因。计算机硬件本身是一堆冰冷的电子元件,它们无法直接理解人类的语言或执行复杂的任务。要让这些硬件发挥作用,需要一个中间层,一个能够协调硬件资源、管理软件进程、并为用户提供交互界面的“总管”。这个总管,就是操作系统。 本书将追溯操作系统的历史演进,从早期批处理系统到分时系统,再到现代多任务、多用户、分布式操作系统。理解这个发展过程,有助于我们认识到操作系统设计中不断涌现的挑战和相应的解决方案。我们将探讨,为什么需要中断?为什么需要进程?为什么需要内存管理?这些看似基础的问题,背后都蕴含着操作系统设计者们智慧的结晶。 操作系统的大脑与神经:核心组件的运作机制 本书的核心内容将围绕操作系统的几个关键组成部分展开,并对其内部运作机制进行深入讲解。 进程管理: 进程是程序在执行过程中的一个动态实体。操作系统如何创建、调度、终止进程?进程之间如何通信和同步?如何避免死锁?这些是进程管理的关键问题。我们将详细介绍进程的状态(就绪、运行、阻塞等),进程控制块(PCB)的作用,以及各种调度算法(先来先服务、短作业优先、时间片轮转、优先级调度等)的原理和优缺点。同步机制,如信号量、互斥锁、条件变量,也将被一一剖析,帮助读者理解如何在并发环境下保证数据的一致性和程序的正确性。死锁的产生条件、检测、预防和解除方法也将是重点讨论的内容。 内存管理: 内存是程序运行的战场,如何高效、安全地利用有限的内存资源是操作系统面临的另一大挑战。本书将探讨内存分配的基本原理,包括连续分配(固定分区、可变分区)和非连续分配(分页、分段)。我们将详细讲解分页系统如何将逻辑地址映射到物理地址,页表的作用,以及TLB(Translation Lookaside Buffer)如何加速地址转换。分段系统如何根据程序的逻辑结构划分段,以及段表的作用。更重要的是,我们将深入探讨虚拟内存技术,包括请求分页、页面置换算法(FIFO、LRU、OPT等)的原理和实现,以及它们如何有效地扩展了程序的可用内存空间,使得程序的大小不再受限于物理内存的大小。内存保护机制,防止一个进程非法访问另一个进程的内存空间,也将被充分讨论。 文件系统: 文件是数据持久化的载体,文件系统则是操作系统管理这些数据的重要组成部分。本书将讲解文件系统的基本概念,包括文件、目录、文件结构、文件访问方式等。我们将深入探讨文件系统的实现,包括目录结构的组织(单级、二级、树形)、文件存储空间管理(位图、空闲链表)、文件分配方法(连续分配、链式分配、索引分配)以及文件访问控制权限。文件系统的一致性、可靠性和性能优化也将是讨论的重点。 设备管理: 计算机的输入输出设备是用户与计算机交互的桥梁,设备管理是操作系统保障硬件高效利用的关键。本书将讲解I/O硬件的组成、I/O控制方式(程序控制I/O、中断控制I/O、DMA)以及I/O软件的层次结构。我们将深入探讨设备驱动程序的作用,缓冲技术如何提高I/O效率,以及磁盘调度算法(FCFS、SSTF、SCAN、C-SCAN)如何优化磁盘访问性能。 用户接口与系统调用: 操作系统如何与用户进行交互?用户如何向操作系统发出指令?本书将介绍用户接口(命令行界面、图形用户界面)的基本原理,以及系统调用作为应用程序与操作系统内核进行通信的桥梁。我们将列举一些常见的系统调用,并解释它们在操作系统中的作用。 理论与实践的融合:理解操作系统的设计哲学 本书不仅会介绍各个组件的原理,更会探讨它们之间的相互关系和整体设计思想。我们将讨论: 并发与并行: 在多核CPU时代,理解并发(多个任务在同一时间段内交替执行)与并行(多个任务在同一时刻同时执行)的区别至关重要。我们将探讨操作系统如何通过进程和线程实现并发,以及如何利用多核处理器实现并行。 资源管理策略: 操作系统本质上是一个资源管理器,它需要对CPU、内存、磁盘、I/O设备等进行有效的分配和调度。本书将深入分析不同的资源管理策略,以及它们如何影响系统的性能、吞吐量和响应时间。 安全性与可靠性: 保护系统免受恶意攻击和意外故障是操作系统的重要职责。我们将探讨操作系统的安全机制,如用户认证、访问控制、权限管理,以及提高系统可靠性的技术,如错误检测与恢复、日志记录等。 现代操作系统的新趋势: 随着技术的不断发展,操作系统也在不断演进。我们将简要探讨一些现代操作系统的新特性和发展趋势,如微内核、巨型内核、实时操作系统、分布式操作系统、嵌入式操作系统以及云计算环境下的操作系统挑战。 知识体系的构建:从宏观到微观的深入理解 本书的结构设计旨在帮助读者建立一个清晰、完整的操作系统知识体系。我们不会拘泥于零散的技术点,而是力求从宏观的角度出发,引导读者理解操作系统设计的整体逻辑和权衡。每个章节都将从基本概念入手,逐步深入到具体的实现细节和算法原理。通过大量的概念解释、逻辑推导和案例分析,帮助读者在理解知识点的同时,培养独立分析和解决问题的能力。 本书的价值在于,它能够让读者理解“为什么”这些技术和机制需要被设计出来,它们解决了什么样的问题,以及在不同的场景下,哪些设计是更优的选择。这种深度的理解,远比死记硬背某个考试要求的知识点更为宝贵,它将为读者在未来面对更复杂的计算问题时,提供坚实的理论基础和清晰的思路。 超越考试,迈向精通:面向未来的技术视野 本书的内容设计,不以任何特定的考试大纲为限,而是以操作系统原理的普适性和深度为目标。通过对本书的学习,读者将能够: 透彻理解计算机系统的工作原理: 能够从根本上理解应用程序是如何在计算机上运行的,以及操作系统在其中扮演的关键角色。 为学习更高级技术打下坚实基础: 无论是分布式系统、云计算、嵌入式开发还是网络安全,都离不开对操作系统的深刻理解。 提升解决复杂问题的能力: 能够从更深层次分析系统性能瓶颈,定位故障原因,并提出有效的解决方案。 培养独立思考和学习的能力: 掌握了操作系统设计背后的原理,读者将能触类旁通,快速掌握新的技术和概念。 本书的目标是帮助每一位对计算机系统运作充满好奇的读者,揭开操作系统的神秘面纱,领略其设计的精妙之处,并最终成为一名真正理解计算机本质的开发者或技术爱好者。它是一次关于计算机灵魂的探索之旅,一次对“计算”本质的深度思考。