软件设计师考试 操作系统基本原理( 三 )


2.银行家算法
银行家算法
该方法是避免死锁问题的常用方法
银行家算法的内容:它的内容即为分配资源的原则 , 包括:
(1).当一个进程对资源的最大需求量不超过系统中的资源数时可以接纳该进程
(2)进程可以分期请求资源 , 但请求的总数不能超过最大需求量
(3).当系统现有的资源不能满足进程尚需资源数时 , 对进程的请求可以推迟分配 , 但总能使该进程在有限的时间里得到资源
银行家算法涉及到的题型:
解题思路:
图解:解决该类问题 , 首先将系统所剩资源数计算出来 , 然后将每个进程还差的资源数计算出来 , 进行比较之后 , 将系统资源分配给差的最少的进程 , 进而让其释放资源 , 然后进行下一个所需资源较少的进程的分配 ,  , 由此将进程执行的顺序计算出来
第七节 存储管理——分区存储组织
以一个例题为例 , 描述四个算法:首次适应法 , 最佳适应法 , 最差适应法 , 循环首次适应法;它们的概念及关系;例题:某计算机系统的内存大小为128k , 采用可变分区分配方式进行内存分配 , 现有作业4申请内存9k , 几种不同的存储分配算法在分配中 , 会产生什么样的结果呢?
首次适应法
图注:首次适应法会把即将执行的作业安排在第一个能够容纳它的空间
最佳适应法
图注:该算法会把即将执行的作业安排在内存空间与它最接近的空间进行存放 , 如该例子中 , 作业4占据空间9k , 通过该算法 , 计算机就将其存放在了空间为10的地址中;由于在每次存放作业以后内存空间剩余量极低 , 长期以后该算法会造成内存空间碎片化 , 降低内存地址的利用率 。
最差适应法
图注:该算法能够解决内存空间碎片化的问题 , 如图所示:该算法优先将作业存放至内存空间最大的地址.
循环首次适应法
图注:该算法是将空闲的区域连成环状 , 将作业在环状区域内顺次进行分配(从第二个空闲区域开始分配)
第八节 存储管理——页式存储 , 段式存储 , 段页式存储 页式存储组织
1.提出背景:为了解决碎片化的存储
2.概念:把用户程序分成等分大小的n个“页”(并将其编号) , 再在地址空间中以nk为基数划分等大小的块(同样将其编号 , 块号又称页帧号) , 运行用户程序时不再将整个程序进行运行 , 而是根据需要分批次将页调入到块中运行 , 而页和块之间的对应关系用页表来记录
3.页式存储组织的优缺点:优点:利用率高 , 碎片小 , 分配及管理简单
缺点:增加了系统开销(系统每次读取程序都需要先读取页表将其定位 , 再进行程序的读取);可能产生抖动现象
图注:页号与页帧号的关系必须通过表来进行查询
图注:要求物理地址 , 要先把逻辑地址(由图可知 , 逻辑地址由页号和页内地址组成)当中逻辑的页号和页内地址分开 , 要把它们分开 , 首先将页面大小写成二进制的形式 , 等于2^n;则说明一个页的页内地址有n位 , 而在逻辑地址中高于(从右往左)n位的部分就是页号,得到页号之后进行查表 , 得到相应的页帧号 , 而物理地址=页帧号+页内地址(该式子中的“+“是拼接 , 并非做加法)