操作系统期末复习题

一:说明进程在三个基本状态之间转换的典型原因。<第2章>

(1)处于就绪状态的进程,当进程调度程序为其分配了处理机后,该进程就由就绪状态转变为执行状态。

(2)正在执行的进程,若因为分配给他的时间片用完而被剥夺处理机暂停执行时,其状态就由执行状态转为就绪状态。

(3)若因发生某事情,致使当前进程的执行受阻,使之无法继续执行,则该进程状态由执行转变为阻塞。

二:为什么要在OS中引入线程,引入线程有什么好处?<第2章  线程>

(1)由于进程是资源的拥有者,所以在创建、撤销、切换操作中需要较大的时空开销,限制了并发程度的进一步提高。为减少进程切换的开销,把进程作为资源分配单位和调度单位这两个属性分开处理,即进程还是作为资源分配的基本单位,但是不作为调度的基本单位(很少调度或切换),把调度执行与切换的责任交给“线程”。

(2)在OS中引入线程,以线程作为调度和分派的基本单位,则可以有效地改善多处理机系统的性能,减少了程序在并发执行时所付出的时空开销,使OS具有更好的并发性

三:(1)什么是死锁?(2)产生思索的原因是什么?<第三章>

(1)    如果一组进程中的每个进程都在等待仅由该组进程中其他进程才能引发的事件,则该组进程是死锁的。

(2)    ①竞争不可抢占性资源引起死锁。(不可抢占性资源是一旦系统把某资源分配给该进程后,就不能将它强行收回,只能在进程用完后自行释放。)

②竞争可消耗资源引起死锁。(可消耗资源在进程运行期间,由进程动态的创建和消耗)

③进程推进顺序不当引起死锁(进程运行时,对资源进行申请和释放的顺序是否合法)

四:程序的装入的几种方式:<第四章>

(1)绝对装入方式:用户程序经编译后,将产生绝对地址的目标代码,只适合单道程序环境。

(2)可重定位装入方式:可将装入模块装入到内存中任何允许的位置,适用于多道程序环境。

(3)动态运行时装入方式:把装入模块装入内存时所有的仍为逻辑地址,在程序真正要执行时才将逻辑地址转为物理地址。

四:程序的链接的几种方式:<第四章>

(1)静态链接方式:在程序运行之前,先将各目标模块及他们所需的库函数连接成一个完整的装配模块,以后不再拆开。

(2)装入时动态链接:将用户源程序编译后得到的一组目标模块,在装入内存时,采用边装入边链接的链接方式。

(3)运行时动态链接:对某些目标模块的链接,在程序执行中需要该目标模块时才对它进行链接

五:(1)什么是虚拟存储,(2)它有什么特点?<第五章>

(1)    具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。其逻辑容量由内存容量和外存容量之和所决定,运行速度接近于内存,成本接近于外存。

(2)    ①多次性:作业中的程序和数据可分成多次调入内存运行。

② (base)对换性:一个作业中的程序和数据允许在作业运行中进行换进换出。

③虚拟性:从逻辑上扩充了内存容量。

五:(1)什么是抖动?(2)产生抖动的原因是什么?<第五章>

(1)如果多道程序过高,页面在内存和外村之间频繁调度,以至于钓鱼页面所需要的时间比进程实际运行的时间还多,此时系统效率急剧下降,甚至导致系统奔溃,这种现象叫抖动。

(2)原因是同时在系统中运行的进程太多,由此分配给每一个进程的物理块太少,不能满足进程正常运行的基本要求,致使每个进程在运行时,频繁地出现缺页,必须请求系统将所缺之页调入内存,于是系统中排队等待页面调进调出的进程数增加,从而导致抖动。

六:(1)什么是缓冲区?(2)引入缓冲区管理的主要原因是什么?<第六章  设备管理部分>

(1)    缓冲区是一个存储区域,可由专门的硬件寄存器组成,也可以由内存等组成。

缓冲区管理的主要功能是组织好这些缓冲区,并提供获得和释放缓冲区的手段。

(2) 引入缓冲区管理的主要原因是:

①缓和CPU和I/O设备间速度不匹配的矛盾。

②减少对CPU的中断频率,放宽对CPU中断相应时间的限制。

③解决数据粒数不匹配的问题。

④提高CPU和I/O设备之间的并行性。

转载于:https://www.cnblogs.com/wongyi/p/7867877.html

设计内容: 进程死锁的检测:资源分配图的化简判断是否有死锁发生 设计要求: •建立所需的数据结构。 •从文件中读取资源分配的情况(文件格式自定义)。 •编写资源分配图的化简算法。 •每化简一步,在屏幕上显示化简的当前结果。 •最后给出结论,是否死锁。如果死锁,给出死锁进程和资源。 设计思路: 程序中主要涉及两个方面:进程、资源。两者通过占有和申请发生联系。因此对于每一个进程Pi,建立“占有”和“申请”的数据结构来保存与之相关联的资源(由于事先不知道进程拥有和申请的资源数,故用Vector作为数据结构)。同时记录下程序处理的总的进程数目和资源数目。对于资源,另建立两个数组res和work分别记录第i类资源的总数和当前可用数。 从文件中读入资源和进程的情况时,要进行一些判断。①处理的资源和进程数目不得超过500(500已满足当前实际机器的情况)。②资源及进程的编号不得超过相应的数目也不得小于0。③资源的起始值不应该小于0。 ④起始情况下,所有进程拥有的第i资源总数不应该比其总的资源数目还要多。 由于在理论上已经证明,化简的次序不影响化简的最终结果。所以化简的过程就是不停的寻找满足条件(此进程所申请的资源全部都可以满足)的进程进行化简(即把它拥有的资源加到work数组中),直到不再能找到这样的进程为止。然后检查所有的进程,如果仍有未被化简的进程,则表明死锁已经产生。此时记录下发生死锁的进程编号。然后,为进一步明确哪些进程在哪些资源上发生死锁,给定一个进程入口点采用DFS搜索和次进程相关的所有进程。 为了能在每一步化简后显示当前进程资源的状况,定义了两个画图函数。一个是根据当前资源和进程的“占有”和“申请”状况,画出整体的资源分配图。另一个是在每次化简掉一个进程时删除和它相关的所有边。 程序在VC++6.0中调试、验收通过。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值