操作系统作业全答案

  • 格式:doc
  • 大小:161.00 KB
  • 文档页数:8

下载文档原格式

  / 8
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

22、试写出相应的程序来描述图2-17所示的前驱图。

(a) (b)

图2-17 前驱图

解:(a) Var a,b,c,d,e,f,g,h: semaphore: =0,0,0,0,0,0,0,0;

begin

parbegin

begin S1; signal(a); signal(b); end;

begin wait(a); S2; signal(c); signal(d); end;

begin wait(b); S3; signal(e); end;

begin wait(c); S4; signal(f); end;

begin wait(d); S5; signal(g); end;

begin wait(e); S6; signal(h); end;

begin wait(f); wait(g); wait(h); S7; end;

parend

end

(b) Var a,b,c,d,e,f,g,h,i,j: semaphore: =0,0,0,0,0,0,0,0,0,0;

begin

parbegin

begin S1; signal(a); signal(b); end;

begin wait(a); S2; signal(c); signal(d); end;

begin wait(b); S3; signal(e); signal(f); end;

begin wait(c); S4; signal(g); end;

begin wait(d); S5; signal(h); end;

begin wait(e); S6; signal(i); end;

begin wait(f); S7; signal(j); end;

begin wait(g); wait(h); wait(i); wait(j); S8; end;

parend

end

有三个并发进程P1、P2、P3共享一个缓冲器A,A中每次只能存放一个数,进程P1每次用random() 函数产生一个随机整数num,用put(A,num)将其存入A中。若存放到P1中的数是7的倍数,则由进程P2用get(A,x)将其取出并打印,否则由进程P3用get(A,x)取出并将被7除后的余数打印出来,为防止数的丢失和重复取同一个数,请用PV操作实现三个进程的同步与互斥活动。

Int s0=1,s1=0,s2=0;

Void p1()

{int a;

while(TRUE)

{ num=random();

p(s0);

put(A,num);

if num%7==0 then v(s1) else v(s2);

}

}

void p2()

{int b;

while(TRUE)

{ p(s1);

get(A,x);

print(x);

v(s0);

}

}

void p3()

{int b;

while(TRUE)

{ p(s2);

get(A,x);

print(x%7);

v(s0);

}

}

void main(){

parbegin(p1,p2,p3);

}

作业J1,J2,J3,J4的提交时间和运行时间如下表所示采用短作业优先调度算法(假设不考虑操作系统的开销问题)请分析给出作业调度的次序和计算平均周转时间。

解:

平均周转时间:45分钟

22. 在银行家算法中,若出现下述资源分配情:

试问:

⑴ 该状态是否安全?

⑵ 若进程

P 2提出请求Request(1,2,2,2)后,系统能否将资源分配给它?

答:⑴该状态是安全的,因为存在一个安全序列< P0P3P4P1P2>。下表为该时刻的安全序列表。

⑵若进程P2提出请求Request(1,2,2,2)后,系统不能将资源分配给它,若分配给进程P2,系统还剩的资源情况为(0,4,0,0),此时系统中的资源将无法满足任何一个进程的资源请求,从而导致系统进入不安全状态,容易引起死锁的发生。

假设某计算机系统的内存大小为640K,在某一时刻内存的使用情况如下图所示。

此时,若进程顺序请求30K、20K和5K的存储空间,系统采用最差适应算法为进

程依次分配内存,请画出分配后的内存情况图。

答:

进程请求30K后

进程请求20K后

进程请求5K后

分配后内存情况图如下:

在一分页存储管理系统中,某作业的页表如下表所示。已知页面大小为1024字

节,试将逻辑地址1011、2148、3000、4000、5012转化为相应的物理地址。

解:对于逻辑地址1011,P=int

(1011/1024)=0,d=1011mod1024=1011

由页表可得第0页在第2块,所以物理地址为

2*1024+1011=3059

对于逻辑地址2148,P=int(2148/1024)=2,d=2148mod1024=100 由页表可得第2页在第1块,所以物理地址为

1*1024+100=1124

对于逻辑地址3000,P=int(3000/1024)=2,d=3000mod1024=952 由页表可得第2页在第1块,所以物理地址为

1*1024+952=1976

对于逻辑地址4000,P=int(4000/1024)=0,d=4000mod1024=928 由页表可得第3页在第6块,所以物理地址为

6*1024+928=7072

对于逻辑地址5012,P=int(5012/1024)=4,d=5012mod1024=916 由于页号超过页表长度,所以该逻辑地址为非法地址

考虑下面的页访问串:

1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6

假定有4个页块,应用下面的页面置换算法,计算各会出现多少次缺页中断并给出变化情况。

(1)FIFO (2)Optimal

解:

(1)利用FIFO页面置换法: