计算机操作系统 作业答案.doc
上传人:qw****27 上传时间:2024-09-12 格式:DOC 页数:7 大小:86KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

计算机操作系统 作业答案.doc

计算机操作系统作业答案.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第一章作业1.1.设计现代OS的主要目标是什么?方便性,有效性,可扩充性和开放性.1.2.OS的作用可表现为哪几个方面?a.OS作为用户与计算机硬件系统之间的接口;b.OS作为计算机系统资源的管理者;c.OS实现了对计算机资源的抽象.第二章作业2.2.试画出下面4条语句的前趋图:S1:a:=x+y;S2:b:=z+1;S3:c:=a-b;S4:w:=c+1;S1其中,语句S3必须在语句S1和语句S2都执行S4S3后才能执行,这样S2语句S4也只能在c赋值后才能执行。对应的前驱图如右所示:2.6.试从动态性,并发性和独立性上比较进程和程序?a.动态性是进程最基本的特性,可表现为由创建而产生,由调度而执行,因得不到资源而暂停执行,以及由撤销而消亡,因而进程由一定的生命期;而程序只是一组有序指令的集合,是静态实体。b.并发性是进程的重要特征,同时也是OS的重要特征。引入进程的目的正是为了使其程序能和其它建立了进程的程序并发执行,而程序本身是不能并发执行的。c.独立性是指进程实体是一个能独立运行的基本单位,同时也是系统中独立获得资源和独立调度的基本单位。而对于未建立任何进程的程序,都不能作为一个独立的单位来运行。第三章作业3.2.为什么进程在进入临界区之前应先执行“进入区”代码?而在退出前又要执行“退出区”代码?2.如何利用Test-and-set指令来实现互斥?它有何缺点?为了实现多个进程对临界资源的互斥访问,必须在临界区之前加一段用于检查临界资源是否正在被访问的代码,如未被访问,该进程可进入临界区对此临界资源进行访问;如正被访问,则该进程不能进入临界区访问临界资源。在退出临界区后,执行恢复访问标志的代码为“退出区”,而在退出前执行“退出区”代码主要是为了使其它进程能再访问此临界资源。3.4.如何利用Test-and-set指令来实现互斥?它有何缺点?Test-and-set指令是一种借助于一条硬件指令,即测试并建立指令TS(Test-and-set)来实现互斥的方法。利用TS实现进程互斥:每个临界资源设置一个公共布尔变量lock,初值为FALSE在进入区利用TS进行检查:有进程在临界区时,重复检查;直到其它进程退出时,检查通过。所有要访问临界资源的进程的进入区和退出区代码都是相同的。缺点:利用硬件指令能有限实现进程互斥,但不能满足让权等待的准则,造成处理器时间的浪费,而且也很难用于解决较复杂的进程同步问题。3.7.如何利用信号量机制来实现多个进程对临界资源的互斥访问?并举例说明。为了使多个进程能互斥访问某临界资源,只需为该资源设置一互斥信号量mutex,并设其初始值为1,用于表示临界资源未被访问,然后将各进程访问该资源的临界区CS置于wait(mutex)和signal(mutex)操作之间即可。这样,每个欲访问该临界资源的进程,在进入临界区之前,都要先对mutex执行wait操作,若该资源此刻未被访问(mutex的值为1),本次wai操作必然成功,进程便可以进入自己的临界区。这时,若有其他进程也想进入自己的临界区,由于对mutex执行wait操作定会失败(mutex的值已为-1),因而该进程被阻塞,从而保证了该临界资源能被互斥地访问。举例:Varmutex:semaphore:=1;beginparbeginprocess1:beginrepeatwait(mutex);criticalsectionsignal(mutex);remainderseetionuntilfalse;endprocess2:beginrepeatwait(mutex);criticalsectionsignal(mutex);remaindersectionuntilfalse;endparend3.8.试写出相应的程序来描述图2-17所示的前驱图。a.Vara,b,c,d,e,f,g,h;semaphore:=0,0,0,1,0,0,0,0;beginparbeginbeginS1;signal(a);signal(b);end;beginwait(a);S2;signal(c);signal(d);end;beginwait(b);S3;signal(e);end;beginwait(c);S4;signal(f);end;beginwait(d);S5;signal(g);end;beginwait(e);S6;signal(h);end;beginwait(f);wait(g);wait(h);S7;end;parendendb.Vara,b,c,d,e,f,g,h,i,j;semapho