操作系统考试复习之第二章:进程管理(重点知识和习题解析)

来都来了不点个赞真说不过去啦🌹🌹🌹🌹🌹🌹

部分一:重点知识

 一、进程和线程

首先在了解进程和线程之前要了解的概念是程序:程序是静态的,是程序员写好的代码文件,是永久静态保存在磁盘中的

进程是动态的,是程序一段执行过程,一个程序可能同时被执行为多个进程。

进程是如何从程序变成进程的呢?

1.首先操作系统会从磁盘里面把程序读到内存给程序分配内存空间

2.操作系统就给进程分配PID、进程的状态、控制信息(也就是PCB:PID、进程状态都在这个块里面就类似于一个结构体)、进程的内存空间

3.就会把进程放入就绪队列中等待执行

⭐进程的状态:

  • 创建态:系统创建进程,操作系统给进程分配系统资源、pcb等等
  • 就绪态:已经具备运行条件,等待空闲的cpu,进行调用
  • 运行态:当cpu处于空闲阶段就会在就绪态的进程里面选择一个进行执行,,也就是把cpu占据进入了运行态,一核的cpu就只可以一次运行一个进程,多少核的cpu可以有多少个进程处于运行态
  • 阻塞态:因为某个事件而暂时不可用运行
  • 终止态:运行进程从cpu撤销,操作系统就会回收资源、撤销PCB

        进程的状态转化也就很容易理解,也就是说你点击一个exe可执行文件,操作系统首先会帮你将程序代码和数据加载到内存中,并为它们分配内存空间,如何就会创建进程,现在处于创建态,创建好了之后会变成就绪态在就绪队列中等待cpu调用,cpu调用了此进程之后就变成了运行态,要是这个时候假设这个进程要使用到的资源被使用着,cpu的调度算法会先把改进程放入阻塞态去,再次等待被调用。

线程:线程是程序执行流的最小单位,一个进程中可以有多个线程,线程通俗的来说就是实现的是你在使用聊天软件的时候,可以一边视频一边打字,这个实现不可以通过进程实现进程是要安装代码的顺序进行执行的。

二、进程通信

进程通信是两个进程之间产生数据交互,也就是把qq中的文件发到微信的文件助手中。

1.共享存储

        也就是内存会有一个共享空间,进程可以把自己要分享的数据直接写在这一段内存空间下面,也就是会在后面章节提到的,在进程中建立一个映射执行这段空间就可以了。

但是采用这种方式可能会有脏读的情况发生,会有多个进程同时读写数据,所以这个地方就会要有进程互斥的概念引入也就是下面的七,会有P,V操作来进行读写操作。

2.消息传递

进程间的数据交换以格式化的消息为单位。进程通过操作系统提供的“发送消息/接收消息” 两个原语进行数据交换。

1.直接通信方式:把消息直接放入接受队列的消息队列上

2.间接通信方式:把消息发送到信箱里面,接收者去信箱里面去找有没有发给自己的消息,接收者会从信息里面拿到自己的消息。

3.管道通信

1.管道只能采用半双工通信,某一时间段内只能实现单向的传输。如果要实现双向同时通信,则需要设置两个管道。

2.各进程要互斥地访问管道。

3.数据以字符流的形式写入管道,当管道写满时,写进程的write()系统调用将被阻塞,等待读进程将数据取走。当读进程将数据全部取后,管道变空,此时读进程的read()系统调用将被阻塞。

4.如果没写满,就不允许读。如果没读空,就不允许写。

5.数据一旦被读出,就从管道中被抛弃,这就意味着读进程最多只能有一个,否则可能会有读错数据的情况。

三、处理机调度

        作业是用户需要计算机完成的某项任务。一个作业的完成要经过作业提交、作业收容、作业执行和作业完成四个阶段。而进程是对已提交完毕的程序所执行过程的描述。一个作业可由多个进程组成,且必须至少由一个进程组成。

调度可以分为三类:高级调度、中级调度、低级调度。

1.高级调度 :高级调度又称作业调度,主要功能是根据某种算法,决定从外存中处于后备队列中的哪几个作业调入内存,为它们创建进程、分配必要的资源,并将它们放入就绪队列。多用于多批处理系统

2.中级调度:中级调度又称为内存调度。中级调度决定哪些进程参与竞争处理器资源,途径是把一些进程换出主存,使之进入“挂起”状态,不参与进程调度;或者将进程对换到内存,解除挂起状态。

3.低级调度:低级调度又称为进程调度。根据某种算法,决定就绪队列中哪个进程应获得处理机,并由分派程序将处理机分配给被选中的进程。低级调度程序是操作系统最为核心的部分,执行十分频繁。中断是执行低级调度的时机。

四、调度算法

临界资源: 一个时间段内只允许一个进程使用的资源。各进程需要互斥的访问临界资源。

临界区:访问临界资源的那段代码。

调度算法分为:抢占式和非抢占式

非抢占方式:即只允许进程主动放弃处理机。在运行过程中即便有更紧迫的任务到达,当前进程依然会继续使用处理机,直到该进程终止或主动要求进入阻塞态。

抢占方式:当一个进程正在处理机上执行时,如果有一个更重要或更紧迫的进程需要使用处理机,则立即暂停正在执行的进程,将处理机分配给更重要紧迫的那个进程。

⭐调度算法的评价指标(计算题):

  • CPU利用率: CPU"忙碌"的时间占总时间的比例。
  • 系统吞吐量:单位时间内完成作业的数量。
  • 周转时间:是指从作业被提交给系统开始,到作业完成为止的时间间隔。周转时间=作业完成时的时间-作业提交时间
  • 平均周转时间=各作业周转时间之和/作业数
  • 带权周转时间=(作业完成时的时间-作业提交时间)/作业实际运行时间
  • 等待时间:指进程/作业处于等待处理机状态时间之和,等待时间越长,用户满意度越低。
  • 响应时间:指从用户提交请求到首次产生响应所用的时间。

常用的调用算法:

1.先来先服务算法

        属于非抢占式的算法,作业先来后到的按照顺序执行,实现简单公平,对长作业不利,响应时间长。

      

2.短作业优先算法

        抢占式和非抢占式都有,非抢占式是在就绪队列中时间最短的,等待调用,抢占式是进入就绪队列时间如果比正在执行的作业的时间都短就会抢占先处理。

非抢占式的作业优先算法

抢占式的作业优先算法

3.高响应比优先算法

        非抢占式,响应比高的先执行,响应比=(等待时间+要求服务时间)/要求服务时间

4.时间片轮转算法

        抢占式:时间片就是分配一段时间给进程运行时间到了就会主动的放弃处理机。

 5.优先级调度算法

        抢占式和非抢占式都有,也就是在进程和作业中多加一个优先级的字段,通过比较优先级数来决定执行那一个进程和作业。

非抢占式:

抢占式:

6.多级反馈队列调度算法

        抢占式的,也就是设置多级队列,先来的来执行,优先执行时间片小的队列中的进程,执行完进程之后就把此进程放入下一级队列中,队列的时间片不同。

        

