文章目录
1. 操作系统的基本概念
1.1 操作系统的概念
1.1.1 操作系统的概念(定义)
操作系统:
- (管理者)控制和管理整个计算机的软件和硬件资源,使其高效协调的工作。
- (服务者)提供给用户和其他软件方便的接口和环境。
- (系统软件)它是计算机系统中最基本的系统软件。
1.1.2 操作系统的目标与功能
做为管理者提供的功能及其目标:
作为服务者:
1.1.3 小结
注意:
程序接口
又叫系统调用
,又叫广义指令
。- 系统调用是操作系统为
应用程序
使用内核功能所提供的接口。(比如QQ想使用摄像头。就必须通过系统调用实现)
注意:只有应用程序才能间接使用系统调用。- 图形接口其实是使用了系统调用而实现的接口。(相对于对系统调用的进一步封装)
1.2 操作系统的特征
* 操作系统的特征
1. 并发性:计算机系统中运行这多个程序,这些程序宏观上看是同时运算的,但是微观上是交替运行的。
* 区别并发与并行
1. 并发:指两个或多个事件在同一时间间隔内发生。
2. 并行:指两个或多个事件在同一时刻同时发生。
* 区别单核与多核
1. 单核CPU同一时间只能执行一个程序,多个程序只能并发执行
2. 多核CPU同一时间可以执行多个程序,多个程序可以并行执行
2. 共享性:系统中的资源可供内存中的多个并发执行的进程共同使用。
* 分类:
1. 互斥共享:同一时间间隔内只允许一个进程访问资源
2. 同时共享:多个进程可以并发或者并行的访问资源。
3. 虚拟性:把一个物理上的实体变为若干个逻辑上的对应物。
* 分类:
* 空分复用技术(如虚拟存储器技术,一个4G内存能运行多个4G程序)
* 时分复用技术(虚拟处理器技术,单核CPU能够处理多个程序)
4. 异步性:多道程序设计环境下,允许多个程序并发的进行,但是由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进。
注意:共享性、虚拟性、异步性都是由并发性导致的。而并发性是为了解决资源有限的一种方案,这一切的一切都是由于资源有限导致的。
1.3 OS的发展与分类
注意:
- 分时操作系统追求的是高响应比,
- 实时操作系统最求的是实时性(高响应比和快速处理)和可靠性,资源利用率不再是主要考虑的,
2. 操作系统的运行环境
2.1 操作系统的运行机制
系统拥有两种状态的目的:保护系统程序。
注意:
- 我们平时写的程序就是应用程序;负责实现操作系统的程序是内核程序,而这些程序构成了“操作系统内核”,简称“内核”。“内核”是操作系统最核心最重要,最贴近硬件的部分。
运行应用程序时,CPU的状态被称为用户态
;运行内核程序时,CPU的状态被称为内核态
。- 应用程序只能使用非特权指令,内核程序可以使用特权指令和非特权指令。如果应用程序使用了特权指令,最造成
中断
,使得操作系统变内核态。
注意:CPU设计和生产的时候就划分了特权指令和非特权指令,即CPU能直接区分特权指令和非特权指令。- CPU怎么区分正在运行的程序是内核程序还是应用程序?
- CPU有内核态和用户态两种,用状态来区分。 CPU中有一个寄存器叫
程序状态字(PSW)
,其中有一个二进制位来表示CPU是内核态还是用户态。- 应用程序想使用OS特权服务,会使用
系统调用
,而系统调用是由访管指令
(访管中断)引起的,可见访管指令是非特权指令
。然后通过系统调用将OS由用户态变为内核态,具体的中断指令是系统调用中的trap陷入指令。- 用户态和内核态的切换
- CPU由用户态变为内核态,是由
硬件自动完成
。类似的还有地址映射,也是由硬件自动完成。
2.2 中断与异常
2.2.1 中断的作用与分类
1. 中断的作用:使CPU由用户态变为内核态,使操作系统重新夺回对CPU的控制权。
2. 中断的分类:
1. 内中断(异常):与当前执行的指令有关,中断信号来自于CPU内部【通常由非法指令或者陷入指令导致】
2. 外中断(中断):与当前执行的指令无关,中断信号来自于CPU外部,比如时钟中断,每50ms给CPU一个中断,让CPU转为内核态去处理一些事情
* 注意:
1. 广义的中断指内中断和外中断,侠义的中断只是指外中断,如果没有指明是什么中断,则默认是侠义上的中断。
2. 每一条指令执行结束后,CPU都会例行检测是否有外中断信号。
2.2.2 中断机制的基本原理
2.2.3 小结
3. 操作系统的体系结构
注意:变态的过程是有成本的,要消耗不少时间。
4. 补充
单核的处理机与设备、处理机与通道、设备与设备间都可以并行工作。
通道是一种通过执行通道程序管理I/O操作的控制器。CPU将对I/O设备管理的权限该控制器,以实现CPU与I/O的并行工作。
【由于它的任务是管理实现输入/输出操作,提供一种传送通道,所以将这种部件称作“通道”】采用
多道程序设计
后,程序的执行就失去了封闭性
、顺序性
和可再现性
。
- 封闭性:指进程的执行结果只取决于进程本身,不受外界影响。也就是说,不管程序在执行过程中停顿还是不停顿进程的执行速度都不会改变执行结果。失去封闭性以后,不同速度下的执行结果不同。
shell
是命令解释器
,属于命令接口
。
库函数
是应用程序
的一部分
,可以运行在用户空间;而系统系统调用是操作系统的一部分,是内核程序为用户提供的接运行在内核空间中。多道程序设计
- 优点:
- CPU利用率提高
- 系统吞吐量变大
- I/O设备利用率提高。 仔细想想,因为多道程序并发运行,导致I/O设备并发的被利用。
- 特点:
- 并发
- 并行
操作系统必须提供的服务:中断处理
时钟管理
、地址映射
、中断系统
都需要硬件来完成
,而进程调度不需要,需要的是算法。
用户态
下可以进行读写数据
,所有用户态下可以将寄存器清0
内核态时,能执行除访管指令外的所有指令。
并发会导致并行。