操作系统原理答案Word文档格式.docx
《操作系统原理答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《操作系统原理答案Word文档格式.docx(20页珍藏版)》请在冰豆网上搜索。
访管中断
2-8什么是程序状态字?
在微机中它一般由哪两个部分组成?
程序状态字是指反映程序执行时机器所处的现行状态的代码。
在微机中它一般由指令计数器(PC)和处理机状态寄存器(PS)。
2-9什么是向量中断?
什么是中断向量?
向量中断是指当中断发生时,由中断源自己引导处理机进入中断服务程序的中断过程。
中断向量就是存储该类型中断服务例行程序的入口地址和处理器状态字的存储单元。
2-12什么是操作系统虚拟机?
操作系统是最基本的系统软件,它是硬件功能的第一层扩充。
配置了操作系统的计算机称为操作系统虚拟机。
扩充了的计算机除了可以使用原来裸机提供的各种基本硬件指令,还可以使用操作系统增加的许多其它指令。
习题三参考答案(P54)
3-1用户与操作系统的接口是什么?
一个分时系统提供什么接口?
一个批处理系统又提供什么接口?
用户与操作系统的接口是指操作系统提供给用户与计算机打交道的外部机制。
一个分时系统提供的接口有系统功能调用和键盘操作命令。
一个批处理系统提供的接口有系统功能调用和作业控制语言。
3-2计算机对用户算题任务的加工过程一般分哪几个作业步?
各作业步之间的关系如何?
用自己的上机体会说明。
计算机对用户算题任务的加工过程一般分四个作业步:
编辑、编译、连接和运行。
各作业步之间的关系如下:
前一个作业步的结果是下一个作业步的操作对象;
一个作业步的成功完成依赖于上一个作业步的成功
完成。
3-3什么是系统调用?
对操作系统的服务请求与一般的子程序调用有什么区别?
系统调用是操作系统提供给编程人员的惟一接口。
编程人员利用系统调用,在源程序一级动态请求和释放系统资源,调用系统中已有的系统功能来完成那些与机器硬件部分相关的工作以及控制程序的执行速度等。
因此,系统调用像一个黑箱子那样,对用户屏蔽了操作系统的具体动作而只提供有关的功能。
系统调用与一般过程调用的主要区别如下:
系统调用程序是在核心态执行,调用它们需要一个类似于硬件中断处理的中断处理机制来提供系统服务。
(也可按上课时讲的三个方面来阐述)
3-5简述系统调用的执行过程。
系统调用命令的具体格式因系统而异,但由用户程序进入系统调用的步骤及执行过程大体相同:
首先,将系统调用命令所需的参数(如功能号)或参数区首址装入指定寄存器;
然后,在用户程序中适当的位置安排一条调用系统功能指令。
至于系统调用命令的功能号,有的系统直接在调用指令中给出,有的系统则把它作为系统调用命令的参数,在调用时放入指定寄存器。
当用户程序执行到调用系统功能的指令时,就转到系统调用的处理程序执行。
其过程如下:
(1)为执行系统调用命令做准备,即将用户程序的“现场”保存起来,同时把系统调用命令的编号等参数放入约定的存储单元。
(2)根据系统调用命令的编号查找系统调用入口表,找到相应系统功能调用子程序的入口地址,然后转到该子程序执行。
当系统调用命令执行完毕,相应的结果通常返回给参数,这些参数放在约定的存储单元里。
(3)系统调用命令执行完毕后的处理,包括恢复用户程序执行的“现场”信息,同时把系统调用命令的返回参数或参数区首址放入指定的寄存器中,以供用户程序使用。
习题四参考答案(P97)
4-3什么是进程?
进程与程序的主要区别是什么?
进程,即是一个具有一定独立功能的程序关于某个数据集合的一次活动。
进程与程序的主要区别是:
(1)程序是指令的有序集合,是一个静态概念,其本身没有任何运行的含义,进程是程序在处理机上的一次执行过程,是一个动态概念。
(2)程序作为软件资料可长期保存,而进程是有生命期的,因创建而产生、因调度而执行、因得不到资源而暂停、因撤消而消亡。
(3)程序是记录在介质上指令的有序集合,而进程则由程序、数据和进程控制块3部分组成。
(4)进程与程序之间无一一对应关系。
不同的进程可以包含同一程序,同一程序在执行中也可以产生多个进程。
(5)进程是一个独立的运行单位,也是系统进行资源分配和调度的独立单位。
而程序无此概念。
4-6进程有哪几个基本状态?
试画出进程状态变迁图,并标明发生变迁的可能原因。
进程有三个基本状态:
运行状态、就绪状态和等待状态(又称阻塞、挂起、睡眠)。
(a)解:
Main(){
int
s12=0,s13=0,s14=0;
cobegin
P1;
P2;
P3;
P4;
coend
}
P1(){
p1
execute;
V(s12);
V(s13);
V(s14);
P2(){
P(s12);
p2
P3(){
P(s13);
p3
P4(){
P(s14);
p4
(b)略
解:
Main(){
sa=1,sb=0;
//
sa
表示缓冲区
S
是否为空,
sb
表示是否为满。
ta=1,tb=0;
ta
T
tb
Cobegin
get;
copy;
put;
Get(){
while
(1){
P(sa);
input
data
6
to
buffer
S;
V(sb);
Copy
(){
while
(1)
{
P(sb);
copy
from
V(sa);
P(ta);
copy-data
T;
V(tb);
}
Put(){
P(tb);
output
V(ta);
4-12什么是进程的互斥与同步?
同步和互斥这两个概念有什么联系和区别?
在操作系统中,当一个进程进入临界区使用临界资源时,另一个进程必须等待,当占用临界资源的进程退出临界区后,另一进程才被允许去访问此临界资源。
我们称进程之间的这种相互制约关系为互斥。
进程同步是指多个相关进程在执行次序上的协调。
这些进程相互合作,在一些关键点上可能需要互相等待或互通消息。
4-13在一个实时系统中,有两个进程p和q,它们是循环运行的。
循环进程p每隔1秒钟由脉冲寄存器(REG)获得输入,并把它累计到一个整型变量(W)中,同时清除脉冲寄存器。
循环进程q则每隔1小时输出这个整形变量的内容并把它复位。
系统提供标准的I/O过程input和output,并提供系统调用命令delay(seconds)。
试拟定出这两个进程并发活动的程序描述。
设置一个互斥信号量mutex用来实现进程p和q对共享变量W的互斥使用。
mutex=1;
W=0;
p;
q;
p(){while
(1){
delay
(1);
P(mutex);
W=W+input(REG);
V(mutex);
REG=0;
q(){
delay(3600);
output(W);
4-18什么是线程?
线程和进程有什么区别?
线程有时也称为轻量级进程,它是比进程更小的活动单位,它是进程中的一个执行路径。
一个进程可以有多个执行路径即线程。
线程和进程的主要区别如下:
(1)线程是进程的一个组成部分。
一个进程可以有多个线程,而且至少有一个可执行的线程。
(2)进程是资源分配的基本单位,它拥有自己的地址空间和各种资源。
线程是处理机调度的基本单位,它只能和其他线程共享进程的资源,而本身并不具有任何资源。
(3)进程的多个线程都在进程的地址空间内活动。
这样,在以线程为单位进行处理机调度和切换时,由于不发生资源变化特别是地址空间的变化,因此切换时间较短。
而以进程为单位进行处理机调度和切换时,由于涉及到资源转移及现场保护等问题,将导致切换时间变长和资源利用率降低。
(4)线程和进程一样,都有自己的状态和相应的同步机制。
但是,由于线程没有自己单独的程序和数据空间,因而不能像进程的程序和数据那样交换到外存去。
(5)进程的调度和控制大多由操作系统的内核完成,而线程的控制既可以由操作系统内核完成,也可以由用户控制完成。
习题六参考答案(P132)
6-2某系统进程调度状态变迁图如图6.5所示(设调度方式为非剥夺方式),请说明:
(1)什么原因将引起发生变迁2、变迁3、变迁4?
(2)当观察系统中所有进程时,能够看到某一进程产生的一次状态变迁能引起另一进程作一次状态变迁,在什么情况下,一个进程的变迁3能立即引起另一个进程发生变迁1?
(3)下述因果变迁是否可能发生?
如果可能的话,在什么情况下发生?
(a)3->
1;
(b)3->
2;
(c)2->
1
(2)正在运行的进程因等待某事件的发生而变为等待状态的变迁3,在就绪队列非空时会立即引起一个就绪进程被调度执行的变迁1。
(3)a.3->
1的因果变迁可能发生
正在运行的进程因等待某事件的发生而变为等待状态的变迁3,在就绪队列非空时必然引起一个就绪进程被调度执行的变迁1。
b.3->
2的因果变迁不可能发生。
c.2->
1的因果变迁必然发生
正运行的进程因时间片到变为就绪状态的变迁2,必然引起一个就绪进程被调度执行的变迁1。
6-3若题2中所采用的调度为可剥夺式,请回答题2中提出的问题:
1
解答:
(1)当运行进程在分得的时间片内未完成,时间片到将发生变
迁2;
或者新创建一个进程或一个等待进程变成就绪,它具有比当前进程更高的优先级,也将发生变迁2。
当运行进程在执行过程中,需要等待某事件的发生才能继续向下执行,此时会发生变迁3。
当等待进程等待的事件发生了,将会发生变迁4。
正在运行的进程因等待某事件