五、进程同步与互斥

1.进程同步

        同步亦称直接制约关系,它是指为完成某种任务而建立的两个或多个进程,这些进程因为需要在某些位置上协调它们的工作次序而产生的制约关系。进程间的直接制约关系就是源于它们之间的相互合作。

        也就是管道通信,要先写满数据,才可以读数据,同步也就是按照指定的顺序执行程序。

2.进程互斥

⭐进程互斥中,把一个时间段只允许一个进程使用的资源叫临界资源

对临界资源的互斥访问,可以在逻辑上分为如下四个部分:

为了实现对临界资源的互斥访问,同时保证系统整体性能,需要遵循以下原则:

  1. 空闲让进。临界区空闲时,可以允许一个请求进入临界区的进程立即进入临界区;
  2. 忙则等待。当已有进程进入临界区时,其他试图进入临界区的进程必须等待;
  3. 有限等待。对请求访问的进程,应保证能在有限时间内进入临界区(保证不会饥饿)
  4. 让权等待。当进程不能进入临界区时,应立即释放处理机,防止进程忙等待。

⭐进程互斥的代码实现 (真题中有考过补充代码)

1.单标志法

算法思想:每个进程在访问完临界区后会把使用临界区的权限转交给另一个进程。也就是说每个进程进入临界区的权限只能被另一个进程赋予。

代码实现

上面的代码如果用turn等于0开始,如果率先得到cpu的进程使p1进程,会使p1进程卡在代码5上,(while循环满足条件虽然没有要执行的语句但是会一直卡在里面),但是当p1的时间片到了,就会给p0进程执行代码,到了p0进入临界区了,又且回到p1进程但是还是继续卡住知道执行了代码3就可以执行进程p1了,但是我们可以发现一个很明显的问题就是,在p1想先访问的时候是不可以访问的,所以这是违法了空闲让进的原则。

2.双标志先检查法

算法思想:设置一个布尔型数组flag[],数组中各个元素用来标记各进程想进入临界区的意愿,比如“flag[0] =ture”意味着0号进程 P0现在想要进入临界区。每个进程在进入临界区之前先检查当前有没有别的进程想进入临界区,如果没有,则把自身对应的标志flag[li]设为true,之后开始访问临界区。

若按照①⑤②⑥③⑦…的顺序执行,P0和P1将会同时访问临界区。因此,双标志先检查法的主要问题是:违反“忙则等待”原则。

原因在于,进入区的“检查”和“上锁”两个处理不是一气呵成的。“检查”后,“上锁”前可能发生进程切换。

3.双标志后检查法

算法思想:双标志先检查法的改版。前一个算法的问题是先“检查”后“上锁”,但是这两个操作又无法一气呵成,因此导致了两个进程同时进入临界区的问题。因此,人们又想到先“上锁”后“检查”的方法,来避免上述问题。

4.peterson算法

算法思想:双标志后检查法中,两个进程都争着想进入临界区,但是谁也不让谁,最后谁都无法进入临界区。Gary L.Peterson想到了一种方法,如果双方都争着想进入临界区,那可以让进程尝试“孔融让梨”,主动让对方先使用临界区。

  • Peterson算法用软件方法解决了进程互斥问题,遵循了空闲让进、忙则等待、有限等待三个原则,但是依然未遵循让权等待的原则。
  • Peterson算法相较于之前三种软件解决方案来说,是最好的,但依然不够好。

六、信号量理解

        信号量其实就是一个变量(可以是一个整数,也可以是更复杂的记录型变量),**可以用一个信号量来表示系统中某种资源的数量,比如:系统中只有一台打印机,就可以设置一个初值为1的信号量。

1.整型信号量

用一个整数型的变量作为信号量,用来表示系统中某种资源的数量。

与普通整数变量的区别:对信号量的操作只有三种,初始化,P操作,V操作。

下面以打印机为例:

2.记录型信号量

整型信号量的缺陷是存在“忙等”问题,因此人们又提出了“记录型信号量”,即用记录型数据结构表示的信号量,也就是没有资源的情况下就把进程放入等待队列,不占用进程,等待进程有被释放的时候唤醒进程。

七、P,V操作

        一对原语: wait(S)原语和 signal(S)原语,可以把原语理解为我们自己写的函数,函数名分别为 wait和 signal,括号里的信号量s其实就是函数调用时传入的一个参数。这一段原语我们简称P,V操作,P操作申请资源(也就是加锁),V操作释放资源(也就是解锁)。

        缺少了加锁,就不保证可以互斥访问,缺少了解锁就会导致资源一直被占用。

进程互斥:先P后V,也就是P操作加锁了不让你进去使用,我用完了V操作解锁让别的进程使用

进程同步:先V后P,假设我们有两个进程有先后顺序,进程1要执行一定的地步才可以执行另一个进程2,所以就在进程1执行到一定的时间的时候才设置有一个信号用来表示进程2可以执行操作了。

八、死锁

⭐死锁、饥饿、死循环的定义

  • 死锁:各进程因竞争资源而造成的一种互相等待对方手里的资源,导致各进程都阻塞,都无法向前推进的现象,就是“死锁“。也就是我要用一个东西我我一直想用,但是一直在你手上你一直不放开这个资源,所以我就一直等等不到就是死锁了。
  • 饥饿:由于长期得不到想要的资源,某进程无法向前推进的现象。比如:在短进程优先(SPF)算法中,若有源源不断的短进程到来,则长进程将一直得不到处理机,从而发生长进程“饥饿”。
  • 死循环:某进程执行过程中一直跳不出某个循环的现象。有时是因为程序逻辑bug 导致的,有时是程序员故意设计的。

 死锁要满足的条件一不可:

1.互斥条件:有要互相使用的资源

2.不剥夺条件:资源只可以主动释放

3.循环等待

4.请求保持

九、银行家算法

        银行家算法是一种避免死锁的著名算法,由艾兹格·迪杰斯特拉在1965年为T.H.E系统设计。它以银行借贷系统的分配策略为基础,判断并保证系统的安全运行。

        在银行中,客户申请贷款的数量是有限的,每个客户在第一次申请贷款时要声明完成该项目所需的最大资金量,在满足所有贷款要求时,客户应及时归还。银行家在客户申请的贷款数量不超过自己拥有的最大值时,都应尽量满足客户的需要。在这样的描述中,银行家就好比操作系统,资金就是资源,客户就相当于要申请资源的进程。

部分二:习题

一、选择题

1.一个进程映像是 ( )。

A.由协处理器执行的一个程序
B.一个独立的程序 + 数据集
C.PCB 结构与程序和数据的组合
D.一个独立的程序

答案:C

进程就是由PCB 结构与程序和数据组成的

2.下列关于线程的叙述中,正确的是( )。
A.线程包含CPU现场,可以独立执行程序
B.每个线程有自己独立的地址空间
c.进程只能包含一个线程
D.线程之间的通信必须使用系统调用函数

