操作系统原理作业
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(3)算法如下:
c设置两个互斥信号量mutexa,mutexb,用来实现驳船和汽车对A桥和对B桥的互斥使用;设置一个共享变量count,用来记录当前占用A桥和B桥的汽车数并设置互斥信号量mutex,用来实现汽车对共享变量count的互斥访问。
Main( ){
intmutexa, mutexb, mutex, count
操作系统原理作业
第1章
1-2批处理系统和分时系统各有什么特点?为什么分时系统的响应比较快?
答:在批处理系统中操作人员将作业成批装入计算机并由计算机管理运行,在程序的运行期间用户不能干预,因此批处理系统的特点是:用户脱机使用计算机,作业成批处理,系统内多道程序并发执行以及交互能力差。在分时系统中不同用户通过各自的终端以交互方式共同使用一台计算机,计算机以“分时”的方法轮流为每个用户服务。分时系统的主要特点是:多个用户同时使用计算机的同时性,人机问答方式的交互性,每个用户独立使用计算机的独占性以及系统响应的及时性。分时系统一般采用时间片轮转的方法使一台计算机同时为多个终端用户服务,因此分时系统的响应比较快。
v(mutex);
...
}
若mutex=1,表示没有进程进入临界区;
若mutex=0,表示有一个进程进入临界区;
若mutex=-1百度文库表示一个进程进入临界区,另一个进程等待进入。
4-11在如图4.33所示的进程流程图中,有五个进程合作完成某一任务。说明这五个进程之间的同步关系,并用P,V操作实现之,要求写出程序描述。
4-18用于进程控制的原语主要有哪几个?
答:主要有:进程创建,进程撤销,进程阻塞,进程唤醒。
4-19什么是线程,线程与进程有什么区别?
答:线程是进程的进一步划分,线程也称为轻量进程。
第5章
5-5, p进程共享m个同类资源,每一个资源在任一时刻只能供一个进程使用,每一进程对任一资源都只能使用一有限时间,使用完便立即释放,并且每个进程对该类资源的最大需求量小于该类资源的数目。设所有进程对资源的最大需求数目之和小于p+m.试证:在该系统中不会发生死锁。
V(mutexb);
V(mutexa);
}
V(mutex);
.....
}
d设置两个互斥信号量mutexa,mutexb,用来实现驳船和汽车对A桥和对B桥的互斥使用;设置两个共享变量counta和countb,分别用来记录A桥和B桥上的汽车数并设置互斥信号量mutex1和mutex2,用来实现汽车对共享变量counta和countb的互斥访问。Main( ){
V(mutexa);
V(mutex1);
5-6图5.9表示一带闸门的运河,其上有两家吊桥。吊桥坐落在一条公路上,为使该公路避开一块沼泽地而令其横跨运河两次。运河和公路的交通都是单向的。运河上的基本运输由驳船担负。在一般驳船接近吊桥A时就拉汽笛警告,若吊桥上无车辆,吊桥就吊起,直到驳船尾部通过此桥为止。对吊桥B也按同样次序处理。一艘典型驳船的长度为200m,当它在河上航行时是否会产生死锁?若会,其理由是什么?
(2)可以有以下两种方法:
c资源的静态分配。即进程把它所需要的所有资源在运行前提前申请,系统把它所需要的全部资源一次性都分配给它。也就是说,这时把A桥和B桥看成一个资源。打破了产生死锁的四个必要条件之一的部分分配条件。
d可以规定资源按序申请和分配,从而破坏了死锁的循环等待条件,防止死锁的发生。
规定如下:B桥的序号小于A桥的序号,驳船和汽车都必须先申请序号小的资源B桥,申请得到满足后,再申请序号大的资源A桥。
(X1-1)+(X2-1)+...+(Xp-1-1)+(Xp-1)+1<m
这说明在最坏情况下,每个进程均还差一个资源,而此时系统中还有一个没被分配的可用资源。将它分配给任何一个进程,都可以使该得到全部资源的进程运行结束而释放其占有的资源,并将释放的资源分配给其它的进程,使其它进程都能运行结束,系统不会发生死锁。证毕。
第2章
2-1什么是操作系统虚拟机?
答:在裸机上配置了操作系统程序后就构成了操作系统虚拟机
2-3什么是处理机的态?为什么要区分处理机的态?
答:处理机的态,就是处理机当前处于何种状态,正在执行哪类程序。为了保护操作系统,至少需要区分两种状态:管态和用户态。
2-5什么是中断?在计算机系统中为什么要引用中断?
2-9什么是中断响应,其实质是什么?
答:中断响应是当中央处理机发现已有中断请求时,中止现行程序执行,并自动引出中断处理程序的过程。中断响应的实质是交换指令执行地址和处理器状态,以达到如下目的:(1)保留程序断点及有关信息;(2)自动转入相应的中断处理程序执行。
2-12以trap指令为例,用图说明自陷处理的一般过程?
}
bargei(){
.....
P(mutexb);
吊起B桥;
P(mutexa);
吊起A桥;
驳船通过A桥;
放下A桥;
V(mutexa);
驳船通过B桥;
放下B桥;
V(mutexb);
....
carj(){
....
P(mutex2);
countb++;
if(countb==1)
P(mutexb);
V(mutex2);
答:中断是指某个事件发生时,系统终止现行程序的运行、引出处理该事件程序进行处理,处理完毕后返回断点,继续执行。为了实现并发活动,为了实现计算机系统的自动化工作,系统必须具备处理中断的能力。
2-8中断和俘获有什么不同?
答:中断指由处理机外部事件引起的中断称为外中断,又称中断。包括I/O中断、外中断。俘获是指由外处理内部事件引起的中断称为俘获。包括访管俘获、程序性中断、机器故障中断。
mutexa=1;
mutexb=1;
mutex=1;
count=0;
cobegin
bargei; //i=1,2,..,m
carj; //j=1,2,..,n
coend
}
bargei(){
.....
P(mutexb);
P(mutexa);
吊起B桥;
吊起A桥;
驳船通过A桥;
放下A桥;
驳船通过B桥;
放下B桥;
int mutexa, mutexb, mutex1, mutex2, counta, countb;
mutexa=1;
mutexb=1;
mutex1=mutex2=1;
counta=countb=0;
cobegin
bargei; //i=1,2,...,m
carj; //j=1,2,...,n
coend
证:假设每个进程最多请求Xi(1<i<p)个资源,则根据题意有,X1+X2+...+Xp-1+Xp<p+m
X1+X2+...+Xp-1+Xp - p<m
(X1-1)+(X2-1)+...+(Xp-1-1)+(Xp-1)<m
(X1-1)+(X2-1)+...+(Xp-1-1)+(Xp-1)+1<m+1
③按照一定的要求控制计算机工作,并经过加工,最终计算出结果。
3-5用户与操作系统的接口是什么?一个分时系统提供什么接口?一个批处理系统又提供什么接口?
答:用户与操作系统的接口是指操作系统提供给用户与计算机打交道的外部机制。一个分时系统提供的接口有系统功能调用和键盘操作命令。一个批处理系统提供的接口有系统功能调用和作业控制语言。
第3章
3-1什么是系统生成?
答:系统生成就是操作系统的生成过程。
3-2系统引导的主要任务是什么?
答:将操作系统的必要部分装入主存并使系统运行,最终处于命令接受状态。
3-3处理应用程序分哪几个作业步?
答:①用某种预言编制一个程序,该程序被称为源程序。
②将源程序和初始数据记录在某种输入介质上,一般在终端设备上直接编辑源程序。
3-7假定某系统提供硬件的访管指令(例如形式为“svc n”),为了实现系统调用,系统设计者应做哪些工作?用户又如何请求操作系统服务?答:当处理机执行到这一条指令时就发生中断,该中断称为访管中断,它表示正在运行的程序对操作系统的某种需求。借助中断,使机器状态由用户态转为管态。为了使控制能转到用户当前所需的那个例行子程序去,需要指令提供一个地址码。这个地址码表示系统调用的功能号,它是操作系统提供的众多的例行子程序的编号。在访管指令中填入相应的号码,就能使控制转到特定的例行子程序去执行以提供用户当前所需的服务。
答:main( )
{ int s2,s3,s4,s5=0; /*表示进程p2,p3,p4,p5能否执行*/
cobegin
P1( );
P2( );
P3( );
P4( );
P5( );
coend
}
4-12如图4.34所示,get,copy,put三个进程共用两个缓冲区s,t。Get进程负责不断地把输入记录送入缓冲区s中,copy进程负责从缓冲区s中取出记录复制到缓冲区t中,而put进程负责把记录从缓冲区t中取出打印。试用P,V操作实现这三个进程之间的同步,并写出程序描述。
1-6操作系统的主要特性是什么?为什么会有这样的特性?
答:并发性,共享性,异步性,虚拟性,这些特性保证了计算机能准确的运行,得出想要的结果。
1-7(1)工作情况如图。
(2)CPU有空闲等待,它发生在100 ms150 ms时间段内,此时间段内程序A与程序B都在进行I/O操作。
(3)程序A无等待现象,程序B在0 ms50 ms时间段与180 ms200 ms时间段内有等待现象。
如何能克服一个可能的死锁?
请提出一个防止死锁的办法。如何利用信号灯的P,V操作,实现车辆和驳船的同步?
(1)驳船长200米,当驳船通过了A桥,其船头到达B桥,请求B桥吊起,而此时它的尾部仍占据A桥。若这个时候B桥上及B桥到A桥之间的公路上都被汽车占据,而汽车又要求通过A桥。这样驳船和汽车都无法前进,形成死锁的局面。
第4章
4-3什么是进程?进程与程序的主要区别是什么?
答:进程是指一个具有一定独立功能的程序关于某个数据集合的一次运行活动。进程是动态的,程序的静态的,进程是程序的动态执行过程。
4-6进程有哪几个基本状态?试画出进程状态迁移图,并注明发生变迁的原因。
答:进程有三种基本状态,即运行状态,就绪状态,等待状态。如果系统能为每个进程提供一台处理机,则系统中所有进程都可以同时执行,但实际上处理机的数目总是小于进程数,因此往往只有少数几个进程可真正获得处理机控制权。
答:main( ) { int s,t=0; /*表示进程get,copy,put能否执行*/
cobegin
Get( );
Copy( );
Put( );
coend
}
4-13什么是进程的互斥,什么是进程的同步?同步和互斥这两个概念有什么联系与区别?答:互斥:多个操作不能在同一时间,同一临界区里执行。同步:并发进程在一些关键点上可能需要互相等待与互通消息互斥可以说是同步的特殊情况,通过锁和信号灯机制可以实现同步与互斥。
4-9n个并发程序共用一个公共变量Q,写出用信号灯实现n个进程互斥时的程序描述,给出信号灯值的取值范围,并说明每个取值的物理意义。
答:main( ) {
int mutex=1;
int i;
cobegin
for(i=1;i<=n;i++)
P[i];
coend
}
P( )
{
...
...
p(mutex);
...
汽车通过B桥;
P(mutex2);
countb--;
if(countb==0)
V(mutexb);
V(mutex2);
汽车通过AB段公路;
P(mutex1);
counta++;
if(counta==1)
P(mutexa);
V(mutex1);
汽车通过A桥;
P(mutex1);
counta--;
if(counta==0)
1-4什么是多道程序设计技术?试述多道程序运行的特征。
答:多道程序设计技术是指同时把多个作业(程序)放入内存并允许它们交替执行和共享系统中的各类资源;当一道程序因某种原因(如I/O请求)而暂停执行时,CPU立即转去执行另一道程序。多道程序运行具有如下特征:多道计算机内存中同时存放几道相互独立的程序。宏观上并行:同时进入系统的几道程序都处于运行过程中,它们先后开始了各自的运行但都未运行完毕。微观上串行:从微观上看内存中的多道程序轮流或分时地占有处理机,交替执行。
V(mutexa);
V(mutexb);
.....
}
carj(){
......
P(mutex);
count++;
if(count==1) {
P(mutexb);
P(mutexa);
}
V(mutex);
汽车通过B桥;
汽车通过AB段公路;
汽车通过A桥;
P(mutex);
count--;
if(count==0){
c设置两个互斥信号量mutexa,mutexb,用来实现驳船和汽车对A桥和对B桥的互斥使用;设置一个共享变量count,用来记录当前占用A桥和B桥的汽车数并设置互斥信号量mutex,用来实现汽车对共享变量count的互斥访问。
Main( ){
intmutexa, mutexb, mutex, count
操作系统原理作业
第1章
1-2批处理系统和分时系统各有什么特点?为什么分时系统的响应比较快?
答:在批处理系统中操作人员将作业成批装入计算机并由计算机管理运行,在程序的运行期间用户不能干预,因此批处理系统的特点是:用户脱机使用计算机,作业成批处理,系统内多道程序并发执行以及交互能力差。在分时系统中不同用户通过各自的终端以交互方式共同使用一台计算机,计算机以“分时”的方法轮流为每个用户服务。分时系统的主要特点是:多个用户同时使用计算机的同时性,人机问答方式的交互性,每个用户独立使用计算机的独占性以及系统响应的及时性。分时系统一般采用时间片轮转的方法使一台计算机同时为多个终端用户服务,因此分时系统的响应比较快。
v(mutex);
...
}
若mutex=1,表示没有进程进入临界区;
若mutex=0,表示有一个进程进入临界区;
若mutex=-1百度文库表示一个进程进入临界区,另一个进程等待进入。
4-11在如图4.33所示的进程流程图中,有五个进程合作完成某一任务。说明这五个进程之间的同步关系,并用P,V操作实现之,要求写出程序描述。
4-18用于进程控制的原语主要有哪几个?
答:主要有:进程创建,进程撤销,进程阻塞,进程唤醒。
4-19什么是线程,线程与进程有什么区别?
答:线程是进程的进一步划分,线程也称为轻量进程。
第5章
5-5, p进程共享m个同类资源,每一个资源在任一时刻只能供一个进程使用,每一进程对任一资源都只能使用一有限时间,使用完便立即释放,并且每个进程对该类资源的最大需求量小于该类资源的数目。设所有进程对资源的最大需求数目之和小于p+m.试证:在该系统中不会发生死锁。
V(mutexb);
V(mutexa);
}
V(mutex);
.....
}
d设置两个互斥信号量mutexa,mutexb,用来实现驳船和汽车对A桥和对B桥的互斥使用;设置两个共享变量counta和countb,分别用来记录A桥和B桥上的汽车数并设置互斥信号量mutex1和mutex2,用来实现汽车对共享变量counta和countb的互斥访问。Main( ){
V(mutexa);
V(mutex1);
5-6图5.9表示一带闸门的运河,其上有两家吊桥。吊桥坐落在一条公路上,为使该公路避开一块沼泽地而令其横跨运河两次。运河和公路的交通都是单向的。运河上的基本运输由驳船担负。在一般驳船接近吊桥A时就拉汽笛警告,若吊桥上无车辆,吊桥就吊起,直到驳船尾部通过此桥为止。对吊桥B也按同样次序处理。一艘典型驳船的长度为200m,当它在河上航行时是否会产生死锁?若会,其理由是什么?
(2)可以有以下两种方法:
c资源的静态分配。即进程把它所需要的所有资源在运行前提前申请,系统把它所需要的全部资源一次性都分配给它。也就是说,这时把A桥和B桥看成一个资源。打破了产生死锁的四个必要条件之一的部分分配条件。
d可以规定资源按序申请和分配,从而破坏了死锁的循环等待条件,防止死锁的发生。
规定如下:B桥的序号小于A桥的序号,驳船和汽车都必须先申请序号小的资源B桥,申请得到满足后,再申请序号大的资源A桥。
(X1-1)+(X2-1)+...+(Xp-1-1)+(Xp-1)+1<m
这说明在最坏情况下,每个进程均还差一个资源,而此时系统中还有一个没被分配的可用资源。将它分配给任何一个进程,都可以使该得到全部资源的进程运行结束而释放其占有的资源,并将释放的资源分配给其它的进程,使其它进程都能运行结束,系统不会发生死锁。证毕。
第2章
2-1什么是操作系统虚拟机?
答:在裸机上配置了操作系统程序后就构成了操作系统虚拟机
2-3什么是处理机的态?为什么要区分处理机的态?
答:处理机的态,就是处理机当前处于何种状态,正在执行哪类程序。为了保护操作系统,至少需要区分两种状态:管态和用户态。
2-5什么是中断?在计算机系统中为什么要引用中断?
2-9什么是中断响应,其实质是什么?
答:中断响应是当中央处理机发现已有中断请求时,中止现行程序执行,并自动引出中断处理程序的过程。中断响应的实质是交换指令执行地址和处理器状态,以达到如下目的:(1)保留程序断点及有关信息;(2)自动转入相应的中断处理程序执行。
2-12以trap指令为例,用图说明自陷处理的一般过程?
}
bargei(){
.....
P(mutexb);
吊起B桥;
P(mutexa);
吊起A桥;
驳船通过A桥;
放下A桥;
V(mutexa);
驳船通过B桥;
放下B桥;
V(mutexb);
....
carj(){
....
P(mutex2);
countb++;
if(countb==1)
P(mutexb);
V(mutex2);
答:中断是指某个事件发生时,系统终止现行程序的运行、引出处理该事件程序进行处理,处理完毕后返回断点,继续执行。为了实现并发活动,为了实现计算机系统的自动化工作,系统必须具备处理中断的能力。
2-8中断和俘获有什么不同?
答:中断指由处理机外部事件引起的中断称为外中断,又称中断。包括I/O中断、外中断。俘获是指由外处理内部事件引起的中断称为俘获。包括访管俘获、程序性中断、机器故障中断。
mutexa=1;
mutexb=1;
mutex=1;
count=0;
cobegin
bargei; //i=1,2,..,m
carj; //j=1,2,..,n
coend
}
bargei(){
.....
P(mutexb);
P(mutexa);
吊起B桥;
吊起A桥;
驳船通过A桥;
放下A桥;
驳船通过B桥;
放下B桥;
int mutexa, mutexb, mutex1, mutex2, counta, countb;
mutexa=1;
mutexb=1;
mutex1=mutex2=1;
counta=countb=0;
cobegin
bargei; //i=1,2,...,m
carj; //j=1,2,...,n
coend
证:假设每个进程最多请求Xi(1<i<p)个资源,则根据题意有,X1+X2+...+Xp-1+Xp<p+m
X1+X2+...+Xp-1+Xp - p<m
(X1-1)+(X2-1)+...+(Xp-1-1)+(Xp-1)<m
(X1-1)+(X2-1)+...+(Xp-1-1)+(Xp-1)+1<m+1
③按照一定的要求控制计算机工作,并经过加工,最终计算出结果。
3-5用户与操作系统的接口是什么?一个分时系统提供什么接口?一个批处理系统又提供什么接口?
答:用户与操作系统的接口是指操作系统提供给用户与计算机打交道的外部机制。一个分时系统提供的接口有系统功能调用和键盘操作命令。一个批处理系统提供的接口有系统功能调用和作业控制语言。
第3章
3-1什么是系统生成?
答:系统生成就是操作系统的生成过程。
3-2系统引导的主要任务是什么?
答:将操作系统的必要部分装入主存并使系统运行,最终处于命令接受状态。
3-3处理应用程序分哪几个作业步?
答:①用某种预言编制一个程序,该程序被称为源程序。
②将源程序和初始数据记录在某种输入介质上,一般在终端设备上直接编辑源程序。
3-7假定某系统提供硬件的访管指令(例如形式为“svc n”),为了实现系统调用,系统设计者应做哪些工作?用户又如何请求操作系统服务?答:当处理机执行到这一条指令时就发生中断,该中断称为访管中断,它表示正在运行的程序对操作系统的某种需求。借助中断,使机器状态由用户态转为管态。为了使控制能转到用户当前所需的那个例行子程序去,需要指令提供一个地址码。这个地址码表示系统调用的功能号,它是操作系统提供的众多的例行子程序的编号。在访管指令中填入相应的号码,就能使控制转到特定的例行子程序去执行以提供用户当前所需的服务。
答:main( )
{ int s2,s3,s4,s5=0; /*表示进程p2,p3,p4,p5能否执行*/
cobegin
P1( );
P2( );
P3( );
P4( );
P5( );
coend
}
4-12如图4.34所示,get,copy,put三个进程共用两个缓冲区s,t。Get进程负责不断地把输入记录送入缓冲区s中,copy进程负责从缓冲区s中取出记录复制到缓冲区t中,而put进程负责把记录从缓冲区t中取出打印。试用P,V操作实现这三个进程之间的同步,并写出程序描述。
1-6操作系统的主要特性是什么?为什么会有这样的特性?
答:并发性,共享性,异步性,虚拟性,这些特性保证了计算机能准确的运行,得出想要的结果。
1-7(1)工作情况如图。
(2)CPU有空闲等待,它发生在100 ms150 ms时间段内,此时间段内程序A与程序B都在进行I/O操作。
(3)程序A无等待现象,程序B在0 ms50 ms时间段与180 ms200 ms时间段内有等待现象。
如何能克服一个可能的死锁?
请提出一个防止死锁的办法。如何利用信号灯的P,V操作,实现车辆和驳船的同步?
(1)驳船长200米,当驳船通过了A桥,其船头到达B桥,请求B桥吊起,而此时它的尾部仍占据A桥。若这个时候B桥上及B桥到A桥之间的公路上都被汽车占据,而汽车又要求通过A桥。这样驳船和汽车都无法前进,形成死锁的局面。
第4章
4-3什么是进程?进程与程序的主要区别是什么?
答:进程是指一个具有一定独立功能的程序关于某个数据集合的一次运行活动。进程是动态的,程序的静态的,进程是程序的动态执行过程。
4-6进程有哪几个基本状态?试画出进程状态迁移图,并注明发生变迁的原因。
答:进程有三种基本状态,即运行状态,就绪状态,等待状态。如果系统能为每个进程提供一台处理机,则系统中所有进程都可以同时执行,但实际上处理机的数目总是小于进程数,因此往往只有少数几个进程可真正获得处理机控制权。
答:main( ) { int s,t=0; /*表示进程get,copy,put能否执行*/
cobegin
Get( );
Copy( );
Put( );
coend
}
4-13什么是进程的互斥,什么是进程的同步?同步和互斥这两个概念有什么联系与区别?答:互斥:多个操作不能在同一时间,同一临界区里执行。同步:并发进程在一些关键点上可能需要互相等待与互通消息互斥可以说是同步的特殊情况,通过锁和信号灯机制可以实现同步与互斥。
4-9n个并发程序共用一个公共变量Q,写出用信号灯实现n个进程互斥时的程序描述,给出信号灯值的取值范围,并说明每个取值的物理意义。
答:main( ) {
int mutex=1;
int i;
cobegin
for(i=1;i<=n;i++)
P[i];
coend
}
P( )
{
...
...
p(mutex);
...
汽车通过B桥;
P(mutex2);
countb--;
if(countb==0)
V(mutexb);
V(mutex2);
汽车通过AB段公路;
P(mutex1);
counta++;
if(counta==1)
P(mutexa);
V(mutex1);
汽车通过A桥;
P(mutex1);
counta--;
if(counta==0)
1-4什么是多道程序设计技术?试述多道程序运行的特征。
答:多道程序设计技术是指同时把多个作业(程序)放入内存并允许它们交替执行和共享系统中的各类资源;当一道程序因某种原因(如I/O请求)而暂停执行时,CPU立即转去执行另一道程序。多道程序运行具有如下特征:多道计算机内存中同时存放几道相互独立的程序。宏观上并行:同时进入系统的几道程序都处于运行过程中,它们先后开始了各自的运行但都未运行完毕。微观上串行:从微观上看内存中的多道程序轮流或分时地占有处理机,交替执行。
V(mutexa);
V(mutexb);
.....
}
carj(){
......
P(mutex);
count++;
if(count==1) {
P(mutexb);
P(mutexa);
}
V(mutex);
汽车通过B桥;
汽车通过AB段公路;
汽车通过A桥;
P(mutex);
count--;
if(count==0){