|
计算机操作系统课后习题答案,西安电子科技大学出版社
4 K, i$ g8 ]0 F5 @1 ?/ e+ B15.处理机管理有哪些主要功能?它们的主要任务是什么?: P# }0 Q3 B$ u" M* l I; }
答:处理机管理的主要功能是:进程管理、进程同步、进程通信和处理机调度;
4 ^8 m8 O8 M8 Q ^进程管理:为作业创建进程,撤销已结束进程,控制进程在运行过程中的状态转
% @' j1 y3 d' c换0 Y: X2 u5 {! `9 I9 a' _0 Y( T- s
进程同步:为多个进程(含线程)的运行进行协调。
% i: b+ C4 D5 }进程通信:用来实现在相互合作的进稈之间的信息交换。
* ]8 {$ S' R/ u. n) g4 |5 M" `+ d# ]调度1)作业调度。从后备队里按照一定的算法,选出若干个作业,为他们
6 w8 A" b" h- M- h$ u- F$ f$ ]: a分配运行所需的资源(首选是分配内存)。9 x% [' Z6 }* W: S& H
(2)进程调度:从进程的就绪队列中,按照一定算法选出一个进程,把
: S. x" L9 p9 I- S0 |处理机分配给它,并设置运行现场,使进程投入执行。! r" V; G0 t3 D0 ?
16.内存管理有哪些主要功能?他们的主要任务是什么?" d6 K1 H9 Q2 h# N/ u- w
答:内存管理的主要功能有:内存分配、内存保护、地址映射和内存扩充。: t& E1 m7 ?. I# M2 q
内存分配:为每道程序分配内存。. ^% {8 b1 p( f
内存保护:确保每道用户程序都只在自己的内存空间运行,彼此互不干扰- r' }! e/ p/ j3 C: S0 e! r
地址映射:将地址空间的逻辑地址转换为内存空间与对应的物理地址。4 b1 U% w1 g: @7 i: z
内存扩充:用于实现请求调用功能,置换功能等
! o( A) A7 x( l Y6 Q17.设备管理有哪些主要功能?其主要任务是什么?
) u* E8 `6 W. V8 s9 H4 G% _答:主要功能有:缓冲管理、设备分配和设备处理以及虚拟设备等。' o- i8 o* D+ R9 n
主要任务:完成用户提出的1/0请求,为用户分配I/(0设备:提高CPU和I/0+ C) x+ _' A2 T$ P( J( ~7 V
设备的利用率:提高I0速度:以及方使用户使用I0设备。
) Y% ^; T i; g, j$ {18.文件管理有哪些主要功能?其主要任务是什么?
4 s3 U- | P5 o. d3 C答:文件管理主要功能:文件存储空间的管理、目录管理、文件的读/写管理和1 x% @* L' h1 C+ d( v; Q5 s
保护。3 h$ `+ p: V% t
文件管理的主要仟务:管理用户文件和系统文件,方便用户使用,保证文件安全
# @' l" Y8 k$ F# L+ ?3 w9 k9 K19.试说明推动传统0S演变为现在0的主妻因素是什么?
c7 q1 r' ]5 o(1)系统安全。(2)网络的功能和服务。(3)支持多媒体5 ]' R; L9 b8 S& u8 z, i
20.试描述什么是微内核OS。1 G" D; D$ q. K! {# U1 D
答:1)足够小的内核2)基于客户/服务器模式3)应用机制与策略分离原理4)) p0 D. N) Q$ n3 y( R1 a
采用面向对象技术。
5 @ W/ |1 J) ]1 c2 j) q0 [21.微内核操作系统具有哪些优点?它为何能有这些优点?9 M7 Y! F$ x7 ?: Y' @2 M- a
答1)提高了系统的可护展性;(2)增强了系统的可靠性;(3)可移植性;
* o6 \% |9 e2 r3 X1 x(4)提供了对分布式系统的支持;(5)融入了面向对象技术( E H' Q) b3 u G" M$ G1 d
23.在微内核0S中,为什么要采用客户/务器模式?7 Q# ?/ {- {# O8 B7 v
答:C/S模式具有独特的优点
1 E7 m/ P- \ v1 C9 W& l% Z( o(1)数据的分布处理和存储。(2)便于集中管理。(3)灵活性和可扩充性。
. W% k% I# C$ A& G5 \ \(4)易于改编应用软件。
9 H# E6 k0 r/ l4 J& `8 k6 _22.现代操作系统较之传统操作系统又增加了哪些功能和特征?
2 k/ t: D* V q& `4 e) w7 u(1)进程(线程)管理。(2)低级存储器管理。(3)中断和陷入处理。' q1 s7 z2 C; l3 ~9 d' V; W4 E9 ~
24.在基于微内核结构的05中,应用了哪些新技术?
% g6 u: `; k2 w2 \答:在基于微内核结构的0中,采用面向对象的程序设汁技术: {9 N% N9 X6 X2 d- I
- W0 M9 U1 w. D3 ]# X
25.何谓微内核技术?在微内核中通常提供了哪些功能?" g: }0 D# a2 D, s
答:把操作系统中更多的成分和功能放到更高的层次(即用户模式)中去运行: L9 Y% J6 c* h# t
而留下一个尽量小的内核,用它来完成操作系统最基本的核心功能,称这种技术
) [3 x4 m; h4 z+ l/ {" f为微内核技术。在微内核中通常提供了进程〔线程)管理、低级存储器管理、中
8 ~2 M% X: }5 T断和陷入处理等功能
: u- ]1 Q( o8 S2 {+ V第二章
8 K3 E. T3 P2 z9 X I1.什么是前趋图?为什么要引入前趋图?6 H4 Q. ?/ j/ h( W4 p/ _* e5 E: A
答:前趋图( Precedence Graph)是一个有向无循环图,记为DAG( Directed+ x& f' C5 p6 C7 x
Graph),用于描述进程之间执行的前后关系。
! M; @) g% p, @9 n4 w# r9 D! x2.画出下面四条语句的前趋图* M- Q0 ?- Q' p9 m
Sl=a:=x+y;S2=b:=z+1;s3=c:=a-b;S4=w:=c+1
) F( I! g1 g5 `1 @- Z% xS
( M. h- O, X/ |2 f答:其前趋图为:0 i: C) f" P; X! L8 T
S3 P5 K# z$ u4 o
3.为什么程序并发执行会产生间断性特征?
0 j$ A; P: I1 K5 w% \. S5 [8 Z答:程序在并发执行时,由于它们共亨系统资源,为完成同一项任务需要相互合
2 R5 ]2 r6 g! i, T作,致使这些并发执行的进程之间,形成了相互制约关系,从而使得进程在执行
5 V2 A$ P. O2 L( s- H% j期问出现间断性。
6 f6 f& Q5 R- l# o8 Y- v- C4.程序并发执行时为什么会失去封闭性和可冉现性?" h: h# A/ {1 T; v+ o; A; N
答:程序并发执行时,多个程序共享系统中的各种资源,因而这些资源的状态由0 r( Y% \$ x+ X' A& O! @ [
多个程序改变,致使程序运行失去了封闭性,也会导致其失去可再现性。) y; ^% m% Y" N' E% C5 W6 ^
5.在操作系统中为什么要引入进程概念?它会产生什么样的影响?3 x9 H+ E6 i: T
答:为了使程序在多道程序环境下能并发执行,并对并发执行的程序加以控制和
/ {3 F, d; u- Z6 ]! e, m; A+ x描述,在操作系统中引入了进程概念。2 `% V2 n8 d! {% q! x
影响:使程序的并发执行得以实行。
4 i4 I; B, K/ n% S) o! g8 v" H6.试从动态性,并发性和独立性上比较进程和程厅?
) Y' x/ b0 b* c2 [6 V8 Q& f% g7 s2 C答1)动态性是进程最基本的特性,表现为由创建而产生,由调度而执行 s1 s' ]# A8 f
因得不到资源而暂停执行,由撤销而消亡。进程有一定的生命期,而程序只是
* ?9 O% f" @( _& g; R1 B+ p: ~组有序的指令集合,是静态实体。, W2 N$ u3 y9 q, h
(2)并发性是进程的重要特征,同时也是0s的重要特征。引入进程的目的2 N3 p% b$ D/ i2 q
正是为了使其程序能和其它进程的程序并发执行,而程序是不能并发执行的9 U: L1 t1 ~4 s- _4 A
(3)独立性是指进程实体是一个能独立运行的基本单位,也是系统中独立
; o+ S0 X: _) B- B z3 y6 i获得资源和独立调度的基本单位。对于未建立任何进程的程序,不能作为独立单
* ~8 i, K$ X' b位参加运行。
; @! b5 ^" ]* \: E& W) K2 R9 U7.试说明PCB的作用,为什么说PCB是进程存在的惟一标志?
0 M* _: _4 u+ r# C4 G! v答CB是进程实体的一部分,是操作系统中最重要的记录型数据结构。作用是
6 |& V# ~% J- ^+ O0 P- r, E使一个在多道程序环境下不能独立运行的程序,成为一个能独立运行的基本单6 {+ {) M- T4 f: V% ~
位,成为能与其它进程并发执行的进程。0S是根据PCB对并发执行的进程进行
6 M6 l- s/ `9 T1 z m8 {控制和管理的& Y. t% q A, v' W2 s6 G
8.PCB提供了进程管理和进程调度所需要的哪些信息?& \- i1 i; G8 J9 f: K, i) r( C
进程管理:通用寄存器、指令计数器、程序状态字、用户栈指针
; N8 ] Q4 Z1 _6 M4 L9 s进程调度:进程状态、进程优先级、事件、其他信息& z4 F& C5 g5 n, E8 f5 j
$ ]: \ W* c& ]
9.进程控制块的组织方式有哪几种?
8 [7 B% E( i# v m$ V3 z线性方式、链接方式、索引方式
' f' r4 J8 r y7 \10.何谓操作系统内核?内核的主要功能是什么?- c* I1 p- w, w4 U) ~/ l
现在操作系统一般将0划分为若干层次,再将0的不同功能分别设置在不同4 P+ i7 O1 q6 X/ Q d9 w5 f9 m4 O
的层次中。通常将一些与硬件紧密相关的模块(如中断处理程序等)、各种常用设
. ?7 x1 t/ H8 `" w! w备的驱动程序以及运行频率较高的模块(如时钟管理、进程调度和许多模块所公/ K8 n/ }8 D4 O, O7 j2 Y4 D
用的一些基本操作),都安排在紧靠硬件的软件层次中,将它们常驻内存,即通
: m9 v |/ |0 R* R. a' j$ B常被称为的0内核。0 ]3 l2 F; Z1 f% e: s
支撑功能:中断处理、时钟管理、原语操作
; L* a" o( c2 C9 ]# N8 |资源管理功能:进程管理、存储器管理、设备管理0 P ]9 k6 \2 _ g- E; Y) ^1 {
11.试说明进程在三个基本状态之间转换的典型原因。3 z9 G# d( L, ~% l. f% b5 T
答1)就绪状态→执行状态:进程分配到CPU资源
0 t' o" U1 g' C! Z& N(2)执行状态→就绪状态:时间片用完
. z4 ~ D, s! F, ~0 s/ D(3)执行状态→阻塞状态:1/O请求& E, n# F5 e$ x- H; ]% B3 [6 K
(4)阻塞状态→就绪状态:10完成( U( C2 X' l! g0 g7 H, ^8 B, w+ q
12.为什么要引入挂起状态?该状态有哪些性质?
' z& \7 C! G& Z. `答:引入挂起状态处于五种不同的需要:终端用户需要,父进程需要,操作系统2 ^' W a4 x" y( _! a4 i
需要,对换需要和负荷调节需要。处于挂起状态的进程不能接收处理机调度。
+ W8 U3 Z( G* n4 H( U" C13.在进行进程切换时,所要保存的处理机状态信息有哪些?
, ?" F, w! G: j3 q2 z答:进行进程切换时,所要保存的处理机状态信息有7 a% V' `) W9 y# @
(1)进程当前暂存信息
2 @: C+ Z) p9 n, @- Q(2)下一指令地址信息
# R6 A& v8 a, i, @(3)进程状态信息6 M5 t9 p% P A' f% `- N, |
(4)过程和系统调用参数及调用地址信息。% b s9 P2 K# N; V5 N
14.试说明引起进程创建的主要事件
+ v1 P' _9 a8 i+ x, B; T+ j答:引起进程创建的主要事件有:用户登录、作业调度、提供服务、应用请求。6 b5 C( c& Y3 K% x& P2 y0 L& I
15.试说明引起进程被撤销的主要事件。
; l& ]3 a4 Z, d5 x答:引起进程被撤销的主要事件有:正常结東、异常结束(越界错误、保护错) T& f0 E" _7 @+ l" \
非法指令、特权指令错、运行超时、等待超时、算术运算错、Ⅰ0散障)、外0 I& f; `% r5 j; A8 k! Y( G
界干预(操作员或操作系统干预、父进稈请求、父进稈终止)。, X: t- [* S, [6 m+ n
16.在创建一个进程时所要完成的主要工作是什么?
$ G# F* G# s- S3 |% B: J! |3 D答1)0S发现请求创建新进程事件后,调用进程创建原语 Creat02 N+ }% J: o6 z& t9 K4 J, m6 Z; a
(2)申请空白PCB' z% G9 h( ^, H' M, b: m
(3)为新进程分配资源;& C( }+ H% W. V7 Q8 j
(4)初始化进程控制块
$ h. D& e, v! Z. d1 f(5)将新进程插入就绪队列
3 }4 A. N) b# m' ^( I. x$ A8 g) ?17.在撤销一个进程时所要完成的主要工作是什么
# U( D) @! o- e6 P# ]0 ]4 A6 H4 m答1)根据被终止进程标识符,从PCB集中检索出进程PCB,读出该进程状
+ N8 k5 o* F3 x, D, R y(2)若被终止进程处于执行状态,立即终止该进程的执行,置调度标志真,* W% ~% Y7 O/ {: z! P Z' a
指示该进程被终止后重新调度) r6 W% A9 ]( @# S. K+ W% _
(3)若该进程还有子进程,应将所有子孙进程终止,以防它们成为不可控1 ^3 M, _, @% G
进程。
$ ^; F& p& \) R(4)将被终止进程拥有的全部资源,归还给父进程,或归还给系统; @3 y' ~- \# M% ]! g/ o- A
(5)将被终止进程PCB从所在队列或列表中移出,等待其它程序搜集信息
2 U0 h# _8 d& A! j18.试说明引起进程阻塞戒被唤醒的主要事件是什么?; c: ~; F6 S2 h" s8 l% }8 q9 ?
答:a.请求系统服务;b.启动某种操作;c.新数据尚未到达;d.无新工作可做0 e- l+ Y1 W" X" f6 }' u
; E0 _7 P/ y- t: x9 E6 r19.为什么要在0S中引入线程?
( L+ G; D) J. s答:在操作系统中引入线程,则是为了减少程序在并发执行时所付出的时空开销,
# T# f' D- x) L# | _# B使0S具有更好的并发性,提高CPU的利用率。进程是分配资源的基本单位,而
6 ~* }" z/ n7 i5 n; v线程则是系统调度的基本单位
* c1 a$ r& K7 V% C' J20.试说明线程具有哪些属性?
% \7 @: k4 l! ?: d答1)轻型实体(2)独立调度和分派的基本单位(3)可并发执行(4)共亨
) ?8 z& r% ]/ R% \6 m5 N进程资源。
9 O; }0 e% o7 ~$ t. f, S21.试从调度性,并以性,拥有资源及系统开销方面对进程和线程进行比较。# U) j7 N* k8 u R
答1)调度性。线程在0S中作为调度和分派的基本单位,进程只作为资5 N/ i9 |2 I" [
源拥有的基本单位; S H6 u* D/ d8 t7 s* Y
(2)并发性。进程可以并发执行,一个进程的多个线程也可并发执行。
0 M7 p7 b* A& w7 {(3)拥有资源。进稈始终是拥有资源的基本单位,线稈只拥有运行时必不
9 W( v; M! m. b; L可少的资源,本身基本不拥有系统资源,但可以访问隶属进程的资源" h0 h) t) |( M8 m8 O- e
4)系统开销。操作系统在创建、撤消和切换进程时付出的开销显著大于
( u0 m6 y0 T( h! [+ v2 w! G, `. ^: |线程。
: A! M: \' h: D6 t$ r* N23.何谓用户级线程和内核支持线程?( D, x1 T( H6 d& Y: V N, N
答1)用户级线程:仅存在于用户空间中的线程,无须内核支持。这种线程# ~- j% g1 }/ f" k! I! s8 ^$ M
的创建、撤销、线程间的同步与通信等功能,都无需利用系统调用实现。用户级+ I9 l$ a8 E4 u" K; E1 s7 E
线程的切换通常发生在一个应用进程的诸多线程之间,同样无需内核支持6 U7 x" R. q+ g& T
(2)内核支持线程:在内核支持下运行的线程。无论是用户进程中的线程,2 \) a3 c- L+ D* ^2 d m* N4 [2 W
还是系统线程中的线程,其创建、撤销和切换等都是依靠内核,在内核空间中实
/ Z3 {9 D3 L4 r( z2 p$ m现的。在内核空间里还为每个内核支持线程设置了线程控制块,内核根据该搾制
) C$ H) F( J1 n7 P* `; [# ` _块感知某线程的存在并实施控制。- T( f) h2 b9 \0 ]
24.试说明用户级线程的实现方法。" C3 Q5 ~! g5 U, i
答:用尸级线程是在用户空间中的实现的,运行在“运行时系统”与“内核控制! H& ~' a; @7 f- z, ^/ c. u
线程”的中间系统上。运行时系统用于管理和控制线程的函数的集合。内核控制/ R4 C$ i5 X' h! q
线程或轻型进程LW可通过系统调用获得内核提供服务,利用LW进程作为中间( f$ _+ o6 p a" y i2 N
系统。# G3 ^8 s: M# z! d9 l
25.试说明内核支持线程的实现方法。6 B% q" E/ e e+ ]% D
答:系统在创建新进程时,分配一个任务数据区PTDA,其中包括若干个线程控2 [( ?' ]& ^9 _* n: T$ _8 A; D% C
訇块TCB空间。创建一个线程分配一个TCB,有关信息写入TCB,为之分配必要- f4 }; _0 q$ a
的资源。当PTDA中的TCB用完,而进程又有新线程时,只要所创建的线程数; }9 ]" D+ c( o' ?/ x& a7 A6 |
未超过系统允许值,系统可在为之分配新的TCB:在撤销一个线程时,也应回收
7 p' F5 `+ p# F6 _. D# g v线程的所有资源和TCB。/ q9 a7 F# D- {- {9 }! r3 J
26.多线程模型有哪几种类型?多对一模型有何优缺点?; Q6 `4 E& Z* M- F' M
多对一模型、一对一模型和多对多模型。
4 r$ S0 N* B9 D( r8 s5 U4 j1 T5 b4 a多对一模型的主要缺点在于,如果一个线程在访问内核时发生阻塞,则整个进$ O; I# P( F2 J% p) j" D
程都会被阻塞:此外,在任一时刻,只有一个线程能够访问内核,多个线程不能3 X5 _8 I# _9 [/ a
同时在多个处理机上运行。; A9 r1 f1 k2 E
第三章+ d- W. N4 H$ U- u0 Y m
1.高级调度不低级调度的主要任务是什么?为什么要引入中级调度?
0 u9 I5 _: B9 O j a/ `" {答:高级调度的主要仼务是根据某种算法,把外存上处于后备队列中的那些作业
% m$ f7 ^3 J" X' u) L, q( m7 Z0 {3 y2 G, V调入内存。低级调度是保存处理机的现场信息,按某种算法先取进程,再把处理+ R) |) X* A/ F5 |: B0 Q
器分配给进程。引入中级调度的主要日的是为了提高内存利用率和系统吞吐量。' B4 z- s% T0 {( X3 ~
使那些暂时不能运行的进程不再占用内存资源,将它们调至外存等待,把进程状: ]: B) M' G$ C
态改为就绪驻外存状态或挂起状态
7 H/ d# |9 q) h2 C! T6 i( Q4 [) |/ [2.处理机调度算法的共同目标是什么?批处理系统的调度目标又是什么?; U$ r) E& A W
共同日标:资源利用率,公平性,平衡性,策略强制执行. s( A! H* }; C P- y
批处理系统的调度目标:平均周转时间短,系统吞吐量高,处理机利用率高。
# g3 i' s9 O$ x& W* ^: I. C7 q$ e& Z
3.何谓作业、作业步和作业流?
% i% \) v5 ^9 P+ [( o2 q' a4 }5 @答:作业包含通常的程序和数据,还配有作业说明书。系统根据该说明书对1 X i; H$ {/ p, f5 a. U- b' o
程序的运行进行控制。批处理系统中是以作业为基本单位从外存调入内存。
# D1 O# {, h5 b( Y1 s9 l作业步是指每个作业运行期间都必须经过若十个相对独立相互关联的顺序
& s' \0 T$ b2 u) F% k加工的步骤。
# \7 D0 m. D7 \3 b3 k) ]作业流是指若干个作业进入系统后依次存放在外存上形成的输入作业流:在7 X( a/ t4 L/ J1 E
操作系统的控制下,逐个作业进程处理,于是形成了处理作业流。2 H, O3 t) X) l7 q
4.在什么情况下需要使用作业控制块JCB?其中包含了哪些内容?' n5 C, M0 U, Z3 u
答:每当作业进入系统时,系统便为每个作业建立一个作业控制块JCB,根据作
, W. t5 }0 k7 }/ s业类型将它插入到相应的后备队列中。1 u/ p9 o9 P: f) v
JCB包含的内容通常有:1)作业标识2)用广名称3)用户账广4)作业类型(CPU
) ~9 i; C% j9 G. E% @3 S繁忙型、I/芳名型、批量型、终端型)5)作业状态6)调度信息(优先级、作业
/ e0 e. V0 w! G1 e/ ~: v" ]- y已运行)⑦)资源要求8)进入系统时间9)、开始处理时间10)作业完成时间11)
. a% S2 o' R' E1 { j. v) y作业退出时间12)资源使用情况等
+ [% t8 X) T' G% j! |. `5.在作业调度中应如何确定接纳多少个作业和接纳哪些作业?5 O4 O# S4 ?: I) Q: y; b
答:作业调度每次接纳进入内存的作业数,取决于多道程序度。应将哪些作业从
* P: S/ L0 N. e! T外存调入内存,取决于采用的调度算法。最简单的是先来服务调度算法,较常用
j0 A5 l* W) h$ [3 M" _的是短作业优先调庋算法和基于作业优先级的调度算法。& B" M7 {" Q- W9 k% X' k/ q
7.试说明低级调度的主要功能。. |, z6 s4 x6 x4 V2 t+ Z) D
答1)保存处理机的现场信息(2)按菜种算法选取进程(3)把处理矶分配
) L5 O) |0 v+ m# a8 r- I给进程。
Z& i& v: z6 g U: {8.在抢占调度方式中,抢占的原则是什么?3 |. L. x+ N) ^: b5 ?' O
答:抢占的原则有:时间片原则、优先权原则、短作业优先权原则等。
' Q. `8 H- r- g7 O( e9 s7 F3 z9.在选择调度方式和调度算法时,应遵循的准则是什么?0 x+ H R# Z5 Q/ }$ Z& @
答:(1)面向用户的准则:周转时间短、响应时间快、截止时间的保证、优先
^* \: I; l q" x* _权准则。* M% m3 j$ D1 ~% e/ q2 S1 l
(2)面向系统的准则:系统吞吐量高、处理机利用率好、各类资源的平衡" ?; `1 J& S& ^; }" m. |2 Y
利用。/ X0 U1 [% X8 A; ]
10.在批处理系统、分时系统和实时系统屮,各采用哪几种进程(作业)调度算( `. M9 l5 G! O; z. J
法
2 k* d0 L/ p# {/ g! }. [0 P& C答:批处理系统的调度算法:短作业优先、优先权、高响应比优先、多级反% N$ P; S% M( p( n! f& D; | i
馈队列调度算法。) N$ d2 v) s5 V# l: K
时系统的调度算法:时间片轮转法。
! C* g' P- [- A: D! p( H实时系统的调度算法:最早截止时间优先即EDF、最低松弛度优先即LLF算
3 o) F @/ ]7 A* l9 O0 FI1.何谓静态和动态优先级?确定諍态优先级的依据是什么) ?* t" b V+ M3 Q3 X* @& X
答:静态优先级是指在创建进程时确定且在进程的整个运行期间保持不变的' t1 ?0 T; e! `& z5 p# U$ F
7 w& r% H3 l9 O. L
优先级。
% G/ Z6 E) P3 A4 E' {; @. U5 W动态优先级是指在创建进程时赋予的优先杈,可以随进程推进或随其等待时, V: W3 q9 \6 t4 X5 p
问增加而改变的优先级,可以获得更好的调度性能
; T7 q3 s+ i* ^* P确定进程优先级的依据:进程类型、进程对资源的需求和用户要求。
( E) [8 {; x9 B12.试比较FCFS和SPF两种进程调度算法' i+ H' n. i5 p
答:相同点:两种调度算法都可以用于作业调度和进程调度。
- C& A0 x5 v4 X' `) z, @ @不同点:FCFS调度算法每次都从后备队列中选择一个或多个最先进入该队列6 t5 B% d) b& f. m
的作业,将它们调入内存、分配资源、创建进程、插入到就绪队列。该算法有利
6 U7 n1 P' Z- U. b6 J, p于长作业/进程,不利于短作业/进程。SPF算法每次调度都从后备队列中选择
* @/ N: x! u8 c b个或若干个估计运行时间最短的作业,调入内存中运行。该算法有利于短作业/
" w% ^, [( q( ~- z3 G8 a进程,不利于长作业/进程。 ?; f) ~' F7 b5 }
13.在时间片轮转法中,应如何确定时间片的大小?# {& b V9 n+ Q1 F" S+ b
答:时间片应略大于一次典型的交互需要的时间。一般应考虑三个因素:系统对6 r `; d V" `! U. i% s/ C2 N! f e- f
相应时间的要求、就绪队列中进程的数目和系统的处理能力。) t" m1 c- f/ n6 {+ h
14.通过一个例子来说明通常的优先级调度算法不能适用于实时系统?! e/ c* w' `, E& i# j% R$ T4 E- \, `
答:实时系统的调度算法很多,主要是基于任务的开始截止时间和任务紧急/松
4 c6 i& z, F1 J2 F6 ]弛程度的任务优先级调度算法,通常的优先级调度算法不能满足实时系统的调度/ \+ y r! p. V5 ?
实时性要求而不适用。3 c: M5 [0 F: i6 }& X, O% y5 S' o
15.为什么说多级反馈队列调度算法能较好地满足各方面用户的需要?* l( @# }- C+ r4 V+ Y
终端型用户:由于终端型用户提交的作业多属于交互型作业,通常较小,系
+ i9 \/ P5 v# {% E统只婓能使这些作业在第一队列规定的时间片内完成,使可使终端型用户感到满( @* l5 o v- R
短批处理作业用户:对于这类作业,如果可在第一队列中执行完成,便获得: Z' h4 l; d$ {4 m
与终端型作业一样的响应时间。对于稍长的短作业,也只需在第二和第三队列各- } b s2 @0 K) k7 x+ `3 Y
执行一时间片完成,其周转时间仍然较短
- M$ m9 ]% U$ k2 a" f! [" c+ r" L长批处理作业用户:对于长作业,它将依次在第1,2,……n个队列中运行,# W) d+ ]; H3 S% y) S- x$ D1 p J
然后再按轮转方式运行,用户不必担心其作业长期得不到处理& x5 i% X9 j8 V, A- y n( S: h
16.为什么说传统的几种调度算法都不能算是公平调度算法?; f( F' X5 g B3 G8 ~
以上介纽的几种调度算法所保证的只是优先运行,如优先级算法是优先级最高
* r) F: Y- K/ ~" `5 [: Y$ e的作业优先运行,但并不保证作业占用了多少处理机时间。另外也未考虑到调度7 n9 [" n# i/ E, g( W8 ?
的公平性。
- Y4 w& ]8 a5 f8 w17.保证调度算法是如何做到调度的公平性的?% ^& w0 B* m: n' }; q! I! d
保证调度算法是另外一种类型的调度算法,它向用户所做出的保证并不是优先4 t# l; O# P; C- {- e" \
运行,而是明确的性能保证,该算法可以做到调度的公平性。一种比较容易实现
: D; D5 j. I; Z* z% P的性能保证是处理机分配的公平性。如果在系统中有n个相同类型的进程同时运+ D( h6 g% W$ [: U: K& |
行,为公平起见,须保证每个进程都获得相同的处理机时间1/n
$ {% h9 P' m* y18.公平分享调度算法又是如何做到调度的公半性的?8 U w' q0 @& e: M' P" Q, w
在公平分享调度算法中,调度的公平性主要是针对用户而言,使所有用户能获; H3 u# F' T' M+ t3 F1 E
得相同的处理机时间,或所要求的时间比例。. O! ~: D& z6 d- B' i& t8 m
19.为什么在实时系统中,要求系统(尤其是CPU)有较强的处理能力?
& x: [* W$ L! |; z- C9 R& p8 j, u答:在实时系统中,不但包括周期任务、偶发任务、非周期任务,还包括非实时
* R. }# G& w% h: u任务。实时任务要求要满足时限,而非实时任务要求要使其响应时问尽可能的短。9 h6 h7 z, U0 Q- N5 N
多种类型任务的混合,使系统的可调度性分析更加困难。实际上有些实时系统
+ Y: Z k Y0 A. t/ t- VCP处理能力并不强,比如一些嵌入式实时系统,这就要求系统尽量少做一些并
5 v3 Y& V( {5 z4 ?$ h% T1 U发计算任务,留出足够冗余处理实时任务。2 I$ W6 @8 }5 _; o7 }7 j. s
20.按调度方式可将实时调度算法分为哪几种?; z: U( W7 b2 B
答:按调度方式不同,可分为非抢占调度算法和抢占调度算法两种。1 r* L0 z) Q5 R+ \
0 }* a9 C0 @2 Y
21.什么是最早截止时间优先调度算法,请举例说明之
; n5 |1 J/ w2 n6 c$ w答:根据任务的开始截止时间确定的任务优先级调度算法。截止时间越早则优先
" t+ r- {$ l8 U- Y级越高。该算法要求在系统中保持一个实时任务就绪队列,该队列按各任务截止+ G( c( z7 X% y {! P# J
时间的先后排序。% Z0 [3 c* U( C7 `1 D2 u
22.什么是最低松弛度优先调度算法,请举例说明之。
. I4 r, n: v% x7 ^, Y; t答:该算法是根据任务的紧急(或松弛)程度,来确定任务的优先级。任务的紧: y9 V% W$ e8 l7 x# T: G
急程度越高,为该任务所赋予的优先级就越高,以使之优先执行。
: h% d s& i# H4 u p& {7 K例如,一个任务在200ms时必须完成,而它本身所需的运行时间就有100ms,/ g/ [& D. r& @* A d/ T) A
因此,调度程序必须在100ms之前调度执行,该任务的紧急程度(松弛程度)为
! N9 o6 p4 s/ N100ms。又如,另一任务在4o0ms时必须完成,它本身需要运行150ms,则其松
' j# Y8 o& U# Q. n, r: ~$ t池程度为250ms。
; D+ |+ f# v3 P9 o最早截止时间优先调度算法:任务要求的截止时间越早,其优先级就越高。
b& B5 c. p. P& Y; m最低松弛度优先调度算法:任务的紧急程度越高,其优先级就越高。; o8 @# u9 s+ [
23.何谓“优先级倒置”现象,可米取什么方法来解决?
2 ^& q$ |6 A. Z& e1 p% e& [: x当前OS广泛采用优先级调度算法和抢占方式,然而在系统中存在着影响进程
X' u. l$ ^/ n+ f运行的资源而可能产生“优先级倒置”的现象,即高优先级进程(或线程)被低优
" F8 U u) |6 d7 w; |) W0 L先级进程(或线程)延迟或阻塞
9 V$ a Q; E; B) O; K9 U24.试分别说明可重用资源和可消耗资源的性质。
2 ^" W6 l/ e# l! v. s# J6 k% D叮重用性资源:每一个可重用性资源中的单元只能分配给一个进程使用,不允# R* y+ c# a* Q, P" C7 L
许多个进程共享。进稈在使用可重用性资源时,须按照这样的顺序:请求资源、3 z0 H: \5 D m7 E% A% |) n( K
使用资源、释放资源。系统中每一类可重用性资源中的单元数目是相对固定的,
/ z4 V1 R4 \+ I1 T进程在运行期问既不能创建也不能删除它。
0 A- P6 f5 M1 u可消耗性资源:每一类可消耗性资源的单元数目在进程运行期间是可以7 d7 y+ c# g0 F+ Q/ t0 s
不断变化的,有时它可以有许多,有时可能为0。进程在运行过程中,可以不断
( P# L; p/ Q! q1 F2 Q! W& i) d创造可消耗性资源的单元,将它们放入该资源类的缓冲区中,以增加该资源类的
3 j) U: H" X5 u3 ~1 o$ r单元数目。进程在运行过程中,可以请求若干个可消耗性资源单元,用于进程自2 x7 `6 Z( M* n+ D7 |
己的消耗,不再将它们返回给该资源类中。: Z. u! [2 H/ i# a l3 e% `. ?1 q' }
5.试举例说明竞争不可抢占资源所引起的死锁。
9 d' O8 l7 @3 I7 C% E8 \例如,系统中有两个进程P1和P2,它们都准备写两个文件F1和F2,而这两* L. G( @& k+ J4 u1 v
者都属于可重用和不可抢占性资源。进程P1先打开F1,然后再打开文件F2:进5 p( q, O( H" y/ G
程P2先打开文件F2,后打开F1,下面示出了这段代码。
; K+ o' x! b m" J+ U' w/ rOpen(f1, w)/ E9 g( {( N( d( Q8 C! j
Open(f2, w)
! z0 X! o/ I# @5 Y. G; @) O8 cOpen(f2, w)
. a( u2 P _/ r- w3 j/ F% f( E! LOpen(f1, w);
0 O- G) q+ \: N+ x% M* `9 p两个进程P1和P2在并发执行时,如果P1先打开F1和F2,然后P2才* D( u& b! I) y X4 m- K
去打开F1(或F2),由于文件Fl(F2)已被P1打开,故P2会被阻塞。当P写完! ]$ L7 o1 m3 A: [' T" [( S
文件F1(或F2)而关闭FI(F2)时,P2会由阻塞状态转为就绪状态,被调度执行后
4 n5 V& D s, F) G$ o重新打开文件F1(或F2)。在这种情况下,P1和P2都能正常运行下去。若P2先
+ Y& a& M7 s/ r2 M打开F1和F2,然后P1才去打开F1(或F2),P1和P2同样也可以正常运行下去. M" u u0 C9 g
但如果在P1打开F1的同时,P2去打开F2,每个进程都占有一个打开% e, l! F: A/ [5 Z/ H. T
的文件,此时就可能出现问题。因为当P1试图去打开F2,而P2试图去打开F
4 p3 n2 j( ^' ?4 @& D时,这两个进程都会因文件已被打开而阻塞,它们希望对方关闭自己所需要的文/ X# R5 V- x! H3 g. e
件,但谁也无法运行,因此这两个进程将会无限期地等待下去,而形成死锁。
4 u. d7 H- o2 o1 F; v0 H# J2 W; S/ S, p
26.为了破坏“请求和保持”条件而提出了两种协议,试比较这两种协议。
& R6 s/ @' Y2 Y- \& T第一种协议在所有进程开始运行之前,必须一次性地申诮其在整个运行过程中! |: K; i: G7 q
所需的全部资源,并且在分配资源时,只要有一种资源不能满足进程的要求,即# K0 \( A* U, V* B$ ?6 J
使其它所需的各种资源都空闲也不分配给该进程,而让该进程等待。因此有资源5 q4 k( R5 g8 `
被严重浪费、进程经常会发生饥饿现象等缺点。
4 n; u* z( |# g/ ^2 M) Q第二种协议是对第一种协议的改进,它允许一个进稈只获得运行初期所7 ~" _; B' d1 { j
需的资源后,便开始运行。进程运行过程中再逐步释放已分配给自己的,且已用
' Q& {. G- E: P) `; {' n. s9 @毕的全部资源,然后再请求新的所需资源。如此使提高设各的利用率,还可减1 H$ ]: J3 s: C
少进程发生饥饿的概率
. G; C, {, H0 r27.何谓死锁?产生死锁的原因和必要条件是什么?% v1 u2 x" j4 v! {
答:(1)死锁是指多个进程因竞争资源而造成的一种僵局,若无外力作用,这
# }' S6 _9 A; y, A* l4 {$ b些进程都将水远不能再向前推进
/ M: c7 }; L3 f4 E1 U* G* B- I) B(2)产生死锁的原因有二,一是竞争资源,二是进程推进顺序非法
1 T' ?9 @- s+ M' r5 A" Q(3)必要条件是:互斥条件,请求和保持条件,不剥夺条件和环路等待条
6 ]1 v/ ]! P8 U4 s. v6 c* A件。, g- \3 n! f# ]5 D% t
28.在解决死锁问题的几个方法中,哪种方法最易于实现?哪种方法是资源利用1 {; d+ A! ?% p$ n, H
率最高?# d. V* T- ~4 h9 y, Z' a6 G
答:解决/处理死锁的方法有预防死锁、避免死锁、检测和解除死锁,其中预防
' b: _ g" z# \' u) w! X死锁方法最容易实现,但由于所施加的限制条件过于严格,会导致系统资源利用9 [3 b) W9 m! W. M
率和系统吞吐量降低;而检测和解除死锁方法可是系统获得较好的资源利用率和
/ Q, r3 s' N% u- X: E系统吞吐量
, S2 w1 u, \' y29.请详细说明可通过哪些途径预防死锁?# V6 M" T/ Y4 A
答:(1)摒弃"请求和保持"条件:系统规定所有进程开始运行之前,都必须4 ^$ T+ j9 E* s& ]% g& u) m
次性地申请其在整个运行过程所需的全部资源,但在分配资源时,只要有一和资- m$ z: d8 @8 P7 B8 M0 b
源不能满足某进程的要求,即使其它所需的各资源都空闲,也不分配给该进程," }% m# |) }; V* r" g+ H! _
而让该进程等待;/ S* a0 E% ^ O; X! ?3 {; D/ c/ c
(2)摒弃"不剥夺”条件:系统规定,进程是逐个地提出对资源的要求的。! j/ {' q# a' d5 y
当一个已经保持了某些资源的进稈,再提出新的资源请求而不能立即得到满足9 E0 _) P' m. k" m- B
时,必须释放它已经保持了的所有资源,待以后需要时再重新中请
' n( }+ Q7 T- [(3)摒弃”环路等待"条件:系统将所有资源按类型进行线性排序,并赋予4 }7 l v |, w& e3 y0 s
不同的序号,且所有进程对资源的请求必须严格按序号递增的次序提出,这样,
9 Z7 @, i, B" u4 R/ h. x, p! t( z在所形成的资源分配图中,不可能再出现环路,因而摒弃了"环路等待"条件。0 M* c$ U: L0 {9 c A1 u0 |
30.在教材银行家算法的例子中,如果P0发出的请求向量由 Request0(0,2,0
* e! A% Z, H2 q改为 Request0(0,1,0),问系统可否将资源分配给它?* @# _6 w1 ~9 T/ T+ |9 N
答0发出请求向量 Requst0(0,1,0),按银行家算法进行检查:
% y" W9 x0 v& d& D) C+ ot0(0,1,0)≤Need0(7,4,3)8 y4 g( o2 B7 E8 m% o& A( K2 j
② Request0(0,1,0)≤ Availab1e(2,3,0)! }+ N( g( o, h; d; C. x; f
③系统暂时先假定可为P0分配资源,修改 Available, Allocation1和Nedl' H2 p; }5 A0 {& l; P2 t
向量在下面数据结构中的数值:' z) P# A7 I( W3 ?7 \2 d3 t
Available[j]:=Available[j]-Request i[j]
' i5 k( i+ i! C) `4 ^; }# A) x3 T: E$ t6 x4 |5 ]
资源下载地址和密码(百度云盘): [/hide] 百度网盘信息回帖可见
5 [ c9 k6 R! l& h9 o( A1 f6 C- q( v2 X6 H) w/ Q4 B$ Y% [0 \
* ]1 L8 x. S" L2 E- G6 a+ F) E
; w8 @$ w- z. p6 @' |+ ~& K本资源由Java自学网收集整理【www.javazx.com】 |
|