1 操作系统的概念、功能和目标
常见的操作系统: Windows, Android, iOS, MacOS, Linux
1.1 操作系统的概念
操作系统的概念:
1.管理协调硬件和软件等计算机资源
2.为上层应用程序、用户提供服务
3.操作系统是系统软件,不是硬件
操作系统是控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,已提供给用户和其他软件方便的接口和环境,他是计算机系统中最基本的系统软件
1.2 操作系统的功能和目标
作为系统资源管理者,需要提供处理机管理、存储器管理、文件管理、设备管理。目标是安全高效。
作为用户和计算机硬件之间的接口,提供了命令接口,程序接口(用户通过程序间接使用)和 GUI(图形用户接口)。
其中,命令接口分为联机命令接口和脱机命令接口。联机命令接口(交互式命令接口)比如说windows下的cmd,脱机命令接口(批处理命令接口),比如windows下的bat文件。
程序接口,如windows中的dll文件,调用过程即为系统调用(程序接口),通过用户间接使用。
GUI(Graphical User Interface)
作为做接近的硬件的层次,实现对硬件机器的扩展。在裸机上安装操作系统,使之变为更强、使用更方便的机器。通常把覆盖了软件的机器称为扩充机器,又称虚拟机。(封装的思想)
2 操作系统的四个特征
并发、共享、虚拟、异步。
2.1 并发
并发:两个或多个事件在同一时间间隔内发生,这些事件在宏观上是同时发生的,但是在微观上是交替发生的。
并行:两个或多个事件在同一时刻同时发生
操作系统的并发性指计算机系统中同时存在着多个运行着的程序。一个单核 CPU 同一时刻只能执行一个程序,OS负责协调多个程序交替执行。
操作系统是伴随着多道程序技术而出现的,因此操作系统适合程序并发一起诞生的。
当今 PC 一般是多核 CPU,这意味着同一时刻可以有多个程序并行执行,但是 OS 系统的并发性仍旧是必不可少的。
2.2 共享
共享指的是资源共享,指的是资源可以供内存中多个并发执行的进程共同使用。
其中资源共享,又分为两种,分别是互斥共享方式和同时共享方式。互斥共享有时候微观上也是在同时访问资源的,比如说扬声器播放歌+游戏背景音。
互斥共享比如说是摄像头、打印机的使用;同时共享比如说是文件A、B分别发给小明和小亮,宏观上同时读取发送文件,微观上是交替访问硬件资源。
其实这里的互斥共享主要在于无法实现宏观上同时,由于某些原因,不够快(摄像头),或者是逻辑上根本达不到共享(打印机)
2.3 并发和共享关系
并发性指的是计算机系统中同时存在多个运行着的程序
共享性是指系统中的资源可以供多个并发性执行的程序共同使用。
2.4 虚拟
虚拟指的是把物理上的实体变成若干个逻辑上的对应物。物理实体是实际存在的,逻辑上是指用户感受到的。
如内存 -> 虚拟内存。
处理器 -> 虚拟处理器(微观上处理机交替为进程服务)
虚拟技术:时分复用和空分复用
2.5 异步
多道程序环境下,允许多个程序并发执行,但是由于资源有限,进程的执行并不是一贯到底,而是走走停停,以不可预知的速度向前推进。
如果失去了并发性,系统串行处理各个进程,每个进程便会一贯到底,不存在异步性。
2.6 小结
3 操作系统的发展与分类
3.1 手工操作阶段
纸带 + 打孔机 + 纸带机
1.等待慢速输入输出,CPU处理速度快,人机速度矛盾,导致计算机资源利用率低。
2.用户独占全机
3.2 批处理阶段--单道批处理系统
脱机输入、输出技术(用磁带完成),并监督程序负责控制作业的输入输出。
1.一定程度上缓解了人机矛盾,提高资源利用率利用率
2.但是内存中仅仅能有一道程序运行,CPU有大量时间是在空闲等待 I/O 完成
3.3 批处理阶段--多道批处理系统
- 程序并发执行,共享计算机资源,利用率大幅提高
- 但是用户响应时间长,没有人机交互能力。
3.4 分时操作系统
以时间片为单位,轮流为各个用户/作业服务,解决了人机交互问题
但不能优先响应一些紧急任务
3.5 实时操作系统
可以优先响应一些紧急任务,某些紧急任务不需要时间片排队。
主要特点是 实时性和可靠性
3.6 其他操作系统
3.7 小结
4 操作系统的运行机制和体系结构
4.1 运行机制
指令是处理器CPU能够识别、执行的最基本命令。分为特权指令和非特权指令。
CPU如何判断当前是否可以执行特权指令?
4.2 操作系统内核
内核是计算机配置上的底层软件,是操作系统最基本最核心的部分。
实现操作系统内核功能的程序就是内核程序。
4.3 操作系统的体系结构
操作系统的体系结构:大内核和微内核
4.4 小结
5 中断和异常
操作系统引入中断机制,实现多道程序并发执行
系统调用是内中断,可以是请求输出,CPU切换为核心态,对中断进行处理
5.1 中断的概念和作用
5.2 中断的分类
主要分为内中断和外中断,判别标准是否和当前正在执行的指令有关。
5.3 外中断的处理过程
5.4 小结
6 系统调用
6.1 什么是系统调用,有何作用
系统调用的相关处理需要在核心态下进行。
6.2 系统调用和库函数的区别
应用程序是可以通过使用汇编语言的程序来系统调用。
6.3 系统调用背后的过程
下图中的参数 x 执行了系统调用号,int 是 interrupt 缩写