操作系统第二章课后答案汇编
计算机操作系统(习题集)第二章 答案

计算机操作系统(习题集)第二章答案计算机操作系统(习题集)第二章答案第二章进程管理一、单项选择题1、在单一处理机上执行程序,多道程序的执行是在(b)进行的。
a.同一时刻b.同一时间间隔内c.某一紧固时刻d.某一紧固时间间隔内2、引入多道程序技术后,处理机的利用率(c)。
a.减少了b.有所改善c.大大提高d.没变化,只是程序的继续执行便利了3、顺序程序和并发程序的执行相比,(c)。
a.基本相同c.并发程序继续执行总体上继续执行时间慢b.有点不同d.顺序程序执行总体上执行时间快4、单一处理机上,将继续执行时间存有重合的几个程序称作(c)。
a.顺序程序b.多道程序c.并发程序d.并行程序5、进程和程序的本质区别就是(d)。
a.存储在内存和外存b.顺序和非顺序继续执行机器指令c.分时使用和独占使用计算机资源d.动态和静态特征6、进程就是程序在mammalian环境中的继续执行过程,它就是系统展开资源分配和调度的一个基本单位。
进程具备[1a]、[2d]、调度性、异步性和结构性等基本特征。
进程就是一次继续执行过程,具备生命期彰显了进程的[1]特征。
进程由程序段、[3b]、[4c]共同组成,其中[4]就是进程在系统中存有的唯一标识。
供选择的答案:[1][2]:a、动态性b、静态性c、共行性d、并发性e、可执行性f、易用性[3]:a、过程b、数据c、进程标识符d、函数[4]:a、fcbb、fifoc、pcbd、jcb7、进程执行时的间断性,决定了进程可能具有多种状态。
进程的基本状态有三种,在分时系统中,当一个进程拥有的时间片到时,则该进程即由[1d]进入[2a]。
如果出现因某种原因使得处理机空闲时,则需要从就绪队列中选择一进程,并将处理机分配给它,此时该进程进入[3d],这个过程是由[4c]来完成。
供选择的答案:[1][2][3]:a、准备就绪状态b、静止状态c、阻塞状态d、运转状态[4]:a、进程控制程序b、资源分配程序c、进程调度程序d、处理机分配程序8、为了叙述进程的动态变化过程,使用了一个与进程二者联系的(c),根据它而认知进程的存有。
计算机操作系统(第四版)课后习题答案第二章

