第二次作业a:
7.试说明pcb 的作用,为什么说pcb 是迚程存在的惟一标志?
答:pcb 是进程实体的一部分,是操作系统中最重要的记录型数据结构。作用是使一个在多道程序环境下不能独立运行的程序,成为一个能独立运行的基本单位,成为能与其它进程并发执行的进程。
os是根据pcb对并发执行的进程进行控制和管理的。
8.试说明迚程在三个基本状态之间转换的典型原因。
答: (1)就绪状态→执行状态:进程分配到cpu资源
2)执行状态→就绪状态:时间片用完
3)执行状态→阻塞状态:i/o请求
4)阻塞状态→就绪状态:i/o完成
10.在迚行迚程切换时,所要保存的处理机状态信息有哪些?
答:进行进程切换时,所要保存的处理机状态信息有:
1)进程当前暂存信息
2)下一指令地址信息
3)进程状态信息
4)过程和系统调用参数及调用地址信息。
16.进程在运行时存在哪两种形式的制约?并丼例说明之。
答: 1)间接相互制约关系。举例:有两进程a 和b,如果a 提出打印请求,系统已把唯一的
一台打印机分配给了进程b,则进程a 只能阻塞;一旦b 释放打印机,a 才由阻塞改为就
绪。 2)直接相互制约关系。举例:有输入进程a 通过单缓冲向进程b 提供数据。当缓冲空时,
计算进程因不能获得所需数据而阻塞,当进程a 把数据输入缓冲区后,便唤醒进程b;反
之,当缓冲区已满时,进程a 因没有缓冲区放数据而阻塞,进程b 将缓冲区数据取走后便唤醒a。
第二次作业b:
17.为什么迚程在进入临界区之前应先执行“进入区”**?而在退出前又要执行“退出区”**?
答:为了实现多个进程对临界资源的互斥访问,必须在临界区前面增加一段用于检查欲访问的临界资源是否正被访问的**,如果未被访问,该进程便可进入临界区对资源进行访问,并设臵正被访问标志,如果正被访问,则本进程不能进入临界区,实现这一功能的**为" 在退出临界区后,必须执行"退出区"**,用于恢复未被访问标志,使其它进程能再访问此临界资源。
21.如何利用信号量机制来实现多个迚程对临界资源的互斥访问?并丼例说明之。
答:为使多个进程互斥访问某临界资源,只需为该资源设臵一互斥信号量mutex,并设其
初值为1,然后将各进程访问该资源的临界区cs臵于wait(mutex)和signal(mutex)操作
之间即可。这样,每个欲访问该临界资源的进程在进入临界区之前,都要先对mutex 执行
wait 操作,若该资源此刻未被访问,本次wait 操作必然成功,进程便可进入自己的临界区,
这时若再有其他进程也欲进入自己的临界区,此时由于对mutex 执行wait操作定会失败,
因而该进程阻塞,从而保证了该临界资源能被互斥访问。当访问临界资源的进程退出临界区
后,应对mutex执行signal 操作,释放该临界资源。利用信号量实现进程互斥的进程描述
如下: var mutex: semaphore:=1;
begin
parbegin
process 1: begin
repeat
wait(mutex);
critical section
signal(mutex);
remainder seetion
until false;
end process 2: begin
repeat
wait(mutex);
critical section
signal(mutex);
remainder section
until false;
end parend
22.试写出相应的程序来描述图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 27.试利用记录型信号量写出一个丌会出现死锁的哲学家迚餐问题的算法。
答:var chopstick:array[0,…,4] of semaphore;
所有信号量均被初始化为1,第i 位哲学家的活动可描述为:
repeat
wait(chopstick[i]);
wait(. chopstick[(i+1) mod 5]);
signal(chopstick[i]);
signal(chopstick[(i+1) mod 5])
think;
until false;
28.在测量控制系统中的数据采集仸务,把所采集的数据送一单缓冲区;计算仸务从该单
缓冲中叏出数据迚行计算。试写出利用信号量机制实现两者共享单缓冲的同步算法。
答: a. var mutex, empty, full: semaphore:=1, 1, 0;
gather:
begin
repeat
gather data in nextp;
wait(empty);
wait(mutex);
buffer:=nextp;
signal(mutex);
signal(full);
until false;
end compute:
begin
repeat
wait(full);
wait(mutex);
nextc:=buffer;
signal(mutex);
signal(empty);
compute data in nextc;
until false;
end b. var empty, full: semaphore:=1, 0;
gather:
begin
repeat
gather data in nextp;
wait(empty);
buffer:=nextp;
signal(full);
until false;
end compute:
begin
repeat
wait(full);
nextc:=buffer;
signal(empty);
compute data in nextc;
until false;
end 第三次作业:
22. 在银行家算法中,若出现下述资源分配情:
试问: 该状态是否安全?
若进程p2提出请求request(1,2,2,2)后,系统能否将资源分配给它?
该状态是安全的,因为存在一个安全序列< p0p3p4p1p2>。下表为该时刻的安全序列表。
⑵若进程p2提出请求request(1,2,2,2)后,系统不能将资源分配给它,若分配给进程p2,系统还剩的资源情况为(0,4,0,0),此时系统中的资源将无法满足任何一个进程的资源请求,从而导致系统进入不安全状态,容易引起死锁的发生。
1、有5个待运行作业j1、j2、j3、j4、j5,各自预计运行时间分别是。假定这些作业同时到达,并且在一台处理机上按单道方式执行。讨论采用哪种调度算法和哪种运行次序将使平均周转时间最短,平均周转时间为多少?
短作业优先调度算法下按j3、j4、j2、j5、jl的顺序执行,平均周转时间最短。最短平均周转时间为15.2。
)2、有5个任务a、b、c、d、e,它们几乎同时到达,预计它们的运行时间为min。其优先权分别为,这里5为最高优先权。对于下列每一种调度算法,计算其平均进程周转时间(进程切换开销可不考虑)。
1)先来先服务(按a、b、c、d、e)算法(2)优先权调度算法。
3)时间片轮转算法(q=2)
操作系统第三次作业答案
计算机操作系统 第三次作业。一 填空题。1 为了使用户能方便地使用操作系统,操作系统向用户提供了 用户接口 程序接口 网络用户接口 三类接口。2 用户接口可分为 联机用户接口 和 脱机用户接口 两类。3 根据联机命令所完成功能的不同,可把它们分成 系统访问类 磁盘操作类 文件操作类 目录操作类 通信...
操作系统作业答案
2.假设有一个成品仓库,总共能存放8台成品,生产者进程生产产品放入仓库,消费者进程从仓库中取出成品消费。为了防止积压,仓库满时就停止生产,由于仓库搬运设备只有一套,故成品的存入和取出只能分别执行,使用p v操作来实现该方案。3.某系统中有10台打印机,有三个进程p1,p2,p3,分别需要8,7,4台...
操作系统作业答案
习题一。1 举例说明为什么对并发执行的程序不加控制会产生与执行时间有关的错误?解 程序在并发执行时由于资源是共享的,而且常常资源数少于程序对这些资源的需求数,致使这些并发执行的程序之间因为竞争资源导致存在间接制约关系,这种间接制约使得并发执行的程序具有随机性 异步性 即 执行 暂停 执行 它们何时启...