操作系统 计算题.docx
《操作系统 计算题.docx》由会员分享,可在线阅读,更多相关《操作系统 计算题.docx(15页珍藏版)》请在冰豆网上搜索。
操作系统计算题
四、计算题
1.有以下三个作业,分别采用先来先服务和短作业优先作业调度算法。
试问它们的平均周转时间各是什么?
是否还可以给出一种更好的调度算法,使其平均周转时间优于这两种调度算法?
作业
到达时间
所需CPU时间
1
0.0
8
2
0.4
4
3
1.0
1
解:
(1)采用先来先服务作业调度算法时的实施过程如下。
作业
到达时间
所需CPU时间
开始时间
完成时间
周转时间
1
0.0
8
0.0
8.0
8.0
2
0.4
4
8.0
12.0
11.6
3
1.0
1
12.0
13.0
12.0
这时,作业的调度顺序是1→2→3。
其平均周转时间为:
(8+11.6+12)/3=10.53
(2)采用短作业优先作业调度算法时的实施过程如下。
作业
到达时间
所需CPU时间
开始时间
完成时间
周转时间
1
0.0
8
0.0
8.0
8.0
3
1.0
1
8.0
9.0
8.0
2
0.4
4
9.0
13.0
12.6
这里要注意,在作业1运行完毕进行作业调度时,作业2和3都已经到达。
由于是实行短作业优先作业调度算法,因此先调度作业3运行,最后调度作业2运行。
所以,这时的作业调度顺序是1→3→2。
其平均周转时间为:
(8+8+12.6)/3=9.53
(3)还可以有更好的作业调度算法,使其平均周转时间优于这两种调度算法。
例如,如果知道在作业1后面会来两个短作业,那么作业1到达后,先不投入运行。
而是等所有作业到齐后,再按照短作业优先作业调度算法进行调度,具体实施过程如下。
作业
到达时间
所需CPU时间
开始时间
完成时间
周转时间
3
1.0
1
1.0
2.0
1.0
2
0.4
4
2.0
6.0
5.6
1
0.0
8
6.0
14.0
14.0
这时的作业调度顺序是3→2→1。
其平均周转时间为:
(1+5.6+14)/3=6.87
2.有一组作业,它们的到达时间和所需CPU时间如下所示,分别采用先来先服务和短作业优先作业调度算法,给出它们的调度顺序、作业周转时间以及平均周转时间。
作业号
到达时间
所需CPU时间
1
9:
00
70分钟
2
9:
40
30分钟
3
9:
50
10分钟
4
10:
10
5分钟
解:
(1)采用先来先服务作业调度算法时的实施过程如下:
作业号
到达时间
所需CPU时间
开始时间
完成时间
周转时间
1
9:
00
70分钟
9:
00
10:
10
70分钟
2
9:
40
30分钟
10:
10
10:
40
60分钟
3
9:
50
10分钟
10:
40
10:
50
60分钟
4
10:
10
5分钟
10:
50
10:
55
45分钟
这时,作业的调度顺序是1→2→3→4,其平均周转时间为:
(70+60+60+45)/4=58.75
(2)采用短作业优先作业调度算法时的实施过程如下:
作业号
到达时间
所需CPU时间
开始时间
完成时间
周转时间
1
9:
00
70分钟
9:
00
10:
10
70分钟
4
10:
10
5分钟
10:
10
10:
15
5分钟
3
9:
50
10分钟
10:
15
10:
25
35分钟
2
9:
40
30分钟
10:
25
10:
55
75分钟
这时,作业的调度顺序是1→4→3→2,其平均周转时间为:
(70+5+35+75)/4=46.25
三、简答题
1.对临界区的管理应遵循哪些基本准则?
答:
为了合理利用临界资源,保证进程互斥地进入临界区,对临界区的管理应遵循以下准则:
(1)空闲让进。
当无进程处于临界区时,表明临界资源处于空闲状态,应允许一个请求进入临界区的进程立即进入自己的临界区,以有效地利用临界资源。
(2)忙则等待。
当已有进程进入临界区时,表明临界资源正在被访问,因而其他试图进入临界区的进程必须等待,以保证对临界资源的互斥访问。
(3)有限等待。
对要求访问临界资源的进程,应保证在有限时间内能进入自己的临界区,以免陷入“死等”状态。
(4)让权等待。
当进程不能进入自己的临界区时,应立即释放处理机,以免进程陷入“忙等”状态。
2.什么是死锁?
死锁的预防措施有哪些?
答:
死锁是指多个并发执行的进程因竞争系统资源而造成的一种僵局,若无外力作用,这些进程都将无法向前推进。
由于产生死锁的4个必要条件必须同时存在,系统才会产生死锁,所以,只要使4个必要条件中至少有一个不能成立,就可以达到预防死锁的目的。
(1)破坏“请求和保持”条件,优点是简单、易于实现且很安全;
(2)破坏“不剥夺”条件,在采用这种方法预防死锁时,进程是在需要资源时才提出请求。
这样,一个已经保持了某些资源的进程,当它再提出新的资源要求而不能立即得到满足时,必须释放它已经保持的所有资源,待以后需要时再重新申请。
这种预防死锁方法,实现起来比较复杂,且要付出很大代价。
(3)破坏“循环等待”条件,在这种方法中规定,系统将所有的资源按类型进行线形排队,并赋予不同的序号。
这种预防死锁的策略与前两种策略比较,其资源利用率和系统吞吐量,都有较明显的改善。
由于互斥性是某些资源的固有特性,所以一般不破坏互斥条件。
3.进程之间有哪些基本的通信方式?
分别有什么特点?
答:
进程通信根据交换信息量的多少分为高级通信和低级通信。
低级通信一般只传送一个或几个字节的信息,以达到控制进程执行速度的作用(如P、V操作);高级通信则要传送大量数据,目的不是为了控制进程的执行速度,而是为了交换信息。
高级进程通信方式有很多种,大致可归为三类:
共享存储器、管道通信和消息传递。
(1)共享存储器:
在内存种分配一片空间作为共享存储区。
需要进行通信的进程把它附加到自己的地址空间中,不需要时则把它取消。
(2)管道通信:
它是连接两个命令的一个打开文件。
一个命令向该文件中写入数据,为写者;另一个命令从该文件中读出数据,为读者。
(3)消息传递:
它以消息为单位在进程间进行数据交换。
三、简答题
1.将一个程序装入内存通常有哪几种方式?
答:
(1)绝对装入方式。
绝对装入方式是由装入程序根据装入模块中的地址将程序和数据装入内存。
程序中所使用的绝对地址,既可在编译或汇编时给出,也可由程序员直接赋予。
采用绝对装入方式的前提是地址空间的容量要足够且可用。
这种方式对于单道程序是可行的。
但对于多道程序来讲,程序员需要准确地了解内存分区及使用的情况,正确定位程序或数据的内存地址,避免冲突的发生,而且一旦程序或数据被修改后,可能需要改变程序中的所有地址。
(2)可重定位装入方式。
可重定位装入又称静态重定位装入,装入程序根据内存当前的实际使用情况,将装入模块装入到内存适当的地方,地址变换在装入时一次完成。
这种方式采用相对地址来存放程序和数据。
一般设定程序的地址空间从0开始,当需要装入该程序时,通过转换来确定它们在内存中的实际位置。
(3)动态运行时装入方式。
动态运行时装入又称动态重定位装入,在把装入模块装入内存后,并不立即把装入模块中的相对地址转换为绝对地址,而是把这种地址转换推迟到程序真正要执行时才进行。
因此,装入内存后的所有地址都仍是相对地址。
为使地址转换不影响指令的执行速度,这种方式需要特殊硬件的支持。
2.简述基本分页存储管理的主要优缺点。
答:
基本分页存储管理的主要优点有:
不要求作业或进程的程序和数据在内存中连续存放,从而有效地解决了碎片问题;提高了内存的利用率,又有利于组织多道程序运行。
主要缺点有:
采用动态地址转换机构降低了CPU的速度;由于作业的地址空间不一定是存储块的整数倍,因而最后一个存储块往往是装不满的,即出现了块内碎片问题;要求运行的作业必须全部装入内存才能运行,如果现有的空闲块不足以满足该作业的要求,作业只能等待,浪费了内存空闲空间。
3.什么是虚拟存储器?
虚拟存储器具有哪些特征?
答:
所谓虚拟存储器,是指具有请求调入功能和置换功能,把内存和外存结合起来使用,能从逻辑上对内存容量加以扩充的一种存储器系统。
其逻辑容量和内存大小无直接关系,主要由内存容量和外存容量之和所决定,其运行速度接近于内存速度,而成本却又接近于外存。
虚拟存储器的特征可以概括为以下4点:
(1)离散性:
装入虚拟存储器的进程都是离散存放的,这是虚拟存储器的基础。
(2)多次性:
一个作业被分成多次调入内存运行,即在作业运行时没必要将其全部装入,只需将当前要运行的那部分程序和数据装入内存,以后每当运行到尚未调入的那部分程序时,再将它调入。
(3)对换性:
允许在作业的运行过程中进行换进、换出。
在进程运行期间,允许将那些暂不使用的程序和数据,从内存调至外存的对换区(换出),待以后需要时再将它们从外存调至内存(换进)。
(4)虚拟性:
指能够从逻辑上扩充内存容量,虚拟出一个较大的逻辑空间,使用户所看到的内存容量远大于实际内存容量。
4.简述分页与分段的区别。
答:
分段和分页的区别:
段式管理和页式管理都采用离散分配方式,且地址转换都需要硬件的支持。
但它们也存在以下几个方面的不同:
(1)页是信息的物理单位,分页是为了提高内存的利用率,与源程序的逻辑结构无关,由系统自动完成,对用户是不可见的;段是信息的逻辑单位,分段是为了满足用户的需要,段对用户是可见的。
(2)页的大小固定不变,由系统决定,页只能以页大小的整数倍地址开始;段的大小不固定,由用户编写的程序决定,段可以从内存的任何地址开始。
(3)分页的逻辑地址空间是一维的,用一个记忆符就可以表示一个地址;分段的地址空间是二维的,为了标志一个地址,用户必须给出段号和段内地址。
(4)页是信息的物理单位,页的共享和保护受到限制;段是信息的逻辑单位,段可以充分实现共享和保护。
(5)段式管理与分区管理一样可能产生内存碎片,而页式管理则能很好地消除碎片。
5.常用的页面置换算法有哪几种?
试比较它们的优缺点。
答:
常用的页面置换算法有最佳置换算法、先进先出置换算法、最近最久未使用置换算法和Clock置换算法。
最佳置换算法性能最好,是一种理想情况下的页面置换算法,但无法实现;先进先出置换算法简单,易实现,性能最差,可能出现Belady现象,淘汰驻留内存时间最长的页面,不实用;最近最久未使用置换算法性能较好,是对最佳置换算法最好的逼近,根据历史信息选择淘汰页面,常被采用,但对硬件要求较高;Clock置换算法易发生缺页中断。
6.试述缺页中断与一般中断的区别。
答:
在计算机系统中,由于某些事件的出现,打断了当前程序的运行,而使CPU去处理出现的事件,这称为“中断”。
通常,计算机的硬件结构都是在执行完一条指令后,去检查有无中断事件发生的。
如果有,那么就暂停当前程序的运行,而让CPU去执行操作系统的中断处理程序,这叫“中断响应”。
CPU在处理完中断后,如果不需要对CPU重新进行分配,那么就返回被中断进程的程序继续运行;如果需要进行CPU的重新分配,那么操作系统就会去调度新进程。
由上面的讲述可以看出,缺页中断与一般中断的区别如下。
(1)两种中断产生的时刻不同:
缺页中断是在执行一条指令中间时产生的中断,并立即转去处理;而一般中断则是在一条指令执行完毕后,当硬件中断装置发现有中断请求时才去响应和处理。
(2)处理完毕后的归属不同:
缺页中断处理完后,仍返回到原指令去重新执行,因为那条指令并未执行;而一般中断则是或返回到被中断进程的下一条指令去执行,因为上一条指令已经执行完了,或重