1.1 操作系统的基本概念
1.1.1 操作系统的概念和功能
系统资源:指的硬件和软件资源
1、作为系统资源的管理者
2、向上层提供方便易用的服务
采用了封装思想
GUI 图形化用户接口
联机命令接口 (又称交互式命令接口)
就是小黑框,特点:用户说一句,系统做一句,就好比在小黑框里输入一个命令就只回复一个命令
脱机命令接口 (又称批处理命令接口)
特点:用户说一堆,系统跟着做一堆
程序接口(程序员使用)
可以在程序中进行系统调用来使用程序接口。普通用户不能直接使用程序接口,只能通过程序代码间接使用
系统调用:又称广义指令,类似于函数调用,是应用程序请求操作系统服务的唯一方式。
小结:
操作系统主要向用户提供命令接口和程序接口(系统调用),此外还提供图形接口,当然,图形接口其实是调用了系统调用而实现的功能。
3、作为最接近硬件的层次
需要实现对硬件机器的拓展
裸机:没有任何软件支持的计算机。
在裸机上安装的操作系统,可以提供资源管理功能和方便用户的服务功能,将裸机改造成功能更强、使用更方便的机器。
通常把覆盖了软件的机器称为扩充机器,又称虚拟机。
小结:
1.1.2 操作系统的四个特征
1、并发(最基本的特性)
指两个或多个事件在同一时间间隔内发生。这些事件 宏观上是同时发生的,但是 微观上是交替发生的
对比 -----> 并行:
指两个或多个事件在同一时刻同时发生。
例子:
重要考点:
单核CPU VS 多核CPU:
单核CPU同一时刻只能执行一个程序,各个程序只能并发执行。
多核CPU同一时刻可以同时执行多个程序,多个程序并行执行。
2、共享
即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。
例子:
并发和共享的关系
互为存在条件
3、虚拟
指把一个物理上的实体变为若干个逻辑上的对应物。物理实体(前者)是实际存在的,而逻辑上对应物(后者)是用户感受到的。
例子1:
例子2:
利用多道程序设计技术把一个物理上的CPU虚拟为多个逻辑上的CPU,称为虚拟存储器
4、异步
如果失去了并发性,即系统只能串行地运行各种程序,那么每个程序的执行会一贯到底。只有系统拥有并发性,才有可能导致异步性
例子:
小结:
1.2 操作系统的发展与分类
1.2.1 手工操作阶段
主要缺点:
- 用户独占全机,虽然不会出现因资源已被其他用户占用而等待的现象,但资源利用率低。
- CPU等待手工操作,CPU的利用不充分。
1.2.2 批处理阶段–单道批处理系统
引入脱机输入/输出技术(用外围机+磁带完成),并由监督程序负责控制作业的输入、输出。
监督程序------>操作系统的雏形。
特征:
- 自动性
- 顺序性(正常情况下,先调入内存的作业先完成)
- 单道性
主要优点:
缓解了一定程度的人机速度矛盾,资源利用率有所提升。
主要缺点:
- 内存中仅能有一道程序运行,只有该程序运行结束后才能调入下一道程序。
- CPU有大量的时间是在空闲等待I/O完成。资源利用率依然很低。
1.2.3 批处理阶段–多道批处理系统
特征:
- 多道------->计算机内存中同时存放多道相互独立的程序。
- 宏观上并行
- 微观上串行
- 制约性 ----->程序的执行因为共享资源而相互制约
- 间断性------->一个程序的执行是走走停停的
- 共享性------->多道程序共享资源
- 有并发和并行的特点
主要优点:
主要缺点:
1.2.4 分时操作系统
分时系统也是支持多道程序设计的系统,但它不同于多道批处理系统。
多道批处理系统是实现作业自动控制而无须人工干预的系统,而分时系统是实现人机交互的系统。
特征:
- 同时性------>多个终端用户同时使用一台计算机。
- 交互性
- 独立性
- 及时性
1.2.5 实时操作系统
特征:
能对控制对象做出及时反应,可靠性高,响应及时,但资源利用率低。
主要优点:
能够优先响应一些紧急任务,某些紧急任务不需时间片排队。
在实时操作系统的控制下,计算机系统接收到外部信号后及时进行处理,并且要在严格的时限内处理完事件。实时操作系统的主要特点是及时性和可靠性。
1、硬实时系统
必须在绝对严格的规定时间内完成处理。
如:导弹控制系统,自动驾驶系统
2、软实时系统
能接受偶尔违反时间规定。
如:12306火车订票系统、银行管理系统。
1.2.6 其他几种操作系统(了解)
小结:
1.3 操作系统运行环境(重点)
1.3.1 操作系统的运行机制
1、内核程序 VS 应用程序
2、特权指令 VS 非特权指令
- 应用程序只能使用“非特权指令”,如:加法指令、减法指令等
- 操作系统内核作为“管理者”,有时会让CPU执行一些“特权指令”,如:内核清零指令,I/O指令,开关中断指令,存取用于内存保护的寄存器等。这些指令影响重大,只允许“管理者”–即操作系统内核来使用。
在CPU设计和生产的时候就划分了特权指令和非特权指令,因此CPU执行一条指令前就能判断出其类型。
3、内核态 VS 用户态
4、内核态、用户态的切换
用户态-------->核心态:是由硬件完成
核心态-------->用户态:是由操作系统程序执行后完成的
小结:
1.3.2 中断和异常
1、中断的作用
“中断”是让操作系统内核夺回CPU使用权的唯一途径。
“中断”会使CPU从用户态变为内核态,使操作系统重新夺回对CPU的控制权。
2、中断的类型
内中断例子
- 试图在用户态下执行特权指令
- 执行除法指令时发现除数是0 --——>若当前执行的指令是非法的,则会引发一个中断信号。
外中断例子
- 时钟中断——由时钟部件发来的中断信号
- I/O中断——由输入/输出设备发来的中断信号
3、中断的分类
故障异常和陷入异常属于软件中断(程序性异常)
终止异常和外部中断属于硬件异常。
外中断又可分为:可屏蔽中断、不可屏蔽中断,异常属于不可屏蔽中断。
4、中断机制的基本原理
小结:
1.3.3 系统调用(又称广义指令)
1、系统调用
操作系统作为用户和计算机硬件之间的接口,需要向上提供一些简单易用的服务。主要包括命令接口和程序接口。其中,程序接口是由一组系统调用组成。
“系统调用”是操作系统提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以通过系统调用来请求获得操作系统内核的服务。
2、系统调用与库函数的区别
3、系统调用分类
4、系统调用的过程
小结:
1.3 小节习题知识点:
-
输入/输出指令(I/O指令)是特权指令,所以输入/输出指令要在核心态下才能运行。
-
特权指令只能由内核即操作系统使用,内核可以执行处理器能执行的任何指令,用户程序只能执行出特权指令外的指令。
-
常见的特权指令:
输入输出指令(I/O指令)、开中断指令、关中断指令、修改PSW指令
-
通道技术:通道是一种硬件(小型CPU),可以执行I/O指令,从而管理I/O设备的工作
-
系统调用:
目的是为了使系统更稳定、安全,防止用户非法操作,所以将系统的核心功能封装成系统调用,但在系统调用过程中需要用户态和核心态的切换,造成效率降低,所以在一些专业性较强、实时性较高的操作系统中,可以不提供系统调用,以换取效率,如火箭,卫星上使用的操作系统
- 中断处理是操作系统必须提供的功能。
- 访管中断:由访管指令(trap指令)引起的中断。不是说任意的由用户引起的中断就是访管中断
- 在操作系统的功能组成部分中需要硬件支持的:
时钟管理------->需要硬件定时器,定期发出时钟脉冲
地址映射------->需要地址变换相关的硬件机构
中断系统-------->如:中断向量地址形成部件
-
在内核态下,CPU可以执行任何指令,在用户态下CPU只能执行非特权指令。
-
特权指令只能在核心态下执行,非特权指令既可以在核心态下执行,也可以在用户态下执行(但是访管指令仅在用户态下执行)
-
发出系统调用是在用户态下
-
执行系统调用是在核心态下
| 常见的非特权指令 | 常见的特权指令 |
| — | — |
| 取数指令 | 开中断指令 |
| 存数指令 | 关中断指令 |
| 读时钟指令 | 写时钟指令(置时钟指令) |
| 加减乘除等算数运算指令 | 输入/输出指令(I/O指令) |
| 寄存器清零指令 | 写PSW寄存器的指令 |
| 压栈/弹栈指令(push/pop) | |
| 跳转指令(转移指令)(JMP) | |
| trap指令(陷入指令)(访管指令) | |
| 设置断点指令 | |
| | | -
-
从用户态切换到内核态必定是通过“中断”实现。
-
只要发生中断,就需要对中断进行处理,也必然会切换到内核态。
-
-
1.4 操作系统体系结构
1.4.1 操作系统的内核
操作系统内核需要运行在内核态
操作系统的非内核功能运行在用户态
1.4.2 操作系统的体系结构
小结:
1.4 新增考点:(选择题)
分层结构
功能分层设计
模块化
宏内核、微内核
微内核:
内核足够小、基于客户/服务器模式(C/S模式)、应用“机制与策略分离”原理、采用面向对象技术
微内核:
由于微内核结构能有效支持多处理机运行,故非常适合于分布式系统环境。
外核:
小结:
1.5 操作系统引导(boot)
1.6 虚拟机
传统计算机
虚拟机
同义术语:虚拟机管理程序/虚拟机监控程序/VMM/Hypervisor
虚拟机:使用虚拟化技术,将一台物理机器虚拟化为多台虚拟器(VM),每个虚拟机器都可以独立运行一个操作系统