操作系统原理与应用(第2版)清大版第4章习题参考答案
操作系统(第二版)课后习题答案

1.什么是操作系统?其主要功能是什么?操作系统是控制和管理计算机系统内各种硬件和软件资源,有效组织多道程序运行的系统软件(或程序集合),是用户和计算机直接的程序接口.2.在某个计算机系统中,有一台输入机和一台打印机,现有两道程序投入运行,程序A、B 同时运行,A略早于B。
A的运行轨迹为:计算50ms、打印100ms、再计算50ms、打印100ms,结束。
B的运行轨迹为:计算50ms、输入80ms、再计算100ms,结束。
试说明:(1)两道程序运行时,CPU是否空闲等待?若是,在那段时间段等待?(2)程序A、B是否有等待CPU的情况?若有,指出发生等待的时刻。
0 50 100 150 200 250 30050 100 50 10050 100 20 100(1) cpu有空闲等待,在100ms~150ms的时候.(2) 程序A没有等待cpu,程序B发生等待的时间是180ms~200ms.1.设公共汽车上,司机和售票员的活动如下:司机的活动:启动车辆;正常行车;到站停车。
售票员的活动:关车门;售票;开车门。
在汽车不断的到站、停车、行驶过程中,用信号量和P、V操作实现这两个活动的同步关系。
semaphore s1,s2;s1=0;s2=0;cobegin司机();售票员();coendprocess 司机(){while(true){P(s1) ;启动车辆;正常行车;到站停车;V(s2);}}process 售票员(){while(true){关车门;V(s1);售票;P(s2);开车门;上下乘客;}}2.设有三个进程P、Q、R共享一个缓冲区,该缓冲区一次只能存放一个数据,P进程负责循环地从磁带机读入数据并放入缓冲区,Q进程负责循环地从缓冲区取出P进程放入的数据进行加工处理,并把结果放入缓冲区,R进程负责循环地从缓冲区读出Q进程放入的数据并在打印机上打印。
请用信号量和P、V操作,写出能够正确执行的程序。
操作系统原理与实践教程(第二版)第4章习题答案

操作系统原理与实践教程(第二版)第4章习题答案第4章进程同步与死锁(1) 什么是进程同步?什么是进程互斥?解:同步是进程间的直接制约关系,这种制约主要源于进程间的合作。
进程同步的主要任务就是使并发执行的各进程之间能有效地共享资源和相互合作,从而在执行时间、次序上相互制约,按照一定的协议协调执行,使程序的执行具有可再现性。
进程互斥是进程间的间接制约关系,当多个进程需要使用相同的资源,而此类资源在任一时刻却只能供一个进程使用,获得资源的进程可以继续执行,没有获得资源的进程必须等待,进程的运行具有时间次序的特征,谁先从系统获得共享资源,谁就先运行,这种对共享资源的排它性使用所造成的进程间的间接制约关系称为进程互斥。
互斥是一种特殊的同步方式。
(2) 进程执行时为什么要设置进入区和退出区?解:为了实现多个进程对临界资源的互斥访问,必须在临界区前面增加一段用于检查欲访问的临界资源是否正被访问的代码,如果未被访问,该进程便可进入临界区对资源进行访问,并设置正被访问标志,如果正被访问,则本进程不能进入临界区,实现这一功能的代码成为“进入区”代码;在退出临界区后,必须执行“退出区”代码,用于恢复未被访问标志。
(3) 同步机构需要遵循的基本准则是什么?请简要说明。
解:同步机制都应遵循下面的4条准则:1.空闲让进。
当无进程处于临界区时,允许进程进入临界区,并且只能在临界区运行有限的时间。
2.忙则等待。
当有一个进程在临界区时,其它欲进入临界区的进程必须等待,以保证进程互斥地访问临界资源。
3.有限等待。
对要求访问临界资源的进程,应保证进程能在有限时间内进入临界区,以免陷入“饥饿”状态。
4.让权等待。
当进程不能进入临界区时,应立即放弃占用CPU,以使其它进程有机会得到CPU的使用权,以免陷入“饥饿”状态。
(4) 整型信号量是否能完全遵循同步机构的四条基本准则?为什么?解:不能。
在整型信号量机制中,未遵循“让权等待”的准则。
操作系统原理与实践教程(第二版)习题答案

