1.1 操作系统的目标和作用
1.1.1 目标
- 方便性
机器指令——高级指令、命令行——GUI - 有效性
提高系统资源利用率(串行变并行),调高系统吞吐量(增加单位时间内完成的指令数) - 可扩充性
无结构发展到模块化结构,再到层次化结构,近年来的微内核。 - 开放性
使得os从专用走向通用,系统遵循世界标准规范,遵循开放系统互连的OSI国际标准。
1.1.2 作用
- 作为用户与计算机硬件系统间的接口
用户可以通过三种方式使用计算机:命令方式、系统调用方式、图标-窗口。(考点) - 作为计算机系统资源的管理者
计算机系统的资源:处理机、存储器、I/O设备以及文件(数据和程序)
处理机管理用于分配和控制处理机,储存器管理负责内存的分配和回收,I/O设备管理负责I/O设备的分配(回收)与操纵,文件管理实现对文件的存取、共享和保护。 - 实现对计算机资源的抽象
裸机上覆盖一层I/O设备管理软件,再覆盖一层文件管理软件,再覆盖一层面向用户的窗口软件,把覆盖上述软件的机器称为虚拟机,向用户提供一个对硬件操作的抽象模型。
1.1.3 os发展的动力
- 不断提高计算机的资源利用率(单道变多道,虚拟存储)
- 方便用户(GUI)
- 器件的不断更迭(芯片、内存、外存的发展)
- 计算机体系结构的不断发展(单核变多核,集中变分布式系统)
- 不断提出新的应用需求(嵌入式os等)
1.2 操作系统的发展过程
1.2.1未配置操作系统的计算机系统
1.人工操作方式
人工通过纸带(卡片)输入,用户独占全机,CPU等待人工操作。
2.脱机输入/输出方式
先将程序和数据通过外围机输入到磁盘中,当CPU需要时从磁盘中读取,结果输出到另外一台外围机上,减少了CPU的空闲时间,调高了I/O速度。
1.2.2 简单(单道)批处理系统
外存中有一批作业在排队等待(批处理),一次取一个作业放入内存中运行(单道),Monitor(监督程序,最早的操作系统),常驻在内存中,用于作业的调度,具有自动性、顺序性、单道性的特点。
优点:比串行输入高效,旨在提高资源利用率和系统吞吐量。
缺点:有I/O操作时CPU内存闲置,浪费资源——出现多道系统。
1.2.3 多道批处理系统
1.基本概念
允许多道程序在内存中同时准备运行(多道),正在运行的程序暂时不能运行时(如I/O时),系统自动启动另外一道程序运行,之后在某一时间继续运行原来的程序(感觉像空间换时间),具有多道性、无序性、调度性。
过程如下:
2.优缺点
- 资源利用率高,系统吞吐量大
- 平均周转时间长,无交互能力
3.需要解决的问题
- 处理机争用问题
- 内存分配和保护问题
- I/O设备分配问题
- 文件的组织和管理问题
- 作业管理问题
- 用户与系统的接口问题
1.2.4 分时系统
1.概述
属于多道批处理系统,每个任务每次运行的时间确定,一到时间就运行下一个任务,适合交互式系统(人机交互、共享主机)。缺点是频繁中断进程会导致额外的系统开销,浪费时间,且某些程序不允许中断(如打印机打印文件)。
2.关键问题
- 及时接收:配置多路卡,实现分时多路复用,每个终端配置缓冲区
- 及时处理:作业直接进入内存,采用轮转运行的方式,引入时间片。
3.特征
多路性、独立性、及时性、交互性
1.2.5 实时系统
系统能及时响应外部时间的请求,在规定时间内完成对事件的处理,控制所有实时任务协调一致地完成,具有及时性、高可靠性和有限的交互性。
1. 实时系统的类型
- 工业(武器)控制系统
- 信息查询系统(订票系统)
- 多媒体系统
- 嵌入式系统
2.实时任务的类型
- 周期性实时任务和非周期性实时任务,非周期性实时任务必须联系一个截止时间,分为开始截止时间(某时刻前必须开始)和完成截止时间(某时刻前必须完成)。
- 硬实时和软实时任务,硬实时指必须满足任务对截止时间的要求(工业和武器控制系统),软实时容许错过一点时间(多媒体和信息查询系统)。
3.三种系统的比较:
1.2.6 微机操作系统的发展
- 单用户单任务操作系统:CP/M 和 MS-DOS,只允许一个用户上机,只允许用户程序作为一个任务运行。
- 单用户多任务操作系统:运行用户把程序分为若干任务,并发执行,Windows。
- 多用户多任务操作系统:多个用户通过各自终端,使用一台机器,共享主机系统中的各种资源,UNIX OS 和 Linux OS。
1.3 操作系统的基本特性
1.3.1 并发(Concurrence)
正是由于并发,OS才能有效地提高系统中的资源利用率,增加系统的吞吐量,是OS最重要的特征。
1.并发与并行
- 并发:两个或多个事件在同一时间间隔内发生,一般宏观地看。
- 并行:两个或多个事件在同一时刻发生,只有多核才能并行。
- 区分:并行的一定并发,并发的不一定并行。
2. 引入进程——实现并发的基本手段
- 进程是一个程序的一次运行过程,是指一个具有一定独立功能的程序在一个
数据集合上的一次动态执行过程 - 进程是独立运行的活动实体,也是资源分配的基本单位;
- 进程与并发是现代操作系统的最重要的基本概念
1.3.2 共享
定义:指系统中的资源可供内存中多个并发执行的进程共同使用。
1.互斥共享方式
- 在一段时间内只允许一个进程访问资源
- 临界资源(独占资源):在一段时间内只允许一个进程访问的资源
2.同时访问方式
- 宏观上在一段时间内允许多个进程“同时”访问某些资源
- 微观上“轮流”(交替访问)
- 处理机、内存、磁盘、可重入代码。
1.3.3 虚拟
定义:通过某种技术把一个物理实体变为若干个逻辑上的对应物。
1. 时分复用技术
原理:利用某资源的空闲时间处理其他进程,从而达到提高资源利用率的目的。
- 虚拟处理机:通过多道程序和分时使用CPU技术,物理上的一个CPU变成逻辑上的多个CPU(多道程序和分时技术)
- 虚拟设备:可把物理上的一台独占设备变成逻辑上的多台虚拟设备(Spooling技术)
SPOOLing是Simultaneous Peripheral Operation On-Line (即外部设备联机并行操作)的缩写,它是关于慢速字符设备如何与计算机主机交换信息的一种技术,通常称为“假脱机技术”。通过SPOOling技术便可将一台物理I/O设备虚拟为多台逻辑I/O设备,同样允许多个用户共享一台物理I/O设备。原理可见:SPOOLing原理
2. 空分复用技术
原理:利用储存器的空闲空间分区域存放和运行其他多道程序来提高内存利用率。
- 虚拟内存1:在一个物理内存运行多道程序(空分)
- 虚拟内存2:在一台物理内存为32M的计算机上运行总量超过100M的程序(时分)
1.3.4 异步
进程是以人们不可预知的速度向前推进的,这就是进程的异步性。
原因:由于资源竞争,程序按异步方式运行(异步性),每道程序何时执行,各个程序的执行顺序以及每道程序所需的时间都不是确定的,也是不可预知的。
不确定性,是指执行流程顺序、用时的不确定性,即“停停走走”的时机不
确定,而不是结果的不确定性。
1.5 OS结构设计
1.5.1 传统的操作系统结构
1. 无结构操作系统
定义:
由众多的过程直接构成,各过程之间可相互调用,但OS内部不存在任何结构,所以这种OS是无结构的,又称为整体系统结构。
缺点:
既庞大又杂乱,缺乏清晰的程序结构;程序错误多,调试难、阅读理解难、维护难。
2.模块化结构的OS
定义:
OS是采用“模块化程序设计”技术,按其功能划分为若干个独立的模块,管理相应的功能,同时规定好各模块之间的接口,以实现其交互,模块间可任意调用,对较大模块又可按子功能进一步细分下去。
优点:
- 提高了OS设计的正确性、可理解性、可维护性
- 容易扩充,增强了OS的可适应性
- 加速了OS的开发过程
缺点:
- 模块及接口划分较困难
- 由于模块间耦合度高,相互存在着复杂的依赖关系,带来了模
- 块之间设计的“无序性”(无序模块法)
3. 分层式结构的OS
定义:
将操作系统分为多层,每一层仅使用更低一层的功能(操作)和服务。每层建立在低层之上,最底层(layer 0), 是硬件,最高层(layer N) 是用户界面,每层由若干模块组成,各层之间只有单向的依赖关系。
优点:
正确性易保障、易扩充维
缺点:
多层传递带来通信开销大、效率低
1.5.4 微内核OS结构
1.基本概念
- 足够小的内核:
最小化内核功能,将OS最基本部分放入微内核,通常包含:与硬件处理紧密相关的部分,一些较基本的功能,客户与服务器之间的通信。 - 基于客户/服务器模式:
将操作系统功能移到用户态,称为”服务”(Server),客户与服务器之间使用微内核提供的消息传递机制通信。 - 应用“策略与机制的分离”原理:
(1)机制(Mechanism):一些低级方法或协议,功能实现的具体结构。
(2) 策略(Policy):在机制的基础上借助算法和参数优化功能,达到某种目的。
(3)机制放在微内核中,策略放在外层,所以微内核可以做的很小,并且操作系统可仅通过调整在策略来适应不同应用的需求。 -
采用面向对象技术
2.优点
- 提高系统的可扩展性
有新功能时只要增加新的服务器即可。 - 增强系统的可靠性、可移植性
采用信息传递通信机制,其中一个服务器故障不会影响内核以及其他服务器,微内核代码较小,容易保证其正确性。只有内核部分的代码与硬件平台相关,移植的代价小。 - 提供了对分布式系统的支持
微内核OS对服务器和客户之间的通信采用了信息传递通信技术,很好地支持分布式系统。 - 融入了面向对象技术
有利于提高系统的正确性、可靠性、易修改性、易拓展性,减少开发系统的开销。
3.缺点
较传统OS,上下文切换次数增加,影响效率。