1.操作系统的概念
(1)操作系统的定义
- 控制和管理整个计算机系统的硬件和软件资源
- 合理地组织调度计算机的工作和资源分配
- 提供给用户和其他软件方便的接口和环境
- 计算机系统中最基本的系统软件
(2)生活中常见的操作系统
- Windows
- MacOs
- Linux
- 安卓
- iOS
- 鸿蒙Os
(3)操作系统的层次结构
- 用户
- 应用程序(软件) 如:QQ、Chrome、Steam
- 操作系统
- 裸机(硬件) 如:CPU、内存、硬盘
2.操作系统的功能和目标
(1)操作系统的功能
处理机管理
在传统的多道程序系统中,处理机的分配和运行都是以进程为基本单位的,因此对处理机的管理可以归结为对进程的管理。处理机管理的主要功能有:创建和撤销进程,对诸进程的运行进行协调,实现进程之间的信息交换,以及按照一定的算法把处理机分配给进程。
存储器管理
存储器管理的主要任务是为多道程序的运行提高良好的环境,提高存储器的利用率,方便用户使用,并能从逻辑上扩充内存。存储器管理具有的功能有 内存分配和回收、内存保护、地址映射和内存扩充等功能。
文件管理
文件管理的主要任务是对用户文件和系统文件进行管理以方便用户使用,并保证文件的安全性。文件管理具有存储空间的管理、目录管理、文件的读/写管理以及文件的共享与保护等功能。
设备管理
设备管理的主要任务有完成用户进程提出的I/O请求,为用户进程分配所需的I/O设备,并完成指定的I/O操作。提高CPU和I/O设备的利用率,提高I/O速度,方便用户使用I/O设备。设备管理具有缓冲管理、设备分配、设备处理以及虚拟设备等功能。
用户接口
作为用户与计算机硬件系统之间的接口,用户接口是为了让用户方便、快捷、安全的操作计算机硬件并执行自己的软件程序。
操作系统提供的接口分为两类:命令接口、程序接口
- 命令接口:命令接口分为两类,联机命令接口和脱机命令接口,用户可以直接使用
1. 联机命令接口
又称交互式命令接口,适用于分时或实时系统的接口,由一组键盘操作命令组成。用户输入一条指令,操作系统就执行一条指令。
比如Windows操作系统中的cmd命令黑窗 ,用户输入一条指令,操作系统就执行一条指令。
2. 脱机命令接口
又称批处理接口,使用于批处理系统,由一组作业控制命令组成。用户输入一堆指令,操作系统运行一堆指令。在操作系统运行这些命令时用户不可干预。
3.GUI(图形用户界面)
GUI 比如我们使用程序的图标,可以点击图标来启动或者移动或者删除,而不是通过复杂的命令来执行。
- 程序接口:由一组系统调用(也称广义指令)组成,用户通过程序间接使用
(2)操作系统的目标
有效性:
- 提高系统资源利用率。使CPU与I/O设备保持忙碌状态而得到有效利用。使内存与外存中的数据因有序而节省空间。
- 提高系统吞吐量。合理组织计算机工作流程,改善资源利用率,加速程序运行,缩短程序运行周期。
方便性:
使计算机更加容易方便使用。硬件只识别0与1,那么如果没有操作系统,用户要使用计算机就需要使用单纯的0与1的字符串来操作机器。有了OS,用户可以直接使用OS提供的各种命令来操作机器。
可扩充性:
要能适应计算机硬件、网络、体系结构与应用发展的要求。保持对上接口可扩充。应采用层次化结构,能方便对OS进行扩充。比如现在采用的微内核结构与客户服务器模式。
开放性:
系统能遵循世界标准规范,遵循开放系统互连(OSI)国际标准。随着技术发展,可扩充性与开放性也越来越重要。
3.操作系统的特征
(1)并发
两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生,微观上是交替发生。
操作系统的并发性指计算机系统中同时存在着多个运行的程序。
(2)并行:
两个或多个事件在同一时刻同时发生。
(3)共享:
资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。两种共享方式 互斥共享方式和同时共享方式。
- 互斥共享方式
系统中的某些资源虽然能提供给多个进程使用,但是一个时间段内只允许一个进程访问该资源
- 同时共享方式
系统中的某些资源,允许一个时间段内由多个进程 "同时",对它们进行访问。
并发和共享互为存在条件
如果失去并发性,则系统中只有一个程序正在运行,则共享性失去存在意义。
如果失去共享性,则不同进程不能同时访问统一资源,就无法实现并发。
(4)虚拟:
把一个物理上的实体变为若干个逻辑上的对应物,物理实体是实际存在的,而逻辑上对应物是用户感受到的。虚拟分为时分复用技术和空分复用技术。
- 时分复用技术
微观上处理机在各个微小的时间段内交替着为各个进程服务。
如:一个单核CPU可以执行多个程序,给用户一种多核的”假象“。
- 空分复用技术
空分复用是指多个程序或用户同时使用一个资源的不同部分。
如:电脑硬盘分为C盘 D盘 E盘等,实际上只是虚拟逻辑上的分区,实际电脑硬盘还是一个。
没有并发性就谈不上虚拟性
(5)异步:
在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。
只有系统拥有并发性,才有可能导致异步。
没有并发就谈不上虚拟和异步,而并发又是和共享互为存在条件,因此并发和共享是操作系统最基本的两个特征。
4.操作系统的发展阶段和分类
(1)手工操作阶段
输入/输出速度慢 处理机处理速度快,处理机利用率低。
主要缺点:用户独占全机、人机速度矛盾导致资源利用率极低。
(2)单道批处理
引入脱机输入/输出技术(用磁带完成),并监督程序负责控制作业的输入、输出。
主要优点:缓解了一定程度的人机速度矛盾,资源利用率有所提升。
主要缺点:内存中仅能有一道程序运行,只有该程序运行结束之后才能调入下一道程序。CPU有大量的时间是在空闲等待I/O完成。资源利用率依然很低。
(3)多道批处理
每次往内存中输入多道程序,操作系统正式诞生,并引用了中断技术,由操作系统负责管理这些程序的运行。各个程序并发执行。
主要优点:多道程序并发执行,共享计算机资源。资源利用率大幅提升,CPU和其他资源保持忙碌状态,系统吞吐量增大。
主要缺点:用户响应时间长,没有人机交互功能(用户提交自己的作业之后就只能等待计算机处理完成,中间不能控制自己的作业执行),平均周转时间长。
(4) 分时操作系统
计算机以时间片为单位轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互。
主要优点:用户请求可以被即时响应,解决了人机交互问题。允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感受不到别人的存在。
主要缺点:不能优先处理一些紧急任务,操作系统对各个用户/作业都是完全公平的,循环地位每个用户/作业服务一个时间片,不区分任务的紧急性。
(5) 实时操作系统
主要优点:能够优先响应一些紧急任务,某些紧急任务不需时间片排队。
在实时操作系统的控制下,计算机系统接收到外部信号后及时进行处理,并且要在严格的时限内处理完事件,实时操作系统的主要特点是及时性和可靠性。
- 硬实时系统
必须在绝对严格的规定时间内完成处理 如:导弹控制系统,自动驾驶系统
- 软实时任务
有一个截止时间,但并不严格 如:12306火车订票系统
- 周期性实时任务
外部设备周期性地发出激励信号给计算机,要求它按指定周期循环执行,以便周期性地控制某外部设备。
- 非周期性实时任务
无明显周期,但必须联系一个截止时间,或称为最后期限,截止时间可分为开始截止时间,某任务在某时间前必须开始。完成截止时间,某任务在某时间前必须完成。
实时系统与分时系统的特征比较:
(1)多路性。实时系统在系统周期性对多路现场信息进行采集。分时系统根据用户情况有关,时多时少。
(2)独立性。各系统终端都要求彼此独立,互不干扰。
(3)及时性。实时信息处理系统与分时系统都以人能接受的等待时间来确定系统响应时间。但实时控制系统一般为秒级到毫秒级。
(4)交互性。实时信息处理系统中人与系统的交互仅限于访问系统某些特定专用程序。相比分时系统交互性更好。
(5)可靠性。实时系统更可靠。往往采用多级容错措施来保证系统与数据的安全。
5.操作系统的结构设计
(1)传统操作系统结构
1.无结构操作系统
早期开发操作系统时,设计者只是注重功能的实现和高效率上,没有很好的协调跟结构之间的关系,导致操作系统内部既复杂又混乱。难以调试程序和维护。
2. 模块化结构OS
模块-接口法:把操作系统分成若干个模块,每个模块还可以再进行子模块的划分,模块强调独立性,因为模块独立性越高,各模块间的交互就越少 ,系统的结构就越清晰。
主要优点:提高OS设计的正确性、可理解性和可维护性。
主要缺点:各模块间的接口规定很难满足在模块设计完成后对接口的实际需求。在OS设计阶段,设计者必须做出一系列决定,每一个决定必须建立在上一个决定的基础上,但模块化结构设计中,各模块齐头并进 ,无法寻找一个可靠的决定顺序,导致各个决定的无序性。
3.分层式结构OS
自底向上的分层设计基本原则:每一步设计都建立在可靠的基础上,为此规定,每一层仅能使用其底层所提供的功能和服务,这样可使系统的调试和验证都变得更容易。
主要优点:易保证系统的正确性,易扩充和易维护性。
主要缺点:系统效率低,OS执行功能需要穿越多个层次,增加系统的通信开销,降低系统效率。
(2)客户/服务器模式
由客户机、服务器、网络系统组成。
四步骤:客户发送请求消息,服务器接受消息,服务器回送消息,客户机接受消息。
主要优点:数据的分布处理和存储,便于集中管理,灵活性和可扩充性,易于改变应用软件
主要缺点:存在不可靠性和瓶颈问题。
(3)面向对象的程序设计
面向对象的程序设计是大家所熟知的,像Java、C++等高级语言就是面向对象编程,在操作系统中也用到很多面向对象的设计思想。比如文件就可以看作一个类,类的变量可以是文件的类型、大小或创建者。
主要优点:通过”重用“,易于测试维护,通过封装和继承,易于修改和扩展,也更易于保证系统的正确性和可靠性。
(4) 微内核OS结构
1.基本概念:
为提高操作系统的正确性灵活性易维护性可扩充性,现代操作系统结构设计大多采用基于客户/服务器模式的为内核结构,将操作系统分为微内核和多个服务器。
足够小的内核,基于客户/服务器模式,应用机制与策略分离原理,采用面向对象技术
机制:实现某一功能的具体执行机构,策略:在机制的基础上借助于某些参数和算法实现该功能的优化或达到不同的功能目标。
2.微内核的基本功能
进程(线程)管理,低级存储器管理,中断和陷入处理
3.微内核操作系统的优点
提高系统的可扩展性,增强了系统的可靠性,可移植性强,提高了对分布式系统的支持,融入了面向对象技术
存在的问题:运行效率降低,主要因为在完成一次客户对操作系统提出的服务请求时,需要利用消息实现多次交互和进行用户/内核模式与上下文的多次切换。
参考 《计算机操作系统》(汤小丹 第四版)
《王道考研操作系统》