第二章之五兆芳芳创作1. 什么是前趋图?为什么要引入前趋图?答:前趋图(Precedence Graph)是一个有向无循环图,记为DAG(Directed Acyclic Graph),用于描述进程之间执行的前后关系.2. 画出下面四条诧句的前趋图:S1=a:=x+y;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是进程存在的唯一标记. 11.试说明进程在三个根本状态之间转换的典型原因. 答:(1)就绪状态→执行状态:进程分派到CPU资源(2)执行状态→就绪状态:时间片用完(3)执行状态→阻塞状态:I/O请求(4)阻塞状态→就绪状态:I/O 完成12.为什么要引入挂起状态?该状态有哪些性质?答:引入挂起状态处于五种不合的需要: 终端用户需要,父进程需要,操纵系统需要,对换需要和负荷调节需要.处于挂起状态的进程不克不及接收处理机调度. 10.在进行进程切换时,所要保管的处理机状态信息有哪些?答:进行进程切换时,所要保管的处理机状态信息有:(1)进程当前暂存信息(2)下一指令地址信息(3)进程状态信息(4)进程和系统调用参数及调用地址信息.13.在进行进程切换时,所要保管的处理机状态信息有哪些?答:进行进程切换时,所要保管的处理机状态信息有:(1)进程当前暂存信息(2)下一指令地址信息(3)进程状态信息(4)进程和系统调用参数及调用地址信息.14.试说明引起进程创建的主要事件. 答:引起进程创建的主要事件有:用户登录、作业调度、提供办事、应用请求.15.试说明引起进程被撤消的主要事件. 答:引起进程被撤消的主要事件有:正常结束、异常结束(越界错误、庇护错、不法指令、特权指令错、运行超时、等待超时、算术运算错、I/O 毛病)、外界干涉(操纵员或操纵系统干涉、父进程请求、父进程终止).16.在创建一个进程时所要完成的主要任务是什么?答:(1)OS 发明请求创建新进程事件后,调用进程创建原语Creat();(2)申请空白PCB;(3)为新进程分派资源;(4)初始化进程控制块;(5)将新进程拔出就绪队列.17.在撤消一个进程时所要完成的主要任务是什么?答:(1)按照被终止进程标识符,从PCB 集中检索出进程PCB,读出该进程状态. (2)若被终止进程处于执行状态,立即终止该进程的执行,臵调度标记真,指示该进程被终止后重新调度. (3)若该进程还有子进程,应将所有子孙进程终止,以防它们成为不成控进程. (4)将被终止进程拥有的全部资源,偿还给父进程,或偿还给系统. (5)将被终止进程PCB 从所在队列或列表中移出,等待其它程序搜集信息.18.试说明引起进程阻塞或被叫醒的主要事件是什么?答:a. 请求系统办事;b. 启动某种操纵;c. 新数据尚未到达;d. 无新任务可做.19. 为什么要在OS中引入线程?在OS中引入进程的目的,是为了使多个程序能并发执行,以提高资源利用率和系统吞吐量.在OS中再引入线程,则是为了削减程序在并发执行时所支出的时空开销,使OS具有更好的并发性.20.试说明线程具有哪些属性?答:(1)轻型实体(2)独立调度和分拨的根本单位(3)可并发执行(4)同享进程资源.21. 试从调度性,并发性,拥有资源及系统开销方面对进程和线程进行比较. a. 调度性.在传统的操纵系统中,拥有资源的根本单位和独立调度、分拨的根本单位都是进程,在引入线程的OS中,则把线程作为调度和分拨的根本单位,而把进程作为资源拥有的根本单位; b. 并发性.在引入线程的OS中,不但进程之间可以并发执行,并且在一个进程中的多个线程之间,亦可并发执行,因而使OS具有更好的并发性; c. 拥有资源.无论是传统的操纵系统,仍是引入了线程的操纵系统,进程始终是拥有资源的一个根本单位,而线程除了拥有一点在运行时必不成少的资源外,自己根本不拥有系统资源,但它可以拜访其隶属进程的资源; d. 开销.由于创建或撤消进程时,系统都要为之分派和收受接管资源,如内存空间等,进程切换时所要保管和设置的现场信息也要明显地多于线程,因此,操纵系统在创建、裁撤和切换进程时所支出的开销将显著地大于线程.。
操作系统第二章课后答案

第二章进程管理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.什么是前趋图?为什么要引入前趋图?答:前趋图 (Precedence Graph)是一个有向无循环图,记为DAG(Directed Acyclic Graph),用于描述进程之间执行的前后关系。
2. 画出下面四条诧句的前趋图:S1=a: =x+y;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是进程实体的一部分,是操作系统中最重要的记录型数据结构。
操作系统第二章复习题答案

操作系统第二章复习题答案操作系统第二章复习题答案第一节:操作系统概述操作系统是计算机系统中的核心软件之一,它负责管理和控制计算机硬件资源,并提供用户与计算机之间的接口。
操作系统的主要功能包括进程管理、内存管理、文件系统管理和设备管理等。
第二节:进程管理1. 进程是指正在执行中的程序。
它包括程序计数器、寄存器集合和栈等信息。
进程的状态包括运行态、就绪态和阻塞态。
2. 进程调度是指根据一定的策略选择下一个执行的进程。
常见的调度算法有先来先服务调度算法、短作业优先调度算法和时间片轮转调度算法等。
3. 进程同步是指协调多个进程的执行顺序,避免出现竞态条件和死锁等问题。
常见的进程同步机制有互斥锁、信号量和条件变量等。
第三节:内存管理1. 内存管理是指操作系统对内存资源的分配和回收。
常见的内存管理方式有分区管理和页式管理。
2. 分区管理将内存划分为多个固定大小的分区,每个分区只能分配给一个进程。
常见的分区分配算法有首次适应算法、最佳适应算法和最坏适应算法等。
3. 页式管理将内存和进程的地址空间划分为固定大小的页和页框,实现了虚拟内存的概念。
常见的页式管理算法有局部页面置换算法和全局页面置换算法等。
第四节:文件系统管理1. 文件系统管理是指操作系统对文件的组织和访问控制。
文件是计算机中存储数据的基本单位,它包括文件名、文件属性和文件数据等。
2. 文件系统通过目录结构来组织文件,常见的目录结构有单级目录结构、树状目录结构和索引节点结构等。
3. 文件系统提供了文件的读、写和删除等操作,同时还提供了文件保护和文件共享等功能。
第五节:设备管理1. 设备管理是指操作系统对计算机硬件设备的管理和控制。
常见的设备管理方式有设备驱动程序和设备控制块等。
2. 设备驱动程序是操作系统与硬件设备之间的接口,它负责将操作系统的请求转化为硬件设备可以理解的指令。
3. 设备控制块是操作系统对每个设备的描述,它包括设备类型、设备状态和设备队列等信息。
计算机操作系统(第四版)课后习题答案第二章,精品资料

