覆盖了操作系统概述、运行机制、中断、异常、操作系统的五大结构、虚拟机。
借鉴:王道、我的好朋友杨某、我的笔记。
一、操作系统概念
概念
1.操作系统体现了封装思想
由于底层硬件只接受二进制的指令不方便用户操作,所以操作系统把这些封装成简易的服务,
用户无需关心底层原理,只需要对操作系统发出命令即可。
2.操作系统是资源的管理者
2.1.处理机管理(CPU)
2.2.存储器管理
2.3.文件管理
2.4.设备管理
比如说以软件QQ为例子,我们在文件夹找到QQ,这些文件夹中的文件就是操作系统在管理,
体现了文件管理功能,在打开QQ程序时,操作系统需要把相关的数据都放入内存,
这体现了操作系统的存储器管理功能,在运行QQ程序时,处理机(CPU)何时运行程序,
也由操作系统来管理,这体现了处理机管理,在视频聊天时,
需要操作系统调用摄像头麦克风等等一些设备,这体现了操作系统的设备管理。
3.操作系统所处的位置
- 操作系统关系图解1:
- 操作系统图解2
==================================================================
————-GUI(图形界面)
直接给用户使用的——————| ————联机命令接口(说一句做一句)
————-命令接口———-|
————脱机命令接口(说一堆做一堆)
给软件/程序员使用的———— 程序接口————-即系统调用
==================================================================
我们通过图解1,2可以看见用户在某些情况可以直接使用操作系统(相接触的部分),比如通过GUI图形界面和命令接口(比如黑窗口命令行)或者程序员使用程序接口(也叫系统调用),应用程序通过系统调用(类似函数调用)也可以使用操作系统。
操作系统的层次:
操作系统知识点
特征:
1.并发性
并发:指的是两个或者多个事件在同一时间间隔内发生,
这些事情是在宏观上同时发生的,在微观上却是交替发生的。
并行:指两个或多个事件在同一时刻发生。
2.共享
共享指的是资源的共享,系统的资源可以供多个并发的进程共同使用,
共享的方式有两种:
1.互斥共享方式:
在一个时间段只允许一个进程访问,
qq和微信,同一时刻摄像头只能给一个进程使用。
2.同时共享方式:
在一个时间段允许多个进程“同时”对他们进行访问,
这个同时可能是微观上交替的,比如两个进程访问磁盘,会交替访问,但是在宏观上是同时的,
这个同时可能是微观上同时的,比如扬声器会同时播放游戏进程和音乐进程的声音。
注意:并发性和共享性互为存在条件,有并发性才有共享性,有共享性才有并发性。
3.虚拟
虚拟的实现主要有两种方式:
1.空分复用技术(如虚拟存储技术)
把空间划分成许多小空间,程序需要多少空间就划分多少空间,程序运行的空间相互独立。
单纯的空分复用技术只可以提高利用率,在逻辑上扩大内存,需要虚拟存储技术,
即对内存空间的分时复用,比如把一个程序所需内存较大,先运行一部分程序,另外一部分在外存,
运行完这部分再调入另外一部分到内存中去。
2.时分复用技术(如虚拟处理器技术)
把时间划分成许多小的时间片,cpu每次都执行这段时间片。
4.异步
多个程序并发执行,但是由于资源有限,进程的执行不是一贯到底的,
而是走走停停,以不可预知的速度向前推进。
如果失去了并发性,系统只能串行的运行各个程序,每个程序都会一贯到底,
只有系统拥有并发性,才可能导致异步性。
操作系统特征:
二、知识总览(操作系统的运行机制)
操作系统是如何运行的?--指令
应用程序and内核程序
特权指令 v.s. 非特权指令
内核态 v.s. 用户态
内核态、用户态 的切换
知识回顾与重要考点
中断是 “特权通行证”:只有内核态有权限处理中断,就像只有 CEO 能接见超级大客户。
切换代价:从用户态→内核态需要保存 / 恢复上下文,就像员工跑去 CEO 办公室要浪费时间,但为了处理紧急事务必须这么做。
安全隔离:用户程序不能直接操作内核资源,就像普通员工不能随便进 CEO 办公室,避免搞破坏。
三、中断与异常
中断作用:
在一些情况下,内核程序会主动让出cpu的权限,让应用程序使用cpu,
但是如果没有一些干预(中断),应用程序会一直使用cpu运行下去,
我们在前面写过操作系统有并发的特性,但是这样并发就不存在了,
所以中断就产生了,中断是让操作系统夺回cpu使用权的唯一途径。
中断的种类:
1.内中断:
内中断与当前的执行的指令有关系,中断信号来源于cpu的内部。
1.1.内中断案例:
当前试图执行特权指令,但是却在用户态。
执行当前的除法指令,但是除数却是零。
这些中断信号都与当前执行的指令有关。
2.外中断:
外中断的中断信号来源于cpu的外部,与当前的指令无关。
2.1.外中断案例:
时钟中断:由时钟部件发出来的中断信号,
时钟部件每隔一个时间片就会给cpu发送时钟中断信号,
用于处理程序的并发执行。
I/O中断:有输入输出设备发出来的中断信号,
当设备输入输出的任务完成是,I/O设备会向cpu发送中断信号。
中断的处理:
不同的中断信号需要不同的中断处理程序去处理,
中断信号根据中断向量表,找到相应的中断处理程序在内存中存放的位置。
中断向量表:
四、操作系统结构
作系统的包括内核功能和非内核功能,但是其主要的功能包括:与硬件关系紧密的模块,对数据结构操作不涉及硬件的模块,其中与硬件关系紧密的有时钟管理、中断处理、原语,对数据结构操作的有进程管理、存储器管理、设备管理等。
在众多操作系统设计结构有两种设计大内核与微内核:
将对数据结构有关操作和与硬件有关操作一并列入内核程序的叫做大内核,
将对数据结构有关操作列入非内核、硬件有关操作列入内核程序的叫做微内核,
当操作系统执行进程管理、存储器管理、设备管理等操作时,由于大内核中这些都属于内核程序,所以执行时切换两次状态,切换为内核态时执行完这三个操作,再切换为用户态,但是如果是微内核,那么执行进程管理时,此时在用户态,需要获取系统调用,切换状态,之后再回复用户态,再执行存储器管理再切换状态需要六次切换状态,比较影响系统性能。
操作系统结构设计的种类:
操作系统内核的分布:
大内核与小内核的区别:
大内核与微内核切换状态的比较:
大内核与微内核优缺点比较:
操作系统内核功能举例:
操作系统的内核设计有5种:大内核、微内核、分层结构、模块化、外核。
对于微内核来说,像一些非内核的功能请求另外一些非内核的功能,
在切换模式状态的同时,也需要进行消息传递来执行下去。
对于分层结构来说,优点是设计的层次分明,易于维护和测试,并且设计之后接口都确定了,易于拓展新的功能,但是,由于不能夸层调用,所以性能比较低。
对于模块化的结构来说,将操作系统划分为若干个有一定独立性的模块,优点是模块之间的逻辑清晰,易于维护,确定接口之后可以同时开发多个模块,并且支持动态增加新的模块,可拓展性强,并且不同模块之间可以直接相互调用,性能较高。但是由于模块之间可以相互调用,所以模块之间相互依赖,难以调试。
对于外核的结构来说,内核负责进程调度、进程通讯等功能,外核负责为用户进程分配未经抽象的硬件资源,优点是减少了虚拟硬件资源的映射层,提高了效率,缺点是:某些程序仍然需要通过虚拟的映射层,降低了系统的一致性,让系统变的更加复杂。
分层结构:
5大操作系统结构:
模块化结构:
宏内核、微内核设计结构:
5大设计结构:
五、虚拟机
传统计算机
虚拟机
两类虚拟机管理程序(VMM)的对比
支持虚拟机的CPU通常分更多指令等级
借鉴:
1、王道
3、我的好朋友杨某,只不过我每他的链接