操作系统作业 下载本文

计计AABBCCI/O计计ABC0205090140160170190200

单道程序时间关系图

20ms+30ms+10ms+30ms+50ms+20ms+10ms+20ms+10ms=200ms

(2) 试画出多道运行时三道程序的时间关系图,并计算完成三道程序要花多长时间。

计算ABACBCI/O操作ABC02050607090100120130

多道程序时间关系图

20ms+30ms+10ms+40ms+20ms+10ms=130ms

10.将下列左右两列词连接起来形成意义最恰当的的5对。

DOSOS/2UNIXLINUXWindows NT

网络操作系统自由软件多任务单任务为开发操作系统而设计C语言

5

第二章

思考与练习题

1. 操作系统中为什么要引入进程的概念?为了实现并发进程之间的合作和协调,以及保

证系统的安全,操作系统在进程管理方面要做哪些工作? 答:操作系统引入进程的概念是为了从变化的角度动态地分析研究可以并发执行的程序,真实地反映系统的独立性、并发性、动态性和相互制约。

操作系统的进程管理提供大量的服务,用来定义、支持和管理系统中的进程和线程。它除了负责进程和线程的管理之外,还负责用户进程和系统进程的创建与撤销、进程调度等。 2. 试描述当前正在运行的进程状态改变时,操作系统进行进程切换的步骤。

答:①运行状态→就绪状态。正在运行的进程,由于规定的时间片用完而被暂停执行,该进程就会从运行状态转变为就绪状态。此进程根据其自身的情况(如优先级)插入到就绪队列的适当位置,系统收回处理机转入进程调度程序重新进行调度。

②运行状态→阻塞状态。处于运行状态的进程,除了因为时间片用完而暂停执行外,还有可能由于系统中的其他因素的影响而不能继续执行下去。一个进程从运行状态到阻塞状态后,系统会调用进程调度程序重新选择一个进程投入运行。 3.现代操作系统一般都提供多任务环境,试回答下列问题。

(1)为支持多进程的并发执行,系统必须建立哪些关于进程的数据结构?

答:为支持多进程的并发执行,系统必须建立PCB。用链接的方式把PCB连接起来就形成了运行队列、就绪队列。

(2)为支持进程的状态变迁,系统至少应提供哪些控制原语?

答:系统至少应该提供创建新进程原语、唤醒原语、阻塞原语、激活原语、挂起原语 (3)当进程的状态变迁时,相应的数据结构发生变化吗? 发生变化

创建原语:申请空白PCB,初始化进程描述信息,为进程分配资源、分配存储空间,将新进程插入就绪队列。

撤销原语:查找撤销进程PCB,终止进程运行状态,归还资源从所在队列移出。 阻塞原语:将进程PCB的运行状态改为阻塞状态,并将进程投入阻塞队列。

唤醒原语:将进程PCB的运行状态从阻塞状态改为就绪状态,把进程从阻塞队列移出投入就绪队列。

4. 什么是进程控制块?从进程管理、中断管理、进程通信、文件管理、设备管理及存储管理的角度设计进程控制块应包含的内容。 答:进程控制块是来描述进程本身的特性、进程状态、进程的调度信息及对资源的占有情况,它是进程实体的一部分,是操作系统中最重要的数据结构。进程控制块记录了操作系统所需的用于描述进程情况及控制进程运行的全部信息。 为了进程管理,进程控制块包括以下几方面。

①进程的描述信息,包括进程标识符、进程名等。 ②进程的当前状况。 ③当前队列链接指针。 ④进程的家族关系。 为了中断处理,进程控制块的内容应该包括处理机状态信息和各种寄存器的内容,如通用寄存器、指令计数器、程序状态字(PSW)寄存器及栈指针等。

6

为了文件管理的需要,进程在执行时,可能与其他进程有同步关系或相互通信,进程使用的信号量、消息队列指针等都要存放在PCB中。

为了设备管理,进程控制块的内容应该包括进程所需全部资源以及已经占有的资源等。 5.假设系统就绪队列中有10个进程,这10个进程轮换执行,每隔300ms轮换一次,CPU在进程切换时所花费的时间是10ms,试问系统化在进程切换上的开销占系统整个时间比例的多少?

