习题一
1.什么是操作系统?它的主要功能是什么?
答:操作系统是用来管理计算机系统的软、硬件资源,合理地组织计算机的工作流程,以方便用户使用的程序集合;
其主要功能有进程管理、存储器管理、设备管理和文件管理功能。
2.什么是多道程序设计技术?多道程序设计技术的主要特点是什么?
答:多道程序设计技术是把多个程序同时放入内存,使它们共享系统中的资源;
特点:(1)多道,即计算机内存中同时存放多道相互独立的程序;
(2)宏观上并行,是指同时进入系统的多道程序都处于运行过程中;
(3)微观上串行,是指在单处理机环境下,内存中的多道程序轮流占有CPU,交替执行。
3.批处理系统是怎样的一种操作系统?它的特点是什么?
答:批处理操作系统是一种基本的操作系统类型。在该系统中,用户的作业(包括程序、数据及程序的处理步骤)被成批的输入到计算机中,然后在操作系统的控制下,用户的作业自动地执行;
特点是:资源利用率高、系统吞吐量大、平均周转时间长、无交互能力。4.什么是分时系统?什么是实时系统?试从交互性、及时性、独立性、多路性
和可靠性几个方面比较分时系统和实时系统。
答:分时系统:一个计算机和许多终端设备连接,每个用户可以通过终端向计算机发出指令,请求完成某项工作,在这样的系统中,用户感觉不到其他用户的存在,好像独占计算机一样。
实时系统:对外部输入的信息,实时系统能够在规定的时间内处理完毕并作出反应。
比较:(1)交互性:实时系统具有交互性,但人与系统的交互,仅限于访问系统中某些特定的专用服务程序。它不像分时系统那样向终端用户提供数据处理、资源共享等服务。实时系统的交互性要求系统具有连续人机对话的能力,也就是说,在交互的过程中要对用户得输入有一定的记忆和进一步的推断的能力。
(2)及时性:实时系统对及时性的要求与分时系统类似,都以人们能够接受的等待时间来确定。而及时系统则对及时性要求更高。
(3)独立性:实时系统与分时系统一样具有独立性。每个终端用户提出请求时,是彼此独立的工作、互不干扰。
(4)多路性:实时系统与分时一样具有多路性。操作系统按分时原则为多个终端用户提供服务,而对于实时系统,其多路性主要表现在经常对多路的现场信息进行采集以及对多个对象或多个执行机构进行控制。
(5)可靠性:分时系统虽然也要求可靠性,但相比之下,实时系统则要求系统高度可靠。
5.实时系统分为哪两种类型?
答:实时控制系统、实时信息处理系统。
6.操作系统的主要特征是什么?
答:并发性、共享性、虚拟性、不确定性。
7.操作系统与用户的接口有几种?他们各自用在什么场合?
答:有两种:命令接口、程序接口;
命令接口:分为联机命令接口、脱机命令接口和图形用户界面接口,它是为方便用户控制自己的作业。
程序接口:又称系统调用,是为用户在程序一级访问操作系统功能而设置的,是用户程序取得操作系统服务的唯一途径,它由一组系统调用构成,每个系统调用完成一个特定的功能。
8.“操作系统是控制硬件的软件”这一说法确切吗?为什么?
答:不正确,操作系统不仅仅在控制硬件,同时它还控制着计算机的软件。所以说操作系统是控制硬件的软件是不正确的。
9.设内存中有三道程序,A ,B ,C ,他们按A →B →C 的先后次序执行,它们进行“计算”和“I/O 操作”的时间如表1-2所示,假设三道程序使用相同的I/O 设备。
表1-2 三道程序的操作时间
(1) 试画出单道运行时三道程序的时间关系图,并计算完成三道程序要花多
少时间。
I/O 操作计算90605014020160170190
200A
A B B B C C
C
总时间=20+30+10+30+50+20+10+20+10=200
(2) 试画出多道运行时三道程序的时间关系图,并计算完成三道程序要花多
长时间。
I/O 操作程序A
605014020A A 100B B B C
C
C
linux是一个分时操作系统A
I/O 操作I/O 操作
1208090程序B
程序C 70130总时间=130
10.将下列左右两列词连接起来形成意义最恰当的5对。
DOS
OS/2
UNIX
LINUX
Windows NT 网络操作系统自由软件多任务单任务为开发操作系统而设计c 语言
11.选择一个现代操作系统,查和阅读相关的技术资料,写一篇该操作系统如何运行内存管理、存储管理、设备管理和文件管理的文章。
习题二
1. 操作系统中为什么要引入进程的概念?为了实现并发进程之间的合作和协
调,以及保证系统的安全,操作系统在进程管理方面要做哪些工作?
答:(1)为了从变化的角度动态地分析研究可以并发执行的程序,真实地反应系统的独立性、并发性、动态性和相互制约,操作系统中就不得不引入“进程”的概念;
(2)为了防止操作系统及其关键的数据结构,受到用户程序有意或无意的破坏,通常将处理机的执行状态分成核心态和用户态;对系统中的全部进程实行有效地管理,其主要表现是对一个进程进行创建、撤销以及在某些进程状态之间的转换控制,
2. 试描述当前正在运行的进程状态改变时,操作系统进行进程切换的步骤。
答:(1)就绪状态→运行状态。处于就绪状态的进程,具备了运行的条件,但由于未能获得处理机,故没有运行。
(2)运行状态→就绪状态。正在运行的进程,由于规定的时间片用完而被暂停执行,该进程就会从运行状态转变为就绪状态。
(3)运行状态→阻塞状态。处于运行状态的进程,除了因为时间片用完而暂停执行外还有可能由于系统中的其他因素的影响而不能继续执行下去。
3.现代操作系统一般都提供多任务的环境,试回答以下问题。
(1)为支持多进程的并发执行,系统必须建立哪些关于进程的数据结构?
答:为支持进程的并发执行,系统必须建立“进程控制块(PCB)”,
PCB的组织方式常用的是链接方式。
(2)为支持进程的状态变迁,系统至少应该供哪些进程控制原语?
答:进程的阻塞与唤醒原语和进程的挂起与激活原语。
(3)当进程的状态变迁时,相应的数据结构发生变化吗?
答:创建原语:建立进程的PCB,并将进程投入就绪队列。;
撤销原语:删除进程的PCB,并将进程在其队列中摘除;
阻塞原语:将进程PCB中进程的状态从运行状态改为阻塞状态,并将进
程投入阻塞队列;
唤醒原语:将进程PCB中进程的状态从阻塞状态改为就绪状态,并将进
程从则队列摘下,投入到就绪队列中。
4.什么是进程控制块?从进程管理、中断处理、进程通信、文件管理、设备管
理及存储管理的角度设计进程控制块应该包含的内容。
答:(1)进程控制块是用来描述进程本身的特性、进程的状态、进程的
调度信息及对资源的占有情况等的一个数据结构;
(2)为了进程管理,进程控制块包括以下几方面。
a)进程的描述信息,包括进程标识符、进程名等。
b)进程的当前状况。
c)当前队列链接指针。
d)进程的家族关系。
为了中断处理,进程控制块的内容应该包括处理机状态信息和各种寄存
器的内容。
为了内存管理的需要,进程控制块的内容应该包括进程使用的信号量、
消息队列指针等。
为了设备管理,进程控制块的内容应该包括进程占有资源的情况。5.假设系统就绪队列中有10个进程,这10个进程轮换执行,每隔300ms轮换一次,CPU在进程切换时所花费的时间是10ms,试问系统化在进程切换上的开销占系统整个时间的比例是多少?
答:因为每隔300ms换一次进程,且每个进程切换时所花费的时间是10ms,则系统化在进程切换上的开销占系统整个时间的比例是10/(300+10)=3.2% 6.试述线程的特点及其与进程之间的关系。
答:(1)特点:线程之间的通信要比进程之间的通信方便的多;同一进程内的线程切换也因为线程的轻装而方便的多。同时线程也是被独立调度的分配的;
(2)线程与进程的关系:线程和进程是两个密切相关的概念,一个进程至少拥有一个线程,进程根据需要可以创建若干个线程。线程自己基本上不拥有资源,只拥有少量必不可少的资源(线程控制块和堆栈)
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调度的策略和效果。
答:当进程调度时,首先从高优先级就绪队列选择一个进程,赋予它的时间片为100ms。如果高优先级就绪队列为空,则从低优先级就绪队列选择进程,并且赋予该进程的时间片为500ms。
这种策略一方面照顾了短进程,一个进程如果在100ms运行完毕它将退出系统,更主要的是照顾了I/O量大的进程,进程因I/O进入阻塞队列,当I/O完成后它就进入了高优先级就绪队列,在高优先级就绪队列等待的进程总是优于低优先级就绪队列的进程。而对于计算量较大的进程,它的计算如果在100ms的时间内不能完成,它将进入低优先级就绪队列,在这个队列的进程被选中的机会要少,只有当高优先级就绪队列为空,才从低优先级就绪队列选择进程,但对于计算量大的进程,系统给予的适当照顾时间片增大为500ms。
8.回答以下问题。
(1)若系统中没有运行进程,是否一定没有就绪进程?为什么?
答:是,因为当CPU空闲时,系统就会在就绪队列里调度进程,只有
当就绪队列为空时,系统中才没有运行程序。
(2)若系统中既没有运行进程,也没有就绪进程,系统中是否就没有阻塞进程?解释。
答:不一定,当运行的程序都因为请求I/O或等待事件时而进入阻塞,
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论