答案:A

线程用的是进程的空间,进程可以有多个线程,通过共享内存通信

3.进程之间交换数据不能通过( )途径进行。

A.共享文件
B.消息传递
C.访问进程地址空间
D.访问共享存储区

答案:C

进程的地址空间是私有的


4.进程与程序的根本区别是 ( ).
A.静态和动态特点
B.是不是被调入内存
C.是不是具有就绪、运行和等待三种状态
D.是不是占有处理器

答案:A

5.下面的叙述中,正确的是( )
A.进程获得处理器运行是通过调度得到的
B.优先级是进程调度的重要依据,一旦确定不能改动
C.在单处理器系统中,任何时刻都只有一个进程处于运行态
D.进程申请处理器而得不到满足时,其状态变为阻塞态

答案:A

B:优先级有动态的,C:也可能一个都没有 D:变成就绪态

6.操作系统是根据 ()来对并发执行的进程进行控制和管理的
A。进程的基本状态
B.进程控制块
C.多道程序设计
D.进程的优先权

答案:B

系统是通过PCB(进程控制块)来进行控制的

7.在任何时刻,一个进程的状态变化( )引起另一个进程的状态变化。

A,必定
B.一定不
C.不一定
D.不可能

答案:C

时间片用完了就会引起变化,但是从阻塞态变成就绪态没有变化


8.在单处理器系统中,若同时存在 10 个进程,则处于就绪队列中的进程最多有 ( )个
A.1
B.8
c.9
D.10

答案:C


9.一个进程释放了一台打印机,它可能会改变( )的状态。
A.自身进程
B.输入/输出进程
C.另一个等待打印机的进程
D.所有等待打印机的进程

答案:C

10.系统进程所请求的一次 I/O 操作完成后,将使进程状态从 ( )。
A.运行态变为就绪态
B.运行态变为阻塞态
C.就绪态变为运行态
D,阻塞态变为就绪态

答案:D


11.一个进程的基本状态可以从其他两种基本状态转变过去,这个基本的状态一定是 ( )
A.运行态
B.阻塞态
C.就绪态
D.终止态

答案:C


12.并发进程失去封闭性,是指( )。
A.多个相对独立的进程以各自的速度向前推进
B.并发进程的执行结果与速度无关
C.并发进程执行时,在不同时刻发生的错误
D.并发进程共享变量,其执行结果与速度有关

答案:D

封闭性是只结果只取决于程序本身

13.通常用户进程被建立后,( )。
A.便一直存在于系统中,直到被操作人员撤销
B.随着进程运行的正常或不正常结束而撤销
C.随着时间片轮转而撤销与建立
D.随着进程的阻塞或者唤醒而撤销与建立

答案:B

14.进程在处理器上执行时,( )
A.进程之间是无关的,具有封闭特性
B.进程之间都有交互性,相互依赖、相互制约,具有并发性
C.具有并发性,即同时执行的特性
D.进程之间可能是无关的,但也可能是有交互性的

答案:D

15.下面的说法中,正确的是 ()
A.不论是系统支持的线程还是用户级线程,其切换都需要内核的支持
B.线程是资源分配的单位,进程是调度和分派的单位
C.不管系统中是否有线程,进程都是拥有资源的独立单位
D.在引入线程的系统中,进程仍是资源调度和分派的基本单位

答案:C 有多个线程映射不需要内核支持

16.在多对一的线程模型中,当一个多线程进程中的某个线程被阻塞后,( )
A.该进程的其他线程仍可继续运行
B.整个进程都将阻塞
C.该阻塞线程将被撤销
D.该阻塞线程将永远不可能再执行

答案:B

17.用信箱实现进程间互通信息的通信机制要有两个通信原语,它们是 ( ).
A.发送原语和执行原语
B.就绪原语和执行原语
C.发送原语和接收原语
D.就绪原语和接收原语

答案:C

18.下列几种关于进程的叙述,( )最不符合操作系统对进程的理解
A.进程是在多程序环境中的完整程序
B,进程可以由程序、数据和 PCB描述
C.线程(Thrcad)是一种特殊的进程
D.进程是程序在一个数据集合上的运行过程,它是系统进行资源分配和调度的一个独立单元

答案:A

进程是动态的程序是静态的

19.支持多道程序设计的操作系统在运行过程中,不断地选择新进程运行来实现 CPU 的共享,但其中()不是引起操作系统选择新进程的直接原因。
A.运行进程的时间片用完
B.运行进程出错
C.运行进程要等待某一事件发生
D.有新进程被创建进入就绪态

答案:D

20.若一个进程实体由 PCB、共享正文段、数据堆段和数据栈段组成,请指出下列 C语言程序中的内容及相关数据结构各位于哪一段中。
I.全局赋值变量()            II.未赋值的局部变量 ( )          IIl.函数调用实参传递值()
IV.用maloc0要求动态分配的存储区()V.常量值(如1995、"string")( )

VI进程的优先级 ()
A.PCB
B,正文段
C.堆段
D.栈段

答案:B D D C B  A

        C语言编写的程序在使用内存时一般分为三个段,它们一般是正文段(即代码和赋值数据段)、 数据堆段和数据栈段。二进制代码和常量存放在正文段,动态分配的存储区在数据堆段,临时使 用的变量在数据栈段。由此,我们可以确定全局赋值变量在正文段赋值数据段,未赋值的局部变 量和实参传递在栈段,动态内存分配在堆段,常量在正文段,进程的优先级只能在PCB内。  

21.同一程序经过多次创建,运行在不同的数据集上,形成了( )的进程。
A.不同
B.相同
C.同步
D.互斥

答案:A


22.系统动态 DLL 库中的系统线程,被不同的进程所调用,它们是( )的线程
A.不同
B.相同
C.可能不同,也可能相同
D.不能被调用

答案:B


23.PCB是进程存在的唯一标志,下列()不属于PCB。
A.进程ID
B.CPU状态
C.堆栈指针
D.全局变量

答案:D


24.一个计算机系统中,进程的最大数目主要受到 ( )限制。
A.内存大小
B.用户数目
C.打开的文件数
D.外部设备数量

答案:A

进程是要把PCB、数据集等放在内存上的所以,内存决定进程数目

25.进程创建完成后会进入一个序列,这个序列称为 ( )。
A.阻寒队列
B.挂起序列
C:就绪队列
D.运行队列

答案:C

创建完成进入就绪队列,就绪态

26.在一个多道系统中,若就绪队列不空,就绪的进程数目越多,处理器的效率 ( )
A.越高
B.越低
C.不变
D.不确定

答案:C

cpu的处理进程一直在处理所以不存在效率的变化

27.在具有通道设备的单处理器系统中实现并发技术后,( )。

A.各进程在某一时刻并行运行,CPU与I/O 设备间并行工作
B.各进程在某一时间段内并行运行,CPU与IO 设备间串行工作
C.各进程在某一时间段内并发运行,CPU与I/O 设备间并行工作
D.各进程在某一时刻并发运行,CPU与I/O 设备间串行工作