答:10/(300+10)=3.2﹪

6. 试述线程的特点及其与进程之间的关系。

答:线程是进程的一个实体,是被独立调度和分派的基本单位。同一进程内的多个线程都可以访问进程的所有资源,线程之间的通信比进程之间的通信方便。

线程与进程的关系:线程与进程是两个密切相关的概念,一个进程至少拥有比一个线程(该线程为主线程),进程根据需要创建若干个线程。进程中的所有线程共享该进程资源,它们驻留在同一块地址空间中,并且可以访问到相同的数据。 7.根据图2-18,回答以下问题。

(1)进程发生状态变迁1、3、4、6、7的原因。

答:1:表示新进程创建以后,进入高优先级就绪队列。3:表示正在运行的进程请求I/O或等待某事件,运行的进程进入阻塞队列。4:表示进程运行的时间片用完。6:表示进程I/O或等待某事件完成,进程又重新进入就绪队列。7:进程运行完成退出。

(2)系统中常常由于某一进程的状态变迁引起另一进程也产生状态变迁,这种变迁称为因果变迁。下述变迁是否是因果变迁:3→2,4→5,7→2,3→6,试说明原因。

答:3→2是因果变迁,当一个进程从运行变为阻塞时,此时CPU空闲,首选一优先级高的进程投入运行。

4→5是因果变迁,进程在就绪队列中轮换运行,当一进程时间片用完CPU空闲,此时立即选择一进程投入运行,若无高优先级只能提低优先级。

7→2是因果关系,当进程运行完成退出后,CPU空闲,高优先级进程投入运行。

3→6不是因果变迁,因为进程由于自身原因发生阻塞和另一进程等待时间达到没有关系。 (3)根据此进程状态转换图,说明该系统CPU调度的策略和效果。

时间片500ms 5运行低优先级就绪时间片200ms 27退出4 3创建高优先级就绪9阻塞1 图2-18 进程状态转换图

答:当进程调度时,首先从高优先级就绪队列选择一进程,赋予时间片为100ms。如果高优先级就绪队列为空,则从低优先级就绪队列选择进程,但赋予500ms。这一策略照顾了短进程,一个进程如果在100ms运行完毕它将退出系统,照顾了I/O量大的进程,进程因I/O进入阻塞队列,当I/O完成后它就进入了高优先级就绪队列。 8. 回答以下问题。

7

(1)若系统中没有运行进程,是否一定没有就绪进程?为什么?

答:是,若系统中没有运行的进程,系统会马上选择一个就绪进程队列中的进程投入运行。只有就绪队列为空时,CPU才会空闲。

(2)若系统中既没有运行进程,也没有就绪进程,系统中是否没有阻塞进程?请解释。 答:不一定,当系统中所有进程都在请求I/O或等待某事件时他们都处于阻塞状态,此时既没有就绪进程也没有运行进程。

(3)如果系统采用优先级调度策略,运行的进程是否一定是系统中优先级最高的进程?为什么?

答:不一定,因为最高优先级的进程可能处于等待状态,进程调度只能从就绪队列中挑选一个进程投入运行。被选中运行的进程是就绪队列中优先级最高的,但它处于整个系统中不一定是最高的。

9. 假如有以下程序段,回答下面问题。

s1:a?3?x;s2:b?2*a; s3:c?5?a;(1) (2) (3) (1)

并发程序执行的Bernstein条件是什么? 试画图表示它们执行时的先后次序。

利用Bernstein条件证明, s1、s2和 s3哪两个可以并发执行,哪两个不能。 答:程序P1和P2并发执行的条件,当且仅当 R(P1)∩W(P2)∪R(P2)∩W(P1)∪W(P1)∩W(P2)={ }

s2s1s3(2)答: (3)答:S1和S2不能并发执行: R(S2)∩W(S1)={a}; R(S1)∩W(S2)={ };

S1和S3不能并发执行: R(S3)∩W(S1)={a}; R(S1)∩W(S3)={ }; S2和S3能并发执行:

R(S2)∩W(S3)∪ R(S3)∩W(S2)∪W(S2)∩W(S3)={ };

8