数据库工程师基础学习4----进程管理与存储管理

1,进程管理
在这里插入图片描述
在这里插入图片描述
如果没有操作系统,我们面对的是01类型的指令.

首先来介绍进程管理
在这里插入图片描述
在这里插入图片描述
处理机简单来说就是cpu,
就绪状态离运行态只差一步,就是处理机资源.
阻塞状态:某一事件发生比如说,键盘输入数据.

下面的图中,由运行态还可以转化到阻塞态,有可能是在运行过程中,有需要等待事件发生(如键盘输入)
或者是处理机采用时间片轮转操作.(每个进程占用处理机固定的时间,过了这个时间就会去执行别的进程),这个时候原进程就由运行态,转换到了就绪状态,等待下一次的处理机时间片.

而进程的五态模型就是多了新建与终止态,注意新建出来的进程处于就绪状态.
在这里插入图片描述
进程同步,例子就是进程b需要a的结果来运行,这就是两个进程之间的合作.
临界资源:就像是a,b中间有一个操作台,在b没有拿掉上面东西的时候,a就无法再放数据在工作台上.
打印机就是互斥执行.
在这里插入图片描述
在这里插入图片描述
公用信号量用来实现进程间的互斥.以打印机为例,如果abcde五个人公用一台打印机,就设公用信号量s=1,有一个进程就-1,当s=0时表示没有资源可用.所以两台打印机就设s=2,以此类推

上图也显示了S的含义>0就可以说是空闲资源数目,<0就可以表示有进程在等待.

pv操作在执行期间不可分割,说明在执行期间,p,v操作必须成对出现.
在这里插入图片描述
注意这里是比较s-1后的值与0的关系.
在这里插入图片描述
注意这里b执行p操作后,s=0,这个时候b也是可以执行的.
在这里插入图片描述
这里为什么>0不唤醒等待进程,是因为s最小为0,说明就没有等待进程.
如果+1之后<=0,说明之前有等待进程.这里是包括0的,因为0是从-1加上来的,说明有一个进程在等待.
执行一次v操作,不管s如何,都多出一个空闲资源.
在这里插入图片描述
这个问题,首先生产者与消费者是两个进程.
其次s1为什么同为同步信号量和互斥信号量?
简单的理解就是同步是p1,p2之间直接的制约关系,互斥是由于临界资源实现间接制约.这里的临界资源是仓库,或者 说是缓冲区.
这里明显s1,s2可以理解为同步信号量.
s1为什么还可以理解为互斥信号量呢p(s1)表示占用了一个临界资源,v(s1)表示释放了一个临界资源.所以说,p1执行了p(s1),p2在就不能再执行p(s1)了.

而同步就是p表示询问资源是否准备好,v表示通知消息已经准备好了.从这个角度看,很明显s1.s2是两个同步信号量.

那么s2为什么不是互斥信号量,因为没有临界资源,不能说刚开始临界资源为0.

同步找合作(p(不同信号量)),互斥找临界资源(p(同一个信号量))
在这里插入图片描述
这是可以放多产品的仓库.
在这里插入图片描述
15个资源是可能发生死锁的,16个资源就不会发生死锁现象了.
在这里插入图片描述
这里的互斥条件,就是一个资源不能共享,只能一个进程使用.
请求保存条件,就是a如果占有了一个资源,就不能主动释放这个资源.
不可剥夺就是:一旦占有资源,处理机及其他设备也不能剥夺这个资源.
环路条件不需要了解.

鸵鸟策略为对死锁放任不管.

死锁预防也就是预防策略:表示并不是进程请求资源就分配,而是由某种策略来同一分配资源(如先分配给一个进程全部资源)

死锁避免就是采用某种算法避免发生死锁.

死锁检测和解除为一对:允许发生死锁,但是有专门的程序来检测死锁.检测到之后解除死锁方法进行解除.

解除方法有资源剥夺法(现在处理机可以剥夺进程的资源,还可以配合为进程设置优先级,先剥夺优先级低的进程.)

同样还可以撤销掉某一进程.

在这里插入图片描述
在这里插入图片描述

银行家算法的思想就是:在执行一个进程之前,先判断是否可能发生死锁.就像上图很简单的计算,所需资源够了再执行对应的进程.
在这里插入图片描述
线程又称为:轻量进程.引入线程后,线程作为调度和分配的基本单位,但是进程任保留第一个属性,作为独立分配资源的单位.

这里注意是在进程中分成多个线程,并且线程之间共享进程的资源.

用户级线程不依赖于系统调度来实现.内核支持线程依赖.
在这里插入图片描述
这道题选c,d.
用公式n(w-1)+1与m比较.
在这里插入图片描述
这道题选c,d,d.简单的银行家算法,因为第三小题,分配后无可用资金所以状态不安全.
在这里插入图片描述
上图为进程资源图.圆圈表示进程,方框表示资源(其中为个数)
从进程到资源的箭头,表示进程申请资源.
从资源到进程的箭头,表示已分配资源.
对于图a,可以看到r1一共有两个,而且有两个出的箭头,所以已经没有r1资源了.
r2也一样.
但是p1申请一个r2,p2申请一个r1,所以会发生死锁.两个节点是阻塞的.