答案:C

单道设备进程是并发的,cpu和其他设备可以并行

28.进程自身决定( )
A.从运行态到阻塞态
B.从运行态到就绪态
C.从就绪态到运行态
D.从阻塞态到就绪态

答案:A

29.对进程的管理和控制使用 ( )。
A.指今
B.原语
C.信号量
D.信箱

答案:B

30.下面的叙述中,正确的是( )。
A.引入线程后,处理器只能在线程间切换
B.引入线程后,处理器仍在进程间切换
C.线程的切换,不会引起进程的切换
D.线程的切换,可能引起进程的切换

答案:D

31.下面的叙述中,正确的是 ( )
A.线程是比进程更小的能独立运行的基本单位,可以脱离进程独立运行
B.引入线程可提高程序并发执行的程度,可进一步提高系统效率
C.线程的引入增加了程序执行时的时空开销
D.一个进程一定包含多个线程

答案:B

32.下面的叙述中,正确的是 ( )。
A.同一进程内的线程可并发执行,不同进程的线程只能串行执行
B.同一进程内的线程只能串行执行,不同进程的线程可并发执行
C.同一进程或不同进程内的线程都只能串行执行
D.同一进程或不同进程内的线程都可以并发执行

答案:D

进程可以并发线程也可以


33.在以下描述中,()并不是多线程系统的特长
A.利用线程并行地执行矩阵乘法运算
B.Web 服务器利用线程响应HTTP 请求
C.键盘驱动程序为每个正在运行的应用配备一个线程,用以响应该应用的键盘输入
D.基于GUL 的调试程序用不同的线程分别处理用户输入、计算和跟踪等操作

答案:C

34.在进程转换时,下列 ( )转换是不可能发生的。
A,就绪态一运行态
B,运行态一就绪态
C,运行态一阻塞态
D.阻塞态一运行态

答案:D

要先变成就绪态

35,当( )时,进程从执行状态转变为就绪态
A.进程被调度程序选中
B,时间片到
C.等待某一事件
D,等待的事件发生

答案:B

分配给他的时间片到了就变为就绪态

36.两个合作进程(Cooperating Processes)无法利用( )交换数据
A.文件系统
B.共享内存
C.高级语言程序设计中的全局变量
D消息传递系统

答案:C

37.以下可能导致一个进程从运行态变为就绪态的事件是( ).
A.一次 IO操作结束
C.运行进程结束
B.运行进程需做 IO 操作
D.出现了比现在进程优先级更高的进程

答案:D

A:I/O结束变为阻塞态-》就绪态

B:   结束就变为终止态

C:IO操作变为阻塞态

也就是优先级抢占算法

38.( )必会引起进程切换。
A.一个进程创建后,进入就绪态
B,一个进程从运行态变为就绪态
C.一个进程从阻塞态变为就绪态
D.以上答案都不对

答案:B

39.进程处于( ) 时,它处于非阻塞态。
A.等待从键盘输入数据
B.等待协作进程的一个信号
C.等待操作系统分配 CPU 时间
D.等待网络数据进入内存

答案:C

IO操作会进入阻塞态

40.一个进程被唤醒,意味着( ).
A.该进程可以重新竞争 CPU
B.优先级变大
C.PCB移动到就绪队列之首
D,进程变为运行态

答案:A

唤醒是进入就绪态


41.进程创建时,不需要做的是 ( )。
A,填写一个该进程的进程表项
B.分配该进程适当的内存
C.将该进程插入就绪队列
D.为该进程分配 CPU

答案:D

分配cpu是调度程序的事情

42.计算机两个系统中两个协作进程之间不能用来进行进程间通信的是( )
A.数据库
B.共享内存
C.消息传递机制
D.管道

答案:A

43.下面关于用户级线程和内核级线程的描述中,错误的是( )
A.采用轮转调度算法,进程中设置内核级线程和用户级线程的效果完全不同
B.跨进程的用户级线程调度也不需要内核参与,控制简单
C,用户级线程可以在任何操作系统中运行
D.若系统中只有用户级线程,则处理机的调度对象是进程

答案:B

跨进程需要内核进行处理   C:用户级线程不需要内核支持

44.在内核级线程相对于用户级线程的优点的如下描述中,错误的是()
A.同一进程内的线程切换,系统开销小
B.当内核线程阻塞时,CPU 将会调度同一进程中的其他内核线程执行
C.内核级线程的程序实体可以在内核态运行
D.对多处理器系统,核心可以同时调度同一进程的多个线程并行运行

答案:A

线程切换要从用户态变为内核态

45.在用户级线程相对于内核级线程的优点的如下描述中,错误的是( )
A.一个线程阻塞不影响另一个线程的运行
B.线程的调度不需要内核直接参与,控制简单
C.线程切换代价小
D.允许每个进程定制自己的调度算法,线程管理比较灵活

答案:A

46.[2010统考真题]下列选项中,导致创建新进程的操作是 ()

l.用户登录成功        Il.设备分配        III.启动程序执行

A.仅I和II
B,仅I和III
C.仅I和III
D. I、I、II

答案:C

设备分配是系统的工作不需要创建进程

47.[2010统考真题]下列选项中,降低进程优先级的合理时机是 ( )
A.进程时间片用完
B,进程刚完成 I/O 操作,进入就绪队列
C,进程长期处于就绪队列
D.进程从就绪态转为运行态

答案:A

48.[2011 统考真题]在支持多线程的系统中,进程 P创建的若干线程不能共享的是( )
A,进程P的代码段
B,进程P中打开的文件
C.进程P的全局变量
D,进程P中某线程的栈指针

答案:D

49.[2012统考真题]下列关于进程和线程的叙述中,正确的是( )
A.不管系统是否支持线程,进程都是资源分配的基本单位
B,线程是资源分配的基本单位,进程是调度的基本单位
C.系统级线程和用户级线程的切换都需要内核的支持
D.同一进程中的各个线程拥有各自不同的地址空间

答案:A

线程是调度的基本单位,进程是资源分配的基本单位

用户级线程的切换都不需要内核的支持

50.[2014统考真题]一个进程的读磁盘操作完成后,操作系统针对该进程必做的是( )
A.修改进程状态为就绪态
B,降低进程优先级
C.给进程分配用户内存空间
D.增加进程时间片大小

答案:A

51.[2014统考真题]下列关于管道 (Pipe)通信的叙述中,正确的是( )
A.一个管道可实现双向数据传输
B.管道的容量仅受磁盘容量大小限制
C,进程对管道进行读操作和写操作都可能被阻塞
D,一个管道只能有一个读进程或一个写进程对其操作

答案:C

52.[2015 统考真题]下列选项中,会导致进程从执行态变为就绪态的事件是 ( ).
A.执行 P(wait)操作
B.申请内存失败
C.启动IO设备
D.被高优先级进程抢占

答案:D

ABC都是变为阻塞态

