习题3
3.1 多道程序可以提高系统效率,是否在内存中尽可能多的存放多个程序,为什么 ?
答:
如果内存中可同时运行的程序过多,这些程序之间可能会因为相互等待被其它程序占用的设备资源(如I/O设备),反而可能会影响系统效率。当然,处理机的竞争在作业道数过多的情况下更加激烈,可能会产生两个不利后果。一是影响系统的响应速度,二是产生过多的系统开销(系统本身需要运行必要的程序进行相应的控制和管理)。
3.2 操作系统通过什么概念来刻画程序的并发执行、资源分配及随机性 ?
答:
进程
3.3 试画出下面5条语句的前趋图:
S1:x = 5;S2:y = x + 8;S3:z = x + y;S4:a = x + y + z;S5:b = y + a。
答:
3.4 从多个程序在单处理机上执行的角度来考察,并发的含义是什么 ?
答:
在时间上来表示,并发执行是一个程序的开始是在另一个程序结束之前
3.5 有下面的5条语句,试画出前趋图;
S1 :a = x+10;S2 :b = a + 10;S3:c = 4*x;S4:d = b + c;S5:e = d + 5;并根据Bernstein 条件,证明S2 和S3 是可以并发执行的,而S4 和S5 语句是不能并发执行的。
答:
S2 和S3 是可以并发执行,因为:
R(S2)∩W(S3)={a}∩{c}={ }。
W(S2)∩R(S3)={b}∩{x}={ }。
W(S2)∩W(S3)={b}∩{c}={ }。
S4 和S5 语句不能并发执行,因为:
W(S4)∩R(S5)={d}∩{d}={d}。
3.6 在书中给出的有关进程描述中,它们所具有的本质是什么 ?
答:
进程是一个动态的执行过程。
3.7 并发运行因为什么发生结果不可再现性 ?
答:
由于失去了封闭性。
3.8 进程的基本特征是什么 ?
答:
动态性、并行性、独立性、异步性和结构性。
3.9 进程的构成中,PCB是属于系统还是用户的部分,它的作用是什么 ?
答:
PCB属于系统,是系统构建的,其作用是系统根据PCB感知进程的存在和通过一个线程可以包含多个进程PCB中所包含的各项变量的变化,掌握进程所处的状态以达到控制进程活动的目的。
3.10 为什么说PCB是操作系统感知进程存在的唯一标志 ?
答:
PCB包含了有关进程的描述信息、控制信息以及资源信息,是进程动态特征的集中反映。
3.11 用户进程所执行的程序一定是用户自己编写的应用程序,这句话是否正确 ?
答:
否。
3.12 进程的三个基本状态是什么 ?怎样从进程状态的角度理解进程的“走走停停”
答:
进程或进程之间可能由于等待I/O操作、竞争资源、以及相互协作等原因产生了“走走停停”的动态性。
3.13 进程如果正常执行结束,为什么还要在系统中设置一个完成状态,而不直接从系统中退出消亡 ?
答:
需要结果输出及系统记帐等善后
3.14 如有下面的进程状态转换(变迁)图1表示,图中的数字表示一种形式的状态转换。试验判别下述诸条件是否成立 ?为什么 ?
1 → 2;1 → 3;2 → 1;
2 → 4;3 → 1;3 → 4;
4 → 1;4 → 2;4 → 3;
5 → 1;5 → 4;
其中,条件式 x → y 表示:若一进程产生状态转换 x,则导致另一个进程产生状态转换 y(x,y=1,2,3,4,5)
答:
1 → 2;√ 1 → 3;× 2 → 1;×
2 → 4;× 3 → 1;× 3 → 4;×
4 → 1;× 4 → 2;√ 4 → 3;×
5 → 1;× 5 → 4;×
3.15 引入挂起状态的理由是什么,给出一个挂起的时机(任意就绪、阻塞活动状态下)
答:
引入挂起状态的目的就是使一些进程已占用的系统资源让出部分,或全部(PCB仍在系统中),以供其它进程利用让出的系统资源,提高系统的整体效率。
一个挂起的时机就是所有进程都在等待I/O,而处理机在空闲时。
3.16 为什么可以出现从各种状态的进程直接进入完成状态 ?
答:
如果父进程终止,或被创建它的进程终止,则表明一个进程可以在任何状态下终止而进入完成状态。
3.17 操作系统为什么需要考虑处理机的执行模式,通常由用户模式进入系统模式的时机是什么?
答:
使用两种模式的原因是很显然的,它可以保护操作系统及相关的各种数据表不受到用户进程的干涉,这也是操作系统管理和控制计算机系统的重要技术手段。
由用户模式进入系统模式的时机是中断事件的发生。
3.18 解释原语的含义,如果原语是由一段程序构成,为什么说原语是不能并发执行的 ?不是说系统内多个程序(进程)可以并发执行吗 ?
答:
原语的含义是原子操作不可分割的基本单位。
因为它包含有共享变量。
3.19 给出一个唤醒进程的时机,并说明可以由谁唤醒一个在阻塞态的进程
答:
当存在等待I/O的进程在I/O完成中断信号到来后被唤醒。唤醒阻塞态进程可以是同步进程,及系统程序(如中断处理程序)。
3.20 进程之间的制约关系有几种,请分别给出每一种制约关系在现实生活中的具体原由和例子。
答:
有两种:直接和间接制约关系。
直接制约关系:运动会上发令员与记时员的关系。
间接制约关系:对向在一座仅可以通过一辆车的桥上行使(共同竞争一座桥)。
3.21 引入线程的根本原因是什么 ?
答:
从计算机的效率,多个并发活动减少系统对于并发所带来的时/空开销。
3.22 从调度、资源分配对进程和线程进行比较。
答:
调度;进程在传统的操作系统中,既是资源的拥有者,也是系统调度和分派的单位。而在引入线程之后,进程仅作为资源的分配单位,线程作为调度和分派的单位。在同一进程内,线程的切换不会引起进程的切换;而由一个进程中的线程切换到另一个进程中的线程时,才会发生进程切换。
系统资源;在引入线程的操作系统中,线程成为了被调度和分派的基本单位。线程基本不拥有资源,只有一些运行所必须的资源(如程序计数器、一组寄存器和栈),但它可以和进程内其它线程共享进程所拥有的全部资源,即一个进程的代码段、数据段以及系统资源(如打开的文件、I/O设备等)。
3.23 用户级线程与内核级线程最主要的区别是什么 ?
答:
有两点:
(1)许多系统调用都会引起用户执行流的阻塞。因此,当用户级线程执行一个系统调用时,不仅这个线程被阻塞,整个进程的所有线程都被阻塞了。
(2)在纯粹的用户级线程策略中,由于内核是按进程作为调度单位的,因此一个多线程用户应用程序不能利用多处理技术。内核一次只将一个进程分配给一个处理机,也就只能有一个线程可以执行
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论