欢迎来到天天文库
浏览记录
ID:37775619
大小:147.50 KB
页数:10页
时间:2019-05-30
《作业习题答案解析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第一章(1)操作系统是计算机系统中的一个系统软件,它是一组程序模块的集合,这组程序模块控制和管理计算机系统中的硬件和软件资源,合理地组织计算机工作流程,并为用户使用计算机提供方便。从资源管理的角度看,操作系统应具有处理机管理、存储器管理、设备管理及文件管理功能。(2)操作系统的三种基本类型是批处理系统、分时系统和实时系统。批处理系统的主要特点是:用户脱机使用计算机、多道程序运行和成批处理。分时系统的主要特点是:同时性、交互性、独立性和及时性。实时系统的主要特点是及时性和高可靠性。(3)多道程序设计是指在内存中同时存放道程序,这些程序在管理程序的控制下交替运行,共享处理机及系统中的其
2、他资源。多道程序设计技术的主要特点是:多道、宏观上并行、微观上串行。第二章(1)进程是一个具有一定功能的程序关于某个数据集合的一次运行活动。一个进程最少有就绪、执行和阻塞三种状态。就绪状态是指进程已获得了除处理机以外的所有资源,一旦获得处理机就可以立即执行。执行状态是指进程获得必要的资源并正在处理机上执行。阻塞状态是指进程由于发生某事件而暂时无法执行下去,此时即使把处理机分配给该进程,它也无法运行。(3)从这四条语句的变量引用情况看,语句S1和S2可以并发执行,语句S3应在S1及S2执行完成后进行,语句S4应在S3执行完成后进行。其前趋图如图1所示。S2S3S4S1图1四条语句的前
3、趋图(5)进程与线程的主要区别如下:·调度方面:传统操作系统中,进程是拥有资源和独立调度的基本单位。在引入线程的操作系统中,线程是独立调度的基本单位,进程是资源拥有的基本单位。在同一进程中,线程的切换不会引起进程切换。在不同的进程中进行线程切换,将会引起进程切换。·拥有资源:不论是传统操作系统还是设有线程的操作系统,进程都是拥有资源的基本单位,而线程不拥有系统资源(也有一点必不可少的资源),但线程可以访问其隶属进程的系统资源。·并发性:在引入线程的操作系统中,不仅进程之间可以并发执行,而且同一进程内的多个线程之间也可并发执行。·系统开销:由于创建进程或撤消进程时,系统都要为之分配或
4、回收资源,操作系统所付出的开销远大于创建或撤消线程时的开销。在进行进程切换时,涉及到整个当前进程CPU环境的保存及新调度到进程的CPU环境的设置;而线程切换时,只需保存和设置少量寄存器内容,因此开销很小。另外,由于同一进程内的多个线程共享进程的地址空间,因此,多线程之间的同步与通信非常容易实现,甚至无须操作系统的干预。第三章(1)一次只能给一个进程访问的资源称为临界资源。进程中访问临界资源的那段代码称为临界区。访问临界资源时应遵循空闲让进、忙则等待、有限等待及让权等待。(3)参见课件ppt(6)在本题中应设置五个信号量b2、b3、b4、b5、b6分别表示进程P2、P3、P4、P5、
5、P6是否可以开始执行,其初值均为0。这六个进程的同步机制描述如下:semaphoreb2=0;semaphoreb3=0;semaphoreb4=0;semaphoreb5=0;semaphoreb6=0;main(){cobeginP1();P2();P3();P4();P5();P6();coend}P1(){┇/*“┇”表示进程中的语句,下同*/v(b2);v(b3);}P2(){p(b2);┇v(b4);}P3(){p(b3);┇v(b5);}P4(){p(b4);┇v(b6);}P5(){p(b5);┇v(b6);}P6(){p(b6);p(b6);┇}(8)在本题中,应
6、设置四个信号量mutex、empty、full1、full2。mutex用于实现对缓冲区的互斥访问,其初值为1;empty表示缓冲区中可用单元数目,其初值为N;full1表示已读入字符个数,其初值为0;full2表示已处理字符个数,其初值为0。为了描述方便起见,还应设置三个指针in、out1、out2,in指向下一个可用缓冲单元,out1指向下一个待处理字符,out2指向下一个待输出字符。它们并发执行的同步机制描述如下:semaphoreempty=N;semaphorefull1=0;semaphorefull2=0;semaphoremutex=1;charbuffer[N];
7、intin=0,out1=0,out2=0;main(){cobeginR();M();P();coend}R(){while(true){charx;读入一个字符到x;p(empty);p(mutex);buffer[in]=x;in=(in+1)%N;v(mutex);v(full1);}}M(){charx;while(true){p(full1);p(mutex);x=buffer[out1];if(x==""){x=",";buffer[out1]=x;}o
此文档下载收益归作者所有