第1章操作系统概论(1) 试说明什么是操作系统,它具有什么特征?其最基本特征是什么?解:操作系统就是一组管理与控制计算机软硬件资源并对各项任务进行合理化调度,且附加了各种便于用户操作的工具的软件层次。
现代操作系统都具有并发、共享、虚拟和异步特性,其中并发性是操作系统的最基本特征,也是最重要的特征,其它三个特性均基于并发性而存在。
(2) 设计现代操作系统的主要目标是什么?解:现代操作系统的设计目标是有效性、方便性、开放性、可扩展性等特性。
其中有效性指的是OS应能有效地提高系统资源利用率和系统吞吐量。
方便性指的是配置了OS后的计算机应该更容易使用。
这两个性质是操作系统最重要的设计目标。
开放性指的是OS应遵循世界标准规范,如开放系统互连OSI国际标准。
可扩展性指的是OS应提供良好的系统结构,使得新设备、新功能和新模块能方便地加载到当前系统中,同时也要提供修改老模块的可能,这种对系统软硬件组成以及功能的扩充保证称为可扩展性。
(3) 操作系统的作用体现在哪些方面?解:现代操作系统的主要任务就是维护一个优良的运行环境,以便多道程序能够有序地、高效地获得执行,而在运行的同时,还要尽可能地提高资源利用率和系统响应速度,并保证用户操作的方便性。
因此操作系统的基本功能应包括处理器管理、存储器管理、设备管理和文件管理。
此外,为了给用户提供一个统一、方便、有效的使用系统能力的手段,现代操作系统还需要提供一个友好的人机接口。
在互联网不断发展的今天,操作系统中通常还具备基本的网络服务功能和信息安全防护等方面的支持。
(4) 试说明实时操作系统和分时操作系统在交互性、及时性和可靠性方面的异同。
解:交互性:分时系统能够使用户和系统进行人-机对话。
实时系统也具有交互性,但人与系统的交互仅限于访问系统中某些特定的专用服务程序。
及时性:分时系统的响应时间是以人能够接受的等待时间为标准,而实时控制系统对响应时间要求比较严格,它是以控制过程或信息处理中所能接受的延迟为标准。
操作系统第二版课后习题答案

操作系统第二版课后习题答案操作系统第二版课后习题答案操作系统是计算机科学中的重要领域,它负责管理计算机硬件和软件资源,为用户提供良好的使用体验。
在学习操作系统的过程中,课后习题是巩固和深化知识的重要方式。
本文将为大家提供操作系统第二版课后习题的答案,帮助读者更好地理解和掌握操作系统的知识。
第一章:引论1. 操作系统的主要功能包括进程管理、内存管理、文件系统管理和设备管理。
2. 进程是指正在执行的程序的实例。
进程控制块(PCB)是操作系统用来管理进程的数据结构,包含进程的状态、程序计数器、寄存器等信息。
3. 多道程序设计是指在内存中同时存放多个程序,通过时间片轮转等调度算法,使得多个程序交替执行。
4. 异步输入输出是指程序执行期间,可以进行输入输出操作,而不需要等待输入输出完成。
第二章:进程管理1. 进程调度的目标包括提高系统吞吐量、减少响应时间、提高公平性等。
2. 进程调度算法包括先来先服务(FCFS)、最短作业优先(SJF)、优先级调度、时间片轮转等。
3. 饥饿是指某个进程长时间得不到执行的情况,可以通过调整优先级或引入抢占机制来解决。
4. 死锁是指多个进程因为争夺资源而陷入无限等待的状态,可以通过资源预分配、避免环路等方式来避免死锁。
第三章:内存管理1. 内存管理的主要任务包括内存分配、内存保护、地址转换等。
2. 连续内存分配包括固定分区分配、可变分区分配和动态分区分配。
3. 分页和分段是常见的非连续内存分配方式,分页将进程的地址空间划分为固定大小的页,分段将进程的地址空间划分为逻辑段。
4. 页面置换算法包括最佳置换算法、先进先出(FIFO)算法、最近最久未使用(LRU)算法等。
第四章:文件系统管理1. 文件是操作系统中用来存储和组织数据的逻辑单位,可以是文本文件、图像文件、音频文件等。
2. 文件系统的主要功能包括文件的创建、删除、读取、写入等操作。
3. 文件系统的组织方式包括层次目录结构、索引结构、位图结构等。
操作系统原理课后习题答案

