[摘要]东秦股票代码(秦港股份上市时间),关于《东秦股票代码(秦港股份上市时间)》的内容介绍。东秦的操作系统答案第二章 第二章1 什么是前趋图?为什么要引入前趋图?答:前趋图(Precedence Gr...
东秦股票代码(秦港股份上市时间),关于《东秦股票代码(秦港股份上市时间)》的内容介绍。

东秦的操作系统答案第二章 第二章1. 什么是前趋图?为什么要引入前趋图?答:前趋图(Precedence Graph 是一个有向无循环图,记为DAG(Directed...
东秦的操作系统答案第二章
第二章
1. 什么是前趋图?为什么要引入前趋图?
答:前趋图(Precedence Graph)是一个有向无循环图,记为DAG(Directed Acyclic
Graph),用于描述进程之间执行的前后关系。
2. 画出下面四条语句的前趋图:
S1=a:=x+y; S2=b:=z+1; S3=c:=a – b; S4=w:=c+1;
答:其前趋图为:
3. 什么程序并发执行会产生间断性特征?
答:程序在并发执行时,由于它们共享系统资源,为完成同一项任务需要相互合作,致使这
些并发执行的进程之间,形成了相互制约关系,从而使得进程在执行期间出现间断性。
4.程序并发执行时为什么会失去封闭性和可再现性?
答:程序并发执行时,多个程序共享系统中的各种资源,因而这些资源的状态由多个程序改变,致使程序运行失去了封闭性,也会导致其失去可再现性。
5.在操作系统中为什么要引入进程概念?它会产生什么样的影响?
答:为了使程序在多道程序环境下能并发执行,并对并发执行的程序加以控制和描述,在操作系统中引入了进程概念。
影响: 使程序的并发执行得以实行。
6.试从动态性,并发性和独立性上比较进程和程序?
答:(1)动态性是进程最基本的特性,表现为由创建而产生,由调度而执行,因得不到资源
而暂停执行,由撤销而消亡。进程有一定的生命期,而程序只是一组有序的指令集合,是静
态实体。
(2)并发性是进程的重要特征,同时也是OS 的重要特征。引入进程的目的正是为了使
其程序能和其它进程的程序并发执行,而程序是不能并发执行的。
(3)独立性是指进程实体是一个能独立运行的基本单位,也是系统中独立获得资源和独
立调度的基本单位。对于未建立任何进程的程序,不能作为独立单位参加运行。
7.试说明PCB 的作用,为什么说PCB 是进程存在的惟一标志?
答:PCB 是进程实体的一部分,是操作系统中最重要的记录型数据结构。作用是使一个在
多道程序环境下不能独立运行的程序,成为一个能独立运行的基本单位,成为能与其它进程
并发执行的进程。OS是根据PCB对并发执行的进程进行控制和管理的。
8.试说明进程在三个基本状态之间转换的典型原因。
答: (1)就绪状态→执行状态:进程分配到CPU资源
(2)执行状态→就绪状态:时间片用完
(3)执行状态→阻塞状态:I/O请求
(4)阻塞状态→就绪状态:I/O完成
9.为什么要引入挂起状态?该状态有哪些性质?
答:引入挂起状态处于五种不同的需要: 终端用户需要,父进程需要,操作系统需要,对换
北京石油化工学院信息工程学院计算机系5/48
《计算机操作系统》习题参考答案余有明与计07和计G09的同学们编著 5/48
需要和负荷调节需要。处于挂起状态的进程不能接收处理机调度。
10.在进行进程切换时,所要保存的处理机状态信息有哪些?
答:进行进程切换时,所要保存的处理机状态信息有:
(1)进程当前暂存信息
(2)下一指令地址信息
(3)进程状态信息
(4)过程和系统调用参数及调用地址信息。
11.试说明引起进程创建的主要事件。
答:引起进程创建的主要事件有:用户登录、作业调度、提供服务、应用请求。
12.试说明引起进程被撤销的主要事件。
答:引起进程被撤销的主要事件有:正常结束、异常结束(越界错误、保护错、非法指令、
特权指令错、运行超时、等待超时、算术运算错、I/O 故障)、外界干预(操作员或操作系
统干预、父进程请求、父进程终止)。
13.在创建一个进程时所要完成的主要工作是什么?
答:
(1)OS 发现请求创建新进程事件后,调用进程创建原语Creat();
(2)申请空白PCB;
(3)为新进程分配资源;
(4)初始化进程控制块;
(5)将新进程插入就绪队列.
14.在撤销一个进程时所要完成的主要工作是什么?
答:
(1)根据被终止进程标识符,从PCB 集中检索出进程PCB,读出该进程状态。
(2)若被终止进程处于执行状态,立即终止该进程的执行,置调度标志真,指示该进程被
终止后重新调度。
(3)若该进程还有子进程,应将所有子孙进程终止,以防它们成为不可控进程。
(4)将被终止进程拥有的全部资源,归还给父进程,或归还给系统。
(5)将被终止进程PCB 从所在队列或列表中移出,等待其它程序搜集信息。
15.试说明引起进程阻塞或被唤醒的主要事件是什么?
答:a. 请求系统服务;b. 启动某种操作;c. 新数据尚未到达;d. 无新工作可做.
16.进程在运行时存在哪两种形式的制约?并举例说明之。
答:
(1)间接相互制约关系。举例:有两进程A 和B,如果A 提出打印请求,系统已把唯一的
一台打印机分配给了进程B,则进程A 只能阻塞;一旦B 释放打印机,A 才由阻塞改为就
绪。
(2)直接相互制约关系。举例:有输入进程A 通过单缓冲向进程B 提供数据。当缓冲空时,
计算进程因不能获得所需数据而阻塞,当进程A 把数据输入缓冲区后,便唤醒进程B;反
之,当缓冲区已满时,进程A 因没有缓冲区放数据而阻塞,进程B 将缓冲区数据取走后便
唤醒A。
17.为什么进程在进入临界区之前应先执行“进入区”代码?而在退出前又要执行“退出
区”代码?
答:为了实现多个进程对临界资源的互斥访问,必须在临界区前面增加一段用于检查欲访问
的临界资源是否正被访问的代码,如果未被访问,该进程便可进入临界区对资源进行访问,
并设置正被访问标志,如果正被访问,则本进程不能进入临界区,实现这一功能的代码为"
北京石油化工学院信息工程学院计算机系6/48
《计算机操作系统》习题参考答案余有明与计07和计G09的同学们编著 6/48
进入区"代码;
在退出临界区后,必须执行"退出区"代码,用于恢复未被访问标志,使其它进程能再访问此
临界资源。
18. 同步机构应遵循哪些基本准则?为什么?
答:同步机构应遵循的基本准则是:空闲让进、忙则等待、有限等待、让权等待
原因:为实现进程互斥进入自己的临界区。
19. 试从物理概念上说明记录型信号量wait 和signal。
答:wait(S):当S.value0 时,表示目前系统中这类资源还有可用的。执行一次wait 操
作,意味着进程请求一个单位的该类资源,使系统中可供分配的该类资源减少一个,因此描
述为S.value:=S.value-1;当S.value0时,表示该类资源已分配完毕,进程应调用block
原语自我阻塞,放弃处理机,并插入到信号量链表S.L中。
signal(S):执行一次signal操作,意味着释放一个单位的可用资源,使系统中可供分配
的该类资源数增加一个,故执行S.value:=S.value+1 操作。若加1 后S.value≤0,则表
示在该信号量链表中,仍有等待该资源的进程被阻塞,因此应调用wakeup 原语,将S.L
链表中的第一个等待进程唤醒。
20.你认为整型信号量机制是否完全遵循了同步机构的四条准则?
答:整型信号量机制不完全遵循同步机制的四条准则,它不满足“让权等待”准则。
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
23.在生产者消费者问题中,如果缺少了signal(full)或signal(empty),对执行结果有何影响?
答:
如果缺少signal(full),那么表明从第一个生产者进程开始就没有改变信号量full 值,
即使缓冲池产品已满,但full 值还是0,这样消费者进程执行wait(full)时认为缓冲池是空
而取不到产品,消费者进程一直处于等待状态。
如果缺少signal(empty),在生产者进程向n个缓冲区投满产品后消费者进程才开始从
中取产品,这时empty=0,full=n,那么每当消费者进程取走一个产品empty 值并不改变,
直到缓冲池取空了,empty 值也是0,即使目前缓冲池有n 个空缓冲区,生产者进程要想
再往缓冲池中投放产品也会因为申请不到空缓冲区被阻塞。
24.在生产消费者问题中,如果将两个wait 操作即wait(full)和wait(mutex)互换位置,
或者将signal(mutex)与signal(full)互换位置,结果如何?
答:将wait(full)和wait(mutex)互换位置后,可能引起死锁。考虑系统中缓冲区全满时,
若一生产者进程先执行了wait(mutex)操作并获得成功,则当再执行wait(empty)操作时,
它将因失败而进入阻塞状态,它期待消费者进程执行signal(empty)来唤醒自己,在此之前,
它不可能执行signal(mutex)操作,从而使试图通过执行wait(mutex)操作而进入自己的临
界区的其他生产者和所有消费者进程全部进入阻塞状态,这样容易引起系统死锁。
若signal(mutex)和signal(full)互换位置后只是影响进程对临界资源的释放次序,而
不会引起系统死锁,因此可以互换位置。
25.我们在为某一临界资源设置一把锁W,当W=1时表示关锁,当W=0时表示锁已打开。
试写出开锁和关锁的原语,并利用他们实现互斥。
答:整型信号量:lock(W): while W=1 do no-op
W:=1;
unlock(W): W:=0;
记录型信号量:lock(W): W:=W+1;
if(W1) then block(W, L)
unlock(W): W:=W-1;
if(W0) then wakeup(W, L)
例子:
Var W:semaphore:=0;
begin
repeat
lock(W);
critical section
unlock(W);
remainder section
until false;
end
26.试修改下面生产者-消费者问题解法中的错误:
答: producer:
begin
repeat
…
producer an item in nextp;
wait(mutex);
wait(full); /" 应为wait(empty),而且还应该在wait(mutex)的前面 "/
buffer(in):=nextp;
/" 缓冲池数组游标应前移: in:=(in+1) mod n; "/
signal(mutex);
/" signal(full); "/
until false;
end
consumer:
begin
repeat
wait(mutex);
wait(empty); /" 应为wait(full),而且还应该在wait(mutex)的前面 "/
nextc:=buffer(out);
out:=out+1; /" 考虑循环,应改为: out:=(out+1) mod n; "/
signal(mutex);/" signal(empty); "/
consumer item in nextc;
until false;
end
27.试利用记录型信号量写出一个不会出现死锁的哲学家进餐问题的算法.
答:Var chopstick:array[0,…,4] of semaphore;
所有信号量均被初始化为1,第i 位哲学家的活动可描述为:
Repeat
Wait(chopstick[i]);
Wait(. chopstick[(i+1) mod 5]);
…
Ea.t ;
…
Signal(chopstick[i]);
Signal(chopstick[(i+1) mod 5])
Ea.t ;
…
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
29.画图说明管程由哪几部分组成,为什么要引入条件变量?
答:管程由四部分组成:①管程的名称;②局部于管程内部的共享数据结构说明;③对该数
据结构进行操作的一组过程;④对局部于管程内部的共享数据设置初始值的语句;
当一个进程调用了管程,在管程中时被阻塞或挂起,直到阻塞或挂起的原因解除,而在此期
间,如果该进程不释放管程,则其它进程无法进入管程,被迫长时间地等待。为了解决这个
问题,引入了条件变量condition。
30.如何利用管程来解决生产者与消费者问题?
答:首先建立一个管程,命名为ProclucerConsumer,包括两个过程:
(1)Put(item)过程。生产者利用该过程将自己生产的产品放到缓冲池,用整型变
量count 表示在缓冲池中已有的产品数目,当count≥n 时,表示缓冲池已满,生产者须
等待。
(2)get(item)过程。消费者利用该过程从缓冲池中取出一个产品,当count≤0
时,表示缓冲池中已无可取的产品,消费者应等待。
PC 管程可描述如下:
type producer-consumer =monitor
Var in,out,count:integer;
buffer:array[0,…,n-1]of item;
notfull,notempty:condition;
procedure entry dot(item)
begin
if count=n then not full.wait;
buffer(in):=nextp;
in:=(in+1)mod n;
count:=count+1;
if notempty.queue then notempty.signal;
end
procedure entry get(item)
begin
if count=0 then not full.wait;
nextc:=buffer(out);
out:=(out+1)mod n;
count:=count-1;
if notfull.quene then notfull.signal;
end
begin in:=out:=0;
count:=0
end
在利用管程解决生产者一消费者问题时,其中的生产者和消费者可描述为:
producer: begin
pepeat
produce an inem in nestp
PC.put(item);
until false;
end
consumer: begin
repeat
PC.get(item);
consume the item in enxtc;
until false;
end
31.什么是AND信号量?试利用AND信号量写出生产者一消费者问题的解法。
答:为解决并行带来的死锁问题,在wait 操作中引入AND 条件,其基本思想是将进
程在整个运行过程中所需要的所有临界资源,一次性地全部分配给进程,用完后一次性释放。
解决生产者-消费者问题可描述如下:
var mutex,empty,full: semaphore:=1,n,0;
buffer: array[0,...,n-1] of item;
in,out: integer:=0,0;
begin
parbegin
producer: begin
repeat
…
produce an item in nextp;
…
wait(empty);
wait(s1,s2,s3,...,sn); //s1,s2,...,sn为执行生产者进程除empty 外其余的条件
wait(mutex);
buffer(in):=nextp;
in:=(in+1) mod n;
signal(mutex);
signal(full);
signal(s1,s2,s3,...,sn);
until false;
end
consumer: begin
repeat
wait(full);
wait(k1,k2,k3,...,kn); //k1,k2,...,kn 为执行消费者进程除full 外其余的条件
wait(mutex);
nextc:=buffer(out);
out:=(out+1) mod n;
signal(mutex);
signal(empty);
signal(k1,k2,k3,...,kn);
consume the item in nextc;
until false;
end
parend
end
32.什么是信号量集?试利用信号量集写出读者一写者问题的解法。
答:对AND信号量加以扩充,形成的信号量集合的读写机制。
解法:Var RN integer;
L,mx: semaphore:=RN,1;
begin
parbegin
reader:begin
repeat
Swait(L,1,1);
Swait(mx,1,1);
…
perform read operation;
…
Ssignal(L,1);
until false
end
writer:begin
repeat
Swait(mx,1,1;L,RN,0);
perform write operation;
Ssignal(mx,1);
until false
end
parend
end
33.试比较进程间的低级与高级通信工具。
答:用户用低级通信工具实现进程通信很不方便,效率低,通信对用户不透明,所有操作都
必须由程序员来实现,而高级通信工具弥补了这些缺陷,用户直接利用操作系统提供的一组
通信命令,高效地传送大量的数据。
34.当前有哪几种高级通信机制?
答:共享存储器系统、消息传递系统以及管道通信系统。
35.消息队列通信机制有哪几方面的功能?
答:(1)构成消息(2)发送消息(3)接收梢息(4)互斥与同步。
36.为什么要在OS 中引入线程?
答:在操作系统中引入线程,则是为了减少程序在并发执行时所付出的时空开销,使OS具
有更好的并发性,提高CPU的利用率。进程是分配资源的基本单位,而线程则是系统调度的
基本单位。
37.试说明线程具有哪些属性?
答:(1)轻型实体(2)独立调度和分派的基本单位(3)可并发执行(4)共享进程资源。
38. 试从调度性,并发性,拥有资源及系统开销方面对进程和线程进行比较。
答:
(1)调度性。线程在OS 中作为调度和分派的基本单位,进程只作为资源拥有的基本单位。
(2)并发性。进程可以并发执行,一个进程的多个线程也可并发执行。
(3)拥有资源。进程始终是拥有资源的基本单位,线程只拥有运行时必不可少的资源,本
身基本不拥有系统资源,但可以访问隶属进程的资源。
(4)系统开销。操作系统在创建、撤消和切换进程时付出的开销显著大于线程。
39. 为了在多线程OS 中实现进程之间的同步与通信,通常提供了哪几种同步机制?
答:同步功能可以控制程序流并访问共享数据,从而并发执行多个线程。共有四种同步模型:
互斥锁、读写锁、条件变量和信号。
40.用于实现线程同步的私用信号量和公用信号量之间有何差别?
答:
(1)私用信号量。当某线程需利用信号量实现同一进程中各线程之间的同步时,可调用创
建信号量的命令来创建一个私用信号量,其数据结构存放在应用程序的地址空间中。
(2)公用信号量。公用信号量是为实现不同进程间或不同进程中各线程之间的同步而设置
的。其数据结构是存放在受保护的系统存储区中,由OS为它分配空间并进行管理。
41.何谓用户级线程和内核支持线程?
答:
(1)用户级线程:仅存在于用户空间中的线程,无须内核支持。这种线程的创建、撤销、
线程间的同步与通信等功能,都无需利用系统调用实现。用户级线程的切换通常发生在一个
应用进程的诸多线程之间,同样无需内核支持。
(2)内核支持线程:在内核支持下运行的线程。无论是用户进程中的线程,还是系统线程
中的线 程,其创建、撤销和切换等都是依靠内核,在内核空间中实现的。在内核空间里还
为每个内核支持线程设置了线程控制块,内核根据该控制块感知某线程的存在并实施控制。
42.试说明用户级线程的实现方法。
答:用户级线程是在用户空间中的实现的,运行在“运行时系统”与“内核控制线程”的中
间系统上。运行时系统用于管理和控制线程的函数的集合。内核控制线程或轻型进程LWP
可通过系统调用获得内核提供服务,利用LWP进程作为中间系统。
43.试说明内核支持线程的实现方法。
答:系统在创建新进程时,分配一个任务数据区PTDA,其中包括若干个线程控制块TCB
空间。创建一个线程分配一个TCB,有关信息写入TCB,为之分配必要的资源。当PTDA
中的TCB 用完,而进程又有新线程时,只要所创建的线程数目未超过系统允许值,系统可
在为之分配新的TCB;在撤销一个线程时,也应回收线程的所有资源和TCB。
东秦的操作系统答案
一、选择题:(每题1分,共10分)
1、(B)的主要特点是提供即时响应和高可靠性。生产过程的控制、武器系统、
航空订票系统、银行业务就是这样的系统。
A.分时系统 B.实时系统 C.批处理系统 D.分布式系统
2、下列进程状态的转换中,哪一个是不正确的(C)。
A.就绪一运行 B.运行一就绪 C.就绪一阻塞 D.阻塞一就绪
3、利用信号量实现进程的(B),应为临界区设置一个信号量mutex,其初值
为1,表示该资源尚未使用,临界区应置于P(mutex)和V(mutex)原语
之间。
A.同步 B.互斥 C.竞争 D.合作
4、作业调度的关键在于(B)。
A.选择恰当的进程管理程序 B.选择恰当的作业调度算法
C.用户作业准备充分 D.有一个较好的操作环境
5、下列存储管理方案中,不采用动态重定位的是(C)。
A.页式管理 B.可变分区 C.固定分区 D.段式管理
6、关于虚拟存储器,以下说法正确的是(D)。
A.可提高计算机运算速度的设备 B.容量扩大了的主存实际空间
C.通过SPOOLING 技术实现的 D.可以容纳和超过主存容量的多个作业
同时运行的一个地址空间
7、下面几个设备中,(C)是共享设备。
A.打印机 B.磁盘 C.读卡机 D.扫描仪
8、文件系统采用多级目录结构的目的,不包括是(B)
A.缩短访问文件的寻找时间 B.节省存储空间
C.解决文件的命名冲突 D.易于实现文件共享
9、磁盘驱动调度算法中(B)算法可能会随时改变移动臂的运动方向。
A.电梯调度 B.先来先服务 C.扫描 D.循环扫描
10、正在运行的进程在信号量S上作P操作之后,当S0的时候,进程进入信号量的
(A)。
A.等待队列 B.提交队列 C.后备队列 D.就绪队列
二、填空题:(每空1分,共15分)
1、不论是分时系统、实时系统还是批处理系统都具有四个基本特征 并发 、
共享 、 虚拟 、 异步 。
2、特权指令只能在__系统 _态下执行,若在 用户态下执行则被认为是非法指令。
3、__PCB______是进程存在的唯一标志。
4、设基址寄存器内容为1000,在采用动态重定位的系统中,当执行指令
“LOAD A,2000”时,操作数的实际地址是__3000_________。
5、按照调度的层次我们把调度分为 高级 、 低级 、 中级 。
6、根据文件的逻辑结构,文件可以分为 有结构文件 和__无结构文件_两类。
7、目前常用的外存分配方法有:连续分配、_链接______分配、 索引 分配。
三、名词解释(每题3分,共12分)
1、操作系统:
操作系统是一组控制和管理计算机硬件和软件资源、合理地对各类作业进行调度、以及方便用户的程序的集合。
2、临界区:
每个进程中访问临界资源的那段代码称为临界区
3、对换:所谓对换,是指把内存中暂不能运行的进程,或暂不用的程序和数据,换出到外存上,以腾出足够的内存空间,把已具备运行条件的进程,或进程所需的程序和数据,换入内存
4、设备独立性:
应用程序独立于具体的物理设备。
四、简单题(每题6分,共24分)
1、比较程序、进程的区别。
进程是动态的,程序是静态的,程序是有序代码的集合;进程是程序的执行;进程是暂时的,程序的永久的,进程是一个状态变化的过程,程序可长久保存;进程与程序的组成不同,进程的组成包括程序、数据和进程控制块(即进程状态信息);通过多次执行,一个程序可对应多个进程;通过调用关系,一个进程可包括多个程序。
2、什么是死锁?死锁预防的措施有哪些?
所谓死琐,是指多个进程因竞争资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再向前推进。
死锁预防的措施有:屏弃“请求和保持”条件,屏弃“不剥夺”条件,, 摒弃“环路等待”条件。
3、简述分页与分段的主要区别
(1)页是信息的物理单位,已削减内存零头,提高内存利用率为目的,而
不是用户的需求。段是信息的逻辑单位,具有相对完整的意义,是
为了满足用户的需求。
(2)页的大小固定,由系统确定。段的大小不固定,决定于用户编写的程序。
(3)分页的作业地址是一维的。分段的作业地址是二维的。
4、什么是局部性原理?什么是抖动?你有什么办法减少系统的抖动现象?
局部性原理是指在几乎所有程序的执行过程中,在一段时间内,CPU总是集中地访问程序中的某一个部分而不是对程序的所有部分具有平均的访问概率。
抖动是指当给进程分配的内存小于所要求的工作区时,由于内存外存之间交换频繁,访问外存的时间和输入输出处理时间大大增加,反而造成CPU因等待数据而空转,使得整个系统性能大大下降。
在物理系统中,为了防止抖动的产生,在进行淘汰或置换时,一般总是把缺页进程锁住,不让其换出,从而防止抖动的产生。
防止抖动产生的另一个办法是设置较大的内存工作区。
五、应用与计算(共39分)
1、现有一个具有n个缓冲区的缓冲池,Produce进程把它生产的消息放入一个缓冲区,Consumer进程可从一个缓冲区中取得一个消息消费。用信号量实现生产者和消费者之间的同步与互斥。请将下面的生产者和消费者算法补充完整。生产者和消费者对缓冲池互斥访问的信号量为SM,缓冲池的初值SB=n,缓冲池中消息个数初值为SP=0。(本题9分)
初值设置
SM= 1 ;SB=n;sp=0
P生产者:
While(1)
{...
Producer an item
Wait( SB )
Wait(SM)
缓冲操作
Singal(SM
Singal( SB )
…
}
C消费者:
While(1)
{...
Wait(SB )
Wait(SM
缓冲操作
Singal(SM
Singal(SB )
Consume the item
…
}
2、银行家算法中,若出现下述的资源分配情况:
ProcessAllocation NeedAvailable
P0 0 , 1 , 0 7 , 4 , 33 , 3 , 2
P1 2 , 0 , 0 1 , 2 , 4
P2 3 , 0 , 2 6 , 5 , 0
P3 2 , 1 , 1 0 , 1 , 1
P4 0 , 0 , 2 4 , 3 , 1
试问:(1)当前系统状态是否安全?如果安全写出安全序列。(7分)
(2)若进程P1 提出请求 Request ( 1 , 0 , 2 ) 后,系统能否将资源分配给它?(3分)
(1)存在如下进程序列,可使进程顺利执行完毕:
进程 可用资源数
P3:执行完 5 ,4 ,3
P4:执行完 5 ,4 ,5
P1:执行完 7 ,4 ,5
P0:执行完 7 ,5 ,5
P2:执行完 10 ,5 ,7
当前系统是安全的,安全序列是:P3 , P4 , P1 , P0 , P2 . (8分)
(2) 如果将资源分配给进程P1 ,这时所有待执行的进程中就没有满足所需资源数
=系统可提供资源数条件的,所以系统不可以将资源分配P1(2分)
3、假设一磁道有200个柱面,编号为0 — 199 ,在完成了磁道125处的请求后,当前正在磁道143处为一请求服务,若请求队列的先后顺序为86,147,91,177,94,150,102,175,130。试分别采用FCFS(先来先服务)、SSTF(最短寻道时间优先)算法完成上述请求,写出磁道移动的顺序,并计算磁头移动的总距离。(本题8分)
(1)采用FCFS算法调度,磁头移动顺序为:
143-86-147-91-177-94-150-102-175-130
磁头移动总量为:565(柱面)。(4分)
(2)采用SSTF算法调度,磁头移动顺序为:
143-147-150-130-102-94-91-86-175-177
磁头移动总量为:162(柱面)。(4分)
4、我们打开计算机中的某个word文档,然后通过打印机打印文档中的内容,在这个过程中,操作系统为我们做了什么?试从操作系统功能的角度加以分析。(本题12分)
进程管理:执行时完成调度(2分)
存储管理:为调度的进程分配内存,以及从硬盘中读取文件。(2分)
文件管理:所调度文件的查询与读取(2分)
设备管理:打印机的驱动,以及打印工作的执行。(2分)
用户接口:执行程序时的界面,以及程序进程本身所含的系统调度。(2分)
整个过程是五个功能合作完成。(2分)
菠萝包 15:03:19
一、选择题:(每题1分,共10分)
1、(B)的主要特点是提供即时响应和高可靠性。生产过程的控制、武器系统、
航空订票系统、银行业务就是这样的系统。
A.分时系统 B.实时系统 C.批处理系统 D.分布式系统
2、下列进程状态的转换中,哪一个是不正确的(C)。
A.就绪一运行 B.运行一就绪 C.就绪一阻塞 D.阻塞一就绪
3、利用信号量实现进程的(B),应为临界区设置一个信号量mutex,其初值
为1,表示该资源尚未使用,临界区应置于P(mutex)和V(mutex)原语
之间。
A.同步 B.互斥 C.竞争 D.合作
4、作业调度的关键在于(B)。
A.选择恰当的进程管理程序 B.选择恰当的作业调度算法
C.用户作业准备充分 D.有一个较好的操作环境
5、下列存储管理方案中,不采用动态重定位的是(C)。
A.页式管理 B.可变分区 C.固定分区 D.段式管理
6、关于虚拟存储器,以下说法正确的是(D)。
A.可提高计算机运算速度的设备 B.容量扩大了的主存实际空间
C.通过SPOOLING 技术实现的 D.可以容纳和超过主存容量的多个作业
同时运行的一个地址空间
7、下面几个设备中,(C)是共享设备。
A.打印机 B.磁盘 C.读卡机 D.扫描仪
8、文件系统采用多级目录结构的目的,不包括是(B)
A.缩短访问文件的寻找时间 B.节省存储空间
C.解决文件的命名冲突 D.易于实现文件共享
9、磁盘驱动调度算法中(B)算法可能会随时改变移动臂的运动方向。
A.电梯调度 B.先来先服务 C.扫描 D.循环扫描
10、正在运行的进程在信号量S上作P操作之后,当S0的时候,进程进入信号量的
(A)。
A.等待队列 B.提交队列 C.后备队列 D.就绪队列
二、填空题:(每空1分,共15分)
1、不论是分时系统、实时系统还是批处理系统都具有四个基本特征 并发 、
共享 、 虚拟 、 异步 。
2、特权指令只能在__系统 _态下执行,若在 用户态下执行则被认为是非法指令。
3、__PCB______是进程存在的唯一标志。
4、设基址寄存器内容为1000,在采用动态重定位的系统中,当执行指令
“LOAD A,2000”时,操作数的实际地址是__3000_________。
5、按照调度的层次我们把调度分为 高级 、 低级 、 中级 。
6、根据文件的逻辑结构,文件可以分为 有结构文件 和__无结构文件_两类。
7、目前常用的外存分配方法有:连续分配、_链接______分配、 索引 分配。
三、名词解释(每题3分,共12分)
1、操作系统:
操作系统是一组控制和管理计算机硬件和软件资源、合理地对各类作业进行调度、以及方便用户的程序的集合。
2、临界区:
每个进程中访问临界资源的那段代码称为临界区
3、对换:所谓对换,是指把内存中暂不能运行的进程,或暂不用的程序和数据,换出到外存上,以腾出足够的内存空间,把已具备运行条件的进程,或进程所需的程序和数据,换入内存
4、设备独立性:
应用程序独立于具体的物理设备。
四、简单题(每题6分,共24分)
1、比较程序、进程的区别。
进程是动态的,程序是静态的,程序是有序代码的集合;进程是程序的执行;进程是暂时的,程序的永久的,进程是一个状态变化的过程,程序可长久保存;进程与程序的组成不同,进程的组成包括程序、数据和进程控制块(即进程状态信息);通过多次执行,一个程序可对应多个进程;通过调用关系,一个进程可包括多个程序。
2、什么是死锁?死锁预防的措施有哪些?
所谓死琐,是指多个进程因竞争资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再向前推进。
死锁预防的措施有:屏弃“请求和保持”条件,屏弃“不剥夺”条件,, 摒弃“环路等待”条件。
3、简述分页与分段的主要区别
(1)页是信息的物理单位,已削减内存零头,提高内存利用率为目的,而
不是用户的需求。段是信息的逻辑单位,具有相对完整的意义,是
为了满足用户的需求。
(2)页的大小固定,由系统确定。段的大小不固定,决定于用户编写的程序。
(3)分页的作业地址是一维的。分段的作业地址是二维的。
4、什么是局部性原理?什么是抖动?你有什么办法减少系统的抖动现象?
局部性原理是指在几乎所有程序的执行过程中,在一段时间内,CPU总是集中地访问程序中的某一个部分而不是对程序的所有部分具有平均的访问概率。
抖动是指当给进程分配的内存小于所要求的工作区时,由于内存外存之间交换频繁,访问外存的时间和输入输出处理时间大大增加,反而造成CPU因等待数据而空转,使得整个系统性能大大下降。
在物理系统中,为了防止抖动的产生,在进行淘汰或置换时,一般总是把缺页进程锁住,不让其换出,从而防止抖动的产生。
防止抖动产生的另一个办法是设置较大的内存工作区。
五、应用与计算(共39分)
1、现有一个具有n个缓冲区的缓冲池,Produce进程把它生产的消息放入一个缓冲区,Consumer进程可从一个缓冲区中取得一个消息消费。用信号量实现生产者和消费者之间的同步与互斥。请将下面的生产者和消费者算法补充完整。生产者和消费者对缓冲池互斥访问的信号量为SM,缓冲池的初值SB=n,缓冲池中消息个数初值为SP=0。(本题9分)
初值设置
SM= 1 ;SB=n;sp=0
P生产者:
While(1)
{...
Producer an item
Wait( SB )
Wait(SM)
缓冲操作
Singal(SM
Singal( SB )
…
}
C消费者:
While(1)
{...
Wait(SB )
Wait(SM
缓冲操作
Singal(SM
Singal(SB )
Consume the item
…
}
2、银行家算法中,若出现下述的资源分配情况:
ProcessAllocation NeedAvailable
P0 0 , 1 , 0 7 , 4 , 33 , 3 , 2
P1 2 , 0 , 0 1 , 2 , 4
P2 3 , 0 , 2 6 , 5 , 0
P3 2 , 1 , 1 0 , 1 , 1
P4 0 , 0 , 2 4 , 3 , 1
试问:(1)当前系统状态是否安全?如果安全写出安全序列。(7分)
(2)若进程P1 提出请求 Request ( 1 , 0 , 2 ) 后,系统能否将资源分配给它?(3分)
(1)存在如下进程序列,可使进程顺利执行完毕:
进程 可用资源数
P3:执行完 5 ,4 ,3
P4:执行完 5 ,4 ,5
P1:执行完 7 ,4 ,5
P0:执行完 7 ,5 ,5
P2:执行完 10 ,5 ,7
当前系统是安全的,安全序列是:P3 , P4 , P1 , P0 , P2 . (8分)
(2) 如果将资源分配给进程P1 ,这时所有待执行的进程中就没有满足所需资源数
=系统可提供资源数条件的,所以系统不可以将资源分配P1(2分)
3、假设一磁道有200个柱面,编号为0 — 199 ,在完成了磁道125处的请求后,当前正在磁道143处为一请求服务,若请求队列的先后顺序为86,147,91,177,94,150,102,175,130。试分别采用FCFS(先来先服务)、SSTF(最短寻道时间优先)算法完成上述请求,写出磁道移动的顺序,并计算磁头移动的总距离。(本题8分)
(1)采用FCFS算法调度,磁头移动顺序为:
143-86-147-91-177-94-150-102-175-130
磁头移动总量为:565(柱面)。(4分)
(2)采用SSTF算法调度,磁头移动顺序为:
143-147-150-130-102-94-91-86-175-177
磁头移动总量为:162(柱面)。(4分)
4、我们打开计算机中的某个word文档,然后通过打印机打印文档中的内容,在这个过程中,操作系统为我们做了什么?试从操作系统功能的角度加以分析。(本题12分)
进程管理:执行时完成调度(2分)
存储管理:为调度的进程分配内存,以及从硬盘中读取文件。(2分)
文件管理:所调度文件的查询与读取(2分)
设备管理:打印机的驱动,以及打印工作的执行。(2分)
用户接口:执行程序时的界面,以及程序进程本身所含的系统调度。(2分)
整个过程是五个功能合作完成。(2分)
下一篇:眉山股票代码(眉山股票代码查询)