操作系统
定义
操作系统是指控制和管理整个计算机系统的硬件和软件资源、并合理的组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境的最基本的系统软件
层次结构
提供的功能
作为系统资源的管理者,主要提供以下4个功能:
- 处理机管理
- 存储器管理
- 文件管理
- 设备管理
作为用户与计算机硬件的接口,提供以下功能:
- 命令接口:允许用户直接使用,分为联机命令接口(说一句做一句)、脱机命令接口(说一堆做一堆)
- 程序接口:允许通过程序访问,由一组系统调用组成
- GUI(图形用户界面)
作为最接近硬件的层次,提供以下功能:
- 实现对硬件机器的拓展
特征
- 并发:指两个或多个事件在同一时间间隔发生,宏观上是同时的,微观上是交替的(并行指两个事件同一时间发生),操作系统的并发性指的是同时存在着多个运行的程序,单核CPU则在同一时间只能执行一个程序。但是多核CPU则可实现并行。
- 共享:即指资源共享,系统中的资源可被多个并发的进程共同使用。分为互斥共享(同一时间只允许一个进程访问该资源,如摄像头共享使用)和同时共享(同一时间能被多个进程并发访问,如对硬盘资源的共享使用)
- 虚拟:指把一个物理上的实体变为若干逻辑上的对应物,包括空分复用技术和时分复用技术
- 异步:即在并发的条件下,某个进程的执行不是一贯到底的,而是走走停停,这就是进程的异步性
操作系统的发展与分类
每一代新的操作系统出现都是为了弥补上一代的缺陷
按照先后顺序
-
手工操作系统:
缺点:人机速度矛盾(纸带) -
单道批处理系统(引入脱机输入输出技术)
缺:资源利用率低(高io等待时间) -
多道批处理系统(操作系统开始出现,并发)
缺:不提供人机交互功能 -
分时操作系统:
缺:不能优先处理紧急任务 -
实时操作系统
能优先处理紧急任务。
硬实时系统:必须绝对规定时间内完成处理
软实时系统:接受偶尔的违反
操作系统的运行机制
指令:机器可以识别的符号,指令分为特权指令和非特权指令。若机器处于用户态则可以执行非特权指令,若机器处于核心态则都可以执行。内核程序可以使用两种指令,因此运行在核心态,普通的应用程序只能执行非特权指令,运行在用户态。
操作系统的内核
操作系统的内核:是计算机上配置的底层软件,是操作系统最基本最核心的部分。
操作系统的层次结构
左边括号包住的被称为大内核,右边括号包住的被称为微内核。
- 大内核将操作系统的主要功能模块都作为系统内核,运行在核心态,优点是性能高,缺点是代码庞大
- 小内核只把最基本的功能保留在内核,优点是内核功能少,结构清晰,方便维护,缺点就是需要频繁在用户态和核心态之间切换,性能低。
中断和异常
中断发生后,意味着需要操作系统的介入,开展管理工作。由于操作系统的管理工作(比如进程的切换、分配IO设备)需要特权指令,因此CPU要从用户态转变为核心态。中断可以使CPU从用户态切换为核心态,使操作系统获得对计算机的控制权。有了中断,才能实现多道程序并发执行。
中断的分类:
- 内中断:指令中断(如系统调用时使用的陷入指令)、硬件故障(如缺页)、软件中断(如整数除0)
- 外中断:外设干预(IO操作完成发出中断信号)、人工干预
外中断的处理过程:
- 执行完每个指令后,CPU都要检查是否有外中断的产生
- 如果检测出外中断信号,则需要保护被中断进程的CPU环境
- 根据中断信号类型转入相应的中断处理程序
- 恢复原进程的CPU环境并退出中断,返回原程序继续往下执行
系统调用
应用程序通过系统调用请求操作系统的服务,系统中的各种共享资源都由操作系统统一掌管,因此在用户程序中,凡是与资源有关的操作(如存储分配、I/O操作、文件管理等),都必须通过系统调用的方式向操作系统提出服务请求,由操作系统代为完成。这样可以保证系统的稳定性和安全性,防止用户进行非法操作。系统调用的相关处理必须在核心态下进行。
系统调用的分类:
- 设备管理
- 文件管理
- 进程管理
- 进程通信
- 内存管理
系统调用的过程:
- 传递系统调用参数
- 执行陷入命令(用户态)
- 执行系统调用相应服务程序(核心态)
- 返回用户程序
注意:陷入指令只在用户态执行,会引发内中断从而使CPU进入核心态