操作系统第二版第二章课后习题答案
- 格式:doc
- 大小:148.00 KB
- 文档页数:12
第二章练习题及参考答案一、单项选择题1.用户作业可以通过()方式由用户自己按照作业来进行操作。
A.脱机B.自动控制C.在线处理D.联机处理2.()是操作系统提供的一种专门语言,它由操作系统的专门机制解释处理。
A.C语言B.JCL语言C.Ada语言D.Pascal语言3.作业调度算法中()调度算法最有利于提高资源利用率。
A.先来先服务B.优先数C.响应比最高优先D.均衡4.终端用户在终端上控制作业的执行要经历四个阶段,最初阶段是()。
A.用户注册B.终端连接C.作业控制D.用户退出5.在下面作业调度算法中()调度算法最有利于小作业,从而提高系统吞吐能力。
A.先来先服务B.计算时间短的作业优先C.优先数D.响应比最高者优先6.当中央处理器处于目态时,它可以执行的指令是()。
A.计算机系统中的全部指令B.仅限于非特权指令C.仅限于防管指令D.仅限于特权指令7.作业调度算法常考虑因素之一是使系统有最高的吞吐率,为此应()。
A.不让处理机空闲B.能够处理尽可能多的作业C.使各类用户满意D.不使系统过于复杂8. 分时操作系统环境下运行的作业通常称为()。
A.后台作业B.长作业C.批量型作业D.终端型作业9.在作业调度算法中,若所有作业同时到达,则平均等待时间最短的算法是()。
A.先来先服务B.优先数C.响应比最高优先D.计算时间段的作业优先10.作业调度程序从处于()状态的作业队列中选取适当的作业投入运行。
A.执行B.提交C.完成D.后备11.既考虑作业等待时间,又考虑作业执行时间的调度算法是()。
A. 先来先服务B.优先数C.响应比最高优先D.均衡12.()是指从作业提交给系统到作业完成的时间间隔。
A.周转时间B.响应时间C.等待时间D.执行时间13.作业从进入后备队列到被调度程序选中的时间间隔称为()。
A.周转时间B.响应时间C.等待时间D.触发时间二、多项选择题1.响应比最高者优先调度算法是()调度算法的折衷。
第二章进程管理2、试画出下面4条语句的前趋图:S2: b:=z+1;S3: c:=a-b;S4: w:=c+1;3、程序在并发执行时,由于它们共享系统资源,以及为完成同一项任务而相互合作,致使在这些并发执行的进程之间,形成了相互制约的关系,从而也就使得进程在执行期间出现间断性。
4、程序并发执行时为什么会失去封闭性与可再现性?因为程序并发执行时,就是多个程序共享系统中的各种资源,因而这些资源的状态就是由多个程序来改变,致使程序的运行失去了封闭性。
而程序一旦失去了封闭性也会导致其再失去可再现性。
5、在操作系统中为什么要引入进程概念?它会产生什么样的影响?为了使程序在多道程序环境下能并发执行,并能对并发执行的程序加以控制与描述,从而在操作系统中引入了进程概念。
影响: 使程序的并发执行得以实行。
6、试从动态性,并发性与独立性上比较进程与程序?a、动态性就是进程最基本的特性,可表现为由创建而产生,由调度而执行,因得不到资源而暂停执行,以及由撤销而消亡,因而进程由一定的生命期;而程序只就是一组有序指令的集合,就是静态实体。
b、并发性就是进程的重要特征,同时也就是OS的重要特征。
引入进程的目的正就是为了使其程序能与其它建立了进程的程序并发执行,而程序本身就是不能并发执行的。
c、独立性就是指进程实体就是一个能独立运行的基本单位,同时也就是系统中独立获得资源与独立调度的基本单位。
而对于未建立任何进程的程序,都不能作为一个独立的单位来运行。
7、试说明PCB的作用?为什么说PCB就是进程存在的唯一标志?a、PCB就是进程实体的一部分,就是操作系统中最重要的记录型数据结构。
PCB中记录了操作系统所需的用于描述进程情况及控制进程运行所需的全部信息。
因而它的作用就是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能与其它进程并发执行的进程。
b、在进程的整个生命周期中,系统总就是通过其PCB对进程进行控制,系统就是根据进程的PCB而不就是任何别的什么而感知到该进程的存在的,所以说,PCB就是进程存在的唯一标志。
1.P、V 操作是 A 。
A.两条低级进程通信原语B.两组不同的机器指令C.两条系统调用命令D.两条高级进程通信原语2.设系统中有 n(n>2)个进程,且当前不在执行进程调度程序,试考虑下述4种情况,不可能发生的情况是 A 。
A.没有运行进程,有2个就绪进程,n 个进程处于等待状态。
B.有1个运行进程,没有就绪进程,n-1个进程处于等待状态。
C.有1个运行进程,有1个就绪进程,n-2个进程处理等待状态。
D.有1个运行进程,n-1个就绪进程,没有进程处于等待状态。
3.若 P、V 操作的信号量 S 初值为2,当前值为-1,则表示有 B 等待进程。
A. 0个B. 1个C. 2个D. 3个4.用 V 操作唤醒一个等待进程时,被唤醒进程的状态变为 B 。
A.等待B.就绪C.运行D.完成5.用 P、V 操作可以解决 A 互斥问题。
A.一切B.某些C.正确D.错误6.多道程序环境下,操作系统分配资源以 C 为基本单位。
A.程序B.指令C.进程D.作业7.从下面对临界区的论述中,选出一条正确的论述。
(1)临界区是指进程中用于实现进程互斥的那段代码。
(2)临界区是指进程中用于实现进程同步的那段代码。
(3)临界区是指进程中用于实现进程通信的那段代码。
(4)临界区是指进程中用于访问共享资源的那段代码。
(5)临界区是指进程中访问临界资源的那段代码。
8.(A)是一种只能由 wait 和 signal 操作所改变的整型变量,(A)可用于实现进程的(B)和(C),(B)是排他性访问临界资源。
A:(1)控制变量;(2)锁;(3)整型信号量;(4)记录型信号量。
B:(1)同步;(2)通信;(3)调度;(4)互斥。
C:(1)同步;(2)通信;(3)调度;(4)互斥。
9.对于记录型信号量,在执行一次 wait 操作时,信号量的值应当(A),当其值为(B)时,进程阻塞。
在执行 signal 操作时,信号量的值应当为(C),当其值为(D)时,应唤醒阻塞队列中的进程。
李建伟版实用操作系统第二版最新习题 2 进程、线程管理一、选择题题号1 2 3 4 5 6 7 8 9 10答案B B D C D C A B D C题号11 12答案A A二、综合题2、答:在多道程序环境下,允许多个程序并发执行,这就导致了在操作系统中引入了“进程”。
进程是随着操作系统中分时思想的提出而引出的。
进程是一个可并发执行的具有独立功能的程序在某个数据集合的一次执行过程,它是操作系统进行资源分配和保护的基本单位。
①进程和程序的最大区别就是进程是程序的一次执行过程,它是一个动态概念。
程序是以文件形式存放在磁盘上的代码序列,它是一个静态概念。
②进程能够并发执行。
在同一段时间内,并发执行的若干进程共享一个处理机,各个进程按照不同的推进速度运行。
进程状态及其转换可以很好地描述并发执行进程的执行过程。
③进程是计算机系统资源分配的基本单位,程序不能作为一个独立单位运行和申请系统资源。
④进程由含有代码和数据的用户地址空间、进程控制块和执行栈区等部分组成,而程序只由静态代码组成。
⑤进程和程序之间是多对多的关系。
一个程序可被多个进程共用,一个进程在其活动中又可调用若干个程序。
2、答:原语是由若干条机器指令组成的、用于完成一定功能的一个过程。
原语不可分割,其执行期间不充许被中断,要么从头到尾执行一遍,要么全不执行。
原语的特征保证其在执行过程中不受外界因素的影响。
原语的一般实现方法是以系统调用的方式提供原语接口,原语在执行过程中采用屏蔽中断的方式来保证其不能被中断。
原语常驻内存,只在核心态下运行。
通常情况下,原语只提供给系统进程或系统服务器使用。
3、答:传统操作系统通过进程的并发执行提高了系统资源利用率和作业吞吐量,但进程模型存在如下局限性。
①每个进程都有一个进程控制块和一个私有的用户地址空间,如果按进程进行并发控制,那么在同一个地址空间中只允许单个执行序列运行。
显然,在不进行地址变换的情况下,只允许一个执行序列运行,处理机资源仍然不能得到充分利用。
操作系统第二版课后习题答案操作系统第二版课后习题答案操作系统是计算机科学中的重要领域,它负责管理计算机硬件和软件资源,为用户提供良好的使用体验。
在学习操作系统的过程中,课后习题是巩固和深化知识的重要方式。
本文将为大家提供操作系统第二版课后习题的答案,帮助读者更好地理解和掌握操作系统的知识。
第一章:引论1. 操作系统的主要功能包括进程管理、内存管理、文件系统管理和设备管理。
2. 进程是指正在执行的程序的实例。
进程控制块(PCB)是操作系统用来管理进程的数据结构,包含进程的状态、程序计数器、寄存器等信息。
3. 多道程序设计是指在内存中同时存放多个程序,通过时间片轮转等调度算法,使得多个程序交替执行。
4. 异步输入输出是指程序执行期间,可以进行输入输出操作,而不需要等待输入输出完成。
第二章:进程管理1. 进程调度的目标包括提高系统吞吐量、减少响应时间、提高公平性等。
2. 进程调度算法包括先来先服务(FCFS)、最短作业优先(SJF)、优先级调度、时间片轮转等。
3. 饥饿是指某个进程长时间得不到执行的情况,可以通过调整优先级或引入抢占机制来解决。
4. 死锁是指多个进程因为争夺资源而陷入无限等待的状态,可以通过资源预分配、避免环路等方式来避免死锁。
第三章:内存管理1. 内存管理的主要任务包括内存分配、内存保护、地址转换等。
2. 连续内存分配包括固定分区分配、可变分区分配和动态分区分配。
3. 分页和分段是常见的非连续内存分配方式,分页将进程的地址空间划分为固定大小的页,分段将进程的地址空间划分为逻辑段。
4. 页面置换算法包括最佳置换算法、先进先出(FIFO)算法、最近最久未使用(LRU)算法等。
第四章:文件系统管理1. 文件是操作系统中用来存储和组织数据的逻辑单位,可以是文本文件、图像文件、音频文件等。
2. 文件系统的主要功能包括文件的创建、删除、读取、写入等操作。
3. 文件系统的组织方式包括层次目录结构、索引结构、位图结构等。
《 Linux 操作系统(第 2 版)》课后习题答案1.6练习题一、选择题1. Linux 最早是由计算机爱好者B开发的。
A. Richard PetersenB. Linus TorvaldsC. Rob PickD. Linux Sarwar2.下列 C 是自由软件。
A. Windows XPB. UNIXC. LinuxD. Windows 20003.下列B不是 Linux的特点。
A. 多任务B.单用户C. 设备独立性D. 开放性4.Linux 的内核版本 2.3.20 是A的版本。
A. 不稳定B. 稳定的C. 第三次修订D. 第二次修订5.Linux 安装过程中的硬盘分区工具是D。
A. PQmagicB. FDISKC. FIPSD. Disk Druid6.Linux 的根分区系统类型是 C 。
A. FATl6B. FAT32C. ext4D. NTFS二、填空题1. GNU 的含义是: GNU's Not UNIX 。
2.Linux 一般有 3 个主要部分:内核( kernel)、命令解释层( Shell 或其他操作环境)、实用工具。
3.安装 Linux 最少需要两个分区,分别是swap 交换分区和 /(根)分区。
4.Linux 默认的系统管理员账号是root。
三、简答题(略)1.简述 Red Hat Linux 系统的特点,简述一些较为知名的Linux 发行版本。
2.Linux 有哪些安装方式?安装 Red Hat Linux 系统要做哪些准备工作?3.安装 Red Hat Linux 系统的基本磁盘分区有哪些?4.Red Hat Linux 系统支持的文件类型有哪些?2.6练习题一、选择题1.C命令能用来查找在文件TESTFILE中包含四个字符的行?A. grep ’????’TESTFILEB. grep’⋯.’TESTFILEC. grep’^????$’TESTFILED. grep’^⋯ .$’TESTFILE2.B命令用来显示/home及其子目录下的文件名。
1、进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。
在程序并发执行时已不再具有封闭性,而且产生了许多新的特性和新的活动规律。
程序这一静态概念已不足以描述程序的并发执行的特性。
为了适应这一新情况,引入了一个能反应程序并行执行特点的新概念——进程(process)。
有的系统也称为任务(task)。
2、进程:是程序的一次执行,是动态概念;一个进程可以同时包括多个程序;进程是暂时的,是动态地产生和消亡的。
程序:是一组有序的静态指令,是静态概念;一个程序可以是多个进程的一部分;程序可以作为资料长期保存。
3、能够看到。
进程控制块PCB表示进程的存在。
为进程的实体为:程序部分描述了进程所要完成的功能,它通常可以由若干个进程所共享。
数据部分包括程序运行时所需要的数据和工作区,它通常是各个进程专有的。
4、可再现性:程序重复执行时,必将获得相同的结果。
即对于程序A来说,第一次运行得到一结果,第二次运行时若中间有停顿,但最后的结果必将与第一次一样。
封闭性:程序一旦开始运行,其计算结果和系统内资源的状态不受外界因素的影响。
5、1)运行状态:进程正占用CPU,其程序正在CPU上执行。
处于这种状态的进程的个数不能大于CPU的数目。
在单CPU机制中,任何时刻处于运行状态的进程至多是一个。
2)就绪状态:进程已具备除CPU以外的一切运行条件,只要一分得CPU马上就可以运行(万事具备,只欠东风)。
在操作系统中,处于就绪状态的进程数目可以是多个。
为了便于管理,系统要将这多个处于就绪状态的进程组成队列,此队列称为就绪队列。
3)封锁状态:进程因等待某一事件的到来而暂时不能运行的状态。
此时,即使将CPU 分配给它,也不能运行,故也称为不可运行状态或挂起状态。
系统中处于这种状态的进程可以是多个。
同样,为了便于管理,系统要将它们组成队列,称为封锁队列。
封锁队列可以是一个,也可以按封锁原因形成多个封锁队列。
6、(1)1---分到CPU,2---时间片到,3---等待某一事件的发生,4---所等待事件已发生。
C.DCT D.FCB5.一个进程被唤醒,意味着该进程 D 。
A.重新占有CPU B.优先级变为最大C.移至等待队列之首 D.变为就绪状态6.由各作业JCB形成的队列称为 C 。
A.就绪作业队列 B.阻塞作业队列C.后备作业队列 D.运行作业队列7.既考虑作业等待时间,又考虑作业执行时间的作业调度算法是 A 。
A.响应比高者优先B.短作业优先C.优先级调度D.先来先服务8.作业调度程序从处于 D 状态的队列中选取适当的作业投入运行。
A.就绪 B.提交C.等待 D.后备9. A 是指从作业提交系统到作业完成的时间间隔。
A.周转时间 B.响应时间C.等待时间 D.运行时间10.计算机系统在执行 C 时,会自动从目态变换到管态。
A.P操作 B.V操作C.系统调用 D.I/O指令三、问答1.在多道程序设计系统中,如何理解“内存中的多个程序的执行过程交织在一起,大家都在走走停停”这样一个现象?答:在多道程序设计系统中,内存中存放多个程序,它们以交替的方式使用CPU。
因此,从宏观上看,这些程序都开始了自己的工作。
但由于CPU只有一个,在任何时刻CPU只能执行一个进程程序。
所以这些进程程序的执行过程是交织在一起的。
也就是说,从微观上看,每一个进程一会儿在向前走,一会儿又停步不前,处于一种“走走停停”的状态之中。
2.什么是“原语”、“特权指令”、“系统调用命令”和“访管指令”?它们之间有无一定的联系?答:特权指令和访管指令都是CPU指令系统中的指令,只是前者是一些只能在管态下执行的指令,后者是一条只能在目态下执行的指令。
原语和系统调用命令都是操作系统中的功能程序,只是前者执行时不能被其他程序所打断,后者没有这个要求。
操作系统中有些系统调用命令是以原语的形式出现的,例如创建进程就是一条原语式的系统调用命令。
但并不是所有系统调用命令都是原语。
因为如果那样的话,整个系统的并发性就不可能得到充分地发挥。
3.操作系统是如何处理源程序中出现的系统调用命令的?答:编译程序总是把源程序中的系统调用命令改写成为一条访管指令和相应的参数。
1.P、V操作是 A 。
A.两条低级进程通信原语B.两组不同的机器指令C.两条系统调用命令D.两条高级进程通信原语2.设系统中有n(n>2)个进程,且当前不在执行进程调度程序,试考虑下述4种情况,不可能发生的情况是 A 。
A.没有运行进程,有2个就绪进程,n个进程处于等待状态。
B.有1个运行进程,没有就绪进程,n-1个进程处于等待状态。
C.有1个运行进程,有1个就绪进程,n-2个进程处理等待状态。
D.有1个运行进程,n-1个就绪进程,没有进程处于等待状态。
3.若P、V操作的信号量S初值为2,当前值为-1,则表示有 B 等待进程。
A. 0个 B. 1个 C. 2个 D. 3个4.用V操作唤醒一个等待进程时,被唤醒进程的状态变为 B 。
A.等待B.就绪C.运行D.完成5.用P、V操作可以解决 A互斥问题。
A.一切B.某些C.正确D.错误6.多道程序环境下,操作系统分配资源以C 为基本单位。
A.程序B.指令C.进程D.作业7.从下面对临界区的论述中,选出一条正确的论述。
(1)临界区是指进程中用于实现进程互斥的那段代码。
(2)临界区是指进程中用于实现进程同步的那段代码。
(3)临界区是指进程中用于实现进程通信的那段代码。
(4)临界区是指进程中用于访问共享资源的那段代码。
(5)临界区是指进程中访问临界资源的那段代码。
8.(A)是一种只能由wait和signal操作所改变的整型变量,(A)可用于实现进程的(B)和(C),(B)是排他性访问临界资源。
A:(1)控制变量;(2)锁;(3)整型信号量;(4)记录型信号量。
B:(1)同步;(2)通信;(3)调度;(4)互斥。
C:(1)同步;(2)通信;(3)调度;(4)互斥。
9.对于记录型信号量,在执行一次wait操作时,信号量的值应当(A),当其值为(B)时,进程阻塞。
在执行signal操作时,信号量的值应当为(C),当其值为(D)时,应唤醒阻塞队列中的进程。
第2章操作系统的基本概念一、单项选择题1. 操作系统是计算机系统中的()软件。
A.应用B.系统C.支撑D.工具2. 在计算机系统中配置了批处理操作系统,则能够()。
A.提高资源使用效率B.及时响应外部事件C.是用户直接干预作业的执行D.实现计算机间的通信3. 设计实时操作系统适应首先考虑()。
A.系统效率B.交互能力C.可移植性D.可靠性4. 如用户要利用计算机系统直接调试和控制程序的执行,则应在其上配置()操作系统。
A.批处理B.实时C.分时D.单用户5. 访管指令是一条()指令。
A.特权B.只允许在目态执行的C.只允许在管态执行的D.在目态和管态均可执行的6. 单操作系统完成了用户请求的“系统功能调用”后,应让中央处理器()工作。
A.维持在管态B.从管态转换到目态C.维持在目态D.从目态转换到管态二、多项选择题1. 在任何计算机系统中()。
A.主存储器可被中央处理器直接访问B.当CPU处于管态时只能执行特权指令C.操作系统只负责管理软件资源D.操作系统能接受用户输入的命令并控制用户程序的执行E.操作系统能为应用程序提供比裸机强的功能支持2. 各种类型的操作系统各有所长,它们追求的设计目标也不同,例如()。
A.多到批处理系统是为了提高系统的资源用率B.分时系统允许用户直接与计算机系统交互C.实时系统首先要考虑实时性和可靠性D.网络操作系统必须实现激素算计之间的通信及资源共享E.分布时操作系统要让多台计算机协作完成一个共同的任务3. 程序状态字是用来控制指令执行顺序并且保留和知识与程序有关的系统状态。
所以,()。
A. 每个程序都应该有一个PSWB. 程序状态字寄存器是用来存放当前运行程序的PSWC. 在多道程序设计系统中应设置多个程序状态自己村起来分别存放个成粗的PSW,以便多道并行执行D. 在用户程序的PSW中应置为管态,以便实用访管指令E. 处理器总是按程序状态字寄存器中的PSW控制程序的执行三、填空题1.计算机系统是由计算机________和计算机________两大部分组成。
操作系统第二版第二章课后习
题答案
-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN
第二章进程和线程作业答案
1,2,4, 6,7,10,11,12,14, 21
1.在操作系统中为什么要引入进程概念它与程序的差别和
关系是怎样的
答:由于多道程序的并发执行时共享系统资源,共同决定这些资源的状态,因此系统中各程序在执行过程中就出现了相互制约的新关系,程序的执行出现“走走停停”的新状态。
用程序这个静态概念已经不能如实反映程序并发执行过程中的这些特征。
为此,人们引入“进程(Process)”这一概念来描述程序动态执行过程的性质。
进程和程序是两个完全不同的概念。
进程与程序的主要区别:
进程和程序之间存在密切的关系:进程的功能是通过程序的运行得以实现的,进程活动的主体是程序,进程不能脱离开具体程序而独立存在。
2.PCB的作用是什么它是怎样描述进程的动态性质的
答:PCB是进程组成中最关键的部分。
每个进程有惟一的进程控制块;操作系统根据PCB对进程实施控制和管理,进程的动态、并发特征是利用PCB表现出来的;PCB是进程存在的唯一标志。
PCB中有表明进程状态的信息,该进程的状态包括运行态、就绪态和阻塞态,它利用状态信息来描述进程的动态性质。
4. 用如图2-26所示的进程状态转换图能够说明有关处理机的大量内容。
试回答:
①什么事件引起每次显著的状态变迁
②下述状态变迁因果关系能否发生为什么
(A) 2→1 (B)3→2 (C)4→1
答:(1)就绪→运行:CPU空闲,就绪态进程被调度程序选中
运行→阻塞:运行态进程因某种条件未满足而放弃CPU的占用。
阻塞→就绪:阻塞态进程所等待的事件发生了。
运行→就绪:正在运行的进程用完了本次分配给它的时间片
(2)下述状态变迁
(A)2→1,可以。
运行进程用完了本次分配给它的时间片,让出CPU,从就绪队列中选一个进程投入运行。
(B)3→2,不可以。
任何时候一个进程只能处于一种状态,它既然由运行态变为阻塞态,就不能再变为就绪态。
(C)4→1,可以。
某一阻塞态进程等到的事件出现了,而且此时就绪队列为空,该进程进入就绪队列后马上又被调度运行。
6. 什么是进程的互斥和同步
答:
进程的互斥:逻辑上本来完全独立的若干进程,由于竞争同一个资源而产生的相互制约关系。
进程的同步:进程间共同完成一项任务时直接发生相互作用的关系,也就是说,这些具有伙伴关系的进程在执行时间次序上必须遵循确定的规律。
7. 什么是临界区和临界资源进程进入临界区的调度原则是什么
答:
一次仅允许一个进程使用的资源称为临界资源。
在每个进程中访问临界资源的那段程序叫做临界区。
进程进入临界区的调度原则:
①如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入。
②任何时候,处于临界区内的进程不可多于一个。
如已有进程进入自己的临界区,则其他所有试图进入临界区的进程必须等待。
③进入临界区的进程要在有限时间内退出,以便其他进程能及时进入自己的临界区。
④如果进程不能进入自己的临界区,则应让出CPU,避免进程出现“忙等”现象。
10. 系统中只有一台打印机,有三个用户的程序在执行过程中都要使用打印机输出计算结果。
设每个用户程序对应一个进程。
问:这三个进程间有什么样的制约关系试用P,V 操作写出这些进程使用打印机的算法。
答:
(1) 这三个进程之间存在互斥的制约关系。
因为打印机属于临界资源,必须一个进程使用完之后另一个进程才能使用。
(2)设三个进程分别为A、B、C
mutex:用于互斥的信号量,初值为1。
①设 A,B两个进程共用一个缓冲区Q,A向Q写入信息,B从Q读出信息,算法框图如图2-27所示。
②设A,B为两个并发进程,它们共享一个临界资源。
其运行临界区的算法框图如图2-28所示。
答:(1) 这个算法不对。
进程
A,B共用一个缓冲区,同步关系。
如果A先运行,且信息数量足够多,则缓冲区Q中的信息会被后来的冲掉,造成信息丢失,进程B不能从Q中读出完整的信息。
改正:
进程A,B同步使用一个缓冲区,设立两个信号量:empty:缓冲区Q为空,初值为1;
full:缓冲区Q为满,初值为0;
算法框图如下图所示:
(2) 这个算法不对。
进程A,B并发的,它们共享一个临界资源,二者应互斥地使用该临界资源,在进入临界区时不存在A先B后的时序关系,而是哪个进程先到一步就先进入自己的临界区。
改正:A,B两个进程应互斥地进入临界区。
为此,设立一个互斥信号量mutex,初值为1,算法框图如上所示。
12. 设有一台计算机,有两条I/O通道,分别接一台卡片输入机和一台打印机。
卡片机把一叠卡片逐一输入到缓冲区B1中,加工处理后再搬到缓冲区B2中,并在打印机上打印结果,问:
①系统要设几个进程来完成这个任务各自的工作是什么
②这些进程间有什么样的相互制约关系
③用P, V操作写出这些进程的同步算法。
答:这是一个典型的生产者,消费者问题
1)系统可设三个进程完成任务,第一个进程R,从卡片输入
机中读入数据,并且把数据放入缓冲区B1中,第二个进程
C从B1缓冲区中取数据,加工处理后放入缓冲区B2中。
第三个进程P将缓冲区B2的内容取出,在打印机上打印出
来
2)这三个进程之间是同步关系
R进程受C进程影响,B1放满信息后R进程要等待,等到
C进程将其中的信息全部取走,才能继续读入信息;C进程
受R进程和P进程的约束,B1中信息放满后C进程才可从
中取出它们,且B2被取空后C进程才可将加工结果送入其中;P进程受C进程的约束,B2中信息放满后P进程才可
从中取出它们,进行打印。
3)三个进程之间必须协调工作,需设置四个信号量:
B1empty:缓冲区B1空,初值为1;
B1full:缓冲区B1满,初值为0;
B2empty:缓冲区B2空,初值为1;
B2full:缓冲区B2满,初值为0;
进程 R 进程C 进程P
while(TRUE){ while(TRUE){ while (TRUE){
P(B1empty); P(B1full); P(B2full);
从卡片机中读入数据将B1中的数据取出计算; 将缓冲区B2内容
写入缓冲区B1; V(B1empty); 在打印机中输出;
V(B1full); P(B2empty); V(B2empty); } 计算结果送入B2中; }
V(B2full);
}
14. 假定一个阅览室最多可容纳100个人,读者进入和离开阅览室时都必须在阅览室门口的一张登记表上做标识(进入时登记,离开时去掉登记项),而且每次只允许一人登记或去掉登记。
问:
①应编写几个程序完成此项工作程序的主要动作是什么,应设置几个进程进程与程序间的对应关系如何
②用P,V操作写出这些进程的同步通信关系。
答:
①完成此项工作可编写一个或两个程序(函数),每个读者对应一个进程。
每个读者的动作包括:
进入阅览室前查表登记,这时要考虑阅览室里是否有座位;
进入阅览室,阅读
阅读完毕,离开阅览室,这时的操作主要是删除登记项,让出座位。
②设置的信号量有两个:
seats:阅览室的空座位数,初值为100;
mutex:互斥使用登记表,初值为1。
每位读者进程:
┆
P (seats); /*没有座位则离开*/
P(mutex); /*进入临界区*/
填写登记表;
V(mutex) /*离开临界区*/
进入阅览室读书;
P(mutex) /*进入临界区*/
查表,删除登记项;
V(mutex) /*离开临界区*/
V(seats) /*释放一个座位资源*/┆
21. 什么是线程它与进程有什么关系
答:
线程(Thread)是进程中实施调度和分派的基本单位
线程和进程的关系:
①一个进程可以有多个线程,但至少有一个线程;而一个线程只能在一个进程的地址空间内活动。
②资源分配给进程,同一进程的所有线程共享该进程的所有资源。
③处理机分配给线程,即真正在处理机上运行的是线程。
④线程在执行过程中,需要协作同步。
不同进程的线程间要利用消息通信的办法实现同步。
主要问题:
1、第1题,未回答“进程与程序之间的关系”
2、第4题“什么事件引起每次显著的状态变迁”,没有回答“事件”
下述状态变迁因果关系能否发生为什么没有回答“原因”
3、第6题什么是进程的互斥和同步同步的概念不够准确。
4、第7题,原题为“什么是临界区和临界资源进程进入临界区的调度原则是什么”
没有回答“原则”
5、第10题“系统中只有一台打印机。
”,
只说明,没写算法;
给出算法,但是没说明信号量mutex
6、第11题“判断下列同步问题的算法是否正确”
缺少信号量的说明
PV操作不匹配,缺少V(empty)操作
PV操作后面没有信号量
7、12题没做或者没做完整,如没写算法
8、14题,只写一个程序即可
9、没留第22题。