2016操作系统原理离线作业

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

浙江大学远程教育学院《操作系统原理》课程作业—————————————————————————————一、单选题1.进程P0和P1的共享变量定义及其初值为booleanflag[2];intturn=0;flag[0]=FALSE;flag[1]=FALSE;若进程P0和P1访问临界资源的类C代码实现如下:voidP0()//P0进程{while(TURE){flag[0]=TRUE;turn=1;while(flag[1]&&turn==1);临界区;flag[0]=FALSE;}}voidP1()//P1进程{while(TURE){flag[1]=TRUE;turn=0;while(flag[0]&&turn==0);临界区;flag[1]=FALSE;}}则并发执行进程P0和P1时产生的情况是:DA.不能保证进程互斥进入临界区、会出现“饥饿”现象B.不能保证进程互斥进入临界区、不会出现“饥饿”现象C.能保证进程互斥进入临界区、会出现“饥饿”现象D.能保证进程互斥进入临界区、不会出现“饥饿”现象2.有两个进程P1和P2描述如下:shareddata:intcounter=6;P1:Computing;counter=counter+1;P2:Printing;counter=counter-2;两个进程并发执行,运行完成后,counter的值不可能为C。A.4B.5C.6D.73.某计算机采用二级页表的分页存储管理方式,按字节编址,页大小为210字节,页表项大小为2字节,逻辑地址结构为:页目录号页号页内偏移量逻辑地址空间大小为216页,则表示整个逻辑地址空间的页目录表中包含表项的个数至少是BA.64B.128C.256D.5124.在动态分区系统中,有如下空闲块:空闲块块大小(KB)块的基址18060275150355250490350此时,某进程P请求50KB内存,系统从第1个空闲块开始查找,结果把第4个空闲块分配给了P进程,请问是用哪一种分区分配算法实现这一方案?CA.首次适应B.最佳适应C.最差适应D.下次适应5.在一页式存储管理系统中,页表内容如下所示。页号帧号021128若页大小为1K,逻辑地址的页号为2,页内地址为451,转换成的物理地址为AA.8643B.8192C.2048D.24996.采用段式存储管理的系统中,若地址用32位表示,其中20位表示段号,则允许每段的最大长度是BA.224B.212C.210D.2327.在一段式存储管理系统中,某段表的内容如下:段号段首址段长0100K35K1560K20K2260K15K3670K32K若逻辑地址为(2,158),则它对应的物理地址为B_____。A.100K+158B.260K+158C.560K+158D.670K+1588.一个分段存储管理系统中,地址长度为32位,其中段长占8位,则最大段长是CA.28字节B.216字节C.224字节D.232字节9.有一请求分页式存储管理系统,页面大小为每页100字节,有一个50×50的整型数组按行为主序连续存放,每个整数占两个字节,将数组初始化为0的程序描述如下:intA[50][50];for(inti=0;i50;i++)for(intj=0;j50;j++)A[i,j]=0;若在程执行时内存只有一个存储块用来存放数组信息,试问该程序执行时产生B次缺页中断。A.1B.50C.100D.250010.一台计算机有4个页框,装入时间、上次引用时间、和每个页的访问位R和修改位M,如下所示:页装入时间上次引用时间RM012627900123026010212027211316028011采用FIFO算法将淘汰C页;A.0B.1C.2D.311.一台计算机有4个页框,装入时间、上次引用时间、和每个页的访问位R和修改位M,如下所示:页装入时间上次引用时间RM012627900123026010212027211316028011采用NRU算法将淘汰A页;A.0B.1C.2D.312.一台计算机有4个页框,装入时间、上次引用时间、和每个页的访问位R和修改位M,如下所示:页装入时间上次引用时间RM012627900123026010212027211316028011采用LRU算法将淘汰B页;A.0B.1C.2D.313.一台计算机有4个页框,装入时间、上次引用时间、和每个页的访问位R和修改位M,如下所示:页装入时间上次引用时间RM012627900123026010212027211316028011采用第二次机会算法将淘汰A______页;A.0B.1C.2D.3二、综合题1.4在所列的两种设置中,哪些功能需要操作系统提供支持?(a)手持设备(b)实时系统。a.批处理程序b.虚拟存储器c.分时答:对于实时系统来说,操作系统需要以一种公平的方式支持虚拟存储器和分时系统。对于手持系统,操作系统需要提供虚拟存储器,但是不需要提供分时系统。批处理程序在两种环境中都是非必需的。1.17列出下列操作系统的基本特点:a.批处理b.交互式c.分时d.实时e.网络f.并行式g.分布式h.集群式i.手持式答:a.批处理:具有相似需求的作业被成批的集合起来,并把它们作为一个整体通过一个操作员或自动作业程序装置运行通过计算机。通过缓冲区,线下操作,后台和多道程序,运用尝试保持CPU和I/O一直繁忙,从而使得性能被提高。批处理系统对于运行那些需要较少互动的大型作业十分适用。它们可以被更迟地提交或获得。b.交互式:这种系统由许多短期交易构成,并且下一个交易的结果是无法预知的。从用户提交到等待结果的响应时间应该是比较短的,通常为1秒左右。c.分时:这种系统使用CPU调度和多道程序来经济的提供一个系统的人机通信功能。CPU从一个用户快速切换到另一个用户。以每个程序从终端机中读取它的下一个控制卡,并且把输出的信息正确快速的输出到显示器上来替代用soopledcardimages定义的作业。d.实时:经常用于专门的用途。这个系统从感应器上读取数据,而且必须在严格的时间内做出响应以保证正确的性能。e.网络:提供给操作系统一个特征,使得其进入网络,比如;文件共享。f.并行式:每一个处理器都运行同一个操作系统的拷贝。这些拷贝通过系统总线进行通信。g.分布式:这种系统在几个物理处理器中分布式计算,处理器不共享内存或时钟。每个处理器都有它各自的本地存储器。它们通过各种通信线路在进行通信,比如:一条高速的总线或一个本地的网络。h.集群式:集群系统是由多个计算机耦合成单一系统并分布于整个集群来完成计算任务。i.手持式:一种可以完成像记事本,email和网页浏览等简单任务的小型计算机系统。手持系统与传统的台式机的区别是更小的内存和屏幕以及更慢的处理能力。2.3讨论向操作系统传递参数的三个主要的方法。答:1.通过寄存器来传递参数2.寄存器传递参数块的首地址3.参数通过程序存放或压进堆栈中,并通过操作系统弹出堆栈。2.12采用微内核方法来设计系统的主要优点是什么?在微内核中如何使客户程序和系统服务相互作用?微内核方法的缺点是什么?答:优点主要包括增加一个新的服务不需要修改内核,在用户模式中比在内核模式中更安全、更易操作,一个简单的内核设计和功能一般导致一个更可靠的操作系统。用户程序和系统服务通过使用进程件的通信机制在微内核中相互作用,例如发送消息。这些消息由操作系统运送。微内核最主要的缺点是与进程间通信的过度联系和为了保证用户程序和系统服务相互作用而频繁使用操作系统的消息传递功能。3.2问:描述一下内核在两个进程间进行上下文功换的动作.答:操作系统必须保存正在运行的进程的状态,恢复进程的状态。保存进程的状态主要包括CPU寄存器的值以及内存分配,上下文切换还必须执行一些确切体系结构的操作,包括刷新数据和指令缓存。进程关联是由进程的PCB来表示的,它包括CPU寄存器的值和内存管理信息等。当发生上下文切换时,内核会将旧进程的关联状态保存在其PCB中,然后装入经调度要执行的新进程的已保存的关联状态。3.4如下所示的程序,说明LINEA可能会输出什么?#includestdio.h#includeunistd.h#includesys/types.hintvalue=8;intmain(){pid_tpid;/*forkachildprocess*/pid=fork();if(pid==0){/*childprocess*/value+=15;}else{/*parentprocess*//*parentwillwaitforthechildtocomplete*/wait(NULL);printf(Parent:value=%d\n,value);/*LINEA*/exit(0);}}答:Parent:value=84.4在多线程程序中,以下哪些程序状态组成是被线程共享的?a.寄存值b.堆内存c.全局变量d.栈内存答:一个线程程序的线程共享堆内存和全局变量,但每个线程都有属于自己的一组寄存值和栈内存。4.7由图4.11给出的程序使用了Pthread的应用程序编程接口(API),在程序的第c行和第p行分别会输出什么?#includepthread.h#includestdio.hintvalue=0;void*runner(void*param);/*thethread*/intmain(intargc,char*argv[]){intpid;pthread_ttid;pthread_attr_tattr;pid=fork();if(pid==0){/*childprocess*/pthread_attr_init(&attr);pthread_create(&tid,&attr,runner,NULL);pthread_join(tid,NULL);printf(“CHILD:value=%d”,value);/*LINEC*/}elseif(pid0){/*parentprocess*/wait(NULL);printf(“PARENT:value=%d”,value);/*LINEP*/}}void*runner(void*param){value=10;pthread_exit(0);}答:c行会输出10,p行会输出05.4考虑下列进程集,进程占用的CPU区间长度以毫秒来计算:假设在时刻0以进程P1,P2,P3,P4,P5的顺序到达。a.画出4个Gantt图分别演示用FCFS、SJF、非抢占优先级(数字小代表优先级高)和RR(时间片=1)算法调度时进程的执行过程。b.每个进程在每种调度算法下的周转时间是多少?c.每个进程在每种调度算法下的等待时间是多少?d.哪一种调度算法的平均等待时间对所有进程而言最小?答:a.甘特图FCFSP1P2P3P4P512345678910111213141516171819SJFP2P4P3P5P112345678910111213141516171819Non-preemptivePriorityP2P5P1P3P412345678910111213141516171819进程区间时间优先级P1103P211P323P414P552RR(quantum=1)P1P2P3P4P5P1P3P5P1P5P1P5P1P5P1P1P1P1P112345678910111213141516171819b.TurnaroundTimeProcessFCFSSJFNPPRR(quantum=1)P110191619P211112P3134187P4142194P5199614Average13.47.2129.2c.WaitingTimeProcessFCFSSJFNPPRR(quantum=1)P10969P210001P3112165P4131183P514419Average9.63.28.25.4d.SJF5.5下面哪些算法会引起饥饿a.先来先服务b.最短作业优先调度c.轮转法调度d.优先级调度答:最短作业优

1 / 20
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功