操作系统期末复习资料(大题)Word下载.docx
《操作系统期末复习资料(大题)Word下载.docx》由会员分享,可在线阅读,更多相关《操作系统期末复习资料(大题)Word下载.docx(13页珍藏版)》请在冰豆网上搜索。
(4)简述并发与并行的区别?
并行是指两个或多个事件同时发生;
而并发是指两个或多个事件在同一时间间隔内发生。
(6)操作系统有哪些特征?
虽然不同操作系统类型具有不同的特征,但它们也有一些共同特征,这就是并发性、共享性、虚拟性及不确定性。
第2章
(1)进程的定义是什么?
它最少有哪几种状态?
解:
进程就是可以与其他程序并发执行的程序的一次执行过程。
最少有执行,就绪和等待三种状态。
第13页共13页
(2)什么是管态?
什么是目态?
系统进程运行时,CPU的工作状态称为管态。
用户进程运行时,CPU的工作状态称为目态。
(6)进程控制块何时产生?
何时消除?
它有什么作用?
操作系统启动后,会生成一些列空闲的进程控制块。
当创建进程时,就分配一个进程控制块并初始化,当撤销进程时,就回收进程控制块。
进程控制块是进程存在的唯一标识,操作系统是通过进程控制块感知进程存在的。
第3章 处理机调度
(1)单道批处理系统中有4个作业,其有关情况如表3-9所示。
在采用响应比高者优先调度算法、先来先服务、短作业优先调度算法时分别计算其平均周转时间T和平均带权周转时间W。
(运行时间为小时,按十进制计算)
表3-9 作业的提交时间和运行时间
作业
J1
J2
J3
J4
提交时间
8.0
8.6
8.8
9.0
运行时间
2.0
0.6
0.2
0.5
响应比高者优先调度算法:
在8.0时刻,只有J1到达,其响应比是1,J1开始运行。
在10.0时刻,J1完成,这时,J2,J3,J4均到达。
J2,J3,J4的响应比分别是1+1.4/0.6,1+1.2/0.2,1+1.0/0.5,J3的响应比最高,
J3开始运行。
在10.2时刻,J3完成,这时J2,J4的响应比分别是1+1.6/0.6,1+1.2/0.5,J2的响应比最高,J2开始运行。
在10.8时刻,J2完成,这时J4的响应比1+1.8/0.5,J4开始运行。
开始时间
完成时间
周转时间
带权周
转时
间
执行顺序
10.0
1.0
1
10.2
10.8
2.2
3.667
3
1.4
7
2
11.3
2.3
4.6
4
平均周转时间为(2.0+1.4+2.2+2.3)/4=1.975小时,平均带权周转时间为(1.0+7.0+3.67+4.6)/4=4.067。
先来先服务调度算法:
10.6
3.333
10
平均周转时间为(2.0+2.0+2.0+2.3)/4=2.075小时,平均带权周转时间为(1.0+7.0+3.67+4.6)/4=4.733。
10.7
2.7
4.5
1.7
3.4
短作业优先调度算法:
平均周转时间为(2.0+2.7+1.4+1.7)/4=1.95小时,平均带权周转时间为(1.0+4.5+7+3.4)/4=3.975。
(2)何谓JCB?
其作用是什么?
JCB至少包括哪些内容?
JCB就是作业控制块,是系统用来记录作业属性信息的数据结构。
系统通过JCB感知作业的存在,并通过JCB对作业进行控制和管理,JCB是作业存在的唯一标志。
不同系统的JCB所包含的信息有所不同,但通常包括以下内容:
资源要求,资源使用情况,作业的控制方式,类型及优先权,作业名及作业状态。
第4章 进程同步与通信
(1)什么是临界资源?
什么是临界区?
对临界资源的访问有哪些原则?
一次仅允许一个进程使用的共享资源被称为临界资源。
每个进程中访问临界资源的那段程序称为临界区。
对临界资源的访问原则是:
①空闲让进,如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入。
②忙则等待,任何时候,处于临界区内的进程不可多于一个。
如已有进程进入自己的临界区,则其它所有试图进入临界区的进程必须等待。
③有限等待,进入临界区的进程要在有限时间内退出,以便其它进程能及时进入自己
的临界区。
④让权等待,如果进程不能进入自己的临界区,则应让出CPU,避免进程出现“忙等”
现象。
(2)请给出P、V操作的定义。
如何用P、V操作实现进程间的互斥?
P原语操作的动作是:
①sem减1;
②若sem减1后仍大于或等于零,则进程继续执行;
③若sem减1后小于零,则该进程被阻塞后进入与该信号相对应的队列中,然后转进程调度。
V原语操作的动作是:
①sem加1;
②若相加结果大于零,则进程继续执行;
③若相加结果小于或等于零,则从该信号的等待队列中唤醒一等待进程,然后再返回原进程继续执行或转进程调度。
由于用于互斥的信号量sem与所有的并发进程有关,所以称之为公有信号量。
公有信号量的值反映了公有资源的数量。
只要把临界区置于P(sem)和V(sem)之间,即可实现进程间的互斥,sem的初值通常设置成1。
使用P、V操作实现进程互斥时应该注意的是:
①每个程序中用户实现互斥的P、V操作必须成对出现,先做P操作,进临界区,后做
V操作,出临界区。
若有多个分支,要认真检查其成对性。
②P、V操作应分别紧靠临界区的头尾部,临界区的代码应尽可能短,不能有死循环。
③互斥信号量的初值一般为1。
(5)设有6个进程P1、P2、P3、P4、P5、P6,它们有如图3.5所示的并发关系。
试用P、V操作实现这些进程间的同步。
orea,b,c,d,e,f=
cobeginP1;
P2;
P3;
P4;
P5;
P
semaph 0,0,0,0,0,0;
{
6;
coend}
P1()
图3.5 六个合作进程的并发关系
{ P1;
V(a);
V(b);
}
P2()
{P(a);
V(c);
P3()
{P(b);
V(d);
P4()
{P(c);
V(e);
P5()
{P(d);
V(f);
P6()
{P(e);
P(f);
P6;
(7)有3个并发进程R、M、P,它们共享了一个可循环使用的缓冲区B,缓冲区B共有n个单元。
进程R负责从输入设备读信息,每读一个字符后,把它存入到缓冲区B的一个单元中;
进程M负责处理读入的字符;
进程P负责把处理后的字符取出并打印输出。
只有当缓冲区单元中的字符被进程P取出后,才又可用来存放下一次读入的字符。
请用P、V操作为同步机制写出它们能正确并发执行的程序。
解:
semaphorebuffer_number=n;
semaphorechar_number=0;
semaphoreman_number=0;
main()
{cobegin
R;
M;
P;
coend}R()
{while(true)
{P(buffer_number);
readachartobuffer;
V(char_number);
}
M()
{P(char_number);
manipulateachar;
V(man_number);
P()
{P(man_number);
printachar;
V(buffer_number);
(11)有一只铁笼子,每次只能放入一只动物,猎手向笼中放入老虎,农民向笼中放入猪,动物园等待取笼中的老虎,饭店等待取笼中的猪,试用P、V操作实现猎手、农民、动物园和饭店的同步。
(重点)
semaphorecage=1;
//cage表示可用的铁笼子资源semaphorepig=0;
//pig表示可用的猪资源semaphoretiger=0;
//tiger表示可用的虎资源main()
cobegin
hunter();
peasant();
zoo();
restaurant();
coend
hunter()
{ while(true)
P(cage);
placeatiger;
V(tiger);
}
peasant()
zoo()
placeapig;
V(pig);
P(tiger);
takeatiger;
V(cage);
restaurant()
P(pig);
takeapig;
V(c