文章目录
- 一、操作系统的定义
- 1.1 操作系统的功能和目标
- 1.2 操作系统的特征
- 1.3 操作系统的发展和分类
- 1.4 操作系统的运行机制
- 1.5 操作系统内核
- 1.6 操作系统的体系结构
- 二、中断机制
- 中断和异常
- 三、系统调用
- 3.1 系统调用的分类(按功能分配)
- 3.2 系统调用和库函数(高级语言)的区别
- 3.3 系统调用的背后过程
- 四、进程
- 4.1 进程的来源
- 4.2 进程的定义
- 4.3 进程的组成
- 4.4 进程控制块的组织方式
- 4.5 进程的特征
- 4.6 进程的状态与转换
- 4.6.1 进程的状态
- 4.6.2 进程状态的转换
- 4.7 进程控制
- 4.7.1 原语
- 4.7.2 进程控制相关的原语
一、操作系统的定义
操作系统(Opeating System)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供用户和其他软件方便的接口和环境,它是计算机系统中最基本的系统软件。
1.1 操作系统的功能和目标
1.2 操作系统的特征
重要考点:
- 理解并发和并行的区别
- 并发和共享互为存在条件
- 没有并发和共享,就谈不上虚拟和异步,因此并发和共享是操作系统的两个最基本的特征。
1.3 操作系统的发展和分类
- 手工操作阶段
- 批处理系统
- 单道批处理系统(引入脱机输入输出技术)
- 优点:缓解人机速度矛盾
- 缺点:资源利用率依然很低
- 多道批处理系统(操作系统开始出现)
- 优点:多道程序并发执行,资源利用率高
- 缺点:不提供人机交互功能
- 单道批处理系统(引入脱机输入输出技术)
- 分时操作系统
- 优点:提供人机交互功能
- 缺点:不能优先处理紧急任务
- 实时操作系统
- 硬实时系统
- 必须在绝对严格的规定时间内完成处理
- 软实时系统
- 能接受偶尔违反规定时间
- 优点:能优先处理紧急任务
- 硬实时系统
- 网络操作系统
- 分布式操作系统
1.4 操作系统的运行机制
最常考知识点:
- 特权指令只能在核心态下执行
- 内核程序只能在核心态下执行
- 核心态、用户之间的切换
1.5 操作系统内核
1.6 操作系统的体系结构
二、中断机制
- 当中断发生时,CPU立即进入核心态
- 当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理
- 对于不同的中断信号,会进行不同的处理
-
发生中断,意味着?
就意味着需要操作系统介入,开展管理工作,由于操作系统的管理工作(比如进程切换、分配I/O设备等)需要使用特权指令,因此CPU要从用户态转为核心态。中断可以使CPU从用户态切换为核心态,使操作系统获得计算机的控制权。有了中断,才能实现多道程序并发执行。
-
用户态和核心态之间的切换是怎么实现的?
答:“用户态->核心态”是通过中断实现的。并且中断是唯一途径。
“核心态->用户态”的切换是通过执行一个特权指令,将程序状态字(PSW)的标识位设置为“用户态”。
中断和异常
三、系统调用
目的:为了避免各个进程随意使用系统资源,用户进程想要使用共享资源只能通过系统调用像操作系统发出请求。操作系统对哥哥请求协调处理。
3.1 系统调用的分类(按功能分配)
凡是与资源相关的操作、会直接影响到其他进程的操作一定需要操作系统介入,即需要通过操作系统调用来实现。
3.2 系统调用和库函数(高级语言)的区别
- 系统调用是操作系统向上层提供的接口
- 有的库函数式对系统调用的进一步封装
- 当今编写的应用程序大多是通过高级语言提供的库函数间接地进行系统调用
3.3 系统调用的背后过程
- 传递系统调用参数
- 执行陷入指令(用户态)
- 执行系统调用相应服务程序(核心态)
- 返回用户程序
注意:
陷入指令(trap、interrupt)
- 陷入指令是在用户态执行,执行陷入指令之后立即引发一个内中断,从而CPU进入核心态。
- 发出系统调用请求是在用户态,而对系统调用的相应处理在核心态下进行。
- 陷入指令是唯一一个只能在用户态执行,而不可在核心态执行的指令。
四、进程
4.1 进程的来源
在多道程序环境下,程序的执行属于并发执行,此时失去了一个程序执行的封闭性,并具有间断性,以及其运行结果不可再现性的特征。这样程序的运行失去了意义,因此为了让程序并发执行,并且可以对并发执行的程序加以描述和控制,人们引入了“进程“的概念。也就是将程序再细分出进程。
4.2 进程的定义
定义:进程是程序的一次执行过程(进程实体的运行过程),是系统进行资源分配和调度的独立单位。(引入线程前的说法)
操作系统利用一个专门的数据结构PCB来描述进程的基本情况和活动,程序段+数据段+PCB=进程实体(进程映像)
-
一般情况下,把进程实体简称为进程。所谓创建进程,实质上是创建进程实体中的PCB;撤销进程,实质上是撤销进程实体中的PCB。⚠️PCB是进程存在的唯一标志
-
严格来说,进程实体和进程是不一样的,进程是动态的,进程实体则是静态的。
4.3 进程的组成
进程(进程实体)=程序段+数据段+PCB(进程控制块,Process Control Block)
操作系统通过PCB来管理进程,PCB中包含操作系统对其进行管理所需的各种信息。
4.4 进程控制块的组织方式
一个系统中有许多PCB,那么如何对他们进行有效的管理,用什么适当的方式将这些PCB组织起来。
- 线性方式
- 将系统中所有的PCB组织在一张线性表中
- 线性表的首地址存放在内存中的一个专用区域
- 链接方式
- 按照进程状态将PCB分为多个队列
- 操作系统持有指向各个队列的指针
- 索引方式
- 根据进程状态的不同,建立几张索引表
- 操作系统持有指向各个索引表的指针
链接方式示意图:
4.5 进程的特征
- 动态性–最基本的特征
- 进程是程序的一次执行过程,是动态差生、变化和消亡的
- 并发性
- 内存中有多个进程实体,各进程可并发执行
- 独立性
- 进程是能独立运行、独立获得资源、独立接受调度的基本单位
- 异步性
- 各进程按各自独立的、不可预知的速度向前推进,操作系统要提供“进程同步机制”来解决异步带来的不确定性问题
- 结构性
- 每个进程都会配置一个PCB。结构上看,进程由程序段、数据段、PCB组成。
4.6 进程的状态与转换
4.6.1 进程的状态
三种基本状态
- 运行态——占有CPU,并在CPU上运行
- 就绪态——已具备运行条件,但由于没有空闲CPU,而暂时不能运行
- 阻塞态(等待态)——因等待某一事件而暂时不能运行
另外两种状态
- 创建态——进程正在被创建,操作系统为进程分配资源、初始化PCB
- 终止态——进程正在从系统中撤销,操作系统会回收进程拥有的资源、撤销PCB
4.6.2 进程状态的转换
4.7 进程控制
进程控制就是实现进程状态的转换。进程控制用的程序段是由原语实现的。
4.7.1 原语
原语的特点是执行期间不允许中断,是一个不可分割的基本单位,它是采用“关中断指令”和“开中断指令”实现的,以此达到不可分割的特性。
4.7.2 进程控制相关的原语
无论哪个原语都要做三件事:
- 更新PCB中的信息,如修改进程状态标志,将运行环境保存到PCB、从PCB恢复运行环境。
- 将PCB插入合适的队列
- 分配/回收资源
-
创建原语
无–>创建态–>就绪态
-
撤销原语
进程终止:就绪态/阻塞态/运行态–>终止态–>无
-
阻塞原语
运行态–>阻塞态
-
唤醒原语
阻塞态–>就绪态,与阻塞原语成对出现
-
切换原语
运行态–>阻塞态/就绪态,就绪态–>运行态