1.1.1什么是操作系统?(操作系统的基本概念)
操作系统:(本质还是软件)
是系统资源的管理者(安全高效的管理)
文件管理
处理机管理
存储器管理
设备管理(硬件)
向上层提供服务
把下层一些丑陋的功能封装成一些接口,向上对用户提供方便的服务
GUI接口
命令接口
联机命令接口(交互式)→给用户直接使用
脱机命令接口(批处理命令接口)→给用户直接使用
程序接口:系统调用功能(例如c语言的printf() →给软件/程序员用的
向下接近硬件
1.1.2操作系统的特征
1.并发:宏观上是同时发生,微观上是交替进行(并行是多个事件同时发生)
操作系统的并发性:计算机系统中存在着多个运行着的程序。
p.s. 描述cpu 几核,就是可以允许几个程序并行运行。
2.共享性:指系统中的资源可供内存中多个并发执行的进程共同使用。
并发和共享是互为存在条件的。
3.虚拟性:虚拟cpu技术:把物理上的一个实体分为逻辑上的若干对应物
空分复用技术:比如一个软件运行需要的内存是4gb,但是用户看来,打开的软件所占内存不止4gb→虚拟存储器技术。
时分复用技术→1核的cpu可以处理多个软件。处理机在各个微小的时间内交替为各个进程服务
4.异步性:进程的执行是走走停停的,因为资源有限,当一个进程在使用该资源时,另一个进程就会
暂时停止
1.2操作系统的发展和分类
1.手工操作阶段
用户手动输入(打纸袋)→处理器远远比用户输入的快:
- 缺点:一个时间段只能为一个用户提供服务,人机速度矛盾。资源利用率低
2.批处理阶段
单道批处理系统
脱机输入(磁带)→外围机→监督程序→输出
缺点:不具有并发的特点。一次只能执行一个程序
多批道批处理系统:
向内存中输入多道程序→具有了并发的特性
*缺点:没有人机交互的功能,只能看最后的输出结果,2.响应时间长
3.分时操作系统
计算机以时间片为单位轮流为用户服务:解决了人机交互问题
缺点:对每个用户分配的时间都是公平的,不能处理一些紧急要求。
4.实时操作系统:
- 在接收到紧急信号后进行处理。并且在严格的时间内将事件处理完成
特点:及时性和可靠性
分类:
硬实时:不接受时间规定,必须严格执行→导弹武器
软实时:偶尔接受。→12306
5 其他操作系统
1.3.1操作系统的运行机制和体系结构
1.两种cpu状态、两种指令、两种程序是一一对应的。
两种指令:
特权指令
非特权指令
两种状态:
用户态(目态)
核心态(管态)
两种程序:
- 内核程序
- 应用程序
2.操作系统的内核
操作系统:
1、非内核功能
2、内核功能:最接近硬件的底层软件,是操作系统最基本最核心的部分→1.[时间管理,中断处理,原语]这三部分是最接近硬件的。2. 对系统资源管理的功能(例如任务管理器)。有些操作系统并不会将资源管理器归为内核功能,所以由此引出了大内核和微内核
大内核:将主要功能模块都运行在核心态
优点:高性能
-缺点:结构混乱,不易于维护
微内核:只将主要功能保留在核心态,
- 优点:功能少,结构清晰,易于维护
-缺点:要频繁在用户态和核心态直接切换,性能低
1.3.2中断和异常→
中断是cpu从用户态改为内核态的唯一方式
cpu上会运行操作系统内核程序和应用程序
在合适情况下,cpu的控制权会交给应用程序(用户态),在一定情况下,中断会将cpu的使用权从新给内核程序,从用户态变为内核态。
中断:
内中断(也称异常、例外):由cpu内部发出的一个指令,引发内中断→
陷入、程序自己抛出的
故障:出故障了,还能调节
终止→致命错误:一般会被直接终止。
外中断(也称“中断”):来源cpu外部
例:时钟中断
I/O中断——由输入输出设备发来的信号
1.3.3 系统调用
系统调用就是操作系统为应用程序和程序员提供的调用系统的接口
用到系统调用的地方:
例如设备管理、文件管理等等(资源共享之类的操作)
过程:
传参→陷入指令→系统内核进行调用→return
1.4操作系统的体系结构:
大内核→1.3.1
微内核→1.3.1
分层结构:
一层接一层,每一层只能调用自己的下一层,从第一层开始,接触硬件
- 优点:容易debug。-
- 缺点:
1.难以很清晰的划分界限,
2.效率低
模块化
将内核分为各个模块
内核=主模块(核心功能)+可加载模块
优点:各个模块可以相互调用
缺点:难debug,因为可以互相调用
外核
内核只负责和硬件资源分配无关的工作。这些工作交给外核
外核可以给用户进程分配未经抽象的硬件资源(如果用户进程他有要求一片连续的内存空间,他就可以分配。实在物理上实实在在存在的。)
优点:
可以直接分配"不虚拟,不抽象"的硬件资源。
减少了操作系统在分配内存时进行的虚拟映射。提升效率
缺点
降低了一致性,是系统更加复杂(有的内存是虚拟映射的,有的是实实在在的)
1.5虚拟机
虚拟机管理程序:
第一类直接运行在硬件上(学校机房的电脑)
性能更好
资源分配方式不抽象,直接控制分配物理资源
可迁移性差
相同硬件可以资源可以支持更多虚拟机
运行权限高