操作系统原理课后习题答案操作系统原理作业第1章1-2 批处理系统和分时系统各有什么特点?为什么分时系统的响应比较快?答:在批处理系统中操作人员将作业成批装入计算机并计算机管理运行,在程序的运行期间用户不能干预,因此批处理系统的特点是:用户脱机使用计算机,作业成批处理,系统内多道程序并发执行以及交互能力差。
在分时系统中不同用户通过各自的终端以交互方式共同使用一台计算机,计算机以“分时”的方法轮流为每个用户服务。
分时系统的主要特点是:多个用户同时使用计算机的同时性,人机问答方式的交互性,每个用户独立使用计算机的独占性以及系统响应的及时性。
分时系统一般采用时间片轮转的方法使一台计算机同时为多个终端用户服务,因此分时系统的响应比较快。
1-4什么是多道程序设计技术?试述多道程序运行的特征。
答:多道程序设计技术是指同时把多个作业放入内存并允许它们交替执行和共享系统中的各类资源;当一道程序因某种原因而暂停执行时,CPU 立即转去执行另一道程序。
多道程序运行具有如下特征:多道计算机内存中同时存放几道相互独立的程序。
宏观上并行:同时进入系统的几道程序都处于运行过程中,它们先后开始了各自的运行但都未运行完毕。
微观上串行:从微观上看内存中的多道程序轮流或分时地占有处理机,交替执行。
1-6操作系统的主要特性是什么?为什么会有这样的特性?答:并发性,共享性,异步性,虚拟性,这些特性保证了计算机能准确的运行,得出想要的结果。
1-7 工作情况如图。
CPU有空闲等待,它发生在100 ms与程序B都在进行I/O操作。
程序A无等待现象,程序B在0 ms间段内有等待现象。
150 ms时间段内,此时间段内程序A50 ms时间段与180 ms200 ms时第2章2-1 什么是操作系统虚拟机?答:在裸机上配置了操作系统程序后就构成了操作系统虚拟机2-3 什么是处理机的态?为什么要区分处理机的态?答:处理机的态,就是处理机当前处于何种状态,正在执行哪类程序。
操作系统原理与应用(第2版)清大版第2章习题参考答案

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---所等待事件已发生。
操作系统原理及应用(Linux)(第二版)第4章 存储器的管理课件文本

1
教学内容
4.1 存储器管理概述
4.2 连续分配存储管理方式
4.3 分页存储管理方式 4.4 分段存储管理方式 4.5 虚拟存储器的基本概念
4.6 请求分页 4.7 请求分段存储管理
4.8 LINUX系统的内存管理方法
本章小结
2
第4章 存储器管理
4.1 存储器管理概述
28
第4章 存储器管理
操作系统 用户程序1 10kb 用户程序3 30kb 用户程序6 14kb
用户程序9
26kb
a紧凑前
操作系统 用户程序1 用户程序3 用户程序6 用户程序9
b紧凑后 图4.9 紧凑的示意
80KB
29
第4章 存储器管理
2.动态重定位
在该方式中,将程序中的相对地址转换为物理地址的工作被推 迟到程序指令真正要执行时进行。因此,允许作业在运行过程中移 动的技术,必须获得硬件地址变换机构的支持。即在系统增加一个 重定位寄存器,用它来装入程序在内存中的起始地址。程序在执行 时,真正访问的内存地址是相对地址与重定位寄存器中地址相加而 形成的。
17
第4章 存储器管理
界限寄存器
重定位寄存器
逻辑地址
CPU
<
物理地址 +
内存
地址错 图4.7 地址映射和地址保护
18
第4章 存储器管理
4.2.2 固定分区分配方式
固定分区管理比较简单,本节仅以举例的方式说明其原理。 设一个容量为32k的实际内存,分割成如下若干区域,如图所示。
操作 10k 系 统
14
第4章 存储器管理
4.2.1 单道程序的连续分配
操作系统课后习题总结(清华大学出版社)

