定义
操作系统是指控制和管理整个计算机系统的软硬件资源,合理地组织、调度计算机的工作与资源的分配,进而为用户和其他软件提供方便接口与环境的程序的集合。
特征
并发、异步、虚拟、共享是操作系统的四大特征,其中并发和共享是两个最基本的特征,且互为存在的条件,
OS提供的接口
命令接口
命令接口分为联机命令接口和脱机命令接口。
联机命令接口又称交互式命令接口,适用于分时或实时系统。
一个典型的联机命令接口是负责命令解析的shell及其背后的命令解释器。
脱机命令接口又称批处理命令接口,适用于批处理系统,由一组作业控制命令组成,如Windows下的bat批处理脚本。
程序接口
程序接口由一组系统调用(即所谓SystemCall,又称广义指令)组成,用户通过在程序中呼叫系统调用来请求得到操作系统的服务,如使用外设、申请内存等。
中断机制
设计原理
通常CPU会执行两种性质不同的程序,一种是OS内核程序,一种是用户程序。出于安全考虑,一些特权指令(如I/O指令、置中断指令)不允许被用户程序直接调用,需要经过内核程序的管辖才可使用,所以为了实现CPU从用户态到内核态的切换(由程序状态字寄存器PSW的内容表示),引入了中断机制。
分类
中断分为外中断和内中断。
外中断是指:CPU执行指令以外的事件发生而产生的中断,如I/O请求完成、时间片结束等。
内中断是指:CPU执行指令内部的事件发生而产生的中断,如地址越界、溢出、虚存系统缺页、执行陷入指令(又称访管指令、trap指令)等。
通常把外中断称为中断,而把内中断称为异常(例外、陷入)。
中断处理流程
- 关中断。CPU响应中断后,首先需要关中断,防止在还未保存现场时被更高级的中断源而中断。
- 保存断点。即程序计数器PC。
- 引出中断服务程序。即将其入口地址送到PC。
- 保存现场和中断屏蔽字。主要是保存程序状态字寄存器和一些通用寄存器的内容。
- 开中断。以允许对更高级的中断请求作出响应。
- 执行中断服务程序。
- 关中断。防止在还未恢复现场时被更高级的中断源中断。
- 恢复现场和中断屏蔽字。
- 开中断。
- 返回到断点继续执行。
其中1、2、3步由中断隐指令(硬件)自动完成,其余由中断服务程序完成。
系统调用
设计原理
系统的各种共享资源(内存、共享设备等)都由操作系统统一管理,因此在用户程序中若是想对这些资源加以操作,需向操作系统申请服务,即调用系统调用(SystemCall)。其实质是用户程序执行陷入指令,产生内中断,从而使CPU切换为核心态,由内核程序对SystemCall请求作处理。
分类
设备管理:设备请求、释放、启动等。
文件管理:文件读、写、创建、删除等。
进程控制:进程创建、撤销、阻塞、唤醒等。
进程通信:进程间消息传递及信号传递等。
内存管理:内存分配、回收等。
流程
- 用户程序传递系统调用参数,例如阻塞进程时,需要将PID作为参数传入。
- 用户程序执行陷入指令,CPU状态切换,并将返回地址压栈。
- 内核程序处理SystemCall请求。
- 返回用户程序。
操作系统的发展与分类
名称 | 描述 | 特征 |
---|---|---|
单道批处理系统 | 成批地对作业进行处理,但内存中始终只有一道作业在运行 | 自动性(作业的自动处理无需人工干预)、顺序性(先调入内存的作业先完成)、无人机交互能力 |
多道批处理系统 | 成批地对作业进行处理,多个程序可同时进入内存,并交替使用CPU | 宏观上并行,微观上串行、无人机交互能力 |
分时操作系统 | 处理器的运行时间分片,允许多个用户同时使用一台计算机 | 提供人机交互能力 |
实时操作系统 | 适用于对时间要求特别严格的场合(如导弹制导系统) | 及时性、可靠性 |