01概论
- 概念:操作系统(Operating System, OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配;以提供给用户和其他软件方便的接口和环境;它是计算机系统中最基本的系统软件
- 操作系统是系统资源的管理者
- 向上层提供方便易用的服务
- 是最接近硬件的一层软件
没有任何软件支持的计算机成为裸机。在裸机上安装的操作系统, 可以提供资源管理功能和方便用户的服务功能,将裸机改造成功能 更强、使用更方便的机器 通常把覆盖了软件的机器成为扩充机器,又称之为虚拟机
-
用户与接口
-
命令方式
- 联机命令(交互式命令),就是在dos 或者终端下输入命令
- 脱机命令(批处理命令),就是bat 和 shell 脚本
-
系统调用方式
- os提供了一组系统调用(函数),用户通过写代码来调用,比如滴滴声音
-
-
图形、窗口方式
它允许用户通过屏幕上的窗口和图标来实现与操作系统的通信并取得它的服务
-
资源管理者
- 处理机管理
- 用于分配和控制处理机
- 存储器管理
- 主要负责内容的分配于回收
- I/O设备管理
- 负责IO设备的分配与操纵
- 文件管理
- 负责文件的存取、共享和保护
- 处理机管理
-
扩充机器
- 比如虚拟机,本身是一个软件,但是搞成了一台仿真机,也就是覆盖了必要的几个软件就是扩充机器或者虚拟机,几个必要的软件是指计算机组成与原理里面提到:
- 微程序机器(微指令系统)
- 传统机器(机器语言)
- 虚拟机器M2(操作系统)
- 虚拟机器M3(汇编语言机)
- 虚拟机器M4(高级语言机)
- 比如虚拟机,本身是一个软件,但是搞成了一台仿真机,也就是覆盖了必要的几个软件就是扩充机器或者虚拟机,几个必要的软件是指计算机组成与原理里面提到:
02特征
- 并发性 ,并发性指计算机系统中同时存在着多个运行着的程序
- 1个cpu 三个任务来回切换
- 并行性 3个cpu 真的分给3个任务
并发是并行在宏观上的样子
-
共享性,共享性是指系统中的资源可供内存中多个并发执行的进程共同使用。
- 互斥共享
- 同时访问方式(比如音乐)
-
虚拟性,虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体(前者)是实际存在的,而逻辑上对应物(后者)是用户感受到的。
- 时分复用技术,还是上面1个cpu 3个任务的例子
- 空分复用技术 把一块硬盘从逻辑上分成了几个盘符,实际是一个
- 异步性,异步是指在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的, 而是走走停停,以不可预知的速度向前推进,这就是进程的异步性
- 1个cpu3个任务的例子
- 3个任务推进是断断续续的,不可预知的往前推进,不知道谁先结束
03发展与分类
-
手工操作 (无操作系统) 很久很久以前
- 缺点
- 用户独占全机
- cpu等待人工操作
- 缺点
-
批处理系统
- 单道批处理系统
- 特点:自动性、顺序性、单道性、就是没有并发性
- 缺点:比如I/O操作时,这个时候用户输入很慢,CPU无事可做
- 多道批处理系统
- 特点:多道性,宏观上多任务并行、微观上任务分片串行
- 优点:由于提高了cpu、内存和I/O设备的利用率,因此系统吞吐量得到提高
- 单道批处理系统
-
分时操作系统(计算机以时间片为单位轮流为哥哥用户服务,主要解决了人机交互问题)
-
实时操作系统(软实时12306,硬实时导弹控制系统)
-
网络操作系统
-
分布式操作系统
-
个人计算机操作系统
04操作系统的运行机制
程序是怎么样运行的?
内核程序vs应用程序
特权指令vs非特权指令
- cpu能够判断指令类型,怎么判断现在运行的是内核程序还是应用程序
- cpu有个寄存器程序状态寄存器psw 表示
特权指令:启动I/O、内存清零、修改程序状态字、设置时钟、允许/禁止中断、停机
非特权指令:控制转移、算术运算、访管指令、取数指令
cpu有两种状态
- 内核态,特权指令和非特权指令都可以执行
- 用户态,只能执行非特权指令
内核态——>用户态:执行一条特权指令——修改PSW的标志位为“用户态”,这个动作意味着操作系统 将主动让出CPU使用权
用户态——>内核态:由“中断”引发,硬件自动完成变态过程,触发中断信号意味着操作系统将强行夺 回CPU的使用权`
05中断和异常
中断的作用
- 让操作系统内核强行夺回CPU的控制权,中断技术是并发的根本
- 使cpu从用户态变为内核态
中断的类型
- 内中断(与当前执行的指令有关)后面称异常
- 外中断(与当前执行的指令无关,中断信号来源CPU外部)后面称中断
中断机制的基本原理
- 检查中断信号(底层由硬件实现,有兴趣可以看下计算机组成与原理)
内中断,cpu在执行指令时,会去检查是否有异常发生
外中断,每个指令周期末尾,cpu都会检查是否有外中断信号需要处理 - 其实就是不同的中断信号,需要用不同的中断处理程序来处理,有个中断向量表会被查询
重要理解中断工作原理,检查中断信号,中断处理程序
06系统调用
-
背景
- 操作系统是用户和计算机硬件的接口,需要向上提供一些简单易用的服务。主要包括命令接口和程序接口。
- 其中,程序接口就是由一组系统调用组成。
- 应用程序可以通过系统调用来请求获得操作系统内核的服务
-
什么功能要用到系统调用
凡是与共享资源有关的操作,比如打印机即I/O操作,文件管理,存储分配等,都必须通过系统调用的方式向操作系统内核提出服务请求,由操作系统内核代为完成。这样可以保证系统的稳定性和安全性,防止用户进行非法操作。
-
系统调用过程(大臣(应用程序)对太监(cpu)说,请求皇帝(内核程序)发粮食,会引发异常,切换成核心态)
- 传参
- 陷入指令/trap/访管(引发内中断)
- 由操作系统内核程序处理系统调用请求
- 操作系统处理完后把处理机返回应用程序
-
补充,系统调用,可以理解为变相的特权指令,普通程序是不能用特权指令的,所以有需要的时候用系统调用
07操作系统的体系机构
-
大内核
- 将操作系统的主要功能模块都作为系统内核,运行在内核态(进程管理、存储器管理,设备管理,时钟管理,中断处理,原语)
- 优点:2次变态,高性能
- 缺点:内核代码多大,代码难以维护
-
小内核
- 只保留基本的功能在内核(时钟管理,中断处理,原语)
- 优点:内核功能小,结构清晰,容易维护
- 缺点:最多6次变态,需要频繁在核心态和用户态之间切换,性能低