习题二参考答案4、答:在生产者—消费者问题中,Producer进程中P(empty)和P(mutex)互换先后次序。
先执行P(mutex),假设成功,生产者进程获得对缓冲区的访问权,但如果此时缓冲池已满,没有空缓冲区可供其使用,后续的P(empty)原语没有通过,Producer阻塞在信号量empty 上,而此时mutex已被改为0,没有恢复成初值1。
切换到消费者进程后,Consumer进程执行P(full)成功,但其执行P(mutex)时由于Producer正在访问缓冲区,所以不成功,阻塞在信号量mutex上。
生产者进程和消费者进程两者均无法继续执行,相互等待对方释放资源,会产生死锁。
在生产者和消费者进程中,V操作的次序无关紧要,不会出现死锁现象。
5、答:6、答:设信号量sp用于控制对盘子的互斥操作,信号量sg1用于计数,表示盘子中的苹果数目,信号量sg2用于计数,表示盘子中的桔子数目。
Semaphore sp=1,sg1=0,sg2=0dad(){while(1){ prepare an apple;p(sp);put an apple on the plate;v(sg2);}}mom(){while(1){prepare an orange;p(sp);put an orange on the plate;v(sg1);}}son(){while(1){p(sg1);take an orange from the plate;v(sg);eat the orange;}}daughter(){while(1){p(sg2);take an apple from the plate;v(sg);eat the apple;}}7、答:为了使写者优先,在原来的读优先算法基础上增加一个初值为1的信号量S,使得当至少有一个写者准备访问共享对象时,它可使后续的读者进程等待写完成;初值为0的整型变量writecount,用来对写者进行计数;初值为1的互斥信号量wmutex,用来实现多个写者对writecount的互斥访问。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、管理对象是内存及作为内存的扩展和延伸的后援存储器(外存)。
基本任务:a.按某种算法分配和回收存储空间。
b.实现逻辑地址到物理地址的转换。
c.由软硬件共同实现程序间的相互保护。
2、程序中通过符号名称来调用、访问子程序和数据,这些符号名的集合被称为“名字空
间”,简称名空间。
当程序经过编译或者汇编以后,形成了一种由机器指令组成的集合,被称为目标程序,或者相对目标程序。
这个目标程序指令的顺序都以0为一个参考地址,这些地址被称为相对地址,或者逻辑地址,有的系统也称为虚拟地址。
相对地址的集合称为相对地址空间,也称虚拟地址空间。
目标程序最后要被装入系统内存才能运行。
目标程序被装入的用户存储区的起始地址是一个变动值,与系统对存储器的使用有关,也与分配给用户使用的实际大小有关。
要把以0作为参考地址的目标程序装入一个以某个地址为起点的用户存储区,需要进行一个地址的对应转换,这种转换在操作系统中称为地址重定位。
也就是说将目标地址中以0作为参考点的指令序列,转换为以一个实际的存储器单元地址为基准的指令序列,从而才成为一个可以由CPU调用执行的程序,它被称为绝对目标程序或者执行程序。
这个绝对的地址集合也被称为绝对地址空间,或物理地址空间。
用户程序的装入,是一个从外存空间将用户已经编译好的目标程序,装入内存的过程。
在这个过程中,要进行将相对地址空间的目标程序转换为绝对地址空间的可执行程序,这个地址变换的过程称为地址重定位,也称地址映射,或者地址映象。
覆盖:是利用程序内部结构的特征,以较小的内存空间运行较大程序的技术。
交换:是指内外存之间交换信息。
3、一旦一个区域分配给一个作业后,其剩余空间不能再用(内零头或内碎片),另外当一区域小于当前所有作业的大小时,便整个弃置不用(外零头或外碎片)。
4、(1)2.4us (2)1.5us
5、为了给大作业(其地址空间超过主存可用空间)用户提供方便,使他们摆脱对主存和外存的分配和管理。
由操作系统把多级存储器统一管理起来,实现自动覆盖。
即一个大作业在执行时,其一部分地址空间在主存,另一部分在外存。
当所访问的信息不在主存时,则由操作系统把它从外存调入主存,因此,从效果上来看,这样的计算机系统,好象为用户提供了一个其存储容量比实际主存大得多的存储器。
人们称这个存储器为虚拟存储器。
它的容量取决于主存和外存的容量之和,人们之所以称它为虚拟存储器,是因为这样的存储器实际上并不存在,而只是系统增加了自动覆盖功能后,给用户造成的一种假象,仿佛系统内有了一个很大的主存供他使用。
实现虚存管理的物质基础是二级存储器结构和动态地址转换机构(DAT)。
经过操作系统的改造将内存和外存有机地联系在一起,在用户面前呈现一个足以满足编程需要的特大存储空间,从而把用户地址空间和实际的存储空间区分开来,使得用户可以在虚拟存储器内写自己的程序,而不必关心它在机器上是如何存放和执行的。
6、硬件支持
采用分区法分配内存要有硬件保护机构。
通常用一对寄存器来实现。
这一对寄存器的置值可有两种不同方法:
* 用这一对寄存器分别表示用户程序在内存中的上界值和下界值。
用户程序执行时,对每个地址都要作合法性检查,当满足:
下界寄存器值≤地址<上界寄存器值时为合法。
否则报地址越界中断。
也可用这一对寄存器表示用户程序的基址和限长。
基址表示用户程序的最小物理地址,限长
表示用户程序逻辑地址范围。
7、硬件支持:动态地址转换机构、页表,给出页表起始地址的寄存器。
系统做的工作:由动态地址转换机构自动地将CPU给出的一维逻辑地址LA分成两部分:页号(p)和页内位移量(b);按p的值查找现行进程页表以获得块号(n);将此块号n与LA中的b相拼接,就形成了物理地址PA。
8、页面走向序列:0,2,0,2,0,2,0,0,0,9,0,9,0
9、(1)430+219=649 (2)10+2300=2310 (3)11+2300=2311
(4)段违例(5)400+1327=1727 (6) 段违例
10、段和页是截然不同的两个概念。
页是一维逻辑地址,是信息的物理单位,且大小固定由系统确定,用户是看不见的。
段是二维逻辑地址,是信息的逻辑单位,其大小可变,由用户自己确定,用户是看得见的。
11、到需要调用一模块时,再去链接它,即动态链接法。
在分段管理中,每个段都有自己的段名,且在运行期间能保持原有的逻辑信息结构,因而实现动态链接较容易。
13、不一定!UNIX系统5中就不是!UNIX S-5中的做法:它在fork算法中并未真正为子进程申请存储空间,而是将user结构、栈段、数据段的页表项中置上“复制写位”。
当父、子进程中的任一个进程要对这些页进行写操作时,再为它们申请存储空间,并进行复制,否则父、子进程就是共享相应页面内容。
14、页面淘汰算法:当访问某一页面时,将其访问位置1,同时将年龄位清0;当页面淘汰进程检查某页时,将年龄位加1,同时若发现其访问位为1,则清0;当年龄位值达到一定时,将该页置为可换出状态。
15、所谓工作集WS(Working Set),是在程序执行中离时刻ti最近的Δ次访存所涉及到的那些页面的集合,当Δ确定以后,工作集是时刻ti的函数。
工作集是对程序局部的一个近似模拟,如果我们能找出一进程的各个工作集,并求出其页面数最大者,则可确定该进程所需内存量,并根据此确定系统内并发进程的最大个数。