操作系统期末复习
本文参考:https://blog.csdn.net/qq_62325622/article/details/134852570、https://www.cnblogs.com/xdeyt/p/18285624
一.概论
1.简述操作系统的定义和功能。
操作系统是管理和控制计算机内的硬件和软件资源,合理地对各类作业进行调度,以方便用户使用的程序的集合 。
操作系统的功能是:处理机管理;存储器管理;文件管理;设备管理和用户接口。
2.操作系统的基本特征
并发、共享、虚拟、异步
3.操作系统运行机制和体系结构
-
指令
![image]()
-
cpu
![image]()
-
程序
![image]()
-
操作系统内核
![image]()
4.中断:中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。
5.系统调用
- 概念:应用程序请求OS内核完成某功能时的一种过程调用;用户与内核的接口
- 分类:
进程控制类
进程通信类
文件操纵类
设备管理类
信息维护类
二.进程控制
1.前趋图


程序并发执行的特征:间断性、失去封闭性、不可再现性
2.进程
定义:进程是进程实体的运行过程,是系统进行资源分配调度的一个独立单位,是程序一次执行
进程实体由程序段、相关数据段、pcb组成
特征:动态性、并发性、独立性、异步性
进程 vs 程序:
-
进程是程序的一个实例,
是程序的一次执行 -
进程是活动的,
程序是静态的 -
程序是进程的代码部分
-
进程在内存中,
程序在外存中
进程的转换

进程控制块(PCB):
概念:pcb是进程的一部分,是操作系统中最重要的记录型数据结构,是进程存在的唯一标志,常驻内存
PCB的信息:进程标识符PID、处理机状态、进程调度信息、进程控制信息
pcb的组织方式:
线式

链式

索引

进程的控制
概念:进程管理最基本的功能,一般由OS内核中的原语实现,在执行过程中不可被中断
进程控制原语:创建、撤销、阻塞、唤醒、切换
进程的通信
概念:指进程之间的信息交换
1.共享存储

2.消息传递
进程间的数据交换以格式化的消息为单位。进程通过操作系统提供的“发送消息/接收消息” 两个原语进行数据交换。

3.管道通信
用于连接一个读进程和一个写进程以实现它们之间通信的一个共享文件,又名pipe文件
管道机制的协调能力:互斥、同步、对方是否存在

3.线程
(1)概念:
有的进程需要同时做很多事,例如用QQ来进行聊天,发送文件等,而传统的进程只能串行执行一系列程序。因此,引入“线程”,来增加并发度。
可以把线程理解为轻量级的进程。
线程是一个基本的CPU执行单元,也是程序执行流的最小单位。
引入线程后,进程作为除CPU之外的系统资源的分配单元。

线程状态:执行态、就绪态、阻塞态
线程控制块TCB
(2)线程的实现
1.用户级线程ult
用户级线程的实现(借助中间系统)
优点:
线程切换不需要转换到内核空间
调度算法可以是进程专用的
线程的实现与OS平台无关
缺点:
系统调用的阻塞问题
多线程应用不能利用多处理机进行多重处理的优点
2.内核支持线程KST
内核支持线程的实现(利用系统调用)
优点
在多处理机系统中,内核可同时调度同一进程的多个线程
如一个线程阻塞了,内核可调度其他线程(同一或其他进程)
线程的切换比较快,开销小
内核本身可采用多线程技术,提高执行速度和效率
缺点
对用户线程切换,开销较大
(3)线程模型
多对一模型
多个用户级线程映射到一个内核线程

一对一模型
每个用户级线程映射到一个内核线程

多对多模型
多个用户级线程映射为相等或小于数目的内核线程

三.处理机调度与死锁
1.处理机调度
(1)分类:
高级调度(长程调度/作业调度)
调度对象:作业
主要用于多道批处理系统中
根据某种算法,决定将外存上处于后备队列中的作业调入内存,并为它们创建进程和分配必要的资源。然后,将新创建的进程排在就绪队列上等待调度
低级调度(短程调度/进程调度)
调度对象:进程
根据某种调度算法,决定就绪队列中的哪个进程应获得处理机
应用在于多道批处理、分时和实时OS
中级调度(中程调度/内存调度)
就是要决定将哪个处于挂起状态的进程重新调入内存
目的是为了提高内存利用率和系统吞吐量

(2)调度算法的评价指标
CPU利用率: CPU"忙碌"的时间占总时间的比例
系统吞吐量:单位时间内完成作业的数量。
周转时间:作业完成时的时间-作业到达时间
平均周转时间

带权周转时间:周转时间 ÷ 服务时间

响应时间:从用户通过键盘提交请求开始,直到系统首次显示出处理结果为止的一段时间。
等待时间:进程在就绪队列中等待调度的所有时间之和
2.调度算法
(1)先来先服务调度算法(FCFS):按作业到达的先后次序进行调度
比较有利于长作业,而不利于短作业

(2)短作业优先调度算法(SJF):按作业服务时间长短来调度
对长作业不利
采用SJF算法时,人-机无法实现交互
完全未考虑作业的紧迫程度
| 类型 | 核心规则 | 通俗理解 |
|---|---|---|
| 非抢占式 SJF | 进程一旦开始运行,就必须一直执行到结束,中间不会被新来的短进程打断。 | 「上车就坐到底」,不管后面上来的人多急,车都不会中途停。 |
| 抢占式 SJF | 进程运行时,如果有更短的新进程到达,会立刻抢占 CPU,让新进程先跑。也叫最短剩余时间优先(SRTF)。 | 「谁短谁插队」,只要来了更短的,CPU 就把当前进程暂停,给短进程让路。 |
非抢占式:

抢占式:

(3)优先级调度算法(PR):基于作业/进程的紧迫程度,由外部赋予作业相应的优先级,调度算法根据优先级进行调度

(4)高响应比优先调度算法(HRRN):为每个作业引入一个动态优先级,即优先级是可以改变的,令它随等待时间延长而增加,这将使长作业的优先级在等待期间不断地增加,等到足够的时间后,必然有机会获得处理机。

响应比


(5)时间片轮转(RR)调度算法:所有就绪进程按「先来先服务」排成队列,CPU 每次只给队首进程分配一个固定的时间片(比如 10ms),时间片用完后,无论进程是否执行完,都必须让出 CPU,排到就绪队列末尾,下一个进程再运行。
时间片q的选择
时间片的长度直接决定了系统性能,是 RR 算法的核心参数:
时间片过长:退化成 FCFS 算法,短进程需要等前面的长进程跑完,响应时间变差,失去了分时系统的意义。
时间片过短:进程切换(上下文切换)过于频繁,大量 CPU 时间浪费在切换上,系统整体效率下降。

(6)多级队列调度算法:把不同进程分到不同队列,每个队列用不同调度算法
(7)多级反馈队列调度算法:多个就绪队列,优先级从高到低,高优先级队列用短时间片,低优先级用长时间片;进程在队列间 “降级”
兼顾分时(短进程优先)和批处理(长进程最终也能运行),解决饥饿问题
(8)基于公平原则的调度算法
3.实时调度
(1)概念:在实时系统中,可能存在着两类不同性质的实时任务,即硬实时任务(HRT)和软实时任务(SRT),它们都联系着一个截止时间。为保证系统能正常工作,实时调度必须能满足实时任务对截止时间的要求。为此,实现实时调度应具备一定的条件。
(2)实现实时调度的基本条件:
提供必要的信息
系统处理能力强

采用抢占式调度机制
采用快速切换机制
(3)实时调度算法分类

(4)最早截止时间优先(EDF)调度算法:EDF根据任务的截止时间确定优先级,截止时间越早,优先级越高
既可用于抢占式调度,也可用于非抢占式调度
非抢占式调度用于非周期实时任务
抢占式调度用户周期实时任务
非抢占:

抢占:
| 任务 | 执行时间 C | 周期 T(截止时间 = 周期) | 利用率 C/T |
|---|---|---|---|
| A | 3 | 10 | 0.3 |
| B | 4 | 20 | 0.2 |
| C | 6 | 30 | 0.2 |
| 时间点 | 事件 | 就绪任务 | 截止时间 | 执行动作 |
|---|---|---|---|---|
| 0 | 所有任务首次到达 | A、B、C | A:10,B:20,C:30 | 截止时间最早的 A 运行 |
| 3 | A 执行完成 | B、C | B:20,C:30 | 运行 B |
| 7 | B 执行完成 | C | C:30 | 运行 C |
| 10 | C 执行到 13 时,A 的下一个周期到达 | C、A | A:20,C:30 | A 截止时间更早,抢占 C,运行 A |
| 13 | A 执行完成 | C | C:30 | 继续运行 C(剩余执行时间 3) |
| 16 | C 执行完成 | - | - | 等待下一次任务触发 |
(5)最低松弛度优先LLF算法:根据任务的紧急程度(松弛度)确定任务优先级。紧急程度越高(松弛度越低),优先级越高。松弛度=必须完成时间-其本身的运行时间-当前时间


(6)优先级倒置:采用优先级调度和抢占方式,可能产生优先级倒置。现象:高优先级进程被低优先级进程延迟或阻塞。
解决方法:
制定一些规定,如规定低优先级进程执行后,其所占用的处理机不允许被抢占
建立动态优先级继承
4.死锁
(1)概念:一组进程相互占有对方所需资源,又互相等待对方释放资源,所有进程都无法继续向前推进,陷入永久阻塞的僵持状态
区分:
死锁:多个进程互相等待,全部停滞
饥饿:个别进程长期得不到资源,其他进程正常运行
普通阻塞:等待资源,资源释放后即可恢复运行
(2)资源问题
-
可抢占性和不可抢占性资源
可抢占性资源:某进程在获得这类资源后,该资源可以再被其他进程或系统抢占,如CPU(处理机)和主存区
不可抢占资源:当系统把这类资源分配给某进程后,再不能强行收回,只能在进程用完后自行释放,如打印机、磁带机 -
可重用性资源和可消耗性资源
可重用性资源:一次只能分配给一个进程,不允许多个进程共享
可消耗性资源:由进程动态创建和消耗
死锁原因
竞争不可抢占性资源引起死锁
竞争可消耗性资源引起死锁
进程推进顺序不当引起死锁
(3)死锁的必要条件
互斥:一段时间内某资源只能被一个进程占用
请求和保持:一个至少持有一个资源的进程,等待获得由其他进程所持有的资源
不可抢占:一个资源只有当持有它的进程完成任务后,自己的释放
循环等待:等待资源的进程之间存在环




浙公网安备 33010602011771号