53.[2018统考真题]下列选项中,可能导致当前进程P阻塞的事件是 ( )
I.进程P申请临界资源
Il.进程 P从磁盘读数据
II.系统将CPU分配给高优先权的进程
A.仅I
B,仅Ⅱ
C,仅I、Ⅱ
D. 1、Ⅱ、Ⅲ

答案:C

也就是他访问的临界资源或者IO操作会阻塞

54.[2019统考真题]下列选项中,可能会将进程唤醒的事件是( )。
I.I/O 结束        II.某进程退出临界区        III.当前进程的时间片
A.仅I
B,仅Ⅲ
C,仅I、Ⅱ
D. 1、Ⅱ、Ⅲ

答案:C

解释和上题一致

55.[2019统考真题]下列关于线程的描述中,错误的是( )
A.内核级线程的调度由操作系统完成
B.操作系统为每个用户级线程建立一个线程控制块
C.用户级线程间的切换比内核级线程间的切换效率高
D.用户级线程可以在不支持内核级线程的操作系统上实现

答案:B

56.[2020 统考真题]下列关于父进程与子进程的叙述中,错误的是 ( )
A,父进程与子进程可以并发执行
B.父进程与子进程共享虚拟地址空间
C,父进程与子进程有不同的进程控制块
D.父进程与子进程不能同时使用同一临界资源

答案:B

父进程与子进程当然可以并发执行,选项A正确。父进程可与子进程共享一部分资源,但不 能共享虚拟地址空间,在创建子进程时,会为子进程分配资源,如虚拟地址空间等,选项B错误。 临界资源一次只能为一个进程所用,选项D正确。进程控制块(PCB)是进程存在的唯一标志, 每个进程都有自己的PCB,选项C正确。

57.[2021 统考真题]下列操作中,操作系统在创建新进程时,必须完成的是( ).
I.申请空白的进程控制块         II初始化进程控制块         Ⅲ.设置进程状态为执行态

A.仅I
B,仅I、II
C.仅Ⅰ、III
D.仅Ⅱ、III

答案:B

58.[2022 统考真题]下列事件或操作中,可能导致进程P由执行态变为阻塞态的是 ( )

I.进程P读文件        II.进程P的时间片用完        III.进程P申请外设
IV.进程P执行信号量的 wait()操作

A.仅I、IV、
B.仅 II、III
C.仅 III、IV
D.仅I、III、IV

答案:D

时间片用完变为就绪态

23. 【2009统考真题】下列进程调度算法中,综合考虑进程等待时间和执行时间的是()。
A.时间片轮转调度算法
B.短进程优先调度算法
C.先来先服务调度算法
D.高响应比优先调度算法

答案:D

想一下响应比的公式就知道了

