03操作系统

进程管理-死锁

系统有3个进程A,B,C这3个进程都需要5个系统资源。如果系统至少有多少个资源,则不可能发生死锁

  • 分析:假设有13个资源,那么A,B,C分配4个资源,还剩下1个资源,那么任何一个进程获得了这个资源,就会执行完成并释放资源。
  • 公式:K*(n-1)+1个资源即可。K是进程数,n是进程需要的资源

死锁产生的条件

  • 互斥
  • 保持和等待
  • 不剥夺
  • 环路等待

解决死锁的方式

  • 死锁预防:打破产生死锁的条件即可
  • 死锁的避免

死锁避免

  • 有序资源分配:资源利用率比较低
  • 银行家算法:(主要使用这种方式)

银行家算法

一般都是给出n个进程,列出每个进程需要的资源数,然后系统能够提供的志愿书。问你如何执行者n个进程不会导致死锁。

  • 求出剩余资源数
  • 判断n个进程中需要的资源数
  • 然后尝试将剩余的资源数给进程
  • 进程执行完毕会释放资源,求得释放的资源数。判断余下进程满足释放的进程

存储管理

内存分配算法

  • 首次适应算法:从上往下有空间就用
  • 最佳适应法:将空余空间作为一个链表从小到大排序,找到最合适的一块(会产生很多小块的内存空间)
  • 最差适应法:将空余空间作为一个链表从小到大排序,找到最大的一块分配

页式存储

高级程序语音使用逻辑地址,运行状态,内存中使用物理地址
逻辑地址:页号+页内地址
物理地址:页号对应的块好+页内地址
逻辑地址和物理地址的页内地址是相同的

03操作系统_第1张图片
image.png

例题:
03操作系统_第2张图片
image.png
  • 将9612转为二进制10010110001100
  • 因为页面位8KB所以需要2^13即13位进行编址。上面10010110001100有14位,根据逻辑地址表示方式可知页号为第一位1
  • 那么察看图表知道页号1对应的物理块号为3,那么把3转为二进制补到页内地址的前面得到:110010110001100
  • 然后再把110010110001100转为10进制25996。所以选择B

页面置换算法

淘汰不用的内存块算法。常用的是先进先出,最近最少使用

03操作系统_第3张图片
image.png

03操作系统_第4张图片
image.png

你可能感兴趣的:(03操作系统)