操作系统是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配;(操作系统是系统资源的管理者)
以提供给用户和其他然间方便的接口和环境;(向上提供服务)
它是计算机系统中最基本的系统软件。(最接近硬件的一层软件)
功能和目标
系统资源的管理者
- 处理机管理
- 存储器管理
- 文件管理
- 设备管理
向上层提供方便的服务
封装思想:将硬件功能封装成简单易用的服务,使用户能够更加方便地使用计算机,而无需考虑底层硬件的细节,只需要对操作系统发出指令即可。
用户接口
-
GUI: Graphical User Interface
-
命令接口:用户可以直接使用
- 联机命令接口 = 交互式命令接口
- 脱机命令接口 = 批处理命令接口
-
程序接口:可以在程序中进行系统调用来使用程序接口。普通用户只能通过程序代码间接使用。
程序接口 = 系统调用=广义指令,系统调用类似于函数调用,是应用程序请求操作系统服务的唯一方式
最接近硬件的层次
实现了对硬件机器的拓展
没有任何软件的计算机称为裸机
通常把覆盖了软件的机器称为扩充机器,又称为虚拟机
特征
并发
两个或多个事件在同一时间间隔内发生,这些时间在宏观上是同时发生的,但在微观上是交替发生的。
并行 Parallel :两个或多个事件在同一时刻同时发生。
操作系统就是伴随着“多道程序技术”出现,因此 操作系统和程序并发是一起诞生的。
重点:
- 单核CPU:同一时刻只能执行一个程序,各个程序只能并发执行
- 多核CPU:同一时刻可以执行多个程序,各个程序可以并行执行
即使是对于4核CPU来说,只要有4个以上的程序需要“同时”运行,那么并发性依然是必不可少的,
因此并发性是操作系统一个最基本的特性
共享
资源共享:系统中的资源可以供内存中的多个并发执行的进程共同使用。
- 互斥共享:同一时间段,只允许一个进程访问该资源。
- 同时共享:同一时间段,允许多个进程访问该资源。
上面的同时往往是宏观上的,也就是说,微观上是分时共享。
虚拟
把一个物体上的实体变为若干个逻辑上的对应物。物理实体是实际存在的,而逻辑上对应物是用户感受到的。
空分复用技术:虚拟存储器技术
时分复用技术:虚拟处理器
异步
多道程序环境下,多个程序并发执行,但由于程序的执行并不是连贯的,这就造成了程序不可预计的时间和顺序,这就是进程的异步性。
关系
并发与共享
并发和共享是两个最基本的特征,两个互为存在条件。
并发性指系统中同时存在多个运行着的程序。
共享性指系统中的资源可同时供内存中多个鬓发执行的进程共同使用。
如果没有并发性,则系统中只有一个程序正在运行,那么共享性失去存在的意义
如果没有共享性,则系统中的程序不能同时进行如访问硬盘资源,那么并发性无法实现
并发与虚拟
对于时分复用技术,如果一个时间段只运行一道程序,那么就不需要时分复用了。
并发与异步
只有系统拥有并发性,才有可能导致异步性。
运行机制
指令
CPU设计和生产的时候就划分了特权指令和非特权指令。
特权指令
操作系统内核作为 “管理者”,有时会让CPU执行一些“特权指令”,如:内存清零指令。这些指令影响重大,只允许“管理者”——即操作系统内核来使用。
非特权指令
应用程序只能使用“非特权指令”,如: 加法指令、减法指令等。
处理器状态
核心态
说明此时正在运行的是内核程序,此时可以执行特权指令
用户态
说明此时正在运行的是应用程序,此时只能执行非特权指令
拓展
CPU中的一个寄存器 PSW 程序状态字寄存器 其中有个二进制位,1表示内核态,0表示用户态
内核态 = 核心态 = 管态;用户态 = 目态
操作系统内核在让出CPU之前,会用一条特权指令把 PSW 的标志位设置为“用户态”
CPU检测到中断信号后,会立即变为“核心态”,并停止运行当前的应用程序,转而运行处理中断信号的内核程序。
内核态->用户态:执行一条特权指令——修改PSW的标志位为“用户态”,这个动作意味着操作系统
将主动让出CPU使用权
用户态->内核态:由“中断”引发,硬件自动完成变态过程,触发中断信号意味着操作系统将强行夺
回CPU的使用权
最常考知识点:
-
特权指令只能在核心态下执行
-
内核程序只能在核心态下执行
-
核心态、用户态之间的切换
CPU 上会运行两种程序,一种是操作系统内核程序,一种是应用程序
“中断”是让操作系统内核夺回CPU使用权的唯一途径 如果没有“中断”机制,那么一旦应用程序上CPU运行,CPU就会一直运行这个应用程序
中断
大多数的教材、试卷中,“中断”特指狭义的中断,即外中断。而内中断一般称为“异常
不同的中断信号,需要用不同的中断处理程序来处理。当CPU检测到中断信号后,会根据中断信号的类型去查询“中断向量表”,以此来找到相应的中断处理程序在内存中的存放位置。
应用程序通过系统调用请求操作系统的服务。而系统中的各种共享资源都由操作系统内核统一掌管,因此凡是 与共享资源有关的操作(如存储分配、I/O操作、文件管理等),都必须通过系统调用的方式向操作系统内核提 出服务请求,由操作系统内核代为完成。这样可以保证系统的稳定性和安全性,防止用户进行非法操作。
注意:
-
陷入指令是在用户态执行的,执行陷入指令之后立即引发一个内中断,使CPU进入核心态
-
发出系统调用请求是在用户态,而对系统调用的相应处理在核心态下进行