操作系统--课堂问答笔记14--习题答案

课堂笔记学习视频来自 操作系统
说明:其他”课堂问答笔记“也在”操作系统“专栏

【4-1】

这节课课后讨论汇总:

  1. 什么是安全状态?安全序列?为什么说存在安全序列,系统不会发生死锁?若存在安全序列,那么安全序列是唯一的吗?
    答:若当前状态存在一个安全序列则当前状态是安全状态;安全序列表示按这个序列依次给进程分配资源,系统不会发生死锁;因为安全系列是按每个进程需求各种资源的最大值给进程分配资源的,按最大值给进程分配资源都可以使得每个进程顺利执行完毕,那在实际进程推进过程中每个进程肯定都能顺利执行完毕(因为在实际进程执行中,其每次所需资源并不一定是还需要资源数目的最大值,例如:进程P1需要执行完毕还需5台打印机,那么在下一次资源申请时可能一口气申请打印机5台,也可能是小于5的任何一个值;或者说这5台打印机的申请可能是一次就申请完,也可能分多次申请;一口气申请完都没问题,分多次就更没问题了);若存在安全序列,安全序列不一定是唯一的,在大家做银行家算法习题的时候会经常碰到安全序列不唯一的情况。

  2. 银行家算法是利用什么思路(预防死锁?避免死锁?检测死锁?解除死锁?)处理死锁的?
    答:银行家算法是利用避免死锁的思路来处理死锁的。上节课打破死锁4个必要条件中的3个(回忆一下4个死锁必要条件都是什么?互斥条件,不可剥夺条件,请求和保持条件,循环等待条件)是预防死锁的思路;资源分配图的化简是检测死锁的思路;解除死锁的方法视频中没有说,主要是两个方法:抢占资源(把陷入死锁的进程的资源强制剥夺以便分配给其它进程,即处在独木桥中的某个人首先退出,让其他人先走)、终止(或撤销)进程(即杀死某个进程,其占用的资源自然就会释放)。
    处理死锁应该按照:预防死锁->避免死锁->检测死锁->解除死锁的过程进行,前面两个是事前,后面两个是事后,即一开始就要想法设法把死锁杀死在萌芽状态,如果死锁不可避免会发生,那么再考虑如何检测死锁和下一步怎么解除死锁。

  3. 银行家算法是今天的重点,课后会有习题,各种考试可能都会有这样的题目,解题时记得画表格,否则只有部分分!这里不再另外给题目,请大家课后自行练习。
    答:每一步两个表格:资源分配表和安全性检查表。另外,表中各矩阵(向量)含义:
    资源分配表中:Max矩阵表示各进程需要各种资源的最大数目;Allocation矩阵表示各进程目前已经得到(或已经分配)的各种资源的数目;Need矩阵表示各进程还需要各种资源的数目;Available向量表示当前空闲的各种资源的数目。
    安全性检查表中:Work矩阵表示是经过每次分配后可用的各种资源的数目,初始(第1行)等于Available向量,从第2行开始等于上一行的Work+Available;Need矩阵和Allocation矩阵和资源分配表中的内容是相同的;Work+Available表示当前进程完成后所有可用的各种资源的数目。

  4. 回顾一下存储器的层次结构?理解程序装入过程对存储器管理(内存管理)的意义?
    答:存储器的层次结构从上到下依次:寄存器、高速缓存、主存(内存)、辅存(外存),且速度从高到低容量从小到大,层次结构的目的是缓解速度和容量的矛盾。
    存储器管理(如无特别说明指的就是内存管理,外存管理放在后面设备管理的章节中)。任何一个程序的运行都必须装入内存才能执行,理解了程序的装入过程,那么就清楚内存这个共享资源是如何分配给各个程序的,存储器管理主要内容就包括:内存分配、地址转换(映射)、内存保护、内存扩充(虚拟存储器,下一章的内容)。

  5. 如何理解逻辑地址和物理地址?
    答:物理地址:把内存当成一个个排列整齐的小空格(每个小空格一个字节:1B=8bit,也叫一个单元);0号单元、1号单元、2号单元、3号单元…(注意从0开始编号)就是内存的物理地址,这个地址是一维线性的且不能改变的。
    逻辑地址:假设你编写程序时需要6个空格的存储空间或者载入程序时需要6个空格的存储空间(即6个字节或6个单元),但内存的前10个单元(或前面更多的单元,不一定10个)都被占了,那你的程序只能从物理地址的10号单元开始载入(注意从0开始编号),但你的程序却认为物理地址10号单元是他们的0号地址——这个0号就是逻辑地址(注意每个程序的逻辑地址也是从0开始编号的),之后的1号逻辑地址对应11号物理地址,以此类推。把0号逻辑地址转化为10号物理地址,这就是地址转换(映射)。
    想象一下,把你们班级看成一个程序,你们的学号是程序的逻辑地址,到教室去上课是程序的一次执行(到教室就是把程序装入内存),你们在教室中的座位号就是物理地址,那么某个人找哪个位置坐下来就是地址映射。

补充:

任何一个程序的逻辑地址都是从0开始编号的,0号就是程序一开始的第一个字节的内容,之后以此类推。例子中的学号就不一定了,因为学号是按专业编的,所以某个班级的第一位同学不一定是0号(当然学号也是从1开始编的)

发布了94 篇原创文章 · 获赞 40 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/weixin_46218781/article/details/105381133