24. [2011统考真题】下列选项中,满足短作业优先且不会发生饥饿现象的是()调度算法。
A.先来先服务
B.高响应比优先
C.时间片轮转
D.非抢占式短作业优先

答案:B

25. [2012统考真题】一个多道批处理系统中仅有Pi和P2两个作业,P2比Pi晚5ms到达, 它的计算和I/O操作顺序如下: Pi:计算 60ms, I/O 80ms,计算 20ms P2:计算 120ms, I/O 40ms,计算 40ms 若不考虑调度和切换时间,则完成两个作业需要的时间最少是().
A. 240ms
B. 260ms
C. 340ms
D. 360ms

答案:B

26. [2012统考真题】若某单处理器多进程系统中有多个就绪态进程,则下列关于处理机调 度的叙述中,错误的是()。
A.在进程结束时能进行处理机调度
B.创建新进程后能进行处理机调度
C. 在进程处于临界区时不能进行处理机调度
D. 在系统调用完成并返回用户态时能进行处理机调度

答案:C

要把当前要访问临界资源的进程放入阻塞态中

27. [2013统考真题】某系统正在执行三个进程P1, P2和P3,各进程的计算(CPU)时间和 I/O时间比例如右表所示。为提荷系统资源利用率,合理的进程优先级设置应为()。

p3 15% 85%

A. P1 > P2 > P3
B. P3 > P2 > P1
C. p2>P1=P3
D.P1> P2 = P3

答案:B

要IO时间长的先进行进入阻塞态,阻塞了之后就可以选一个和IO时间差不多的计算时间进行计算。

28. [2014统考真题】下列调度算法中,不可能导致饥饿现象的是()。
A.时间片轮转
B.静态优先数调度
C.非抢占式短任务优先
D.抢占式短任务优先

答案:A

29. [2016统考真题】某单CPU系统中有输入和输出设备各1台,现有3个并发执行的作业, 每个作业的输入、计算和输出时间均分别为2ms, 3ms和4ms,且都按输入、'计算和输出 的顺序执行,则执行完3个作业需要的时间最少是()。

A. 15ms
B. 17ms
C. 22ms
D. 27ms

答案:

30. [2017统考真题】 假设4个作业到达系统的时刻和运行时间如下所示。 系统在t = 2时开始作业调度。若分别采用先来先服务和 短作业优先调度算法,则选中的作业分别是()。

A. J2, J3 B. J1, J4

C. J2, J4 D. J1, J3

答案:D

t = 2时就绪队列中有j1、j2、j3,先来先服务所以会选中J1,短作业优先调度就会选运行时间短作业J3.

31. [2017统考真题】下列有关基于时间片的进程调度的叙述中,错误的是()。
A. 时间片越短,进程切换的次数越多,系统开销越大
B. 当前进程的时间片用完后,该进程状态由执行态变为阻塞态
C. 时钟中断发生后,系统会修改当前进程在时间片内的剩余时间
D. 影响时间片大小的主要因素包括响应时间、系统开销和进程数量等

答案:B

32. [2018统考真题】某系统采用基于优先权的非抢占式进程调度策略,完成一次进程调度 和进程切换的系统时间开销为在r时刻就绪队列中有3个进程Pi、P2和P3,其在 就绪队列中的等待时间、需要的CPU时间和优先权如下表所示。若优先权值大的进程优先获得cpu,从r时 刻起系统开始进程调度,则系统的平均周转时间为()。

   p3 18us 36us 20
A. 54us B. 73us C. 74us D. 75us

答案:D

由优先权可知,进程的执行顺序为P2---P3----P1。P2的周转时间为1 + 15 + 24 = 40的P3的周 转时间为 18 + 1 + 24 + 1 + 36 = 80ns; P1的周转时间为 30+ 1 +24+ 1 +36 + 1 + 12 = 105us;平均 周转时间为(40 + 80+ 105)/3 = 225/3 = 75us,因此选择选项D。

33. [2019统考真题】系统采用二级反馈队列调度算法进行进程调度。就绪队列Q采用时间 片轮转调度算法,时间片为10ms;就绪队列Q2•采用短进程优先调度算法;系统优先调 度Qi队列中的进程,当Q为空时系统才会调度Q2中的进程;新创建的进程首先进入 Qi; Qi中的进程执行一个时间片后,若未结束,则转入Q2。若当前Q, Q2为空,系统 依次创建进程Pi,P?后即开始进程调度,Pi, P2需要的CPU时间分别为30ms和20ms,则进程巴,P2在系统中的平均等待时间为()。
A. 25ms B. 20ms C. 15ms D. 10ms

答案:C


34. 【2020统考真题】下列与进程调度有关的因素中,在设计多级反馈队列调度算法时需要 考虑的是()。

I.就绪队列的数量         II.就绪队列的优先级         III.各就绪队列的调度算法        
IV.进程在就绪队列间的迁移条件

A.仅 I、II B.仅 III、IV C.仅 II、IIL IV D. Ⅰ Ⅱ III 和 IV

答案:D


35. 【2021统考真题】在下列内核的数据结构或程序中,分时系统实现时间片轮转调度需要 使用的是()。
I.进程控制块         II.时钟中断处理程序         III.进程就绪队列         IV.进程阻塞队列

A.仅 II、III
B.仅 I、IV
C.仅 I、II、III
D.仅 I、II、IV

答案:C

36. 【2021统考真题】下列事件中,可能引起进程调度程序执行的是()

I.中断处理结束 II.进程阻塞 III.进程执行结束 IV.进程的时间片用完
A.仅 I、III B.仅 II、IV C.仅 III、IV D. L IL III 和 IV

答案:D

37. 【2022统考真题】进程P0、P1、P2和P3进入就绪队列的时刻、优先级(值越小优先权越 高)及CPU执行时间如下表所示。

若系统采用基于优先权的抢占式进程调度算法,则从0ms时刻开始调度,到4个进程都 运行结束为止,发生进程调度的总次数为().

A. 4 B. 5 C. 6 D. 7

答案:C

0时刻调度进程Po获得CPU; 10ms时P2进入就绪队列,调度P2抢占获得CPU; 15ms时P3 进入就绪队列,调度P3抢占获得CPU; 25ms时P3执行完毕,调度P2获得CPU; 40ms时P2执行 完毕,调度Po获得CPU; 130ms时P2执行完毕,调度P1获得CPU; 190ms时P2执行完毕,结束; 总共调度6次。

40. [2010统考真题]设与某资源关联的信号量初值为3,当前值为1。若M表示该资源的可用个数,N表示等待该资源的进程数,则分别是()
A. 0, 1
B. 1,0
C. 1,2
D. 2,0

答案:B

还有1个资源可以使用,所以不会有等待资源的进程

41.[2010统考真题]进程P0和进程P1的共享变量定义及其初值为:
boolean flag[2];
int turn=0;
flag[0]=false;        flag[1]=false;
若进程P0和进程P1,访问临界资源的类C代码实现如下:

则并发执行进程P0和进程P1时产生的情况是().
A. 不能保证进程互斥进入临界区,会出现“饥饿”现象
B. 不能保证进程互斥进入临界区,不会出现“饥饿”现象
C. 能保证进程互斥进入临界区,会出现“饥饿”现象
D. 能保证进程互斥进入临界区,不会出现“饥饿”现象

答案:D

上面这个算法就是peterson算法

42. [2011统考真题】有两个并发执行的进程P1和进程P2,共享初值为1的变量x. P1对x 加1, P2对X减1,加1和减1操作的指令序列分别如下:

A.可能为-1或3
B.只能为1
C.可能为0,1或2
D.可能为-1,0, 1或2

答案:C

P1语句为1,2,3 P2语句为4,5,6

0的操作顺序是 124536

1的操作顺序是 123456

2的操作顺序是 124563

43. [2016统考真题】进程P1和P2均包含并发执行的线程,部分伪代码描述如下所示。

下列选项中,需要互斥执行的操作是()。
A. a= 1 与 a = 2
B. a = x 与 b = x
C. x + = 1 与 x + = 2
D. x + =1 与 x + = 3

答案:C

ab的值改变不影响结果

D:两个操作不是在一个进程中的

44. [2016统考真题】使用TSL ( Test and Set Lock)指令实现进程互斥的伪代码如下所示。
do {
        while(TSL(&lock));
        critical section;
         lock=FALSE; 
        ......
}while(TRUE);
下列与该实现机制相关的叙述中,正确的是().
A. 退出临界区的进程负责唤醒阻塞态进程
B. 等待进入临界区的进程不会主动放弃CPU
C. 上述伪代码满足“让权等待”的同步准则
D. while(TSL(&lock))语句应在关中断状态下执行

答案:B

45. [2016统考真题】下列关于管程的叙述中,错误的是()。
A. 管程只能用于实现进程的互斥
B. 管程是由编程语言支持的进程同步机制
C. 任何时候只能有一个进程在管程中执行
D. 管程中定义的变量只能被管程内的过程访问

答案:A

管程也可以实现同步

46. [2018统考真题】属于同一进程的两个线程thread1和thread2并发执行,共享初值为0 的全局变量x.thread1和thread2实现对全局变量x加1的机器级代码描述如下。

答案:B

也就是先后执行两个线程

47. [2018统考真题】若x是管程内的条件变量,则当进程执行x.wait()时所做的工作是()。
A. 实现对变量x的互斥访问
B. 唤醒一个在x上阻塞的进程
C. 根据x的值判断该进程是否进入阻塞态
D. 阻塞该进程,并将之插入x的阻塞队列中

答案:D

48. [2018统考真题】在下列同步机制中,可以实现让权等待的是().
A. Peterson方法
B. swap指令
C.信号量方法
D. TestAndSet指令

答案:C

记录型信号消除了

49. [2020统考真题】下列准则中,实现临界区互斥机制必须遵循的是()。
I. 两个进程不能同时进入临界区
II. 允许进程访问空闲的临界资源
III. 进程等待进入临界区的时间是有限的
IV. 不能进入临界区的执行态进程立即放弃CPU
A.仅 I、IV B.仅 II、III C.仅 I、IL III D.仅 I、III, IV

答案:B

26.【2009统考真题】某计算机系统中有8台打印机,由K个进程竞争使用,每个进程最多 需要3台打印机。该系统可能会发生死锁的K的最小值是().

A. 2          B. 3         C. 4         D. 5

答案:C

这种题要用到组合数学中鸽巢原理的思想。考虑最极端的情况,因为每个进程最多需要3台 打印机,若每个进程己经占有了2台打印机,则只要还有多的打印机,总能满足一个进程达到3 台的条件,然后顺利执行,所以将8台打印机分给K个进程,每个进程有2台打印机,这个情况 就是极端情况,K为4。

答案:D

        本题应采用排除法,逐个代入分析。剩余资源分配给Pi,待巴执行完后,可用资源数为(2, 2, 1, ) 此时仅能满足P4的需求,排除选项A、B;接着分配给P4,待P4执行完后,可用资源数为(2, 2, 2),此时己无法满足任何进程的需求,排除选项C。

答案:D

算出need矩阵和Available矩阵就可以直达奥只可以分配给p3,p4所以答案就只可以是D

29.[2013 统考真题]下列关于银行家算法的叙述中,正确的是 ( )。
A.银行家算法可以预防死锁
B.当系统处于安全状态时,系统中一定无死锁进程
C.当系统处于不安全状态时,系统中一定会出现死锁进程
D.银行家算法破坏了死锁必要条件中的“请求和保持”条件

答案:B

银行家算法是避免死锁,不安全也可能不会死锁

30.[2014统考真题]某系统有 n台互斥使用的同类设备,三个并发进程分别需要 3,4,5台设备,可确保系统不发生死锁的设备数n最小为 ( )。
A.9
B.10
C.11
D.12

答案:B

        三个并发进程分别需要3, 4,5台设备,当系统只有(3-1) + (4-1) + (5-1) = 9台设备时,第 一个进程分配2台,第二个进程分配3台,第三个进程分配4台。这种情况下,三个进程均无法 继续执行下去,发生死锁。当系统中再增加1台设备,即共10台设备时,最后1台设备分配给 任意一个进程都可以顺利执行完成,因此保证系统不发生死锁的最小设备数为10。

[2015统考真题】若系统%采用死锁避免方法,S2采用死锁检测方法。下列叙述中,正 确的是()。
I. S1会限制用户申请资源的顺序,而S2不会 II. S1需要进程运行所需的资源总量信息,而S2不需要 III. S1不会给可能导致死锁的进程分配资源,而S2会

A.仅 I、II B.仅 II、III C.仅 I、III D. I、IL III

答案:B

32. [2016统考真题】系统中有3个不同的临界资源R|, R2和R3,被4个P1, P2, P3, P4 共享。各进程对资源的需求为:P】申请R|和R2, P2申请R2和R3, P3申请R|和R3, P4 申请R2。若系统出现死锁,则处于死锁状态的进程数至少是()。
A. 1 B. 2 C. 3 D. 4

答案:C

33. [2018统考真题】假设系统中有4个同类资源,进程P1, P2和P3需要的资源数分别为 4, 3和1, Pl, P2和P3已申请到的资源数分别为2, 1和0,则执行安全性检测算法的结果是().
A. 不存在安全序列,系统处于不安全状态
B. 存在多个安全序列,系统处于安全状态
C. 存在唯一安全序列P3, Pi, P2>系统处于安全状态
D. 存在唯一安全序列P3, P2, Pi>系统处于安全状态

答案:A

只剩下1个同类资源了,不够P1P2使用

34. [2019统考真题】下列关于死锁的叙述中,正确的是()。
I. 可以通过剥夺进程资源解除死锁 II. 死锁的预防方法能确保系统不发生死锁 III. 银行家算法可以判断系统是否处于死锁状态 IV. 当系统出现死锁时,必然有两个或两个以上的进程处于阻塞态
A.仅 II、III B.仅 I、II、IV C.仅 I、II、III D.仅 I、III. IV

答案:B

Ⅲ为错选b

答案:B

由Allocation得知当前Available为(1, 0)。由需求矩阵可知,初始只能满足P?的需求,选项A 错误。P2释放资源后Available变为(3, 1),此时仅能满足Pi的需求,选项C错误。P】释放资源后 Available变为(5,4),可以满足P3的需求,得到的安全序列为P2,P|,P3,选项B正确,选项D错误。

[2021统考真题】若系统中有n ( n>=2 )个进程,每个进程均需要使用某类临界资源2 个,则系统不会发生死锁所需的该类资源总数至少是()。

A. 2 B. n C. n+ 1 D. 2n

答案:C

这种至少需要多少资源的题目只需要保证有一个进程可以拿到要求个数临界资源就可以了

答案:B

        初始时系统中的可用资源数为 <1,3,2>,只能满足P。的需求 <0,2,1>,所以安全序列第一个只能 是Po,将资源分配给P0后,P0执行完释放所占资源,可用资源数变为 <1,3,2>+ <2,0,1>= <3,3,3>, 此时可用资源数既能满足P1,又能满足P2,可以先分配给Pl,P1执行完释放资源再分配给P2;也可 以先分配给P2, P2执行完释放资源再分配给P1。所以安全序列可以是①P0、P1、P2或②Po、P2、P1

二、简答题

1.进程和程序之间可以形成一对一、一对多、多对一、多对多的关系,请分别举例说明在什么情况下会形成这样的关系。

答:执行一条命令或运行一个应用程序时,进程和程序之间形成一对一的关系。进程在执行过程 中可以加载执行不同的应用程序,从而形成一对多的关系;以不同的参数或数据多次执行同一个 应用程序时,形成多对一的关系;并发地执行不同的应用程序时,形成多对多的关系。

2.父进程创建子进程和主程序调用子程序有何不同?

 答:父进程创建子进程后,父进程与子进程同时执行(并发)。主程序调用子程序后,主程序暂 停在调用点,子程序开始执行,直到子程序返回,主程序才开始执行。

3.为何进程之间的通信必须借助于操作系统内核功能?简单说明进程通信的几种主要方式。

答:每个进程有自己独立的地址空间。在操作系统和硬件的地址保护机制下,进程无法访问其他 进程的地址空间,必须借助于系统调用函数实现进程之间的通信。进程通信的主要方式有:

1) 共享内存区。
2) 消息传递。
3) 管道系统。
4) 共享文件。

4.什么是多线程?多线程与多任务有什么区别?

答:多线程是指在一个程序中可以定义多个线程并同时运行它们,每个线程可以执行不同的任务。 多线程与多任务的区别:多任务是针对操作系统而言的,代表操作系统可以同时执行的程序个数;多线程是针对一个程序而言的,代表一个程序可以同时执行的线程个数,而每个线程可以 完成不同的任务。

5.回答下列问题:

1 )若系统中没有运行进程,是否一定没有就绪进程?为什么?
2) 若系统中既没有运行进程,又没有就绪进程,系统中是否就没有进程?为什么?
3) 在采用优先级进程调度时,运行进程是否一定是系统中优先级最高的进程?

答:

1) 是。若系统中未运行进程,则系统很快会选择一个就绪进程运行。只有就绪队列中无进 程时,CPU才可能处于空闲状态。

2) 不一定。因为系统中的所有进程可能都处于等待态,可能处于死锁状态,也有可能因为 等待的事件未发生而进入循环等待态。

3) 不一定。因为高优先级的进程有可能正处在等待队列中,进程调度会从就绪队列中选择 一个进程占用CPU,使用非抢占式的不会直接把这个被选中的进程可能优先级较低。

7.某分时系统中的进程可能出现如下图所示的状态变化,请回答下列问题:
1 )根据图示,该系统应采用什么进程调度策略?
2)把图中每个状态变化的可能原因填写在下表中。

1)答:我们可以看见6下面的那一条线,是从运行态转变为就绪态,所以这是时间片轮转算法

2)

8.为什么说多级反馈队列调度算法能较好地满足各类用户的需要?

        多级反馈队列调度算法能较好地满足各种类型用户的需要。对终端型作业用户而言,由于 它们提交的作业大多属于交互型作业,作业通常比较短小,系统只要能使这些作业在第1级队列所规定的时间片内完成,便可使终端型作业用户感到满意;对于短批处理作业用户而言,它 们的作业开始时像终端型作业一样,若仅在第1级队列中执行一个时间片即可完成,便可获得 与终端型作业一样的响应时间,对于稍.长的作业,通常也只需要在第2级队列和第3级队列中 各执行一个时间片即可完成,其周转时间仍然较短;对于长批处理作业用户而言,它们的长作业将依次在第4级队列中运行,然后按时间片轮转方式运行,用户不必担心其作业长期 得不到处理。

9.何谓管程?管程由几部分组成?说明引入管程的必要性。

        当共享资源用共享数据结构表示时,资源管理程序可用对该数据结构进行操作的一组过程来 表示,如资源的请求和释放过程request和release□把这样一组相关的数据结构和过程一并归为管 程。Hansan为管程所下的定义是:“一个管程定义了一个数据结构和能为并发进程所执行(在该 数据结构上)的一组操作,这组操作能同步进程和改变管程中的数据。”
由定义可知,管程由三 部分组成:
1) 局部于管程的共享变量说明。
2) 该数据结构进行操作的一组过程。
3) 对局部于管程的数据设置初始值的语句;此外,还需为该管程赋予一个名字。
         管程的引入是为了解决临界区分散所带来的管理和控制问题。在没有管程之前,对临界区的 访问分散在各个进程之中,不易发现和纠正分散在用户程序中的不正确使用P,V操作等问题。管 程将这些分散在各进程中的临界区集中起来,并加以控制和管理,管程一次只允许一个进程进入 管程内,从而既便于系统管理共享资源,又能保证互斥。

进程间存在哪几种制约关系?各是什么原因引起的?以下活动各属于哪种制约关系?
1) 若干学生去图书馆借书。
2) 两队进行篮球比赛。
3) 流水线生产的各道工序。
4) 商品生产和消费。

        进程之间存在两种制约关系,即同步和互斥。

         同步是由于并发进程之间需要协调完成同一个任务时引起的一种关系,是一个进程等待另一 个进程向它直接发送消息或数据时的一种制约关系。

         互斥是由并发进程之间竞争系统的临界资源引起的,是一个进程等待另一个进程已经占有的 必须互斥使用的资源时的一种制约关系。

1) 是互斥关系,同一本书只能被一名学生借阅,或任何时刻只能有一名学生借阅一本书。 2) 是互斥关系,篮球是互斥资源,只可被一个队伍获得。