所以选b.
第二题选c,是可以化简的(意思就是非死锁,能够正常运行)

在这里插入图片描述
操作系统的两大功能:管理资源与提供人机交互界面
答案为d,c,d
第二题:信号量为负数时,绝对值就是等待的进程数.
在这里插入图片描述
由前驱图可以看到各进程之间的合作(同步关系),前面知道同步操作我们可以用一对pv操作进行.在同步中,一个v操作表示下一步等待信号已准备好.一个p操作代表询问等待信号是否准备好.
所以在执行p1进程后,我们需要告诉p2进程,等待信号已准备好,所以用v(s1),
后面都是同理.
答案是:a,b,c
注意这里的s并不与p对应.只是一个控制信号量
在这里插入图片描述
答案为c,b,b.
注意这里p5是需要p4,p3都执行结束.
在这里插入图片描述
选b
在这里插入图片描述
选c,d
这里s信号量是一个互斥信号量.涉及临界资源.
在这里插入图片描述
这道题很明显选b.
送入一个产品后,执行v(s2)告诉p2等待的信号已经到来.p2先p(s2)检测信号,之后再v(s1),告诉p1可以生产.
在这里插入图片描述
第一题选d,进程,文件,设备,存储,作业五大管理
第二题选b,短期调度指进程调度,长期调度指进程调度
第三,四,五题选c,a,b
线程之间不共享栈.每个进程都有独立的栈.
第六题,按课本上说法选b.
其中,所有资源排序使用的方法破坏的是环路条件.
预先静态分配法:就是如果有进程执行的所有资源,就分配给进程,如果有缺少,就一个资源都不给.其实破坏的是,请求保持条件.
所以可能是应该选c,但是答案是b

2,存储管理
在这里插入图片描述

在这里插入图片描述
层次结构从上到下,访问速度越来越慢但是存储空间越来越大.
在这里插入图片描述
这里的a13d就是逻辑地址的形式.而物理地址一般由二进制或十六进制表示.
在这里插入图片描述
逻辑地址转换为物理地址的过程叫做,地址重定位.
静态重定位:就是在程序运行之前就完成了逻辑到物理的转换.
动态重定位:程序执行期间会改变物理地址.

第一种,存储管理方案
在这里插入图片描述
解决问题是:将程序放在内存的哪里来提高内存空间利用率呢
分区存储管理就是第一种.
其中固定分区的缺点是:不能根据作业大小调整区的大小,在系统生成时,就已经规定好了.
可变分区:分区大小刚好等于作业的大小.在装入作业时,划分区大小.
如右图,作业具体装入哪个空闲存储空隙(因为存储空间不同,10k,15k,20k等)有对应的算法控制(如最优适应算法,最差适应算法等等.)

可重定位分区:分好的区可以移动.这样可以利用起区之间的小空隙.
在这里插入图片描述
在这里插入图片描述
这里注意进程划分成的页与内存划分成的块,大小是相同的.存储的时候每一页之间可以不连续.由页表保存.
在这里插入图片描述
我们输入一个逻辑地址4256,首先确定那一部分是页号,哪一部分是页内地址.然后我们需要用页表起始和页表长度寄存器找到页表(这里还会比较L与4),
然后映射到内存中的第15块.
在这里插入图片描述
分段式存储方式,是将内容分成不同段,然后每一段给一个段号,(段有长有短),并且段存放可以不连续.所以段表需要存放段号,段长,基址三部分.
在这里插入图片描述
这里需要进行两次比较(图中只画出一次),首先段号与段表长比较,第二段内地址与段长比较,来判断是否发生地址越界.
然后我们得到了通过段号得到了基址,基址+段内地址就是物理地址.
可以发现,这里基址与分页时的区号,作业几乎相同.但是基址是整个地址,区号是地址的前半部分.
在这里插入图片描述

在这里插入图片描述
这里可以看到,段表变成了段号,页表始址,与页表长度.
在这里插入图片描述
这就是前面提到的虚拟存储器,原理就是先将一部分作业加载入主存.其他部分等需要的时候再进行加载.
在这里插入图片描述
请求调页和页面置换就是:用户程序先加载入一部分到内存,并且分页.如果执行程序的时候,发现需要的数据不在内存中,就会产生一个缺页中断,然后从作业中调取相关页.

这道题,选c,b
因为a,b均不在内存,且都横跨两页.
指令一共六个页面.产生3次,所以剩下3个页面
在这里插入图片描述
在这里插入图片描述
选c.块号+物理地址.这里注意每个页面4k,4k用十六进制表示占用3位.所以页内地址应该是后三位.

在这里插入图片描述
在替换页面的时候,首先看访问位,访问位为0的优先替换出去,如果都相等,就看修改位,修改位为0的优先替换出去,(因为修改过的替换比较麻烦).
这里的页帧号,其实类似于页号.
所以选d.

第二题选b
在这里插入图片描述
首先第一题,采用可变分区方案(不是重定位方案),一个区的大小不固定,所以p5执行完,下面三个空白分区合并,得到的空闲区数就减1.

第二题,选c,b
取指令就是指执行move操作.
在这里插入图片描述
根据前面的题可以知道,应该淘汰表中页面5,因为5没有被访问.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值