1、操作系统的功能和目标
1.1功能
- 存储管理
- 文件管理
- 设备管理
- 处理机管理
- 进程管理
1.2目标
- 方便性:操作系统作为用户与计算机硬件系统之间的接口,提供了直观的命令和界面,使得用户能够更容易地操作计算机。
- 有效性:操作系统旨在提高系统资源的利用率,通过合理组织计算机的工作流程,加速程序的运行,缩短程序的运行周期,从而提高系统的吞吐量。
- 可扩充性:为了适应计算机硬件、体系结构以及应用程序的发展,操作系统需要具有良好的可扩充性,以便于添加、修改相应的功能和模块。
- 开放性:在计算机应用的日益普及和网络环境的转向下,操作系统的开放性变得尤为重要,以便于不同硬件和软件之间的兼容。
直接给用户使用:
- GUI(图形用户界面)
- 命令接口
- 联机命令接口
- 脱机命令接口
给软件程序员使用:
- 程序接口
其中命令接口和程序接口统称为“用户接口”
2、操作系统的特征
2.1并发
指的是在一个时间段内,有多任务或多线程在交替执行。在这种情况下,多个任务或线程可能会同时占用CPU资源,但在宏观层面上,它们的执行是按照一定的顺序进行的。并发提高了系统的资源利用率和吞吐量,因为它允许多个任务在不完全同时执行的情况下相互竞争CPU的使用权。并发通常涉及到任务调度和时间片轮询等技术来实现对CPU资源的合理分配。(宏观上同时发生,微观上交替发生)
例子:这就比如一天上午,我8:00-10:00需要学习操作系统,10:00-12:00需要学习数据库,在“一天上午”的角度上看,我这一天上午同时学习了操作系统和数据库,而从“小时”的角度上看,我是交替学习这两门课程的。
注意:单核CPU同一时刻只能执行一个程序,各个程序只能并发进行
多核CPU同一时刻可以执行多个程序,各程序可以并发进行
2.2并行
则意味着在同一时间段内,多个任务或线程同时在不同的处理器核心上执行。并行计算能够充分利用所有可用的硬件资源,因为它允许多个任务并行运行而不必等待其他任务完成。并行计算可以提高系统的性能和效率,特别是在处理大数据集、图形渲染和其他需要大量计算的任务时。并行可以通过多处理器系统或分布式计算架构实现。
例子:我在学习时,同时学习操作系统和数据库,即在同一时刻,我的脑子里面既是操作系统的知识,又是数据库的知识。
2.3共享
2.3.2互斥共享
某些资源在同一时刻只能被一个进程访问。
2.3.2同时访问共享
允许多个进程在同一时刻访问同一个资源
并发性和共享性互为存在条件。
2.4虚拟
- 空分虚拟技术
- 时分虚拟技术
2.5异步
多个程序并发运行的环境中,每个程序的运行结果、运行次序以及每次运行的时间都是不确定的
只有并发性才会导致异步性
3、操作系统运行机制
特权指令:只能由操作系统使用的指令
支持多道程序运行要区分为特权指令和非特权指令
特权指令一般引起处理器状态的切换
3.1内核态(管态)
操作系统管理程序运行的状态,较高的特 权级别,又称特权态(特态)、内核态、系统态。能够执行所有指令,使用所有资源,改变CPU状态
3.2用户态(目态)
用户程序运行时的状态,较低的特权级别, 又称为普通态(普态)、用户态,只能执行非特权指令
注意:程序状态寄存器(PSW),有一个二进制位用来判断系统处于哪一个状态。
3.3状态转变
3.3.1程序状态寄存器/程序状态字(PSW)
CF: 进位标志位
ZF: 结果为零标志位
SF: 符号标志位
OF: 溢出标志位
TF:陷阱标志位
IF:中断允许(中断屏蔽)标志位
VIF:虚拟中断标志位
VIP:虚拟中断待决标志位
IOPL:IO特权级别
3.3.2管态->目态
执行一条特权指令,修改PSW
3.3.3目态->管态
由中断引起,硬件自动完成
系统调用
4.中断
4.1内中断(也称为异常)
注意上图中管态下执行的指令可以使“特权指令”也可以是“非特权指令”,也就是说管态可以执行计算机所有指令
实例1:试图在目态下执行特权指令
实例2:执行除法时发现除数为0
实例3:有时应用程序想请求操作系统内核的服务
此时会执行陷入指令(trap指令)———会引发一个内部中断信号。注意陷入指令是不是特权指令(因为目态可以正常执行)
4.1.1陷入
此情况是应用程序故意引发的(即一个程序执行,需要用到特权指令,这时非特权指令会执行trap指令,使CPU状态进入管态,执行需要的指令。此从目态到管态的过程,需要执行的非特权指令成为陷入指令,这个过程成为陷入。)
4.1.2故障
由错误条件引起,可能被内核程序修复,修复后内核会把CPU使用权还给应用程序,继续执行下面的指令。
4.1.3中止
由致命错误引起,内核无法修复,一般不会再把CPU使用权还给应用程序,而是直接中止此程序
4.2外中断(狭义地称为中断)
时钟部件每隔一段时间给CPU发送一个中断信号。而且需要时I/O设备也会给CPU发送中断信号。
4.3中断机制的原理
对于不同的中断信号,需要不同的中断处理程序来处理。当CPU检测到中断信号后,会根据中断信号的类型去查询“中断向量表”,以此来找到中断处理程序在内存中存放的位置。
注意:由上面可知,中断处理程序应该是内核程序(需要运行在内核态)
5计算机组织结构
5.1 I/O设备
计算机中的I/O设备指的是计算机与外部进行信息交换的输入、输出设备。
5.1.1输入设备
- 负责将外部的信号经过判别、筛选和编码转换,输入到计 算机中.
- 鼠标、键盘、扫描仪…
5.1.2输出设备
- 将计算机内部信号经过转换,输出到外部介质上
- 打印机、显示器…
5.1.3I/O访问方式
- 程序控制I/O访问
- 用程序控制I/O设备的运行:检测I/O状态、接受发送指令、 传送数据等。(结构简单、执行效率低---没有中断)
- 中断驱动I/O访问
- 1)CPU初始化I/O并启动第一次I/O操作。
- 2)CPU去忙别的事情。
- 3)当I/O完成时,CPU将被中断。
- 4)CPU处理中断。
- 5)CPU恢复被中断的程序。
- 直接I/O访问
- DMA方式
6.OS与用户之间的接口
6.1普通用户接口(Shell)
- 图形用户接口
- 命令接口
6.2程序接口(系统调用和API)
- 系统调用(System Call):提供进程与OS之 间的接口。
- 应用程序接口(API):在函数的实现中封装 了系统调用。
7演化过程
- 初步操作系统---单道批处理系统
- 自动性
- 顺序性
- 单道性
- 多道操作系统(在一段时间内,有多个程序同时占有CPU的使用权)
- 多个作业并发批处理运行,在程序执行过程中不能与人进行交互
- 并发性
- 不交互性
- 自动批处理
- 分时操作系统系统
- 为并发运行的每个程序进程分配 一定的“时间片”(时间段)
- 当一个程序进程在CPU中运行完 这段时间后,它就被剥夺CPU的 使用权,分时系统调度其它的程 序进程到CPU中并运行
- 多路性(并发性)
- 及时性
- 交互性
- 独立性
- 实现共享主机
- 个人操作系统
- 芯片集成度越来越高,速度越来越快,价格越来越便宜
- 16位 —> 64位
- Windows,Linux,Minix,UNIX,Mac
- 操作简单、界面丰富、可操作性强
例题:多道操作系统是如何让多个作业并发执行的?
- 磁盘中管理多个程序文件,能够进行程序的读入、读出 (文件管理系统)
- 为多个并发程序在内存中分配空间(内存管理)
- 在一个时间段让哪个程序运行,被中断的程序如何恢复运 行(处理器管理-进程管理)
- 为程序使用I/O设备提供方便的系统接口(I/O设备管理)