第1章 操作系统概论
单选题2题 多选题1题
1.1 操作系统定义与特征
操作系统的定义
- 操作系统是计算机系统中的一个系统软件,能有效地组织和管理计算机系统中的硬件及软件资源;控制程序的执行,合理地组织计算机的工作流程;并向用户提供各种服务功能,使用户能够灵活、方便、有效地使用计算机,并使整个计算机系统能高效地运行。
- 有效:指根据用户的不同要求,在管理计算机资源时考虑到系统运行的效率和资源的利用率
- 合理:指操作系统要 “公平”对待不同的用户程序,保证系统不发生“死锁”和“饥饿”的现象
- 操作系统的另一项重要任务,是向用户提供各种服务功能
- 向程序开发和设计人员提供高效的程序设计接口
- 向使用计算机系统的用户提供接口,使用户能够灵活、方便、有效地使用计算机
- 操作系统是一个可以从多个视角加以考察的一个软件系统
- 计算机应用角度——操作系统是人人都要使用的系统界面和接口
- 软件设计和开发的角度——操作系统起着系统软件开发基础和工具的作用
- 黑客和网络攻击者——操作系统是他们要攻破的第一道防线
操作系统的特征
并发性——指在计算机系统中同时存在若干个运行着的程序
- 单处理器环境——交替执行
- 多处理器系统——宏观和微观都并发
- 分布式系统——每个计算机并发执行
共享性——指操作系统与多个用户程序共用系统中的各种资源
这种共享性是在操作系统控制下实现的。资源的共享性主要针对计算机系统中的如下几项重要资源:
- 中央处理器
- 内存储器
- 外存储器
- 外部设备
资源的共享一般有两种形式:互斥共享和同时共享
- 互斥共享:如打印机、磁带机、扫描仪等。临界资源
- 同时共享:如硬盘、重入的操作系统代码等
随机性——操作系统不能对所运行的程序的行为以及硬件设备的情况做出任何实现的假定
研究操作系统的观点
软件的观点
- 外在特性:操作命令定义集和界面,完全确定了操作系统这个软件的使用方式
- 内在特性:具有一般软件的结构特点;具有一般应用软件所不具备的特殊结构
进程的观点
- 分析计算机系统各部分的并行工作
- 研究处理各项管理任务的分割以及这些管理任务相互之间的关系
资源管理的观点
- 如何协调这些用户程序和作业
- 如何有条不紊地进行资源分配
虚拟器的观点
- 操作系统的全部功能,包括系统调用、命令、作业控制语言等,统称为操作系统虚拟器。
- 从系统功能分解的角度出发来考虑操作系统的结构。这种观点将操作系统的功能分成若干个层次,每一层次完成特定的功能。
服务者的观点
- 为用户使用便利,该服务提供者提供了一组功能强大、方便、易用的广义指令(称为系统调用)
操作系统的功能
- 进程管理/处理器管理
- 进程控制:主要任务就是创建进程、撤销结束的进程以及控制进程运行时候的各种状态转换
- 进程同步:处理进程之间的关系,包括同步和互斥
- 进程间通信:主要发生在相互协作的进程之间,是处理进程间的信息交换的手段
- 进程调度:OS中的调度包括进程调度、线程调度和作业调度;进程调度,又称为处理器调度
- 存储管理——管理计算机系统中有限的内存资源
- 内存的分配与回收
- 存储保护
- 内存扩充
- 文件管理——有效地支持文件的存储、检索和修改等操作,解决文件的共享、保密和保护问题,方便用户安全的使用文件
- 文件存储空间的管理:为每个文件分配一定的外存空间,提供空间利用率和访问效率
- 目录管理:给出文件的组织方法,实现用户按名存取文件
- 文件系统的安全性:文件的读写权限管理以及存取控制
- 设备管理
- 负责外部设备的分配、启动和故障处理
- 为提供设备的使用效率和系统运行速度
- 用户接口
- 为用户提供一个使用系统的良好环境,使用户能有效地组织自己的工作流程
- 进程管理/处理器管理
操作系统的发展
- 手工操作
- 监控程序
- 多道批处理系统
- Android操作系统——主要面向移动设备,具有开放性和可移植性
- UNIX通用操作系统
- 个人计算机OS
- 分时系统
1.2 操作系统的各种分类
分类依据:使用环境和功能特征不同
批处理系统
(1) 基本工作方式
- 用户将作业交给系统操作员
- 系统操作员组成一批作业
- 把作业(批量)输入到计算机
- 操作员启动操作系统
- 依次执行每个作业
- 执行完毕的结果交给用户
(2) 特点
- 特点:成批处理;用户不能干预。延长了软件开发时间,适用于成熟的程序
- 优点:作业的自动化较高,资源利用率较高,作业吞吐量大,提高了整个系统效率
- 缺点:用户不能直接与计算机交互,不适合调试程序
(3) 设计思想
监控程序的设计思想:在监控程序启动之前,操作员有选择地把若干作业合并成一批作业,并将其安装在输入设备上;然后启动监控程序,监控程序自动控制这批作业的执行。
- 先把第一个作业调入内存并运行
- 将下一个作业调入内存并运行
- 直至该批所有的作业都处理完成
(4) 一般指令和特权指令
CPU运行模式的引入:为了防止由于用户的错误而导致整个系统发生不可预料的后果,有必要对中央处理器的运行划分出不同的状态(运行模式)
- 用户模式(目态)——一般指令——用户程序
- 特权模式(管态)——特权指令——监控程序
(5) 系统调用的过程
- 当系统调用发生时,处理器通过一种特殊的机制(中断或者异常处理) ,把控制流程转移 到监控程序内的一些特定的位置。(处理器模式转变成特权模式)
- 由监控程序执行被请求的功能代码,用以完成所请求的功能。
- 处理结束之后,监控程序恢复系统调用之前的现场;把运行模式从特权模式恢复成为用户模式
(6) SPOOLing技术
SPOOLing技术基本思想:
用磁盘作为IO设备,主机直接从磁盘上选取作业运行,作业的执行结果也存在磁盘上
通道直接受主机控制,负责将用户作业从卡片机上动态写人磁盘并将作业执行的结果从磁盘输出到卡片,且与主机并行。通道与主机之间通过中断相互通信。
分时系统
(1) 设计思想
将CPU的时间划分成若干个时间片,操作系统以时间片为单位,轮流为每个终端用户服务
(2) 特点
- 多路性——多个用户在同时使用一台计算机(从宏观上看是多个人同时使用处理器,从微观上看多个人不同时使用)
- 交互性——用户根据系统响应的结果提出下一个请求。用户直接干预
- 独占性——每个用户感觉好像整个系统为他个人所独占一样
- 及时性——系统能够为用户提出的请求及时给予响应
(3) 总结
- 分时操作系统追求的目标是及时响应用户输入的交互命令。用来衡量系统及时响应的指标是响应时间,即系统对一个输入的反应时间。
- 响应时间:用户从终端发出命令到系统给予回答所经历的时间。
- 通用操作系统总是结合了分时系统与批处理系统两种系统的特点。处理原则是:分时优先,批处理在后。
- 一般把系统的分时和批处理运行状态称为前台和后台。 在系统的“前台”响应需频繁交互的作业,如大量终端的处理要求;而“后台”则处理对时间性要求不强的作业。
实时系统
- 定义:是指使计算机能在规定的时间内及时响应外部事件的请求,同时完成对该事件的处理,并能够控制所有实时设备和实时任务协调一致地工作的操作系统。
- 主要目标:在严格时间范围内,对外部请求作出反应,系统具有高度可靠性。
- 分类
- 硬实时操作系统——对关键外键时间的响应和处理时间有严格要求——火箭、导弹控制、急切人控制、核反应堆控制
- 软实时操作系统——对事件的响应和处理时间有一定时间范围要求——视频处理、电信(自动交换机)、银行、飞机订票
- 实时任务
- 定时任务
- 延时任务
- 应具备的能力
- 实时时钟管理
- 过载保护
- 高可靠性
分类依据:计算机体系结构
嵌入式操作系统
- 定义:运行在嵌入式芯片环境中,对整个芯片以及所操作、控制的各种部件装置等资源进 行统一协调、 调度、指挥和控制的系统软件。
- 优点:高可靠性、实时性、占有资源少、智能化能源管理、易于连接、低成本等。
个人操作系统
- 定义:一种单用户多任务的操作系统
- 特点
- 计算机在某一时间内为单个用户服务
- 采用图形界面人机交互的工作方式,界面友好
- 使用方便,用户无需具备专门知识,也能熟悉地操纵系统
网络操作系统
定义:基于计算机网络的,并在各种计算机操作系统之上按网络体系结构、协议标准设计开发的软件,它包括网络管理、通信、安全、资源共享和各种网络应用。
设计目标:相互通信及资源共享
分类
- 集中式:运算处理在主计算机中,终端仅作为I/O设备使用,通过连接两台或更多主机的方式构成计算机网络
- 分布式:每台计算机都有运算处理能力,多台计算机通过网络交换数据开共享资源和服务
分布式操作系统
- 定义:是网络操作系统的更高级形式,将大量的计算机通过网络联结在一起,可以获得极高的运算能力及广泛的数据共享。
- 优点
- 分布式:以较低的成本获得较高的运算性能
- 可靠性:分布式系统中的计算机存在冗余
- 特征
- 是一个操作系统
- 实现资源的深度共享
- 自治性
- 透明性
智能卡操作系统
- 智能卡操作系统,又称片内操作系统,其功能受到了智能卡内微处理器芯片的性能及内存容量的影响。
- 常见的智能卡操作系统一般都是根据某种智能卡的特点及其应用范围而设计开发的。
- 基本指令集大致可分为:数据管理类、通信控制类和安全控制类。
- 智能卡操作系统具有四个基本功能:资源管理、通信管理、安全管理和应用管理。
1.3 操作系统的结构
概念
操作系统的结构:是指操作系统各部分程序的存在方式及相互关系。
- 早期操作系统
- 结构简单,系统规模小,逻辑关系简单
- 只注重功能和效率,忽略结构的设计
- 容错概念出现之后
- 要求在部分硬、软件失效的情况下仍能正常工作
- OS结构
- 整体式
- 层次式
- 微内核(C/S)
- 早期操作系统
整体式结构
基本思想
确定总体功能
将总功能分解为若干个子功能——实现每个子功能的程序(模块)
每个大模块分解为若干个小模块——直至分解为最基本的模块为止
最后通过接口将所有模块连接起来形成一个整体——称为模块组合结构
优点:结构紧密,接口简单直接,系统效率较高
缺点
- 模块间转接随便,模块间的独立性差,系统结构不清晰
- 数据基本上作为全程量处理,任一程序均可对其进行存取和修改
- 可适应性比较差
层次结构
(1) 引入
为减少各模块之间毫无规则地互相调用、互相依赖地关系,特别是循环调用。引入层次结构,力求使模块间调用地无序性变为有序性
(2) 定义
把所有功能模块,按功能流图的调用次序排列成若干层,各层之间的模块只能单向依赖或单向调用(如只允许上层或外层模块调用下层或内层模块)
(3) 优点
整体问题局部化、模块化
模块间的组织结构和依赖关系更加清晰明了
增加系统的可读性、可适应性和可靠性
容易对操作系统增加或替换掉一层而不影响其他层次
具有易于调试、修改、扩充和维护,更易于保证正确性
层次结构是单向依赖的,上一层各模块所提供的功能(及资源)是建立在下一层的基础上的,或者说上一层功能是下一层的扩充和延续。
(4) 分层原则
- 必须把与机器特点紧密相关的软件放在紧靠硬件的最底层
- 需要共同要使用的基本部分放在内层,而把随不同操作方式而改变的部分放在外层
- 第五层 用户程序
- 第四层 输入/输出管理
- 第三层 操作员控制台
- 第二层 储存管理
- 第一层 CPU调度与信号
- 第零层 硬件设施
微内核(客户机/服务器)结构
(1) 引入
- 广泛的信息和资源共享、分布式处理需求等推动了操作系统的结构发展。
- 采用客户机/服务器结构的操作系统更适宜于网络环境下的分布式处理应用场景。
(2) 特点
- 运行在核心态的内核:通常采用层次结构并构成了基本操作系统(称为微内核)
- 运行在用户态的并以客户机/服务器方式运行的进程层。
- 客户机可以是用户应用程序,也可以是某一个服务进程
- 客户机和服务器之间的通信时通过消息传递的,且消息的发送和接收必须通过内核。
(3) 优点
- 可靠:每个分支可以做到自包含,分支耦合松散
- 灵活:接口规范,便于维护
- 适宜于分布式处理的计算环境:不同的服务可以运行在不同的处理器或计算机上
(4) 缺点
- 效率低下,所有地用户进程只能通过微内核相互通信
预览: