第一章——操作系统引论
搬运文章:操作系统(第四版)期末复习总结(上)
1. 操作系统是什么?
操作系统为用户完成所有“硬件相关,应用无关“的工作,以给用户方便、高效、安全的使用环境。
1.1 定义
操作系统是一个大型的程序系统,它负责计算机的全部软、硬件资源的分配、调度工作,控制并协调多个任务的活动,实现信息的存取和保护。它提供用户接口,使用户获得良好的工作环境。
1.2 目标
- 方便性:配置OS后计算机系统更容易使用
- 有效性:改善资源利用率;提高系统 吞吐量
- 可扩充性:OS的结构(如层次化的结构:无结构发展->模快化结构->层次化结构->微内核结构)【微内核后续解释】
- 开放性:OS遵循世界标准范围。
1.3 作用
1.3.1 OS作为用户与计算机硬件系统之间的接口
如API/CUI/GUI
即:OS处于用户与计算机硬件系统之间,用户通过OS来使用计算机系统。
1.3.2 OS是计算机系统资源的管理者
处理机管理是用于分配和控制处理机
存储器管理是负责内存的分配与回收
I/O设备管理是负责I/O设备的分配(回收)与操纵
文件管理是用于实现文件的存取、共享和保护
1.3.3 OS实现了对计算机资源的抽象
2. 操作系统的发展过程
2.1 未配置操作系统的计算机系统(40年代 手工操作阶段)
- 工作方式:
- 用户:用户既是程序员,又是操作员;用户是计算机专业人员
- 编程语言:为机器语言
- 输入输出:纸带或卡片
- 计算机的工作特点:
- 用户独占全机:不出现资源被其他用户占用,资源利用率低
- CPU等待用户:计算前,手工装入纸带或卡片;计算完成后,手工卸取纸带或卡片;CPU利用率低
- 缺点:
- 手工装卸、人工判断、手工修改与调试内存指令等造成CPU空闲;
- 提前完成造成剩余预约时间内的CPU完全空闲;
- I/O设备的慢速与CPU的速度不匹配造成的CPU空闲等待时间
简言之,资源利用率低;CPU利用率低
2.2 单道批处理系统(50年代)
单道批处理系统是在解决人机矛盾和CPU与I/O设备速度不匹配矛盾的过程中形成的。批处理系统旨在提高系统资源的利用率和系统的吞吐量。(但单道批处理系统仍不能充分利用资源,故现在已很少用)
2.2.1 联机批处理
I/O设备与主机直接连接,CPU直接控制作业输入输出
- 优点:解决了作业的自动转接,减少了人工操作时间
- 问题:作业输入和结果输出过程中,CPU处于等待状态
- 解决:增加一台不与主机直接相连而专门与I/O设备交换信息的卫星机(脱机批处理)
2.2.2 脱机批处理
增加一台不与主机直接相连而专门与I/O设备交换信息的卫星机,由卫星机控制作业输入输出
![indicate](https://gitee.com/BambooWine/MyPhotos/raw/master/img/image-20200706000427605.png)
缺点:系统资源利用率低(因为内存中只存在一道程序,I/O请求成功前CPU都处于空闲状态)
特征:
- 自动性:正常情况下,一批作业能自动依次运行,无需人工干预
- 顺序性:各道作业是顺序进入内存
- 单道性:内存中任何时候只能有一道作业
2.3 多道批处理系统(60年代初)
单道运行每次只调一个用户作业程序进入内存并运行,CPU利用率低,为了进一步提高资源利用率和系统吞吐量,引入多道批处理
多道程序
![多道批处理](https://gitee.com/BambooWine/MyPhotos/raw/master/img/image-20200706133354742.png)
优点:
- 资源利用率高(资源指CPU、存储器、设备、数据)
- 系统吞吐量大(系统吞吐量指系统在单位时间完成的总工作量(作业数量))
缺点:
- 平均周转时间长(作业的周转时间是指从作业进入系统开始,直至其完成并退出系统为止所经历的时间),短作业的周转时间显著增长
- 无交互能力,整个作业完成后或中间出错时,才与用户交互,不利于调试和修改
特点:
- 多道:内存同时存在多个作业
- 宏观上并行:同时有多道程序在内存运行,某一时间段上,各道程序不同程度地向前推进
- 微观上串行:任一时刻最多只有一道作业占用CPU,多道程序交替使用CPU
在当前运行的作业需作I/O处理时,CPU转而执行另一个作业
单道批处理系统与多道批处理系统的特点比较:
单道批处理系统 | 多道批处理系统 | |
---|---|---|
内存中驻留程序数目 | 一道 | 多道 |
占用CPU的情况 | 独占 | 交替占用 |
是否需要作业和进程调度 | 不需要 | 需要 |
程序完成次序与其进入内存次序间的关系 | 严格对应 | 不严格对应 |
相关技术问题:
- 处理机管理问题:如何分配,使CPU满足要求
- 内存管理问题:为每道程序分配内存空间
- I/O设备管理问题:如何分配I/O设备
- 文件管理问题:如何组织程序和数据
- 作业管理问题:如何组织作业
2.4 分时系统(60年代中)
分时系统是指在一台主机上连接多个带有显示器和键盘的终端,同时允许多个用户通过自己的键盘,以交互的方式使用计算机,分时共享硬件和软件资源。
2.4.1 分时的定义
分时的定义: 把计算机的系统资源(尤其是CPU时间)进行时间上的分割,每个时间段称为一个时间片(time slice),每个用户依次轮流使用时间片。
![分时系统](https://gitee.com/BambooWine/MyPhotos/raw/master/img/image-20200706150632805.png)
关键问题:
- 通常按时间片分配:各个程序在CPU上执行的轮换时间。把处理器的运行时间分成很短的时间片,按时间片轮流把处理机分配给各作业使用。
- 多个用户分时:单个用户使用计算机的效率低,因而允许多个应用程序同时在内存中,分别服务于不同的用户
- 前台和后台程序分时:后台程序不占用终端输入输出,不与用户交互——现在的图形用户界面(GUI),除当前交互的程序(输入焦点)之外,其他程序均作为后台
特点:
- 人机交互性:用户可以通过终端与系统进行广泛的对话
- 多路性:允许在一台主机上同时连接多台联机终端,系统按分时原则为每个用户服务
- 用户独立性:对每个用户而言好像独占主机,每个用户各占一个终端,彼此独立工作
- 及时性:用户的请求在很短的时间内能够获得响应
现在的许多操作系统都具有分时处理的功能,在分时系统的基础上,操作系统的发展开始分化,如实时系统、通用系统、个人系统等。
2.5 实时操作系统
实时系统(Real-Time System)是指系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。
实时操作系统有硬实时和软实时之分:
硬实时要求在规定的时间内必须完成操作,这是在操作系统设计时保证的
软实时则只要按照任务的优先级,尽可能快地完成操作即可
实时系统与分时系统特征的比较:
设计目标:分时系统为给多用户提供通用的交互型开发运行环境,实时系统为特殊用途提供专用系统
交互性:分时系统交互性强,实时系统较弱
响应时间:分时系统以用户能够接受的响应时间为准,实时系统与受控对象及应用场合有关
2.6 操作系统的进一步发展
通用操作系统
如果一个操作系统兼有批处理、分时或实时处理的全部或两种功能,该操作系统为通用操作系统
微内核操作系统
采用微内核结构:提供基本支持功能的内核很小,大部分功能由内核之外的服务程序完成——进程(线程)管理、低级存储管理、中断和陷入管理、进程通信
网络操作系统
能够控制计算机在网络中方便地传送信息和共享资源,并能为网络用户提供各种所需的服务
- 功能:
- 网络通信:在源计算机和目标计算机之间实现无差错的数据传送
- 资源管理:对网络中的硬、软件资源实施管理
- 网络管理:安全控制、性能监测、维护功能
- 网络服务:如e-mail、文件传输、共享设备服务、远程作业录入等
- 功能:
分布式操作系统
集中式计算机系统:处理和控制能力都高度集中在一台计算机上,所有任务均由它完成。
分布式计算机系统:由多台分散的计算机经互联网络连接而成的系统,各台计算机没有主从之分。任何工作都可以分布在几台计算机上,由它们并行工作、协同完成。
分布式计算机系统与单机集中式操作系统区别:
- 进程通信:集中式简单,分布式涉及机构、规程和路径算法
- 资源管理:集中式,一类资源由一个管理程序管理;分布式,一类资源由多个管理程序管理,这些程序必须协调一致工作
- 系统结构:分布式,有若干相对独立的部分,分布在各台计算
嵌入式操作系统
运行在嵌入式(计算机)环境中、对整个系统及所有操作的各种部件、装置等资源进行统一协调、处理、指挥和控制的系统软件
特点:
- 微型化:内存少(1M以内)、无外存、微处理器字长短(8b、16b)、运行速度有限、能提供的能源少、外设千变万化
- 可定制:能运行在不同微处理器平台上,能针对硬件变化进行结构与功能上的配置
- 实时性:硬实时、软实时、非实时
- 开发环境:通常提供代码编辑器、编译器和链接器、程序调试器、系统配置器和系统仿真器
智能化操作系统
3. 操作系统的功能
3.1 处理器管理
完成处理机资源的分配、调度和回收等功能。处理机调度的单位可为进程或线程。
由于处理机调度策略不同,出现不同类型的操作系统,如批处理系统、分时系统、实时系统
3.2 存储管理
管理目标:提高利用率、方便用户使用、提供足够的存储空间、方便进程并发运行。内存的分配、保护和扩充。
存储器分配与回收
地址映射(变换):逻辑地址到内存物理地址映射
存储保护:保证进程间互不干扰、相互保密
内存扩充(覆盖、交换和虚拟存储):提高内存利用率、扩大进程的内存空间
3.3 设备管理
管理目标:方便设备的使用、提高CPU与I/O设备利用率
设备操作:利用设备驱动程序完成对设备的操作
设备独立性(device independence):提供统一的I/O设备接口,使应用程序独立于物理设备,提高可适应性;在同样的接口和操作下完成不同的内容
设备分配与回收:在多用户间共享I/O设备资源
缓冲区管理:匹配CPU和外设的速度,提高两者的利用率。主机与外设并行
3.4 信息管理
管理目标:解决软件资源的存储、共享、保密和保护
文件存储空间管理:解决如何存放信息,以提高空间利用率和读写性能
目录管理:解决信息检索问题。文件的属性(如文件名)、单一副本赋予多文件名
文件的读写管理和存取控制:解决信息安全问题。系统设口令 “哪个用户”、用户分类 “哪个用户组”、文件权限 “针对用户或用户组的读写权”
3.5 用户接口
管理目标:提供一个友好的用户访问操作系统的接口。操作系统向上提供两种接口
系统命令:供用户用于组织和控制自己的作业运行。命令行、菜单式或GUI “联机” ;命令脚本 “脱机”
编程接口:供用户程序和系统程序调用操作系统功能。系统调用和高级语言库函数
通过这些命令和调用,向OS提出申请,由OS调用内部功能来完成
4. 操作系统的特征
4.1 并发(concurrency)
并发性:并发是指在内存中放多道作业, 在一个时间段上来看,每一道作业都能不同程度地向前推进。但在任何一个时间点上只能有一道占用CPU。
- 并发:又称伪并行,指多个事件在同一时间段内发生。操作系统是一个并发系统,各进程间的并发,系统与应用间的并发。操作系统要完成这些并发过程的管理。
- 并行:是指在同一时刻发生,指当系统有一个以上CPU时,一个CPU执行一个进程,另一个CPU执行另一个进程,两者互不干涉,互不抢占资源,同时进行
- 串行:在内存中每次只能放一道作业,只有它完全执行完后别的作业才能进入内存执行。
- *并行: *存在于有多个CPU的环境中, 在内存中放多道作业,在任一时间点上都可能有多道作业在不同的CPU上同时执行。
4.2 共享(sharing)
多个进程共享有限的计算机系统资源。操作系统要对系统资源进行合理分配和使用。资源在一个时间段内交替被多个进程所用
互斥共享(如音频设备、打印机):资源分配后到释放前,不能被其他进程所用
同时访问(如磁盘文件):一个时间段内同时资源分配难以达到最优化
并发和共享是OS的两个最基本的特性,二者互为条件!
4.3 虚拟(virtual)
一个物理实体映射为若干个对应的逻辑实体——采用时分复用(分时使用)或空分复用(分空间使用)
虚拟是操作系统管理系统资源的重要手段,可提高资源利用率:
- CPU——每个用户(进程)的“虚处理机”。利用多道处理技术,多道程序并发执行,分时使用一台处理机。
- 存储器——每个进程都占有的地址空间(指令+数据+堆栈)(空分复用存储器)“虚拟存储器”。虚拟存储技术——内存分时复用,一道程序通过时分复用内存,可以在远小于它的内存空间运行。
- 显示设备——多窗口或虚拟终端(virtual terminal)
- 独享设备—— 假脱机技术(Spooling),虚设备
4.4 异步性(asynchronism)
也称不确定性:指进程的执行顺序和执行时间的不确定性
进程的运行速度不可预知:分时系统中,多个进程并发执行,“时走时停”,不可预知每个进程的运行推进快慢
难以重现系统在某个时刻的状态(包括重现运行中的错误)
无论快慢,应该结果相同——通过进程互斥和同步手段来保证
因为不确定性,在设计OS时,要充分考虑各种可能性,以便稳定、安全、高效地达到并发和资源共享
5. 总结
![summary](https://gitee.com/BambooWine/MyPhotos/raw/master/img/image-20200706170351956.png)