您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 统计图表 > 软件技术基础习题答案
操作系统1.如何理解虚拟机的概念?答:虚拟机就是在裸机上扩展一层软件,将硬件实现细节隐藏起来,使用户能够更方便、更灵活使用的计算机。2.什么是多道程序设计,它的主要优点是什么?答:多道程序设计就是允许多个程序同时进入内存并运行。主要优点:提高资源利用率,从而提高了系统的吞吐量。3.试述分时系统与实时系统,并比较它们的区别。答:分时系统是指能够允许多个用户同时使用一台计算机的系统。实时系统是指能够及时响应随机发生的外部事件,并在严格的时间范围内完成对该事件处理的系统。实时系统对系统响应速度要求更高,可靠性要求更高。(或者说明分时系统与实时系统各自特点)4.一般从哪几方面对操作系统的性能进行评价?1)可靠性2)方便性3)效率4)可维护性5)可移植性5.试说出几种你所熟悉的操作系统名称,并说明其特征。答:Linux特征:支持多用户、多任务,具有良好的用户界面,设备独立性,系统安全性能高,良好的可移植性。Windows特征:支持多用户、多任务,具有友好的图形用户界面,强大的内存管理功能,可靠性高,操作简单。6.根据你试用计算机系统的经验,说明操作系统的作用。答:控制和管理计算机系统内各种硬件和软件资源、合理有效地组织计算机系统的工作,为用户提供一个使用方便可扩展的工作环境,从而起到连接计算机和用户的接口作用。7.如何理解网络操作系统的主要功能?答:用于管理网络通信和共享资源,协调各主机上任务的运行,并向用户提供统一的、有效的网络接口,包括网络管理、通信、资源共享、系统安全和多种网络应用服务。8.如何理解进程的概念?进程与程序的区别是什么?进程与作业的联系和区别是什么?答:进程是一个可以并发执行的程序或程序段在一个数据集合上的执行过程,他是系统分配资源的基本单位。区别:1)经常是一个动态的概念,是执行程序的动态过程,它因创建而产生,因调度而执行,因撤销而消亡。而程序是一个静态的概念,是进程运行的静态文本。2)进程能真实地描述并发执行,且具有并发性,而程序没有。3)一个进程可以执行一个或多个程序。4)程序可以作为一种软件资源长期保持着,而进程则是程序的一次执行过程,是暂时的,是动态地产生和终止的,它不具有存储性。作业和进程的联系两者静态描述的结构相似,作业是由程序,数据和JCB组成,进程是由程序或程序段,数据,PCB组成。区别:作业是用户向计算机提交任务实体,而进程是完成用户任务的执行实体;一个作业可由多个进程组成,且必须至少有一个进程。作业一般用于批处理系统中,而进程用在所有多道系统中。9.理解进程的三种基本状态和发生状态转换的原因。答:进程的三种基本状态分别执行状态,就绪状态和等待状态。简单来说是由于CPU以及其他资源有限。具体如下:由于现在操作系统一般都是采用多道程序设计,进程的数量一般比CPU数量多,所以就只有一部分已经准备好(就绪状态)的进程能使用CPU,也就是说只有一部分进程处于运行状态;又由于其他资源有限,另一部分进程则又分两种进程,一种是已经准备好(就绪状态)的进程,就是已经分配进程所需所有资源的进程,另一种是没有准备好(阻塞状态)的进程,就是由于有些资源缺乏而无法获得所需的资源的进程。没有准备好(阻塞状态)的进程要等执行进程运行完毕释放资源之后得到所需资源,变成准备好(就绪状态)的进程;准备好(就绪状态)的进程要等执行状态运行完毕释放CPU唤醒它,才能进入执行状态。根据以上的分析,不难看出这个需要三个状态转换来实行。10.生产者和消费者进程中的两个P操作能颠倒吗,两个V操作能颠倒吗?为什么?答:都不能。若两个P操作颠倒的话,当缓冲池变满时,生产者执行P(mutex),接着执行P(avail)时因为缓冲池满而被阻塞,等待消费者取走数据,消费者会因为信号量mutex没有被释放而阻塞,等待生产者释放信号量mutex,最后进入死锁状态。同样,若两个V操作颠倒的话,生产者和消费者将不能互斥访问缓冲池。11.什么是临界区?什么是临界资源?答:在每个进程中,访问临界资源的那段程序称为临界区。一次只允许一个进程使用的资源称为临界资源。12.什么是死锁?死锁产生的原因是什么?答:死锁是指两个或两个以上进程都无限制地等待永远不会出现的事件而发生的一种状态。死锁原因:1)系统资源不足2)进程运行推进的顺序不合适13.14.什么是重定位?静态重定位和动态重定位的区别是什么?答:相对地址到绝对地址的转换,同时程序中与地址有关的指令的修改,这一过程就叫做地址重定位。静态重定位在程序装入时进行,由装配程序进行地址转换;动态重定位是在程序的执行过程中,当CPU访问指令或数据前,由地址变换机构进行地址变换。15.页面置换策略,如下访问序列:!=1,7,3,2,0,5,0,8,0,7.假设分配了3个页框,对于LRU算法,请列出访问序列时,驻留在该3个页框中页号的变化,并求出缺页率。答:12345678910173205080717320508017322558缺缺缺缺缺缺缺缺缺页率=8/10=80%16.某请求分页系统中用户编程空间共64个页面,每页1K,主存32K,加入某时刻某进程页表如下:页号页框号182633412请求出十六进制虚地址128D的物理地址,并写出计算过程。答:(128D)16=1*163+2*162+8*16+13=4749由于页面大小为1K,所以将以上除以1024即得到逻辑页号。页号=4749/1024=4…………653根据查表结果,实际物理页框号为12物理地址=12*1024+653=1294117.简述设备分类方法。答:设备可以从一下几个方面来分类:(1)从数据组织的角度分类:块设备字符设备(2)从资源分配的角度分类:独占设备共享设备虚拟设备18.设备管理的内容和任务是什么?答:设备管理的内容:(1)I/O请求的检测与控制(2)解决设备的低速性与CPU高速性之间的矛盾,提高CPU的利用率(3)设备分配策略设备管理的内容:P15519.用图示方法说明中断驱动的输入输出过程。答:P15620.简述DMA数据传输过程的步骤。答:P15721.通道的工作原理是什么?答:P157--P15822.缓冲区有哪几种组成形式?答:P158--P15923.什么是物理设备?什么是逻辑设备?答:P160(注:要回答出逻辑设备与物理设备的映射关系)24.设备分配程序的工作原理是什么?使用什么分配算法?答:P160--P16125.设备驱动程序的主要功能是什么?答:P16126.什么是时候虚拟设备?虚拟设备的组成要素是什么?虚拟设备的工作过程及特点是什么?答:P161--P16227.什么是记录、文件、文件系统?答:P16428.简述文件物理结构的不同类型。答:P16629.什么是文件目录?有几种目录结构形式?各有什么特点?答:P16830.什么是文件路径名?什么是工作目录?答:P170数据结构1.数据结构主要包括哪三个方面的内容?答:逻辑结构,存储结构和数据运算与实现2.逻辑结构的4种基本类型是什么?答:集合,线性表,树和图3.程序如下:link*merge(link*Ahead,link*Bhead){link*Chead,qa,qb,qc;Chead=qa=Ahead-next;qb=Bhead-next;while(qa&&qb){if(qa-dataqb-data){qc=qa;qa=qa-next;}else{qc=qb;qb=qb-next;}qc-next=Chead-next;Chead-next=qc;}while(qa){qc=qa;qc-next=Chead-next;Chead-next=qc;}while(qb){qc=qb;qc-next=Chead-next;Chead-next=qc;}returnChead;}4.(仅供参考,方法不唯一)程序如voidDelete_Repeat_Node(node*head){node*p,*pre,*s;pre=head-next;p=pre-next;while(p){s=p-next;while(s&&s-data!=p-data){s=s-next;}if(s){pre-next=p-next;free(p);p=pre-next;}else{pre=p;p=p-next;}}}5.参照书本P26~P276.程序如下:顺序表实现约瑟夫:voidsequeueJoseph(intm,intn,ints){sequenlistL;intpos,data,index;for(inti=0;in;i++)L.a[i]=i+1;L.len=n;pos=s-1;while(ListEmpty(L)){index=(pos+m)%L.len;ListDelete(L,index,data);/*讲第m个人从顺序表删除*/printf(%d,data);/*输出第m个人*/pos=index;/*将pos指向出队列的下一个人*/}}循环链表实现约瑟夫:structstCircleList{intdata;CircleList*next;}voidCircleListJoseph(intm,intn,ints){intindex,pos;stCircleList*pNodeFirst=NULL,*pNodeCur=NULL;for(inti=0;in;i++){stCircleList*pNewNode=newstCircleList;intListLength;ListLength=n;pNewNode-no=i+1;pNewNode-pNext=NULL;if(NULL==pNodeFirst)pNodeFirst=pNodeCur=pNewNode;else{pNodeCur-pNext=pNewNode;pNodeCur=pNewNode;}}pNodeCur-pNext=pNodeFirst;/*构建循环链表*/pNodeCur=pNodeFirst;pos=s;for(intj=0;jpos;j++){pNodeCur=pNodeCur-next;}while(ListLength1){index=m%ListLength;for(intk=0;kindex-1;k++){pNodeCur=pNodeCur-next;}printf(%d,pNodeCur-next-data);pNodeCur-next=pNodeCur-next-next;pNodeCur=pNodeCur-next;ListLength--;}printf(%d,pNodeCur-data);}7.D8.参照P379.答:循环队列的优点:避免“假溢出”,充分利用内存空间。空:rear=font满:(rear+1)%maxsize=font10.程序如下:11.inthuiwen(char[]a,intlenth)lenth为字符串长度{stacks;inistack(s);for(i=0;ilenth+1/2;i++)push(s,a[i]);for(i=lenth/2;ilenth;i++)if(gettop(s)!=a[i]&&pop(s))return0;return1;}link*DuoXiang(intn){link*head,*rear,*p;head-next=rear-=null;while(n){p-data=n%2;p-next=null;if(head-next==null)head-next=rear-next=p;else{rear-next=p;rear=p;}n=n/2;}returnhead;}12.三元组:行列值002301603210212122184044278带行辅助向量:i01234Pos03566num3210215.(1)500(2)499(3)1数据库一:1-5:ADCBA6-10:BCADD11.B12.C13.A14.A16.D24.B
本文标题:软件技术基础习题答案
链接地址:https://www.777doc.com/doc-2011666 .html