操作系统的功能
- 系统资源的管理者:处理器、存储器、文件、设备管理
- 用户和计算机硬件之间的接口:命令接口(联机命令接口、脱机命令接口)、程序接口(系统调用)、图形用户界面
- 最接近硬件的层次
操作系统的特征
- 并发🌟
宏观上同时发生,微观上可能是交替发生的
并行:多个事件同一时刻同时发生
同时存在着多个运行着的程序 - 共享
互斥共享:一个时间段内只允许一个进程访问该资源。qq和微信同时视频聊天
同时共享:允许一个时间段内由多个进程“同时”对他们进行访问。qq和微信同时发送文件a - 虚拟
虚拟存储技术,将物理上的实体变为若干个逻辑上的对应物 - 异步
允许多个程序并发进行,由于资源有限,进程执行非一贯到底,而是走走停停,以不可预知的速度向前推进
发展与分类
- 手工操作阶段
- 批处理阶段
单道批处理系统
多道批处理系统(操作系统开始出现) - 分时操作系统
- 实时操作系统
- 网络操作系统
- 分布式操作系统
- 个人计算机操作系统
操作系统的运行机制
指令
- 特权指令
- 非特权指令
处理器状态:程序状态字寄存器PSW中的flag标识
- 用户态:只能执行非特权指令
- 核心态:能运行特权指令和非特权指令
程序
- 内核程序:需要使用特权指令的程序,处于核心态
- 用户程序:只执行非特权指令,处于用户态
操作系统的体系结构
- 大内核:将操作系统的主要功能模块都作为系统内核,运行在核心态。高性能,内核代码庞大,结构混乱,难以维护
- 微内核:只把最基本的功能保留在内核。内核功能少,结构清晰,方便维护,需要频繁在核心态和用户态之间切换,性能低
中断和异常
用户态到核心态的切换通过中断实现
中断的分类🌟
- 外中断:中断信号的来源来自CPU外部,与当前执行的指令无关
- 内中断:中断信号的来源来自CPU内部,与当前执行的指令有关,包括系统调用
外中断处理过程🌟
- 执行完每个指令之后,CPU都要检查当前是否有外部中断信号
- 如果检测到外部中断信号,需要保存被中断进程的CPU环境,比如PSW寄存器、程序计数器、各种通用寄存器等
- 根据中断信号类型转入相应的中断处理程序
- 恢复原进程的CPU环境并退出中断,返回原进程继续向下执行
系统调用
系统调用是什么🌟
操作系统提供给应用程序使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以发出系统调用请求来获得操作系统的服务,用户态切换到内核态
系统调用的功能分类🌟
凡是与资源有关的操作,会直接影响到其他进程的操作,一定需要操作系统来介入,即需要通过系统调用来实现
- 设备管理:完成设备的请求、释放、启动等功能
- 文件管理:完成文件的读、写、创建、删除等功能
- 进程控制:完成进程的创建、撤销、阻塞、唤醒等功能
- 进程通信:完成进程之间的消息传递、信号传递等功能
- 内存管理:完成内存的分配、回收等功能
系统调用和库函数的区别
- 用户程序可以直接使用系统调用,也可以通过库函数使用系统调用
- 有的库函数会涉及系统调用,有的库函数不会涉及系统调用
系统调用的过程🌟
- 硬件收到中断信号,立刻保存现场,查找中断向量表,将CPU控制权转交给系统调用总入口程序
- 对于系统调用入口总程序,也要先保存现场,将参数保存在内核的堆栈中,然后查找系统调用表,将CPU控制权转交给对应的系统调用处理程序或者内核函数
- 执行系统调用处理程序或内核函数
- 恢复现场,返回用户程序
陷入指令在用户态执行
发出系统调用请求是在用户态
陷入指令是唯一一个只能在用户态执行不可在内核态执行的指令
系统调用在用户态,对系统调用的处理在内核态