第一章 操作系统引论
1.1 操作系统的目标和作用
1.1.1 操作系统的目标
-
方便性(用户的观点)
提供良好的、一致的用户接口,弥补硬件系统的类型和数量差别。
-
有效性(系统管理人员的观点)
提高系统资源的利用率,提高系统的吞吐量
-
可扩充性(系统开发人员的观点)
为适应计算机硬件、体系结构以及计算机应用发展的要求。可扩充性与 os 结构有十分紧密的联系。
-
开放性(开放的观点)
所谓开放性,是指系统能遵循世界标准规范,特别是遵循开发系统互联 OSI 国际标准。使各种计算机硬件系统能够有效、协同地工作,实现应用程序的可移植性和互操作性。
1.1.2 操作系统的作用
- 从计算机系统组成观点,操作系统是系统软件。
- 从服务用户的观点,操作系统是用户与计算机硬件之间接口。
- 从资源管理观点,操作系统是系统资源管理者。
- 从软件分层、扩充机器的观点,OS 实现了对计算机资源的抽象,是扩充裸机的第一层系统软件。
1.1.3 推动操作系统发展的主要动力
- 提高资源的利用率和系统性能:计算机发展的初期,计算机系统昂贵,用作集中计算;
- 方便用户:用户上机、调试程序,分散计算时的事务处理和非专业用户(商业和办公、家庭);
- 器件的不断更新换代:CPU的位宽度(指令和数据)、快速外存;
- 计算机体系结构的发展:单处理器、多处理器、网络;
- 新的应用需求的不断提出。
1.2 操作系统的发展过程
-
第0代(40年代未-50年代初)无操作系统
这时的计算机操作是由程序员采用人工操作方式直接使用计算机硬件系统。
-
第1代(50年代中-50年代末)初级单道批处理系统
它是为了减少人工操作时间和作业转换时间提高CPU利用率而设计的。系统自动成批处理作业,这是初级单道批处理系统。
-
第2代(60年代初-60年代中)多道程序设计共享系统
这一代操作系统包括多道批处理系统、采用交互方式的分时系统和以提高瞬时响应时间为特征的实时系统。
-
第3代(60年代中-70年代中)多模式系统
这一代计算机系统是通用系统,这一代操作系统是多模式系统,即一个系统同时支持批处理、分时处理、实时处理和多重处理。
-
第4代(70年代中- )网络操作系统和分布式操作系统
网络操作系统实现在计算机网络上进行信息交换、资源共享和互操作等功能。分布式操作系统将地域上分散的各系统互连成一个具有整体功能的系统,并可将一个任务分布地在各系统上运行,实现分布式处理。
1.2.1 未配置操作系统的计算机系统
特点:计算机没有配置操作系统、人工负责计算机的调度、人工负责作业编排顺序。
-
人工操作方式
缺点:用户独占全机、CPU 等待人工操作、计算机的资源利用率很低。
-
脱机输入/输出(Off-Line I/O)方式
1.2.2 单道批处理系统
目标:解决人机矛盾和高速 CPU 与低速 I/O 间矛盾等问题,提高系统资源的利用率和系统的吞吐量。
缺点:系统中的资源得不到充分的利用。这是因为在内存中仅有一道程序,每逢该程序在运行中发出 I/O 请求后,CPU 便处于等待状态,必须在其 I/O 完成后才继续运行。在 t2~t3、t6~t7 时间间隔内 CPU 空闲。
image1.2.3 多道批处理系统
目标:为了进一步提高资源利用率和系统吞吐量,在硬件采用通道和中断技术支持并行操作的情况下,引入了多道程序设计技术,由此形成多道批处理系统。
优点:资源利用率高、系统吞吐量大;
缺点:平均周转时间长、无交互能力。
衡量操作系统或整个计算机系统的性能指标:资源利用率、吞吐量、周转时间。
多道批处理系统需要解决的问题:处理机争用问题、内存分配和保护问题、I/O 设备分配问题、文件的组织和管理问题、作业管理问题、用户与系统的接口问题。
1.2.4 分时系统
分时系统的形成和发展的动力是用户的需要——人机交互、共享主机。
分时系统是指在一台主机上连接了多个带有显示器和键盘的终端,它同时允许许多用户通过终端以交互方式使用计算机共享主机中的资源。
分时系统的关键问题:及时接受、及时处理。
特征:多路性(同时性)、独立性、及时性、交互性。
响应时间是分时系统的重要指标,它是用户发终端命令到系统作出响应之间的时间间隔。
1.2.5 实时系统
实时系统是指系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致的运行。
常见的实时系统:工业(武器)控制系统、信息查询系统、多媒体系统、嵌入式系统。
实时任务的类型:周期性实时任务和非周期性实时任务、硬实时任务和软实时任务。
特征:多路性、独立性、及时性、交互性、可靠性。
1.2.6 微机操作系统的发展
单用户单任务 --> 单用户多任务 --> 多用户多任务
1.2.7 多处理机操作系统
提高性能有两条途径:提高各个组成部分的速度、增大处理的并行程度。
类型:紧密耦合(一个 OS 核心)、松散耦合(独立运行 OS)。
1.3 操作系统的基本特性
并发性、共享性、虚拟性、异步性。
-
并发性
并行性和并发性是既相似又有区别的两个概念。并行性是指两个或多个事件在同一时刻发生。而并发性是指两个或多个事件在同一时间间隔内发生。
-
共享性
- 互斥共享方式:虽然可以提供给多个进程(线程)使用,但应规定在一段时间内,只允许一个进程访问该资源。
- 同时访问方式:允许在一段时间内由多个进程“同时”对它们进行访问。
-
虚拟性
虚拟是操作系统管理系统资源的重要手段,可提高资源利用率。
- 时分复用技术:虚拟处理机技术、虚拟设备技术。
- 空分复用技术。
-
异步性
在多道程序环境下,允许多个程序并发执行,但由于资源等因素的限制,程序的执行并非“一气呵成”,而是以“走走停停”的方式运行,即程序是以异步方式运行的。
两种不确定性:每个程序(进程)执行的速度和时间不确定,各程序(进程)之间推进的序列也不确;每个程序(进程)执行结果不确定。
1.4 操作系统的主要功能
1.4.1 处理机(进程)管理
处理机管理的主要任务,是对处理机进行分配,并对其运行进行有效的控制和管理。在多道程序环境下,处理机的分配和运行以进程为基本单位。
- 进程控制:创建、撤销、挂起、改变运行优先级等;
- 进程同步:协调并发进程之间的推进步骤,以协调资源共享;
- 进程通信:进程之间传送数据,以协调进程间的协作;
- 进程调度:作业和进程的调度切换,以充分利用处理机资源和提高系统性能.
1.4.2 存储器的管理
存储器管理的主要任务是为多道程序的运行提供良好的环境,方便用户使用存储器,提高存储器的利用率,以及能从逻辑上来扩充内存,因此存储管理应具有:
- 内存分配与回收:静态、动态;
- 内存保护:保证进程间互不干扰、相互保密;
- 地址映射:进程逻辑地址到内存物理地址的映射;
- 内存扩充:提高内存利用率、扩大进程的内存空间。
1.4.3 设备管理
设备管理的任务是登记各 I/O 设备状态,管理并完成用户提出的 I/O 请求,按一定的策略为用户分配 I/O 设备。同时提高 CPU 和 I/O 设备的利用率,提高 I/O 速度,方便用户使用 I/O 设备:
- 缓冲管理:匹配CPU和外设的速度,提高两者的利用率;
- 设备分配与回收:在多用户间共享 I/O 设备资源;
- 设备处理:利用设备驱动程序完成对设备的操作;
- 设备独立性(device independence):提供统一的I/O设备接口,使应用程序独立于物理设备,提高可适应性;
- 虚拟设备(virtual device):设备由多个进程共享,每个进程如同独占。
1.4.4 文件管理
文件系统的任务是对用户文件和系统文件进行管理,以方便用户使用,并保证文件的安全性。
-
文件存储空间管理
解决如何存放信息,以提高空间利用率和读写性能。
-
目录管理
解决信息检索问题。文件的属性(如文件名)、单一副本赋予多文件名。
-
文件的读写管理和存取控制
解决信息安全问题。系统设口令"哪个用户"、用户分类"哪个用户组"、文件权限"针对用户或用户组的读写权"。
1.4.5 用户接口
- 用户接口:脱机用户接口、联机用户接口、图形用户接口。
- 程序接口:为用户程序在执行中访问系统资源而设置,是用户程序取得操作系统服务的唯一途径。
1.4.6 现代操作系统的新功能
- 系统安全:认证技术、密码技术、访问控制技术、反病毒技术;
- 网络的功能和服务:网络通信、资源管理、应用互操作;
- 支持多媒体:接纳控制功能、实时调度、多媒体文件的存储。
1.5 OS 结构设计
1.5.1 传统操作系统结构
-
无结构操作系统
早期的 OS 是无结构的,又称为整体结构系统。
-
模块化结构 OS
-
模块化程序设计技术的基本概念
image -
模块独立性
在模块-接口法中,关键问题是模块的划分和规定好模块之间的接口,在划分模块时,应在两者间进行权衡。
-
模块接口法的优点
- 提高OS设计的正确性、可理解性和可维护性。
- 增强OS的可适应性。
- 加速OS的开发过程。
-
模块接口法的缺点
- 在OS设计时,对各模块间的接口规定很难满足在模块设计完成后对接口的实际需求。
- 在OS设计阶段,设计者必须做出一系列的决定(决策),每一个决定必须建立在上一个决定的基础上,但模块化结构设计中,各模块的设计齐头并进,无法寻找一个可靠的决定顺序,造成各种决定的“无序性”,这将使程序人员很难做到“设计中的每一步决定”都是建立在可靠的基础上,因此模块-接口法又被称为“无序模块法”。
-
-
分层式结构 OS
分层法的设计任务是,s在目标系统 An 和裸机系统(又称宿主系统) A0 之间,铺设若干个层次的软件 A1、A2、A3、…、An-1,使 An 通过 An-1、An-2、…、A2、A1 层,最终能在 A0 上运行。在操作系统中,常采用自底向上法来铺设这些中间层。
优点:易保证系统的正确性、易扩充性和维护性。
缺点:系统效率降低。
1.5.2 客户/服务器模式简介
三部分:客户机、服务器、网络系统。
客户/服务器之间的交互:客户发送请求消息;服务器接收消息;服务器回送消息;客户机接收消息。
优点:数据的分布式处理和存储、便于集中管理、灵活性和可扩充性、易于改编应用软件。
1.5.3 面向对象的程序设计技术简介
优点: (1) 通过“重用”提高产品质量和生产率;(2) 使系统具有更好的易修改性和易扩展性;(3) 更易于保证系统的“正确性”和“可靠性”。
1.5.4 微内核 OS 结构
- 足够小的内核
- 基于客户/服务器模式
- 应用“机制与策略分离”原理
- 采用面向对象技术
功能:进程(线程)管理、低级存储器管理、中断和陷入管理。
优点:(1)提高了系统的可扩展性;(2) 增强了系统的可靠性;(3) 可移植性强;(4) 提供了对分布式系统的支持;(5) 融入了面向对象技术。
网友评论