概述
计算机层次
定义
操作系统(Operating System,OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织和调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境,它是计算机系统中最基本的系统软件。
功能和目标
作为系统资源的管理者
举例
分别对应了操作系统提供的功能
作为用户和计算机硬件之间的接口
- 命令接口:允许用户直接使用
- 程序接口:允许用户通过程序间接使用
- GUI:现代操作系统中最流行的图形用户接口
用户接口
包括联机命令接口和脱机命令接口
作为最接近硬件的层次
- 需要提供的功能和目标:实现对硬件机器的拓展。
- 没有任何软件支持的计算机成为裸机。在裸机上安装的操作系统,可以提供资源管理功能和方便用户的服务功能,将裸机改造成功能更强、使用更方便的机器。
- 通常把覆盖了软件的机器成为扩充机器,又称之为虚拟机。
操作系统的特征
并发和并行
并发:指两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替发生的。
常考易混概念――并行:指两个或多个事件在同一时刻同时发生。
共享
共享即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。
举例
共享和并发的关系
- 并发性指计算机系统中同时存在着多个运行着的程序。
- 共享性是指系统中的资源可供内存中多个并发执行的进程共同使用。
虚拟
虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体(前者)是实际存在的,而逻辑上对应物(后者)是用户感受到的。
空分复用技术
时分复用技术
异步
异步是指,在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。
举例
显然,如果失去了并发性,则系统只能串行地处理各个进程,每个进程的执行会一贯到底。只有系统拥有并发性,才有可能导致异步性。
操作系统的发展与分类
手工操作阶段
单道批处理阶段
多道批处理系统
为什么多道批处理系统能够使资源利用率大幅提升?
举例:
若采用单道批处理,那么任务都是串行执行
若采用多道批处理,那么在其他部件空闲时可以开始处理其他进程
分时操作系统
实时操作系统
其他操作系统
OS运行机制和体系结构
运行机制
两种指令
“指令”就是处理器(CPU)能识别、执行的最基本命令。
两种处理器状态
两种程序
体系结构
内核
内核是计算机上配置的底层软件,是操作系统最基本、最核心的部分。实现操作系统内核功能的那些程序就是内核程序。
内核的层次图:
内核的结构图:
大内核和微内核
由于不同操作系统对内核的划分不同,所以分类大内核和微内核操作系统。
可以类比:
总结
中断和异常
概述
为了实现不同的线程直接进行切换,需要中断机制。
- 当中断发生时,CPU立即进入核心态。
- 当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理。
- 对于不同的中断信号,会进行不同的处理。
发生了中断,就意味着需要操作系统介入,开展管理工作。由于操作系统的管理工作(比如进程切换、分配I/O设备等)需要使用特权指令,因此CPU要从用户+态转为核心态。中断可以使CPU从用户态切换为核心态,使操作系统获得计算机的控制权。有了中断,才能实现多道程序并发执行。
遗留问题:用户态、核心态之间的切换是怎么实现的?
答:“用户态→核心态”是通过中断实现的。并且中断是唯一途径。“核心态→用户态”的切换是通过执行一个特权指令,将程序状态字(PSW)的标志位设置为“用户态”。
中断的分类
方式一:
方式二:
外中断的处理过程
总结
系统调用
概述
“系统调用”是操作系统提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以发出系统调用请求来获得操作系统的服务。
操作系统作为用户和计算机硬件之间的接口,需要向上提供一些简单易用的服务。主要包括命令接口和程序接口。其中,程序接口由一组系统调用组成。
系统调用的作用
应用程序通过系统调用请求操作系统的服务。系统中的各种共享资源都由操作系统统一掌管,因此在用户程序中,凡是与资源有关的操作(如存储分配、I/O操作、文件管理等),都必须通过系统调用的方式向操作系统提出服务请求,由操作系统代为完成。这样可以保证系统的稳定性和安全性,防止用户进行非法操作。