一、 操作系统的基本概念
1.1 概念(定义):什么是操作系统
- 操作系统operating system,OS:控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配;以提供给用户和其他软件方便的接口和环境;是计算机系统中最基本的系统软件:
- os是系统资源的管理者
- 向上提供方便易用的服务
- 是最接近硬件的一层软件
- 执行一个程序前需要将该程序放到内存中,才能被CPU处理
- 封装思想:os将一些丑陋的硬件功能封装成简单易用的服务,使用户能更方便地使用计算机;用户无需关心底层硬件的原理,只需对操作系统发出命令
1.2 功能和目标:操作系统要做什么
- 资源的管理者:处理机管理、存储器管理、文件管理、设备管理
- 向上提供方便易用的服务:
- 给普通用户的:GUI图形化用户接口(graphical user interface); 命令接口(联机命令接口 = 交互式命令接口、脱机命令接口 = 批处理命令接口)
- 程序接口(程序代码间接的进行系统调用 = 广义指令使用程序接口)
- 其中:命令接口与程序接口又称为用户接口
- 对硬件机器的拓展:没有任何软件支持的计算机称为裸机;覆盖了软件的机器称为扩充机器/虚拟机
1.3 操作系统的特征:并发、共享、虚拟、异步
- 并发与共享是两个最基本的特征,二者互为存在条件
- 并发性:计算机系统中同时存在着多个运行着的程序
- 共享性:系统中的资源可供内存中多个并发程序的进程共同使用
- 没有并发和共享就谈不上虚拟和异步
1.3.1 并发
- 并发:两个或多个事件在同一时间间隔内发生;宏观上是同时发生的,微观上是交替发生
- 并行:两个或多个事物在同一个时刻同时发生
- 操作系统是伴随着“多道程序技术”而出现的,因此操作系统和程序并发是一起诞生的
- 并发性是操作系统一个最基本的特性
- 单核CPU同一时刻只能执行一个程序,各个程序只能并发地执行
- 多核CPU同一时刻可以同时执行多个程序,多个程序可以并行地执行
1.3.2 共享
- 共享:资源共享,系统中的资源可供内存中多个并发执行的进程同时使用
- 共享方式:
- 互斥共享方式:一个时间段内只允许一个进程访问该资源,如硬件设备摄像头等
- 同时共享方式:允许一个时间段内由多个进程“同时”对它们进行访问,如文件读取等
1.3.3 虚拟
- 虚拟:把一个物理上的实体变为若干个逻辑上的对应物
- 物理实体是实际存在的,逻辑上的对应物是用户感受到的
- 虚拟存储器技术,是虚拟技术的“空分复用技术”;虚拟处理器,是虚拟技术的“时空复用技术”
1.3.4 异步
- 异步:在多道程序环境下,允许多个进程并发执行;但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,即进程的异步性
二、操作系统的发展与分类
-
手工操作阶段
- 主要缺点:用户独占全机、人机速度矛盾导致资源利用率极低
-
批处理阶段——单道批处理系统
- 引入脱机输入/输出技术,并由**监督程序(操作系统的雏形)**负责控制作业的输入、输出
- 主要优点:缓解了一定程度人机速度矛盾,资源利用率有所提升
- 主要缺点:内存中仅能有一道程序运行;CPU有大量的时间是在空闲等待I/O完成;资源利用率依然很低
-
批处理阶段——多道批处理系统
- 操作系统正式诞生,用于支持多道程序并发运行,每次往内存中读入多道程序
- 主要优点:多道程序并发执行,共享计算机资源;资源利用率大幅提升,CPU和其他资源更能保持“忙碌”状态,系统吞吐率增大
- 主要缺点:用户响应时间长,没有人机交互功能
-
分时操作系统
- 计算机以时间片为单位轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互
- 主要优点:用户请求可以被即时响应,解决了人机交互问题;允许多个用户同时使用一台计算机,且对计算机的操作相互独立,感受不到别人的存在
- 主要缺点:不能处理紧急任务(操作系统对各个用户/作业完全公平,循环地为其服务一个时间片)
-
实时操作系统在这里插入图片描述
- 计算机系统接收到外部信号后及时进行处理,并在严格的时限内处理完成事件
- 主要优点:能优先响应一些紧急任务,保证及时性和可靠性
- 分类:硬实时操作系统(必须在绝对严格的规定时间内完成处理,如导弹控制系统)、软实时操作系统(能接受偶尔违反时间规定,如订票系统)
-
网络操作系统:伴随着计算机网络的发展而诞生的,能把网络中各个计算机有机地结合起来,实现数据传送等功能,实现网络中各种资源的共享 (如文件共享)和各台计算机之间的通信 (如: windows NT 就是一种典型的网络操作系统,网站服务器就可以使用)
-
分布式操作系统:主要特点是分布性和并行性,系统中的各台计算机地位相同,任何工作都可以分布在这些计算机上,由它们并行、协同完成这个任务
-
个人计算机操作系统:如Windows XP、MacoS,方便个人使用。
三、操作系统的运行机制
- 指令:处理器CPU能识别、执行的最基本命令
3.1 运行机制
3.1.1 两种程序:内核程序、应用程序
- 应用程序:跑在操作系统之上的程序,只能使用“非特权指令”
- 内核程序:实现操作系统的程序,简称内核kernel;内核是操作系统最重要最核心的部分,也是最接近硬件的部分
- CPU设计和生产时就划分了特权指令和非特权指令
3.1.2 两种指令:特权指令、非特权指令
3.1.3 两种处理器状态:核心态、用户态
- CPU有两种状态:核心态、用户态
- 处于内核态时,说明此时正在运行的是内核程序,此时可以执行特权指令
- 处于用户态时,说明此时正在运行的是应用程序,此时只能执行非特权指令
- CPU中有一个PSW程序状态字寄存器,通过其中的二进制位区分内核态还是用户态
- 状态切换:
- 内核态 → 用户态: 执行一条特权指令–修改PSW的标志位为“用户态”,意味着操作系统将主动让出CPU使用权
- 用户态 → 内核态:由**“中断”引发,硬件自动完成变态过程**,触发中断信号意味着操作系统将强行夺回CPU的使用权
- 凡是需要操作系统介入的地方,都会触发中断信号,如非法使用特权指令
3.2 中断和异常
3.2.1 中断的作用
- CPU上会运行两种程序,一种是操作系统内核程序,一种是应用程序
- “中断”是让操作系统内核夺回CPU使用权的唯一途径
- “中断”会使CPU由用户态变为内核态,使操作系统重新夺回对CPU的控制权
3.2.2 中断的类型
- 内中断
- 与当前指令有关,中断信号来源于CPU内部
- 例子:特权指令、非法指令、陷入指令(如系统调用,不是特权指令)
- 陷阱、陷入trap:由陷入指令引发,是应用程序故意引发的
- 故障fault:由错误条件引起的,可能被内核程序修复;修复后把 CPU使用权还给应用程序,以继续执行,如:缺页故障
- 终止abort:由致命错误引起,内核程序无法修复该错误,因此一般不再将CPU使用权还给引发终止的应用程序,而是直接终
- 外中断:与当前指令无关,中断信号来源于CPU外部
- 时钟中断
- I/O中断
3.2.3 中断机制的基本原理
- 不同的中断信号,需要用不同的中断处理程序来处理
- 当CPU检测到中断信号后,会根据中断信号的类型去查询**“中断向量表”**,以此来找到相应的中断处理程序在内存中的存放位置
- 中断程序一定是内核程序,需要运行在“内核态”