作业--操作系统答案 联系客服

发布时间 : 星期五 文章作业--操作系统答案更新完毕开始阅读0cf13b37a4e9856a561252d380eb6294dd88228f

操作系统作业

(?日交作业)

一、如果系统中有N个进程,运行的进程最多几个,最少几个;就绪进程最多几个,最少几

个;等待(阻塞)进程最多几个,最少几个?

运行进程最多1个,最少0个;就绪进程最多N-1个,最少0个;等待进程最多N个,最少0个

二、有没有这样的状态转换,为什么?

等待—运行;就绪—等待没有,看图!

终止

三、一个状态转换的发生,是否一定导致另一个转换发生,列出所有的可能 是。等到到就绪。就绪到运行。运行到就绪。运行到等待

四、一个数据采集处理系统有三个进程A,B,C。进程A负责数据采集,并把采集到的数

据存入缓冲区H中,供进程B和C分别做不同的处理。系统规定:仅当进程B和C都取走了H中的数据后进程A才能在H中存入新的数据供处理。为使进程能正确地并发执行,现用PV操作进行管理,回答下列问题: (1) 应怎样定义信号量?写出信号量的作用及其初值。

设置SB,初值为0,用于通知进程B取走数据;设置SC,初值为0,用于通知进程C取走数据;SBA,初值为1,用于进程B通知进程A数据已经取走;SCA,初值为1,用于进程C通知进程A数据已经取走;

(2) 在如下程序的方框位置填上合适的P操作或V操作,使它们能正确地并发执行。

(1)P(SBA)(2)P(SCA)(3)V(SB)(4)V(SC) (5)P(SB)(6)V(SBA) (7)P(SC)(8)V(SCA)

五、四个进程A、B、C、D都要读一个共享文件F,系统允许多个进程同时读文件F,但限

制是进程A和进程C不能同时读文件F,进程B和进程D也不能同时读文件F,为了使这四个进程并发执行时能按系统要求使用文件,现用PV操作进行管理,请回答下面的问题:

(1) 在下列程序中填入应定义的信号量及初值。

定义二个信号量S1、S2,初值均为1,即:S1=1,S2=1。其中进程A和C使用信号量S1,进程B和D使用信号量S2

(2) 在下列程序中填上适当的P、V操作,以保证它们能正确并发工作:

所谓信号灯,实际上就是用来控制进程状态的一个代表某一资源的存储单元。例如,P1和P2是分别将数据送入缓冲B和从缓冲B读出数据的两个进程,为了防止这两个进程并发时产生错误,狄克斯特拉设计了一种同步机制叫“PV操作”,P操作和V操作是执行时不被打断的两个操作系统原语。执行P操作P(S)时信号量S的值减1,若结果>=0则P(S)执行完毕,若<0,执行P操作的进程暂停以等待释放。

执行V操作V(S)时,S的值加1,若结果<=0则释放一个因执行P(S)而等待的进程。对P1和P2可定义两个信号量S1和S2,初值分别为1和0。进程P1在向缓冲B送入数据前执行P操作P(S1),在送入数据后执行V操作V(S2)。进程P2在从缓冲B读取数据前先执行P操作P(S2),在读出数据后执行V操作V(S1)。当P 1往缓冲B送入一数据后信号量S1之值变为0,在该数据读出后S1之值才又变为1,因此在前一数未读出前后一数不会送入,从而保证了P1和P2之间的同步。

main() {

int S1=1,S2=1;

cobegin /*下列进程将并发执行*/ A(); B(); C();

D(); coend

} A() { P(S1); read F; V(S1); }

B() { P(S2); read F; V(S2); } D() { P(S2); read F; V(S2); } C() { P(S1); read F; V(S1); } 第二次作业:(?日交作业)

六、某计算机系统的内存容量为128KB,对存储器采用可变分区的存储管理办法,现有3

个作业(J1,J2,J3)在内存,其存储器的分配如图所示。

操作系统 J1 空闲区 J2 空闲区 J3 空闲区 0K 5K 20K 40K 50K 90K 100K 128K

(1) 现有一个需要25KB存储空间的作业J4请求装入内存,若采用最先适应分配算法

来给J4分配空间。请给出装入J4后的内存分配表。 操作系统 J1 空闲区 J2 20K

J4 空闲区 J3 75K

空闲区 128K

0K

5K 40K 50K 90K 100K

(2) 若采用最优适应算法来给J4分配空间,给出装入J4后的内存分配表。

操作系统 J1 5K 空闲区 20K J2 空闲区 J3 J4 碎片 128K 0K 40K 50K 90K 100K 125K

(3) 在只有J1,J2,J3三个作业的情况下,J2运行结束撤离后,请给出J2撤离后的内

存分配表。

操作系统 J1 0K 5K 20K 空闲区 J3 90K 空闲区 100K 128K

七、例题:试化简图2中的进程——资源图,并利用死锁定理给出相应的理论。

简化后:

R1指向进程P2,表示P2占用R1一个资源。 进程P2指向R1,表示P2向R1申请一个资源

P0:占用R0一个,向R1、R2各请求1个,而R1被P2占用,故看P2能否结束。

P2:占用R1、R2各一个,无请求,可以结束,返还R1、R2资源。P0可以结束,返还R0资源。

P1:占用R0、R3各一个,向R4请求一个,而R4被P4占用,故看P4能否结束。 P4:占用R4,向R3请求,而R3被P1占用,P1与P4构成死循环,死锁。 P3:占用R2一个资源,向R3请求一个,而R3被P1占用,死循环,死锁。

假定系统中有4个进程P1、P2、P3、P4和3种类型的资源R1、R2、R3,数量分别为9、3、

6,在t0时刻的资源分配情况如表所示。

表 t0时刻的资源分配表

资 进 程 P1 P2 P3 P4 源 Max 况 R1 R2 R3 R1 R2 R3 R1 R2 R3 R1 R2 R3 3 6 3 4 2 1 1 2 2 3 4 2 1 5 2 0 0 1 1 0 0 1 1 2 2 1 1 4 2 0 0 2 2 2 3 0 1 1 2 Allocation Need Available 情 试问:(1)t0时刻是否安全? 安全序列:P2、P1、P3、P4

(2)P2发出请求向量Request2(1,0,1),系统能否将资源分配给它?

可以分配,因为分配资源后可available变成(0,1,1),而P2 Need变成(0,0,1)满足后,P2资源返回,available变成(6,2,3)找到一安全序列:P2、P1、P3、P4 (3)在P2申请资源后,若P1发出请求向量Request1(1,0,1),系统能否将

资源分配给它?

不能分配,P2申请后,available变成(0,1,1), 而request1(1,0,1)>available(0,1,1)

(4)在P1申请资源后,若P3发出请求向量Request3(0,0,1),系统能否将

资源分配给它?

不能分配,因为分配资源后available(0,1,0),找不到一安全序列

八、有5批处理作业(A,B,C,D,E)几乎同时到达,估计运行的时间分别为2,4,6,8,10