一、操作系统的基本概念
(一)概念
1、操作系统的定义
操作系统是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源分配;以提供给用户和其它软件方便的接口和环境;它是计算机系统中最基本的系统软件。既:
- ⭐操作系统是系统资源的管理者⭐
作为系统的管理者所要提供的功能是本门课程最为重要的内容。 - ⭐向上层提供方便易用的服务⭐
联机命令接口:就是一条一条输入命令执行,就像windows的命令行窗口中执行命令一样。
脱机命令接口:批量处理命令,例如ubuntu系统的bat文件进行命令批处理。
程序接口(系统调用):通过程序隐式调用系统命令的接口,例如C语言中执行一条程序,则该程序会执行多条系统命令完成用户的需求。 - 是最接近硬件的一层软件
没有任何软件支持的计算机称为裸机,再裸机上安装的操作系统可以提供资源管理功能和方便用户的服务功能。通常把覆盖了软件的机器称为扩充机器,又称为虚拟机。
2、层次结构
(二)操作系统的特征
-
并发(最基本特性)
指两个或多个事件在同一时间间隔内发生。这些事件⭐宏观上是同时发生的,但微观上是交替发生的⭐。
1)⭐⭐注(重要考点)⭐⭐
单核CPU同一时刻只能执行一个程序,各个程序只能并发地执行
多核CPU同一时刻可以同时执行多个程序,多个程序可以并行的执行。
2)并发VS并行
并发是同一时刻只能执行一个程序,但是交替执行多个程序,比如执行a需要1ms,执行b需要1ms,1分钟内交替执行a和b,会使得长时间来看a和b是一起运行的,但是在某一ms执行的只是1个程序
并行是多个程序在同一时刻同时执行。即a和b在某一ms内同时执行。
-
共享
共享即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。
1)互斥共享方式
系统中的某些资源,虽然可以提供给多个进程使用,但一个时间段内只允许一个进程访问该资源
2)同时共享方式
系统中的某些资源,允许一个时间段内多个进程“同时”对它们进行访问。
-
虚拟
虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体(前者〉是实际存在的,而逻辑上对应物(后者)是用户感受到的。
-
异步
异步是指,在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。
小节回顾
二、操作系统的发展与分类
- 手工操作阶段
程序员使用纸带机进行数据的输入输出。
主要缺点:用户独占全机、人机速度矛盾导致资源利用率极低。 - 批处理阶段——单道批处理系统
引入脱机输入/输出技术(用外围机+磁带完成),并由监督程序负责控制作业的输入、输出
主要优点:缓解了一定程度的人机速度矛盾,资源利用率有所提升。
主要缺点:内存中仅能有一道程序运行,只有该程序运行结束之后才能调入下一道程序。CPU有大量的时间是在空闲等待l/O完成。资源利用率依然很低。 - 批处理阶段——多道批处理系统
该阶段操作系统正式诞生,每次往内存中读入多道程序,然后CPU进行并发执行,共享计算机资源。
主要优点:多道程序并发执行,共享计算机资源。资源利用率大幅提升,CPU和其他资源更能保持“忙碌”状态,系统吞吐量增大。
主要缺点:用户响应时间长,没有人机交互功能。用户提交程序后只能够等待程序执行完毕,无法进行程序的调试。 - 分时操作系统
计算机以时间片为单位轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互。
主要优点:用户请求可以被即时响应,解决了人机交互问题。允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感受不到别人的存在。
主要缺点:不能优先处理一些紧急事务。时间片轮转,对作业都是公平分配时间片,没有优先级之分。 - 实时操作系统
主要优点:能够优先响应一些紧急任务,某些紧急任务不需时间片排队。
在实时操作系统的控制下,计算机系统接收到外部信号后及时进行处理,并且要在严格的时限内处理完事件。实时操作系统的主要特点是及时性和可靠性。
- 其他操作系统
网络操作系统、分布式操作系统、个人计算机操作系统。
小节回顾
三、操作系统的运行环境
(一)⭐操作系统的运行机制⭐
- 内核态vs用户态
处于内核态时,说明此时正在运行的时内核程序,此时可以执行特权指令
处于用户态时,说明此时正在运行的时应用程序,此时只能执行非特权指令 - 别名
内核态=核心态=⭐管态⭐;用户态=⭐目态⭐ - ⭐转换⭐
内核态→用户态:执行一条特权指令――修改PSW的标志位为“用户态”,这个动作意味着操作系统将主动让出CPU使用权
用户态→内核态:由“中断”引发,硬件自动完成变态过程,触发中断信号意味着操作系统将强行夺回CPU的使用权
(二)中断和异常(计组通用)
“中断”是让操作系统内核夺回CPU使用权的唯一途径。
内中断(也称异常):与当前执行的指令有关,中断信号来源于CPU内部。(陷入指令)
外中断:与当前执行的指令无关,中断信号来源于CPU外部。(时钟信号)
(三)系统调用
“系统调用”是操作系统提供给应用程序(程序员/编程人员〉使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以通过系统调用来请求获得操作系统内核的服务
系统调用vs库函数
- 有的库函数是语言将系统调用命令封装好,写成一个个简单的方法,用户写程序的时候可以调用库函数中的方法进行批量系统调用。例如C语言函数库
- 系统调用则是直接调用命令。例如汇编
⭐注意⭐
- 陷入指令是在用户态执行,该指令后会引发一个中断,进入核心态
- 发出系统调用的请求是在用户态,处理系统调用是在核心态
- 陷入指令=trap指令=访管指令
四、操作系统的体系结构
内核是操作系统⭐最基本、最核心⭐的部分。实现操作系统内核功能的那些程序就是内核程序。
CPU状态转换需要成本,频繁转换状态会降低系统性能。(左大内核,右微内核)
小节回顾
红色星星为重点,新增考点,可能考选择题
五、操作系统引导
开机,CPU执行ROM中的引导程序,找到C盘所在位置,读取C盘中的操作系统分区中的内容到RAM中并执行。完成开机。
六、⭐虚拟机(选择题)⭐
使用虚拟化技术,将一台物理机器虚拟化为多台虚拟机器,每个虚拟机都可以独立运行一个操作系统。
七、⭐易错总结⭐
- 操作系统不允许用户直接操作各种资源。系统调用的目的是为了请求内核为其服务,间接使用系统资源。
- 广义指令是指系统调用命令,操作系统不提供缓存管理指令(缓存由CPU进行直接管理)
- 计算机开机后,最终被加载到RAM中。
- 做题注意看“在用户态发生”和“在用户态执行”的区别,例缺页可由用户态发生,然后产生缺页中断,在核心态处理。
- 在用户态时,时钟可以进行读取,但不能够写,若应用程序能够对时钟进行写,那么可以在时钟快要结束时重置时钟,导致无限使用时间片,不合理。
- 输入输出是需要进行中断处理的。且为外部中断
- 处理外部中断时,中断隐指令会保存程序计数器PC的值,所以不需要操作系统来处理。
- 执行系统调用的过程,是先传系统调用参数,在执行trap指令。
- 进程调度属于算法,不需要硬件支持。