第一章 操作系统引论
1.1 操作系统的目标和作用
1.1.1 操作系统的目标
方便性、有效性、可扩充性和开放性
方便性的目的是让计算机变得易学易用;
有效性的第一层含义是提高系统资源的利用率,方便性和有效性是设计OS时最重要的两个目标;
为适应硬件、体系结构以及计算机应用发展的要求,OS必须具有很好的可扩充性,可扩充性的好坏与OS的结构有着十分紧密的联系;
开放性即遵循世界标准规范,特别是遵循开放系统互连OSI国际标准。
1.1.2 操作系统的作用
-
OS作为用户与计算机硬件系统之间的接口
OS作为接口的示意图:
-
OS作为计算机系统资源的管理者
-
OS实现了对计算机资源的抽象
I/O软件隐藏了I/O操作实现的细节:
1.1.3 推动操作系统发展的主要动力
-
不断提高计算机资源利用率
-
方便用户
-
器件的不断更新换代
-
计算机体系结构的不断发展
-
不断提出新的应用需求
1.2 操作系统的发展过程
1.2.1 未配置操作系统的计算机系统
-
人工操作方式
缺点:
(1)用户独占全机
(2)CPU等待人工操作
-
脱机输入/输出方式(I/O方式)
优点:
(1)减少了CPU的空闲时间
(2)提高I/O速度
脱机I/O示意图:
1.2.2 单道批处理系统
-
处理过程
-
缺点
最主要的缺点是:系统中的资源得不到充分的利用
原因:在内存中仅有一道程序,每逢该程序在运行中发出I/O请求后,CPU便处于等待状态,必须在其I/O完成后才继续运行,又因I/O设备的低速性,更使CPU的利用率显著降低。
单道程序的运行情况:
1.2.3 多道批处理系统
IBM公司开发的OS/360操作系统是第一个能够运行多道程序的批处理系统
推动多道批处理系统形成和发展的主要动力是提高资源利用率和系统吞吐量
-
基本概念
该系统中,用户提交的作业先存放在外存上,并排成一个队列,成为“后备队列”。然后由作业调度按一定的算法,从后备队列中选择若干个作业调入内存,使它们共享CPU和系统中的各种资源。
四道程序时的运行情况示意图:
-
优缺点
(1)资源利用率高
(2)系统吞吐量大
(3)平均周转时间长
(4)无交互能力
-
尚需解决的问题
(1)处理机争用问题
(2)内存分配和保护问题
(3)I/O设备分配问题
(4)文件的组件和管理问题
(5)作业管理问题
(6)用户与系统的接口问题
操作系统的定义:==操作系统是一组能有效组织和管理计算机硬件和软件资源,合理地对各类资源作业进行调度,以及方便用户使用的程序的集合。
1.2.4 分时系统
-
分时系统的引入
引入原因:为了满足用户对人机交互的需求
用户需求的具体表现:
(1)人机交互
(2)共享主机
-
分时系统实现中的关键问题
关键问题:用户能与自己的作业进行交互
(1)及时接受
内有多路卡:实现分时多路复用
(2)及时处理
必须彻底改变原来处理系统的运行方式,采用下面的方式:
1.作业直接进入内存
2.采用轮转运行方式
-
分时系统的特征
(1)多路性
(2)独立性
(3)及时性
(4)交互性
1.2.5 实时系统
-
实时系统的类型
(1)工业(武器)控制系统
(2)信息查询系统
(3)多媒体系统
(4)嵌入式系统
-
实时任务的类型
(1)周期性任务
定义:指一类任务,外部设备周期性地发出激励信号给计算机,要求它按指定周期循环执行,以便周期性地控制某外部设备。
(2)非周期性任务
定义:非周期实时任务并无明显周期性
两种周期任务都联系这一个截止时间,即最后期限。
其又分为:① 开始截止时间 ② 完成截止时间
(3)硬实时任务
定义:指系统必须满足任务对截止时间的要求,否则可能出现难以预测的后果,常用于工业和武器控制的实时系统
(4)软实时任务
定义:其对时间的要求没有硬实时严格,信息查询系统和多媒体系统的实时系统,常用软实时。
-
实时系统和分时系统特征的比较
(1)多路性
(2)独立性
(3)及时性
(4)交互性
(5)可靠性
1.2.6 微机操作系统的发展
-
单用户单任务操作系统
(1)CP/M
(2)MS-DOS
-
单用户多任务操作系统
定义:允许当个用户把程序分为若干个任务,使他们并发执行,从而有效地改善了系统的性能
常见:WIndows各版本
-
多用户多任务操作系统
Unix OS 之后变形为如下两种系统:
(1)Solaris OS
(2)Linux OS
1.3 操作系统的基本特性
1.3.1 并发
-
并行与并发
并行性是指两个或多个事件在同一时刻发生。而并发性是指两个或多个事件在同一时间间隔内发生。在多道程序环境下,并发性是指在一段时间内宏观上有多个程序同时运行,但在单处理机系统中,每一时刻却仅能有一道程序执行,故在微观上这些程序只能是分时地交替执行。
并发执行能够极大地提高系统资源的利用率,增加系统的吞吐量
-
引入进程
进程概念:指在系统中能独立运行并作为资源分配的基本单位,它是由一组机器指令、数据和堆栈等组成的,是一个能独立运行的活动实体。
1.3.2 共享
在OS环境下的资源共享或成为资源共用,是指系统中的资源可供内存中多个并发执行的进程共同使用。
-
互斥共享方式
系统中的某些资源,如打印机、磁带机;
-
同时访问方式
电脑的磁盘设备;
并发和共享是多哦用户的两个最基本的特征,它们又是互为存在的条件。
1.3.3 虚假
在OS中,把通过某种技术将一个物理实体变为若干个逻辑上的对应物的功能成为‘“虚拟”,前者是是实际存在的,而后者是虚的。
-
时分复用技术
(1)虚拟处理机技术
(2)虚拟设备技术
-
空分复用技术
如果说,多道程序技术(时分复用技术)是通过利用处理机的空闲时间运行其他程序,提高了处理机的利用率,那么,空分复用技术则是利用存储器的空闲空间分区域存放和运行其他的多道程序,以此来提高内存的利用率;
1.3.4 异步
概念:进程以人们不可预知的速度向前推进,即进程的异步性。
1.4 操作系统的主要功能
引入OS的主要目的
为多道程序的运行提供良好的运行环境,以保证多道程序能有条不絮地、高效地运行,并能最大程度地提高系统中各种资源的利用率,方便用户的使用。
1.4.1 处理机的管理功能
-
进程控制
-
进程同步
-
进程通信
-
调度
(1)作业调度
(2)进程调度
1.4.2 存储器管理功能
存储管理器功能:
其主要任务是为多道程序的运行提供良好的环境,提高存储器的利用率,方便用户使用,并能从逻辑上扩充内存。为此存储器管理应具有内存分配和回收、内存保护、地址映射和内容扩充等功能。
-
内存分配
主要任务:
(1)为每道程序分配内存空间,使它们“各得其所”;
(2)提高存储器的利用率,尽量减少不可用的内存空间(碎片);
(3)允许正在运行的程序申请附加的内存空间,以适应程序和数据动态增长的需要。
OS在内存分配时存在两种方式:
(1)静态分配方式
(2)动态分配方式
-
内存保护
主要任务:
(1)确保每道用户程序都仅在自己的内存空间内运行,彼此互不干扰;
(2)绝不允许用户程序访问操作系统的程序和数据,也不允许用户程序转移到非共享的其他用户程序中去执行;
为了确保每道程序都只在自己的内存区中运行,必须设置内存保护机制。一种比较简单的内存保护机制是设置两个界限寄存器。
-
地址映射
即能够将地址空间中的逻辑地址转换为内存空间中与之对应的物理地址,该功能应在硬件的支持下完成;
-
内容扩充
为了能在逻辑上扩充内存,系统必须设置内存扩充机制(包含少量的硬件),用于实现下述各功能:
(1)请求调入功能
(2)置换功能
1.4.3 设备管理功能
设备管理的主要任务:
(1)完成用户进程提出的I/O请求,为用户进程分配所需的I/O设备,并完成指定的I/O操作。
(2)提高CPU和I/O设备的利用率,提高I/O速度,方便用户使用I/O设备;
-
缓冲管理
如果在I/O设备和CPU之间引入缓冲,则可有效地缓和CPU和I/O设备速度不匹配的矛盾,提高CPU的利用率,进而提高系统吞吐量;
-
设备分配
为实现设备分配,系统中应该设置设备控制表、控制器控制表等数据结构,用于记录设备及控制器等的标识符和状态;
-
设备处理
设备处理程序又称为设备驱动程序。其基本任务是用于实现CPU和设备控制器之间的通信;
设备处理过程:首先检查I/O请求的合法性,了解设备状态是否是空闲的,读取有关的传递参数及设置设备的工作方式。然后向设备控制器发出I/O命令,启动I/O设备完成指定的I/O操作。
1.4.4 文件管理功能
主要任务:
对用户文件和系统文件进行管理以方便用户使用,并保证文件的安全性;
-
文件存储空间的管理
主要任务:
为每个文件分配必要的外存空间,提高外存的利用率,进而提高文件系统的存、取速度;此外还应具有对存储空间进行分配和回收的功能。
-
目录管理
主要任务:
为每个文件建立一个目录项,目录项包括文件名、文件属性、文件在磁盘上的物理位置等。
目录管理应能够实现文件共享,以及目录查询手段。
-
文件的读/写管理和保护
(1)文件的读/写管理
该功能根据用户的请求,从外存中读取数据,或将数据写入外存;
由于读和写操作不会同时进行,故可合用一个读/写指针;
(2)文件保护
为了防止系统中的文件被非法窃取和破坏,在文件系统中必须提供有效的存取控制功能;
(1)防止未经核准的用户存取文件;
(2)防止冒名顶替存取文件;
(3)防止以不正确的方式使用文件;
1.4.5 操作系统与用户之间的接口
-
用户接口
引入目的:为了便于用户直接或间接地控制自己的作业;
接口分类:
(1)联机用户接口
(2)脱机用户接口
(3)图形用户接口
-
程序接口
引入目的:为用户程序在执行中访问系统资源而设置的,使用户程序取得操作系统服务的唯一途径;
1.4.6 现代操作系统的新功能
-
系统安全
引入目的:为确保计算机系统存储和传输数据的保密性 、完整性和系统可用性。
(1)认证技术
(2)密码技术
(3)访问控制技术:
① 通过对用户存取权限的设置,可以限定用户只能访问被允许访问的资源,这样也就限定了用户对系统资源的访问范围;
② 访问控制还可以通过对文件属性的设置来保障指定文件的安全性,如设置文件属性为只读是,该文件就只能被读而不能被修改等;
(4)反病毒技术
-
网络的功能和服务
(1)网络通信
(2)资源管理
(3)应用互操作
-
支持多媒体
(1)接纳控制功能
(2)实时调度
(3)多媒体文件的存储
1.5 OS接口设计
软件质量可用这样几个指标来评价:功能性、有效性、可靠性、易移植性。为此,先后产生了多种操作系统的开发方法,如模块化方法、结构化方法和面向对象的方法等。
1.5.1 传统操作系统结构
传统结构的OS:无结构的OS(第一代)、模块化结构的OS(第二代)和分层式结构的OS(第三代);
现代结构的OS:微内核结构的OS;
-
无结构操作系统
-
模块化结构OS
(1)基本概念:
利用模块—接口法构成的操作系统就是具有模块化的操作系统;
图解:
(2)模块独立性
衡量模块独立性的两个标准;
- 内聚性:模块内部各部分之间联系的紧密程度;
- 耦合度:模块间相互联系和相互影响的程度;
模块接口法的优缺点:
提高OS设计的正确性、可理解性和可维护性;
增强OS的可适应性;
加速OS的开发过程;
模块化结构设计仍存在下述问题:
- OS设计时,对各模块间的接口规定很满足在模块设计完成后对接口的实际需求;
- OS设计阶段,设计师做出一系列的决定,每一个决定必须建立在上一个决定的基础上;
-
分层式结构OS
(1)引入目的
自顶向上的分层设计的基本原则是:每一步设计都建立在可靠的基础上。
(2)分层结构的优缺点:
优点:
- 易保证系统的正确性
- 易扩充和易维护性
主要缺点:系统效率低
导致原因:由于层次结构是分层单向依赖的,必须在每层之间都建立层次间的通信机制,OS每执行一个功能,通常要自上而下地穿越多个层次,这无疑会增加系统的通信开销,从而导致系统效率的降低。
1.5.2 客户/服务器模式简介
-
客户/服务器模式的由来、组成和类型
(1)客户机
具有一定的处理能力,客户进程在其上运行,平时它处理一些本地业务,也可以发送一个消息给服务器,以请求某项服务;
(2)服务器
平时一直处于工作状态,被动地等待来自客户机的请求,在检查到请求后将其完成并将结果返回给客户,这样便形成客户/服务器关系
(3)网络系统
用于连接所有客户机和服务器,实现它们之间通信和网络资源共享的系统。
-
客户/服务器之间的交互
(1)客户发送请求消息
(2)服务器接收消息
(3)服务器回送消息
(4)客户机接收消息
-
客户/服务器模式的优点
(1)数据的分布处理和存储
(2)便于集中管理
(3)灵活性和可扩充性
(4)易于改变应用软件
客户/服务器模式的不足之处是存在不可靠性和瓶颈问题;
即若系统仅有一个服务器,一旦该服务器发生故障,将导致整个网络瘫痪。当服务器在重负荷下工作是,会因忙不过来而显著地延长对用户请求的响应时间。若在网络中配置多个服务器,并采取相应的安全措施,则这种不足可以加以改善。
1.5.3 面向对象的程序设计技术简介
-
基本概念
该技术是基于“抽象”和“隐蔽”原则来控制大型软件复杂度的。
所谓对象,是指现实世界中具有相同属性、服从相同规则的一系列事物(事物可以是一个物理实体、一个概念或软件模块)的抽象,而把其中的具体事物成为对象的实例;
(1)对象
对象中的变量(数据)也称为属性
对象中的方法包含对文件的操作:创建、打开、读、写、关闭等
对象中的变量(数据)对外是隐蔽的,即外界不能直接访问,但可以通过一组方法(操作函数)对它进行访问;
一个对象的示意图:
类和对象的关系:
(2)对象类
对象是类的实例;
类的继承关系:
-
面向对象技术的优点:
(1)通过“重用”提高产品质量和生产率
(2)使系统具有更好的易修改性和易扩展性
(3)更易于保证系统的“正确性”和“可靠性”
1.5.4 微内核OS结构
能有效地支持多处理机运行,故非常适用于分布式系统环境,常见WIndows 2000/XP以及以后的系统,都采用了微内核结构
-
微内核操作系统的基本概念
(1)足够小的内核
微内核并非是一个完整的OS,而只是将操作系统中最基本的部分放入微内核,通常包含有:
① 与硬件处理紧密相关的部分;
② 一些比较基本的功能;
③ 客户和服务器之间的通信
(2)基于客户/服务器模式
在单机环境下的客户/服务器模式:
(3)应用“机制与策略分离”原理
在传统的OS中,将机制方正OS的内核的较低层,把策略放在内核的较高层次中。而在微内核操作系统中,通常将机制放在OS的微内核中。也正因如此,才有可能将内核做得很小。
(4)采用面向对象技术
-
微内核的基本功能
(1)进程(线程)管理
(2)低级存储器管理
(3)中断和陷入处理
在微内核OS中是将进程管理、存储器管理以及I/O管理这些功能一分为二,属于机制的很小一部分放入微内核中,另外绝大部分放在微内核外的各种服务器中来实现。事实上,其中大多数服务器都要比微内核大。这进一步说明了为什么能在采用客户/服务器模式后,还能把微内核做得很小的原因。
-
微内核操作系统的优点
(1)提高了系统的可扩展性
(2)增强了系统的可靠性
(3)可移植性强
(4)提供了对分布式系统的支持
(5)融入了面向对象技术
-
微内核操作系统存在的问题
频繁的上下文切换;
在整体式内核文件操作中的上下文切换(传统OS):
在微内核中等价操作的上下文切换(微内核OS);
…(img-4qOUC11O-1597072170877)]
(3)应用“机制与策略分离”原理
在传统的OS中,将机制方正OS的内核的较低层,把策略放在内核的较高层次中。而在微内核操作系统中,通常将机制放在OS的微内核中。也正因如此,才有可能将内核做得很小。
(4)采用面向对象技术
-
微内核的基本功能
(1)进程(线程)管理
(2)低级存储器管理
(3)中断和陷入处理
在微内核OS中是将进程管理、存储器管理以及I/O管理这些功能一分为二,属于机制的很小一部分放入微内核中,另外绝大部分放在微内核外的各种服务器中来实现。事实上,其中大多数服务器都要比微内核大。这进一步说明了为什么能在采用客户/服务器模式后,还能把微内核做得很小的原因。
-
微内核操作系统的优点
(1)提高了系统的可扩展性
(2)增强了系统的可靠性
(3)可移植性强
(4)提供了对分布式系统的支持
(5)融入了面向对象技术
-
微内核操作系统存在的问题
频繁的上下文切换;
在整体式内核文件操作中的上下文切换(传统OS):
在微内核中等价操作的上下文切换(微内核OS);
改善方法:可以重新把一些常用的操作系统基本功能由服务器移入微内核中。