第二章1. 什么是前趋图?为什么要引入前趋图?答:前趋图(Precedence Graph)是一个有向无循环图,记为DAG(Directed Acyclic Graph),用于描述进程之间执行的前后关系。
2. 画出下面四条诧句的前趋图:S1=a:=x+y;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中记录了操作系统所需的用于描述进程情况及控制进程运行所需的全部信息。
计算机操作系统(第四版)课后习题答案第二章

计算机操作系统(第四版)课后习题答案第二章第二章1. 什么是前趨圖?為什么要引入前趨圖?答:前趨圖(Precedence Graph)是一個有向無循環圖,記為DAG(Directed Acyclic Graph),用于描述進程之間執行的前后關系。
2. 畫出下面四條詫句的前趨圖:S1=a:=x+y;S2=b:=z+1;S3=c:=a-b;S4=w:=c+1;答:其前趨圖為:3. 為什么程序并發執行會產生間斷性特征?程序在并發執行時,由于它們共享系統資源,以及為完成同一項任務而相互合作,致使在這些并發執行的進程之間,形成了相互制約的關系,從而也就使得進程在執行期間出現間斷性。
4. 程序并發執行時為什么會失去封閉性和可再現性?因為程序并發執行時,是多個程序共享系統中的各種資源,因而這些資源的狀態是由多個程序來改變,致使程序的運行失去了封閉性。
而程序一旦失去了封閉性也會導致其再失去可再現性。
GAGGAGAGGAFFFFAFAF5. 在操作系統中為什么要引入進程概念?它會產生什么樣的影響?為了使程序在多道程序環境下能并發執行,并能對并發執行的程序加以控制和描述,從而在操作系統中引入了進程概念。
影響: 使程序的并發執行得以實行。
6. 試從動態性,并發性和獨立性上比較進程和程序?a. 動態性是進程最基本的特性,可表現為由創建而產生,由調度而執行,因得不到資源而暫停執行,以及由撤銷而消亡,因而進程由一定的生命期;而程序只是一組有序指令的集合,是靜態實體。
b. 并發性是進程的重要特征,同時也是OS的重要特征。
引入進程的目的正是為了使其程序能和其它建立了進程的程序并發執行,而程序本身是不能并發執行的。
c. 獨立性是指進程實體是一個能獨立運行的基本單位,同時也是系統中獨立獲得資源和獨立調度的基本單位。
而對于未建立任何進程的程序,都不能作為一個獨立的單位來運行。
7. 試說明PCB的作用?為什么說PCB是進程存在的唯一標志?a. PCB是進程實體的一部分,是操作系統中最重要的記錄型數據結構。
操作系统第二章部分答案

