操作系统 期末复习
zstu 浙江理工大学 2023学年第1学期 操作系统
带参考标记
※
的章节建议优先阅读带星号
*
的章节或许可以暂时略过
考前关键词速记 |
第 1 章 操作系统概述
1.1 概念
1.1.1 定义 ※
1.1.2 特征 ※
并发和共享是最基本的特征
1.1.3 目标和功能 ※
接口分为命令接口和程序接口
命令接口分为联机(交互式)、脱机(批处理)
程序接口由系统调用组成
1.2 发展历程
1.2.1 手工
1.2.2 批处理 ※
1.2.3 分时 ※
1.2.4 实时 ※
题目
单道批处理系统和多道批处理系统的区别
分时操作系统和实时操作系统的区别
第 2 章 进程的描述与控制
2.1 前驱图和程序执行
2.1.1 前驱图
2.1.2 程序顺序执行
顺序性、封闭性、可再现性
2.1.3 程序并发执行
间断性、失去封闭性、不可再现性
2.2 进程的描述
2.2.1 进程的定义与特征
特征:动态性、并发性、独立性、异步性
2.2.2 进程的状态与转换 ※
2.2.3 挂起操作*
就绪、阻塞状态可以被挂起
2.2.4 进程管理中的数据结构
PCB 进程控制块
组织方式
线性、链接、索引
2.3 进程控制
2.3.1 进程的创建
2.3.2 进程的终止
2.3.3 进程的阻塞和唤醒 ※
阻塞:找到PCB,保护现场,将PCB插入等待队列,下处理机
唤醒:找到PCB,移出等待队列,插入就绪队列
2.3.4 进程的挂起和激活*
2.4 进程通信
2.4.1 进程通信的类型
共享存储
消息传递
管道
客户机-服务器系统
套接字(socket)
远程过程调用(RPC)
2.5 线程
2.5.1 线程的引入
2.5.2 线程与进程的比较 ※
2.5.3 线程状态与线程控制块*
2.6 线程的实现*
2.6.1 线程的实现方式*
用户级线程
内核级线程
组合方式
2.6.3 线程的创建和终止*
第 3 章 处理机调度与死锁
3.1 处理机调度概述
3.1.1 处理机调度的层次 ※
越底层越低级
低级调度:进程
中级调度:内存
高级调度:作业
3.1.3 进程调度
3.1.4 性能指标 ※
3.2 调度算法 ※
只有与时间片轮转相关的算法是抢占的
3.2.1 先来先服务 FCFS ※
First Come First Serve
非抢占式
简单、低效、长作业有利、CPU繁忙型有利
3.2.2 短作业优先 SJF ※
Short Job First
默认非抢占式
短作业有利,饥饿
3.2.3 优先级 ※
Priority-Scheduling
高响应比优先 Highest Response Ratio Next
非抢占式
短作业有利,不饥饿
3.2.4 时间片轮转 ※
Round Robin
抢占式
注意就绪队列的排序方法是先来先服务
当一个时间片结束时,刚好有新任务到达,那么在队列中,新任务在被剥夺时间片任务的前面
3.2.5 多级队列
Multileved Queue
3.2.6 多级反馈队列
Multileved Feedback Queue, FB
题目
假设一个系统中有5个进程,它们达到时间和服务时间如图所示,忽略I/O及其他开销时间,若分别按先来先服务(FCFS)、非抢占式及抢占式短进程优先(SPF)、高响应比优先(HRRN)、时间片轮转(RR,时间片大小为1)、 多反馈队列调度算法(FB,第i及队列的时间片=2i-1) 进行CPU调度,请给出各进程的完成时间、周转时间、等待时间、带权周转时间。
3.3 实时调度
3.3.3 最早截止时间优先 ※
开始截止时间不是Deadline,在开始截止时间前开始任务即可
如果任务错过,那么该任务就取消
抢占式、非抢占式都有
3.3.4 最低松弛度优先 ※
抢占式
两任务松弛度一样时,选择先到的那个(先来先服务)
题目
对下面的5个非周期性实时任务,按最早开始截止时间优先调度算法应如何进行CPU调度?
若有3个周期性任务,任务A要求每20ms执行一次,执行时间为10ms;任务B要求每50ms执行一次,执行时间为10ms;任务C要求每50ms执行一次,执行时间为15ms,应如何按最低松弛度优先算法对它们进行CPU调度?
3.5 死锁
3.5.1 资源问题
可重用资源:eg 设备、文件
可消耗资源:eg 进程间通信的信息
可抢占资源:eg 处理机、内存
不可抢占资源:eg 磁带机、打印机
3.5.2 死锁产生的原因
3.5.3 死锁的定义、条件和处理 ※
3.5.4 资源分配图 ※
3.6 死锁预防
3.7 死锁避免
3.7.1 系统安全状态 ※
3.7.2 银行家算法 ※
安全性算法
题目
Allocation 已分配的资源
Need 还需要的资源
Work 系统剩余资源
P2提出Request的意思是要求系统立即给它Request的资源
(1)该状态是否安全?
(2)若进程P2提出请求Request(1,2,2,2)后,系统能否将资源分配给它?
在银行家算法中,若出现下面的资源分配情况:
Process Allocation Need Available |
(1)该状态是否安全?
(2)若进程P2提出请求Request(1,2,2,2)后,系统能否将资源分配给它?
(3)如果系统立即满足P2的上述请求,请问,系统是否立即进入死锁状态?
(1)是,可以找到安全序列{P0,P3,P1,P2,P4}
(2)P2发出请求向量Request(1,2,2,2)后,系统按银行家算法进行检查:
①Request’(1,2,2,2) <=Need2(2,3,5,6)
②Request‘(1,2,2,2)<=Available(1,5,2,2)
③系统先假定可为P2分配资源并修改
Available=(0,3,0,0)
Allocation’=(2,5,7,6)
Need‘=(1,1,3,4)
④进行安全性检查:此时对所有的进程,条件Need_i<=Available(0,3,0,0)都不成立,即Available不能满足任何进程的请求,故系统进入不安全状态。
此时当进程P2提出请求Request(1,2,2,2)后,系统不能将资源分配给它。
(3)并没有马上进入死锁,因为上述进程没有申请新资源并因得不到资源而阻塞。只有当提出新的请求并导致所有没有执行完的多个进程因得不到资源而阻塞时,才死锁。
3.8 死锁的检测与解除
3.8.1 死锁的检测 ※
3.8.2 死锁的解除
第 4 章 进程同步
4.1 进程同步的基本概念
4.1.1 进程同步概念的引入
4.1.2 临界区问题
4.2 软件同步机制
4.3 硬件同步机制
4.4 信号量机制
4.4.1 信号量机制介绍 ※
整形
记录型
AND型
信号量集
4.4.2 信号量的应用 ※
4.5 管程*
管程的定义
条件变量
4.6 经典的进程同步问题
4.6.1 生产者-消费者问题 ※
4.6.2 哲学家进餐问题 ※
4.6.3 读者-写者问题 ※
题目
试用记录型信号量写出一个不会死锁的哲学家进餐问题的算法。
semaphore chopsticks[]={1,1,1,1,1}; |
嗜睡的理发师问题:一个理发店由一个有N张沙发的等候室和—个放一张理发椅的理发室组成。没有顾客要理发时,理发师便去睡觉。当—个顾客走进理发店时,如果所有的沙发都已被占用,他便离开理发店;否则,如果理发师正在为其他顾客理发,则该顾客就找一张空沙发坐下等待;如果理发师因无顾客正在睡觉,则由新到的顾客唤醒理发师为其理发。在理发完成后,顾客必须付费,直到理发师收费后才能离开理发店。试用信号量实现这一同步问题。
int sofaUsed=0; |
某车站售票厅,任何时刻最多可容纳20名购票者进入,当售票厅中少于20名购票者时,则厅外的购票者可立即进入,否则需在外面等待。若把一个购票者看作一个进程,请回答下列问题:
(1)用PV操作管理这些并发进程时,应怎样定义信号量,写出信号量的初值以及信号量各种取值的含义。
(2)根据所定义的信号量,把应执行的wait/signal操作填入下面空中,以保证进程能够正确地并发执行。
parbegin pmcess PI(I=1,2,....) |
答:
(1) 定义一信号量S,初始值为20。
S>0时s的值表示可继续进入售票厅的人数
S=0时表示售票厅中已有20名顾客
S<0则|S|值为等待进入售票厅的人数
(2) 上框为P(S)、下框为V(S)
semaphore plate=1, apple=0, orange=0; |
有P1,P2,…,Pm等m个生产者进程和CA,CB两个消费者进程。它们共享可存放一个产品的缓冲区BUFFER。序号为奇数的生产者进程生产的产品供CA消费,而序号为偶数的生产者进程生产的产品供CB消费,CA或CB一旦取出产品,则各生产者均有权申请向BUFFER存放产品。试用PV操作正确实现进程的并发执行.
semaphore buffCA=0, buffCB=0, buff=1; |
第 5 章 存储器管理
5.1 存储器的层次结构
5.2 程序的装入与链接
5.2.1 地址绑定和内存保护
5.2.2 程序的装入
5.2.3 程序的链接
5.3 对换与覆盖
5.3.3 进程的换出和换入
5.4 连续分配存储管理方式
5.4.1 单一连续分配
5.4.2 固定分区分配
5.4.3 动态分区分配 ※
5.4.4 动态重定位分区分配
题目
某系统采用动态分区分配方式管理内存,内存空间为640K,高端40K用来存放操作系统。在内存分配时,系统优先使用空闲区低端的空间。对下列的请求序列:作业l申请130K、作业2申请60K、作业3申请100K、作业2释放60K、作业4申请200K、作业3释放100K、作业1释放130K、作业5申请140K、作业6申请60K、作业7申请50K、作业6释放60K,请分别画图表示出使用首次适应算法和最佳适应算法进行内存分配和回收后内存的实际使用情况。
实际过程不用那么复杂,草稿纸上模拟一下算法,很快能得出答案
5.5 分页存储管理方式
5.5.1 分页存储管理的基本方法 ※
5.5.2 地址变换机构 ※
5.5.3 引入快表后的内存有效访问时间*
5.5.4 两级页表和多级页表
题目
已知某分页系统,主存容量为64K,页面大小为1K,对一个4页大的作业,其0、1、2、3页分别被分配到主存的2、4、6、7块中。
(1)将十进制的逻辑地址1023、2500、3500、4500转换成物理地址。
(2)以十进制的逻辑地址1023为例画出地址变换过程图。
5.6 分段存储管理方式
5.6.1 分段存储管理方式的引入
5.6.2 分段系统的基本原理 ※
5.6.3 信息共享
题目
5.7 段页式存储管理方式
第 6 章 虚拟存储器
6.1 虚拟存储器概述
6.1.1 传统存储器和局部性原理
6.1.2 虚拟存储器的定义和特征
6.1.3 虚拟存储器的实现方法
6.2 请求分页存储管理方式
6.2.1 请求分页中的硬件支持
6.2.2 请求分页中的内存分配
6.2.3 页面调入策略
6.3 页面置换算法
6.3.1 最佳 先进先出 ※
6.3.2 最近最久未使用 最少使用 ※
6.3.3 Clock 页面置换算法
6.3.5 请求分页系统的内存有效访问时间
题目
在一个请求分页系统中,假如一个作业的页面走向为4,3,2,1,4,3,5,4,3,2,1,5,目前它还没有任何页装入内存,当分配给该作业的物理块数目M为3时,请分别计算采用OPT、LRU和FIFO页面淘汰算法时访问过程中所发生的缺页次数和缺页率,并比较所得的结果。
FIFO:共发生 9次缺页中断 缺页率=9/12=75%
LRU:共发生 10次缺页中断 缺页率=10/12=83.3%
OPT:共发生 7次缺页中断 缺页率=7/12=58.3%
6.4 抖动与工作集
6.4.1 抖动
6.4.2 工作集
6.5 请求分段存储管理方式
6.5.1 请求分段中的硬件支持
6.5.2 共享和保护
第 7 章 输入/输出系统
7.5 与设备无关的I/O软件
7.5.3 设备分配与回收 ※
题目
简述设备分配与回收过程。
7.5.4 逻辑设备名映射到物理设备名 ※
7.6 用户层的I/O软件
7.6.2 假脱机系统 SPOOLing ※
题目
以打印机为例说明SPOOLing的工作原理,系统如何利用SPOOLing技术将打印机模拟为虚拟打印机。
7.7 缓冲区管理
7.7.1 缓存和缓冲
7.7.2 单缓冲 双缓冲 ※
7.7.3 环形缓冲 ※
7.7.4 缓冲池 ※
7.8 磁盘性能和调度
7.8.1 概述
7.8.2 先来先服务 最短寻道时间优先 ※
7.8.3 扫描 循环扫描 ※
题目
假设磁盘有200个磁道,磁道请求对列中是一些随机请求,它们按照到达的次序分别处于55、58、39、18、90、160、150、38、184号磁道上,当前磁头在100号磁道上,并向磁道号增加的方向上移动。请给出按FCFS、SSTF、SCAN及CSCAN算法进行磁盘调度时满足请求的次序,并计算出它们的平均寻道长度。
假定磁盘转速为20ms/圈,磁盘格式化时每个磁道被划分成10个扇区,今有10个逻辑记录(每个记录的大小刚好与扇区大小相等)存放在同一个磁道上,处理程序每次从磁盘读出一个计录后要花4ms进行处理,现要求顺序处理这10个记录,若磁头现在正处于首个逻辑记录的始点位置。请问:
(1)按逆时针方向安排10个逻辑记录(磁盘顺时针方向转),处理程序处理完这10个记录所花费的时间是多少?
(2)按最优化分布重新安排这10个逻辑记录,写出记录的安排,并计算出所需要处理的时间。
[提示]数据处理时间=磁盘访问时间+数据实际处理时间,而磁盘访问时间=寻道时间+旋转延迟时间+数据传输时间。本题通过对旋转延迟时间的优化来提高访问磁盘数据的速度。
注意,此题的(1)有网上认为答案是 6+(12+2+4)*9 = 168ms
第 8 章 文件管理
8.1 文件和文件系统
8.1.1 文件、记录和数据项
8.1.2 文件类型
系统文件、用户文件、库文件
源文件、目标文件、可执行文件
可执行文件、只读文件、读写文件
普通文件、目录文件、特殊文件
8.1.3 文件系统的层次结构
对象:文件、目录、磁盘存储空间
软件集合:
文件系统接口:命令接口、程序接口
8.1.4 文件操作
8.2 文件的逻辑结构
8.2.1 无结构文件
8.2.2 顺序文件
8.2.3 索引文件
可以与外存的索引分配一起看
8.2.4 索引顺序文件
分块查找
8.2.5 直接文件或哈希文件
8.3 文件目录
8.3.1 文件控制块和索引节点
8.3.2 简单的文件目录
8.3.3 树形目录
8.3.4 无环图目录
8.3.5 目录查询
分为线性检索和Hash方法
第 9 章 磁盘存储器管理
9.1 外存的组织方式
9.1.1 连续分配 ※
9.1.2 链接分配 ※
9.2.3 索引分配 ※
将每个文件的块号放在一个物理块中
题目
假定盘块的大小为1KB,硬盘的大小为500MB,采用显示链接分配方式时,其FAT需占用多少存储空间?
答:
FAT 的每个表项对应于磁盘的一个盘块,其中用来存放分配给文件的下一个盘块的块号,故FAT 的表项数目由物理盘块数决定,而表项的长度则由磁盘系统的最大盘块号决定(即它必须能存放最大的盘块号)。
为了地址转换的方便,FAT表项的长度通常取半个字节的整数倍,所以必要时还必须由最大盘块号获得的 FAT 表项长度作一些调整。
由题意可知,该硬盘共有 500K 个盘块,故 FAT 中共有 500K 个表项;如果盘块从1开始编号,为了能保存最大的盘块号 500K,该 FAT 表项最少需要19 位,将它扩展为半个字节的整数倍后,可知每个FAT表项需 20 位,即 2.5 个字节。
因此,FAT需占用的存储空间的大小为:2.5 * 500K = 1250KB
9.2 文件存储空间的管理
9.2.1 空闲区表 空闲链表 ※
9.2.2 位示图法 ※
9.2.3 成组链接法 ※
题目
有一计算机系统利用图1所示的位示图(行号、列号都从0开始编号)来管理空闲盘块。如果盘块从1开始编号,每个盘块的大小为1KB。
(1)现要为文件分配两个盘块,试说明分配过程。
(2)若要释放磁盘的第300块,应如何处理?