3) 是同步关系,一个工序完成后开始下一个工序。

4) 是同步关系,生产商品后才能消费。

某银行计算机系统要实现一个电子转账系统,基本业务流程是:首先对转出方和 转入方的账户进行加锁,然后进行转账业务,最后对转出方和转入方的账户进行解锁。若不采取任何措施,系统会不会发生死锁?为什么?请设计一个能够避免 死锁的办法。

三、综合题

1.将一组进程分为4类,如下图所示。各类进程之间采用优先级调度算法,而各类进程的 内部采用时间片轮转调度算法。请简述Pi, P2, P3, P4, P5, P6, P7, P8进程的调度过程。

答:由题意可知,各类进程之间采用优先级调度算法,而同类进程内部采用时间片轮转调度算法。 因此,系统首先对优先级为4的进程P"2,P3采用时间片轮转调度算法运行;当P,,P2, P3均运行 结束或没有可运行的进程(即P..P2, p3都处于等待态;或其中部分进程己运行结束,其余进程处 于等待态)时,对优先级为3的进程P4, P5采用时间片轮转调度算法运行。在此期间,若未结束 的P), P2, P3有一个转为就绪态,则当前时间片用完后又回到优先级4进行调度。类似地,当P|〜 P5均运行结束或没有可运行进程(即P1〜P5都处于等待态;或其中部分进程己运行结束,其余进 程处于等待态)时,对优先级为2的进程P6, P7, P8采用时间片轮转调度算法运行,一旦P>~P5 中有一个转为就绪态,当前时间片用完后立即回到相应的优先级进行时间片轮转调度。