26.假定有如下独木桥问题:过桥时,同一方向的行人可连续过桥,当某一方向有人过桥时,另一方向的行人必须等待;当某一方向无人过桥时,另一方向的行人可以过桥。
试用信号量机制解决。
答:(1)将独木桥的两个方向分别标记为A和B。
用整型变量countA和countB分别表示A、B方向上已在独木桥上的行人数,初值都设置为0。
需要设置三个初值都为1的互斥信号量:MA用来实现对countA的互斥访问,MB用來实现对countB的互斥访问,mutex用来实现两个方向的行人对独木桥的互斥使用。
(2)以下使用信号量机制对A力向上的行人过桥和B方向上的行人过桥的算法进行描述:mt countA. countB;counlA= 0; countB = 0:Semaphore MA.MB .mutex; //定义了三个互斥信号量MA.value=l; MB.value=l; mutex.value=l;cobeginprocess A_direction_cross_bridge_person //A 方向上过独木桥的行人进程P(MA): //实现对临界资源countA的互斥访问〃当A方向上没有行人过独木桥吋,这吋有可能存在B方向上的行人在过独木桥。
if (countA = 0)P(mutex); ,7如果当前独木桥正在被使用,说明B方向上的行人正在过桥,则A方向上的行人必须等待。
countA=countA+l; 〃当B方向上没有行人过桥时,则A方向上的行人可以过独木桥。
因此A 方向上已在独木桥上的行人数增加1个V(MA); 〃退出临界区过桥:打A方向上的行人通过独木桥P(MA): 〃实现对临界资源countA的互斥访问countA=countA-l; //当A方向上的行人已经通过了独木桥时,则A方向上在独木桥上的行人数需要减少1个if(counlA==0)〃如果A方向上在独木桥上的行人数减少到0.则\>utex); 〃需要释放独木桥临界资源,唤醒第■个由于在等待独木桥而处于等待状态的B 方向上过独木桥的行人进程(如果此进程存在)V(MA);"退出临界区Process B_direction_cross_bridge_person //B 方向上过独木桥的行人进程P(MB); 〃实现对临界资源countB的互斥访问〃当B方向上没有行人过独木桥时,这吋有可能存在A方向上的行人在过独木桥。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二章进程管理2.S1: a:=x+y;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是进程存在的唯一标志。
8. 试说明进程在三个基本状态之间转换的典型原因.a. 处于就绪状态的进程,当进程调度程序为之分配了处理机后,该进程便由就绪状态变为执行状态。
b. 当前进程因发生某事件而无法执行,如访问已被占用的临界资源,就会使进程由执行状态转变为阻塞状态。
c. 当前进程因时间片用完而被暂停执行,该进程便由执行状态转变为就绪状态。
9. 为什么要引入挂起状态?该状态有哪些性质?a. 引入挂起状态主要是出于4种需要(即引起挂起的原因): 终端用户的请求,父进程请求,负荷调节的需要,操作系统的需要。
b. 被挂起的进程是处于静止状态,并且不能直接被处理机调度。
17. 为什么进程在进入临界区之前应先执行“进入区”代码?而在退出前又要执行“退出区”代码?为了实现多个进程对临界资源的互斥访问,必须在临界区之前加一段用于检查临界资源是否正在被访问的代码,如未被访问,该进程可进入临界区对此临界资源进行访问;如正被访问,则该进程不能进入临界区访问临界资源。
在退出临界区后,执行恢复访问标志的代码为“退出区”,而在退出前执行“退出区”代码主要是为了使其它进程能再访问此临界资源。
18. 同步机构应遵循哪些基本准则?为什么?a. 空闲让进、忙则等待、有限等待、让权等待四条准则b. 为实现进程能互斥地进入到自己的临界区19. 试从物理概念上说明记录型信号量wait和signal。
Wait(S):当S.value>0时,表示目前系统中这类资源还有可用的,执行一次wait操作,意味着进程请求一个单位的该类资源,是系统中可供分配的该类资源减少一个,因此描述为S.value:=S.value-1;当S.value<0时,表示该类资源已分配完毕,因此进程应调用block原语,进行自我阻塞,放弃处理机,并插入到信号量链表S.L中。
Signal(S):执行一次signal操作,意味着释放一个单位的可用资源,使系统中可供分配的该类资源数增加一个,故执行S.value:=S.value+1操作。
若加1后S.value≤0,则表示在该信号量链表中,仍有等待该资源的进程被阻塞,因此应调用wakeup原语,将S.L链表中的第一个等待进程唤醒。
22. 试写出相应的程序来描述图2-17所示的前驱图。
a. Var a, b, c, d, e, f, g, h; semaphore:= 0, 0, 0, 0, 0, 0, 0, 0;beginparbeginbegin S1; signal(a); signal(b); end;begin wait(a); S2; signal(c); signal(d); end;begin wait(b); S3; signal(e); end;begin wait(c); S4; signal(f); end;begin wait(d); S5; signal(g); end;begin wait(e); S6; signal(h); end;begin wait(f); wait(g); wait(h); S7; end;parendend23. 在生产者—消费者问题中,如果缺少了signal(full)或signal(empty),对执行结果将会有何影响?如果缺少了signal(full),那么表明从第一个生产者进程开始就没有对信号量full值改变,即使缓冲池存放的产品已满了,但full的值还是0,这样消费者进程在执行wait(full)时会认为缓冲池是空的而取不到产品,那么消费者进程则会一直处于等待状态。
如果缺少了signal(empty),例如在生产者进程向n个缓冲区投满产品后消费者进程才开始从中取产品,这时empty=0,full=n,那么每当消费者进程取走一个产品时empty 并没有被改变,直到缓冲池中的产品都取走了,empty的值也一直是0,即使目前缓冲池有n个空缓冲区,生产者进程要想再往缓冲池中投放产品会因申请不到空缓冲区而被阻塞。
24. 在生产者—消费者问题中,如果将两个wait操作即wait(full)和wait(mutex)互换位置,或者将signal(mutex)和signal(full)互换位置,结果会如何?在生产者—消费者问题中,如果将两个wait操作,即wait(full)和wait(mutex)互换位置后,可能引起死锁。
考虑系统中缓冲区全满时,若一生产者进程先执行了wait(mutex)操作并获得成功,则当再执行wait(empty)操作时,它将因失败而进入阻塞状态,它期待消费者进程执行signal(empty)来唤醒自己,在此之前,它不可能执行signal(mutex)操作,从而使试图通过执行wait(mutex)操作而进入自己的临界区的其他生产者和所有消费者进程全部进入阻塞状态,这样容易引起系统死锁。
若signal(mutex)和signal(full)互换位置后只是影响进程对临界资源的释放次序,而不会引起系统死锁,因此可以互换位置。
25. 我们为某临界资源设置一把锁W,当W=1时表示关锁;当W=0时表示锁已打开,试写出开锁和关锁原语,并利用它们去实现互斥。
整型信号量:lock(W): while W=1 do no-opW:=1;unlock(W): W:=0;记录型信号量:lock(W): W:=W+1;if(W>1) then block(W.L)unlock(W): W:=W-1;if(W>0) then wakeup(W.L)例子:Var W:semaphore:=0;beginrepeatlock(W);critical sectionunlock(W);remainder sectionuntil false;end26. 试修改下面生产者——消费者问题解法中的错误:producer:beginrepeat……produce an item in nextp;wait(mutex);wait(full);buffer(in):=nextp;……signal(mutex);until false;endconsumer:beginrepeat……wait(mutex);wait(empty); nextc:=buffer(out); out:=out+1;signal(mutex);consume item in nextc; until false;end27. 试利用记录型信号量写出一个不会出现死锁的哲学家进餐问题的算法。
三种解决方法中的任意一种即可(略)。
PPT6228. 在测量控制系统中的数据采集任务时,把所采集的数据送往一单缓冲区;计算任务从该单缓冲区中取出数据进行计算。
试写出利用信号量机制实现两任务共享单缓冲区的同步算法。
a. Var mutex, empty, full: semaphore:=1, 1, 0;gather:beginrepeat……gather data in nextp;wait(empty);wait(mutex);buffer:=nextp;signal(mutex);signal(full);until false;end compute:beginrepeat……wait(full);wait(mutex);nextc:=buffer;signal(mutex);signal(empty);compute data in nextc;until false;endb. Var empty, full: semaphore:=1, 0;gather:beginrepeat……gather data in nextp;wait(empty);buffer:=nextp;signal(full);until false;endcompute:beginrepeat……wait(full);nextc:=buffer;signal(empty);compute data in nextc;until false;end 31. 参考ppt76页32. 参考ppt91页33. 试比较进程间的低级通信工具与高级通信工具.用户用低级通信工具实现进程通信很不方便,因为其效率低,通信对用户不透明,所有的操作都必须由程序员来实现,而高级通信工具则可弥补这些缺陷,用户可直接利用操作系统所提供的一组通信命令,高效地传送大量的数据。
36. 为什么要在OS中引入线程?在OS中引入进程的目的,是为了使多个程序能并发执行,以提高资源利用率和系统吞吐量。
在OS中再引入线程,则是为了减少程序在并发执行时所付出的时空开销,使OS具有更好的并发性。