目录
本篇博客参考自王道考研计算机的操作系统部分内容
【王道计算机考研 操作系统】https://www.bilibili.com/video/BV1YE411D7nH?p=11&vd_source=70586cfbe12502eb00ef1b5feee78bc7
一.概念
1.操作系统:指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源分配,以提供给用户和其他软件方便的接口和环境,是计算机系统中最基本的系统软件
2.裸机:没有任何软件支持的计算机
3.虚拟机:指一种特殊的软件,他可以在计算机平台和终端用户之间创建一种环境,而终端用户则是基于这个软件所创建的环境来操作软件。
4.操作系统的特征:并发,共享,虚拟,异步
并发:指两个或多个事件在同一时间间隔内发生,这些事件宏观上是同时发生的,但微观上是交替发生的
并行:指两个或多个事件在同一时刻同时发生
共享:即资源共享,指系统中的资源可供内存中多个并发执行的程序共同使用
共享分为互斥共享和同时共享
互斥共享:指一个时间段内只允许一个进程访问该资源(QQ,微信不能同时视频)
同时共享:指允许一个时间段内有多个进程“同时”(即宏观同时,微观交替)对他进行访问
虚拟:指把一个物理上的实体变为若干个逻辑上的对应物,物理实体是实际存在的,而逻辑上的对应物是用户感受到的
虚拟技术:如虚拟存储器技术(空分复用技术),虚拟处理器(时分复用技术)
异步:指在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一步到位的,而是走走停停(资源被占用就停止,空闲就运行)以不可预知的速度向前推进
联机命令:是用户说一句系统做一句
脱机命令:是用户说一堆,系统做一堆
5.CPU有两种状态:内核态和用户态
程序状态字寄存器(PSW):CPU中有一个寄存器叫,有一个二进制位,1表示内核态,0表示用户态
内核态:运行的是内核程序,可以执行特权指令,内核态->用户态——执行一条特权指令修改PSW的标志位为用户态,此时意味着操作系统主动让出CPU使用权
用户态:运行的是应用程序,只能执行非特权指令,用户态->内核态——由中断引发,硬件自动完成变态过程,触发中断信号意味着操作系统将强行夺回CPU的使用权6.中断:指当出现需要时,CPU暂时停止当前程序的执行转而由操作系统执行处理新情况的程序和执行过程。中断是让操作系统内核夺回CPU使用权的唯一途径
内中断(异常):与当前执行的指令有关,中断信号来自CPU内部
外中断:与当前执行的指令无关,中断信号来自CPU外部
内中断分为:陷入,故障和终止
陷入:由陷入指令引发,是应用程序故意引发的,是应用程序为了进行系统调用,陷入指令是特殊的指令,但不是特权指令
故障:由错误条件引起,需要内核程序进行修复后返还CPU使用权
终止:由致命错误引起,内核程序无法修复该错误,一般不再返还CPU的使用权,直接终止该应用程序
17.操作系统引导:开机的时候,怎么让操作系统运行起来
18.虚拟机:使用虚拟化技术,将一台物理机器虚拟化为多台虚拟机器,每个虚拟机器都要可以独立运行一个操作系统
二.操作系统的特征及发展
操作系统的发展历程:
类型 | 缺点 |
手工操作阶段 | 用户独占全机,人机速度矛盾导致资源利用率极低,人工输入慢,计算机计算快 |
批处理阶段-单道批处理系统 | 内存中只能有一道程序运行,CPU有大量时间在空闲 |
多道批处理系统,操作系统诞生 | 用户响应时间长,没有人机交互功能 |
分时操作系统 | 不能优先处理一些紧急任务 |
实时操作系统(硬实时和软实时) | 无 |
操作系统发展的每一个阶段都是为了解决上一个阶段的主要缺点,使操作系统更加完善
·并发与共享为两个最基本的特征,二者互为存在条件
如果没有并发性,系统只有一个程序访问资源,资源就不需要存在共享性,如果没有共享性,不能同时访问资源,就无法同时输出资源内容,即无法实现并发
·并发和共享是虚拟和异步的必要条件
如果没有并发和共享,则没有多道程序,也就不需要实现虚拟来解决实际空间的不足,也不会造成多程序交替访问资源导致异步
单核CPU同一时刻只能执行一个程序,各个程序并发执行
多核CPU同一时刻可同时执行多个程序,多个程序可以并行的执行
三.操作系统的运行和结构
内核态与用户态的转换需要利用中断,所以操作系统的运行是在具备中断能力的基础上实现
不同的中断信号,需要不同的中断处理程序来处理,当CPU检测到中断信号后,会根据中断信号的类型亲查询“中断向量表”,以此来找到相应的中断处理程序在内存中的存放位置
用户可通过编程语言的库函数来直接调用操作系统,也可以通过应用程序或利用应用程序的库函数来直接或间接调用
编程语言会提供库函数来对系统调用进行封装,以隐藏系统调用的细节,但不是所有的库函数都要用到系统调用,而普通的应用程序则可直接进行系统调用,也可使用库函数
发出系统调用请求是在用户态,而对系统调用的相应处理在核心态下进行
凡是与共享资源有关的操作,会影响到其他进程的操作,就一定需要操作系统的介入,就需要通过系统调用来实现
操作系统的结构:
有大内核,微内核,分层结构,外核结构,模块化五种类型
特征 | 优点 | 缺点 | |
大内核 | 所有的系统功能都放在内核里 | 性能高,内核内部各种功能都可以相互调用 | 1.内核庞大,功能复杂,难以维护 2.某个功能模块出错就可能导致整个系统崩溃 |
微内核 | 只把中断,原语,进程通信等最核心的功能放入内核 进程管理,文件管理,设备管理以用户进程的形式运行在用户态 | 1.内核小,功能少,易维护,可靠性高 2.某个功能模块出错不会导致整个系统崩溃 | 1.性能低,需要频繁的切换用户态与内核态 2.用户态下的各功能模块不能直接相互调用 |
分层结构 | 内核分多层,每层可单向调用更低一层提供的接口 | 1.便于调试和验证,自底向上逐层调试验证 2.易扩充和易维护 | 1.仅可调用相邻低层,难以合理定义各层的边界 2.效率低,不可跨层调用,系统调用执行时间长 |
外核结构 | 内核负责进程调度,进程通信等功能,外核负责为用户进程分配未经抽象的硬件资源,且由外核保证资源使用安全 | 减少虚拟硬件资源的“映射层”,提高效率 | 1.降低了系统的一致性 2.使系统更复杂 |
模块化 | 将内核分为多个模块,各模块之间相互协作 内核=主模块+可加载内核模块 | 1.支持动态加载内核新的模块,增强OS适应性 2.任何模块都可以直接调用其它模块,效率高 | 1.模块间相互依赖,更难调试和验证 2.模块间的接口未必合理,实用 |
三.操作系统的引导和虚拟机
1.引导流程:
(1)CPU从一个特定主存地址开始,取指令,执行ROM中的引导程序(先进行硬件自检,再开机)
(2)将磁盘的第一块——主引导记录MBR读入内存,执行磁盘引导程序,扫描分区表
(3)从活动分区(又称主分区,即安装了操作系统的分区)读入分区引导记录PBR,执行其中的程序,一般将操作系统安装在C盘
(4)从根目录下找到完整的操作系统初始化程序(即启动管理器)并执行,完成“开机”的一系列动作
以上就是计算机开机前为了运行操作系统采取的行动
2.虚拟机分类:
第一类虚拟机运行在硬件上,各个虚拟机拥有不同的操作系统都会认为自己独占内核空间,并在内核空间运行,所以会发送特权指令
但第一类虚拟机的操作系统是运行在用户态中的,只是是在用户态中的虚拟内核空间,并且是分时交替占用CPU,所以只能发送非特权指令,但操作系统并不清楚,所以虚拟机管理程序就需要对操作系统发出的特权指令作出管理,模拟真实的硬件情况对特权指令作出回应,让其就像执行了特区指令一样
而后根据重要等级对特权指令进行了分级,即分级特权指令,0级为最高级,当操作系统发出的特权指令为最高级时,同样由虚拟机管理程序进行管理响应,但当特权指令为较低级时,其重要程度不会对内核产生重大影响,就不需要经由管理程序,直接当成非特权指令处理
第二类虚拟机运行在宿主操作系统上,各类虚拟机与宿主操作系统的进程处于平等关系,所以对于硬件资源的分配,需要经由宿主操作系统的分配(宿主操作系统也需要资源)后,再经由虚拟机管理程序的分配才给到各个虚拟机
两类虚拟机的对比:
第一类VMM | 第二类VMM | |
对物理资源的控制权 | 直接运行在硬件上,能直接控制和分配物理资源 | 运行在宿主操作系统上,需要宿主对其分配物理资源 |
资源分配方式 | 在安装Guest OS(虚拟机)时,VMM要在原本的硬盘上自习分配存储空间,类似于外核的分配方式,分配未经抽象的物理硬件 | Guest OS拥有自己的虚拟磁盘,该盘实际是上是宿主文件系统中的一个大文件,Guest OS分配到的内存是虚拟内存 |
性能 | 性能更好 | 性能更差,需要宿主作为中介 |
可支持的虚拟机数量 | 更多,不需要和宿主竞争资源,相同的硬件资源可以支持更多的虚拟机 | 更少,本身宿主需要使用物理资源,宿主运行的进程也要使用物力资源 |
虚拟机的可迁移性 | 更差 | 更好,只需导出虚拟机镜像文件即可迁移到另一台宿主上,商业化应用更广泛 |
运行模式 | 运行在最高特权(管理程序),可以执行最高特权的指令 | 运行在用户态,部分运行在内核态,Guest OS发出的系统调用会被VMM截获,转为VMM对宿主系统的调用 |