考纲内容
(一)进程与线程
- 进程的概念;进程的状态与转换
- 进程控制;进程组织
- 进程通信;线程概念与多线程模型
(二)处理机调度
- 调度的基本概念;调度时机、切换与过程
- 调度的基本准则;调度方式;经典调度算法
(三)进程同步
- 进程同步的基本概念
- 实现临界区互斥的基本方法
- 信号量;管程;经典同步问题
(四)死锁
- 死锁的概念;死锁处理策略
- 死锁预防;死锁避免;死锁的检测和解除
2.1进程与线程
知识点
- 进程的定义
- 进程是程序的一次执行过程。
- 进程是一个程序及其数据在处理机上顺序执行时所发生的活动。
- 进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。
- 线程的定义:线程是进程中的一个实体,是被系统独立调度和分派的基本单位。
- 系统发生死锁时有可能进程全部处于阻塞态,或无进程任务,CPU空闲。
- 进程申请处理器得不到满足时处于就绪态,等待处理器的调度。
- 并发进程失去封闭性是指:并发进程共享变量,其执行结果与速度有关。
- 管道实际上是一种固定大小的缓冲区,管道对于管道两端的进程而言,就是一个文件,但它不是普通的文件,它不属于某种文件系统,而是自立门户、单独构成的一种文件系统,并且只存在于内存中。它类似于通信中半双工信道的进程通信机制,一个管道可以实现双向的数据传输这一句有点问题,而同一时刻只能最多有一个方向的传输,不能两个方向同时进行。管道的容量大小通常为内存上的一页,它的大小并不受磁盘容量大小的限制。当管道满时,进程在写管道会被阻塞,而当管道空时,进程在读管道会被阻塞。
错题
4.进程与程序的根本区别是(A)
A.静态和动态特点
B.是不是被调入内存
C.是不是具有就绪、运行和等待三种状态
D.是不是占有处理器
动态性是进程最重要的特性,以此来区分文件形式的静态程序。
20.略
22.系统动态DLL库中的系统线程,被不同的进程所调用,它们是相同的线程。
程序代码经过多次创建可对应不同的进程,而同一个系统的进程(或线程)可以由系统调用的不同方法被不同的进程(或线程)多次使用。
23.PCB是进程存在的唯一标志,下列(B)不属于PCB。
A.进程ID
B.CPU状态
C.堆栈指针
D.全局变量
进程实体主要是代码、数据和PCB。因此,要清楚了解PCB内所含的数据结构内容,主要有四大类:进程标志信息、进程控制信息、进程资源信息、CPU现场信息。由上述可知,全局变量与PCB无关,它只与用户代码有关。
2.2处理机调度
知识架构
- 调度的概念
- 调度的基本概念
- 调度的层次
- 作业调度(高级调度)
- 中级调度(内存调度)
- 进程调度(低级调度)
- 三级调度的联系
- 调度的时机、切换与过程
- 进程调度方式
- 非剥夺调度方式
- 剥夺调度方式
- 调度的基本准则
- CPU利用率
- 周转时间
- 周转时间
- 平均周转时间
- 带权周转时间
- 等待时间
- 响应时间
- 典型的调度算法
- 先来先服务(FCFS)调度算法
- 短作业优先(SIJ)调度算法
- 优先级调度算法
- 非剥夺式优先级调度算法
- 剥夺式优先级调度算法
- 静态优先级
- 动态优先级
- 高响应比优先调度算法
- 时间片轮转调度算法
- 多级反馈队列调度算法
错题
3.(B)有利于CPU繁忙型的作业, 而不利于I/O繁忙型的作业。
A.时间片轮转调度算法
B.先来先服务调度算法
C.短作业(进程)优先算法
D.优先权调度算法
FCFS调度算法比较有利于长作业,而不利于短作业。所谓CPU繁忙型的作业,是指该类作业需要大量的CPU时间进行计算,而很少请求I/O操作。I/O繁忙型的作业是指CPU处理时,需要频繁地请求I/O操作。所以CPU繁忙型作业更接近于长作业。
14.下列调度算法中,(B)调度算法是绝对可抢占的。
A.先来先服务
B.时间片轮转
C.优先级
D.短进程优先
时间片轮转算法是按固定时的时间配额来运行的,时间一到,不管是否完成,当前的进展必须撤下,调度新的进程,因此它是由时间配额决定的、是绝对可抢占的。而优先级算法和短进程优先算法都可分为抢占式和不可抢占式。
28.【2012统考真题】若某单处理机多进程系统中有多个就绪态进程,则下列关于处理机调度的叙述中,错误的是(****)
A.在进程结束时能进行处理机调度
B.创建新进程后能进行处理机调度
C.在进程处于临界区时不能进行处理机调度
D.在系统调用完成并返回用户态时能进行处理机调度
选项A、B、C显然属于可以进行处理机调度的情况。对于选项C,当进程处于临界区时,说明进程正在占用处理机,只要不破坏临界资源的使用规则,就不会影响处理机的调度。
知识点
- 当前进程的时间片用完后,其状态由执行态变为就绪态。
- 时钟中断发生后,系统会修改当前进程在时间片内的剩余时间。
… | 先来先服务 | 短作业优先 | 高响应比优先 | 时间片轮转 | 多级反馈队列 |
---|---|---|---|---|---|
能否是可抢占 | 否 | 能 | 能 | 能 | 队列内算法不一定 |
能否是不可抢占 | 能 | 能 | 能 | 否 | 队列内算法不一定 |
优点 | 公平,实现简单 | 平均等待时间最少,效率最高 | 兼顾长短作业 | 兼顾长短作业 | 兼顾长短作业,有较好的响应时间,可行性强 |
缺点 | 不利于短作业 | 长作业会饥饿,估计时间不易确定 | 计算响应比的开销大 | 平均等待时间较长,上下文切换浪费时间 | 无 |
适用于 | 无 | 作业调度,批处理系统 | 无 | 分时系统 | 相当通用 |
默认决策模式 | 非抢占 | 非抢占 | 非抢占 | 抢占 | 抢占 |
公式
- 周转时间 = 作业完成事件 - 作业提交时间
- 带权周转时间 = 作业周转时间 / 作业实际运行时间
- 响应比Rp = (等待时间 + 要求服务时间)/ 要求服务时间
2.3进程同步
知识框架
- 进程同步的基本概念
- 临界资源
- 进入区
- 临界区
- 退出区
- 剩余区
- 同步(直接制约关系)
- 互斥(间接制约关系)
- 空闲让进
- 忙则等待
- 有限等待
- 让权等待
- 临界资源
- 实现临界区互斥的基本方法
- 软件实现方法
- 单标志法
- 双标志法先检查
- 双标志法后检查
- Peterson’s Algorithm算法。
- 硬件实现方法
- 中断屏蔽方法
- 硬件指令方法
- TestAndSet方法
- Swap指令
- 软件实现方法
- 信号量
- 整型信号量
- 记录型信号量
- 利用信号量实现同步
- 利用信号量实现进程互斥
- 利用信号量实现前驱关系
- 分析进程同步和互斥问题的方法步骤
- 管程
- 管程的定义
- 管程的组成
- 局部与管程的共享结构数据说明
- 对该数据结构进行操作的一组过程
- 对局部于管程的共享数据设置初始值的语句
- 管程的基本特性
- 局部与改成的数据只能被局部与管程内的过程所访问
- 一个进程只有通过调用管程内的过程才能进入管程访问共享数据
- 每次仅允许一个进程在管程内执行某个内部过程
- 经典同步问题
- 生产者-消费者问题
- 互斥信号量mutex = 1
- “满”缓冲区数信号量full = 0
- "空"缓冲区数信号量empty = n
- 读者-写者问题
- 读者计数器信号量count = 0
- 互斥信号量mutex = 1 保护count
- 互斥信号量rw = 1,保证读者和写者的互斥访问
- 哲学家进餐问题
- 互斥信号量数组chopstick[5],哲学家i左边的编号为i,哲学家右边筷子的编号为(i+1)%5
- 吸烟者问题
- 信号量offer1、offer2、offer3分别表示烟草和纸组合的资源、烟草和胶水组合的资源、纸和胶水组合的资源。信号量finish用于互斥进行抽烟动作
- 生产者-消费者问题
知识点
错题
21.一个进程映像由程序、数据及PCB组成,其中(D)必须用可重入编码编写。
A.PCB
B.程序
C.数据
D.共享数据段
共享程序段可能同时被多个进程使用,所以必须用可重入编码,否则无法实现共享功能。
29.以下关于管程的叙述中,错误的是(C)
A.管程是进程同步工具,解决信号量机制大量同步操作分散的问题
B.管程每次只允许一个进程进入管程
C.管程中signal操作的作用和信号量机制中的V操作相同
D.管程是被进程调用的,管程是语法范围,无法创建和撤销
管程的signal操作与信号量机制中的V操作不同,信号量机制中的V操作一定会改变信号量的值S=S+1。而管程中的signal操作是针对某个条件变量的,若不存在因该条件而阻塞的进程,则signal不会产生任何影响。
48.在下列同步机制中,可以实现让权等待的是(C)
A.Peterson方法
B.swap指令
C.信号量方法
D.TestAndSet指令
硬件方法实现进程同步时不能实现让权等待,故B、D错误,Peterson算法满足有限等待但不满足让权等待,故A错误;记录型信号量由于引入阻塞机制,消除了不让权等待的情况,故C正确。
2.4死锁
知识架构
- 死锁的概念
- 死锁的定义
- 死锁产生的原因
- 系统资源的竞争
- 进程推进顺序非法
- 死锁产生的必要条件
- 互斥条件
- 不剥夺条件
- 请求并保持条件
- 循环等待条件
- 死锁的处理策略
- 死锁预防
- 避免死锁
- 死锁的检测及解除
- 死锁预防
- 破坏互斥条件
- 破坏不剥夺条件
- 破坏请求并保持条件
- 破坏循环等待条件
- 死锁避免
- 系统安全状态
- 银行家算法
- 死锁检测和解除
- 资源分配图
- 死锁定理
- 死锁解除
- 资源剥夺法
- 撤销进程法
- 进程回退法
知识点
… | 资源分配策略 | 各种可能模式 | 主要优点 | 主要缺点 |
---|---|---|---|---|
死锁预防 | 保守,宁可资源闲置 | 一次请求所有资源,资源剥夺,资源按序分配 | 适用于突发式处理的进程,不必进行剥夺 | 效率低,进程初始化时间延长;剥夺次数过多;不便灵活申请新资源 |
死锁避免 | 是“预防”和“检测”的折中(在运行时判断是否可能死锁) | 寻找可能的安全允许顺序 | 不必进行剥夺 | 必须知道将来的资源需求;进程不能被长时间阻塞 |
死锁检测 | 宽松,只要允许就分配资源 | 定期检查死锁是否已经发生 | 不延长进程初始化时间,允许对死锁进行现场处理 | 通过剥夺解除死锁,造成损失 |
- 资源分配图是一个有向图,用于表示某时刻系统资源与进程之间的状态。
错题
9.【2009统考真题】某计算机系统中有8台打印机,由K个进程竞争使用,每个进程最多需要3台打印机,该系统可能会发生死锁的K的最小值是(B)
A.2
B.3
C.4
D.5
考虑极端情况。