2.有一个CPU和两台外设Di, D2,且在能够实现抢占式优先级调度算法的多道程序环境中, 同时进入优先级由高到低的P1,P2,P3三个作业,每个作业的处理顺序和使用资源的时间 如下:

P1: D2 (30ms), CPU (10ms), D1(30ms), CPU (10ms)

P2: D1(20ms), CPU (20ms), D2 (40ms)

P3: CPU (30ms), D1(20ms)

假设忽略不计其他辅助操作的时间,每个作业的周转时间T1,T2,T3分别为多少? CPU和 D1的利用率各是多少?

        

        作业P1的优先级最高,周转时间等于运行时间,T1 = 80ms;作业P2的等待时间为10ms,运行时间为80ms,周转时间T2 = (10 + 80)ms = 90ms;作业P3的等待时间为40ms,运行时间为50ms, 因此周转时间T3=90ms。

        三个作业从进入系统到全部运行结束,时间为90ms。CPU与外设都是独占设备,运行时间 分别为各作业的使用时间之和。CPU运行时间为[(10 +10) + 20 + 30]ms = 70ms, D1为(30 + 20 + 20)ms = 70ms, D2 为(30 + 40)ms = 70ms,因此利用率均为 70/90 = 77.8%。

3.

作业的响应比可表示为

                        响应比=(等待时间+要求服务时间)/要求服务时间

         在时刻8: 00,系统中只有一个作业J1因此系统将它投入运行。在j1完成(即10:00)时, J2, J3, J4 的响应比分别为(90 + 40)/40, (60 + 25)/25, (30 + 30)/30,即 3.25, 3.4,2,因此应先将 J3 投入 运行。在 h完成(即 10:25)时,J2,J4的响应比分别为(115 + 40)/40, (55 + 30)/30,即 3.875,2.83, 因此应先将L投入运行,待它运行完毕时(即11:05),再将"投入运行,"的结束时间为11:35。 可见作业的执行次序为J1, J3,J2,J4,各作业的运行情况见下表,它们的周转时间分别为120min, 155min, 85min, 125min,平均周转时间为 121.25min。

1)根据Need矩阵可知,初始Work等于Available为(1, 4, 0),可以满足进程P2的需求;进程P2结束后释放资源,Work为(2, 7, 5),可以满足P0,P1,P3和P4中任意一个进程的需求, 所以系统不会出现死锁,当前处于安全状态。

2)若初始Work = Available为(0,6, 2),可满足进程P。, P3的需求;这两个进程结束后释放资 源,Work为(0, 6, 7),仅可满足进程P4的需求;P4结束后释放资源,Work为(0, 6, 8),此 时不能满足余下任意一个进程的需求,系统出现死锁,因此当前系统处在非安全状态。

  • 16
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

用草书谱写兰亭序

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值