浙江大学计算机考研历年面试问题集整理:yyy2008.4.40专业部分操作系统部分:1windows/linux使用的文件系统?windows使用的文件系统有:FAT(包括FAT12,FAT16,FAT32),CDFS,UDF,NTFS,DFS(分布式文件系统,用于windows2000/xp服务器上的网络组件)linux使用的文件系统有:ext2,ext3,FAT32???????2虚拟内存?据局部性原理,一道作业在运行之前,没有必要把全部作业全部装入内存,而仅仅将那些当前要运行的那部分页面或者段先装入内存便可启动运行,其余部分暂时留在磁盘上.程序运行时所要访问的页面在内存则直接访问,不在则利用os所提供的请求调页(段)功能,将它们调入内存以保证程序的继续执行.若内存已满,则还须利用页(段)的置换功能,将内存中暂时不用的段,页调出至磁盘上,腾出足够的空间再将所要的页(段)调入.这样,便可以使一个较大的用户程序在较小的内存中运行,也可以使内存中同时装入更多的程序并发执行.从用户角度看,该系统所具有的内存容量将比实际要大得多,此之谓虚拟内存.3分时操作系统的基本调度算法?以linux操作系统为例:先来先服务和短作业(进程)优先调度算法,高优先权优先调度算法(非抢占式,抢占式优先权调度算法),基于时间片的轮转调度算法(简单的单级轮转调度,多级反馈队列调度).4LINUX线程与不其他线程的区别,以及实现?在linux中通过复制当前进程的属性可以创建一个新进程.一个新进程可以被复制,因此它可以共享资源,如文件,信号处理程序和虚存.当两个进程共享共同的虚存时,它们可以被当作一个进程中的线程.但是,没有为线程单独定义数据结构,因此linux中线程和进程没有区别.在其它的操作系统中,一般而言线程基本上不拥有系统资源,只是有一点必不可少的,能保证独立运行的资源.它是独立调度和分派的基本单位,可以并发执行(一个进程可包含多个线程),共享进程的资源.5操作系统的虚拟存储及页置换算法?页面置换算法:昀佳(Optimal)置换算法(不可能实现);先进先出(FIFO)置换算法;昀近昀久(LRU)未使用算法;CLOCK置换算法(简单的clock算法和改进型的clock算法,前者只设置一个访问位以决定是否换出,后者则还加进了置换代价因素,同时考虑置换的代价);昀少使用(LFU)置换算法;页面缓冲算法等。6死锁问题,银行家算法?产生原因:竞争资源,进程间的推进顺序非法必要条件:互斥,请求和保持,不剥夺,环路等待(预防死锁即是是后面三个条件之一不能成立)处理方法:预防死锁,避免死锁,检测死锁,解除死锁(剥夺资源或者撤销进程)银行家算法:昀具代表性的避免死锁的算法,由牛人Dijkstra提出,鉴于学过操作系统的都该懂,此处不再详述。7网络操作系统与分布式操作系统的区别?网络操作系统是使联网的计算机能方便而有效的共享网络资源,为网络用户提供所需各种服务的软件和协议的集合。其功能主要包括高效,可靠的网络通信;对网络中的共享资源进行有效管理;提供电子邮件,文件传输,共享硬盘,打印机等服务;网络安全管理;提供互操作能力。分布式操作系统是由多个分散的计算机经网络连接而成的计算机系统,系统中的计算机无主次之分,任意两台计算机可以通过通信交换信息。为分布式计算机配置的操作系统就是“分布式操作系统”(注意:分布式操作系统是网络操作系统的更高级形式,它保持了网络系统所拥有的全部功能,同时又具有透明性,可靠性,高性能等)。它能直接对系统中的各类资源进行动态的分配和调度,任务划分,信息1传输协调工作,并为用户提供一个统一的界面和标准的接口,用户通过这一界面实现所需要的从操作以及使用系统资源,使系统中的若干台计算机相互协作以完成共同的任务,有效控制和协调诸任务的并行执行,并向系统提供统一的,有效的接口软件集合。网络操作系统和分布式操作系统虽然都属于管理分布在不同地理位置上的操作系统,但昀大的差别是:网络操作系统工作时必须确认网址,而分布式操作系统则不必知道计算机的确切地址;分布式系统负责整个系统的资源分配,通常能够很好的隐藏系统的内部细节,如对象的物理位置,并发控制,系统故障等。这些对用户都是透明的。8操作系统为什么要用驱动程序?参考9驱动程序即添加到操作系统中的一小块代码,其中包含有关硬件设备的信息。有了此信息,计算机就可以与设备进行通信。驱动程序是硬件厂商根据操作系统编写的配置文件,可以说没有驱动程序,计算机中的硬件就无法工作。操作系统不同,硬件的驱动程序也不同,各个硬件厂商为了保证硬件的兼容性及增强硬件的功能会不断地升级驱动程序。如:Nvidia显卡芯片公司平均每个月会升级显卡驱动程序2-3次。驱动程序是硬件的一部分,当你安装新硬件时,驱动程序是一项不可或缺的重要元件。凡是安装一个原本不属于你电脑中的硬件设备时,系统就会要求你安装驱动程序,将新的硬件与电脑系统连接起来。驱动程序扮演沟通的角色,把硬件的功能告诉电脑系统,并且也将系统的指令传达给硬件,让它开始工作。9设备驱动程序作用?参考8驱动程序(DeviceDriver)全称为“设备驱动程序”,是一种可以使计算机和设备通信的特殊程序,可以说相当于硬件的接口,操作系统只能通过这个接口,才能控制硬件设备的工作,假如某设备的驱动程序未能正确安装,便不能正常工作。正因为这个原因,驱动程序在系统中的所占的地位十分重要,一般当操作系统安装完毕后,首要的便是安装硬件设备的驱动程序。不过,大多数情况下,我们并不需要安装所有硬件设备的驱动程序,例如硬盘、显示器、光驱、键盘、鼠标等就不需要安装驱动程序,而显卡、声卡、扫描仪、摄像头、Modem等就需要安装驱动程序。另外,不同版本的操作系统对硬件设备的支持也是不同的,一般情况下版本越高所支持的硬件设备也越多,例如笔者使用了WindowsXP,装好系统后一个驱动程序也不用安装。设备驱动程序用来将硬件本身的功能告诉操作系统,完成硬件设备电子信号与操作系统及软件的高级编程语言之间的互相翻译。当操作系统需要使用某个硬件时,比如:让声卡播放音乐,它会先发送相应指令到声卡驱动程序,声卡驱动程序接收到后,马上将其翻译成声卡才能听懂的电子信号命令,从而让声卡播放音乐。所以简单的说驱动程序提供了硬件到操作系统的一个接口以及协调二者之间的关系,而因为驱动程序有如此重要的作用,所以人们都称“驱动程序是硬件的灵魂”、“硬件的主宰”,同时驱动程序也被形象的称为“硬件和系统之间的桥梁”。10cisc&risc什么区别,有什么应用?cisc指复杂指令系统,risc指精简指令系统。Cisc指令条数多,功能复杂,目的是利用这一特点缩小汇编语言与高级语言的差距。Risc是人们对cisc中大约20%的常用命令(使用频度大约80%)加以改进,设计出硬件结构非常简单,执行速度很高的cpu。Risc指令种类少,长度固定,寻址方式少,设置昀少的访内存指令,在cpu中设置大量的寄存器,非常适合流水线操作。11OS内存管理?管理需求:重定位,保护,共享,逻辑组织,物理组织;分区方法:固定分区,动态分区(昀佳适配,首次适配,临近适配),伙伴系统,重定位;分页(具体略);分段(具体略);212io调度算法?此题似乎有问题,分解之:IO控制方式:程序IO方式,中断驱动IO控制方式,DMA直接存储器访问方式,IO通道控制方式磁盘调度算法:RSS(随机调度),FIFO,PRI(进程优先级调度),LIFO,SSTF(昀短作业优先),SCAN(在磁盘上往复),C-SCAN(一条道路,快速返回),N-step-SCAN(一次N个记录的SCAN),FSCAN13一个文件重命名和把它直接删除后再重新建立新文件名有何不同?1.物理地址:前者不变,后者变化2.pcb:前者只改了文件名,后者重新建立PCB14介绍一下os的层次结构?Unix系统:1.用户2.shell和命令编译器和命令解释器系统库3.内核:内存管理,进程管理,I/O管理等。4.硬件其中,2和3是系统调用为接口,3和4是设备驱动为接口15关于任务管理的问题?作业控制;作业状态(提交,后备,执行,完成)及转换;作业调度(算法:先来先服务,短作业优先,相应比高优先,优先级调度,均衡调度;衡量指标:周转时间,带权周转时间);用户界面(控制面板式,字符界面,图形用户界面,新一代用户界面——人以自然方式与计算机生成的虚拟环境进行交流)16内存管理的算法有哪些?页面置换参考题5,此处还包含了分页,分段及段页地址变换的问题。17虚拟存储有什么作用,虚拟存储需要什么特别的要求才能够实现?实现多道程序的并行运行,大的程序在小的内存环境中运行(页面调度)。特别要求即是调度算法的高效。18进程和线程的区别?(1)地址空间:进程内的一个执行单元;进程至少有一个线程;它们共享进程的地址空间;而进程有自己独立的地址空间;(2)资源拥有:进程是资源分配和拥有的单位,同一个进程内的线程共享进程的资源(3)线程的创建及上下文切换更加经济(4)前者资源分配的基本单元,后者是CPU使用的基本单元19windows两种文件系统,区别?FAT,NTFS(??不知是不是要比较它们俩):FAT是传统的文件系统,而NTFS是win2K的设计者所开发的,用于满足工作站和服务器中的高级要求,比如说客户/服务器应用程序,资源密集型工程和科学应用,大型系统的网络应用程序.相对于FAT,NTFS有以下显著特征:●可恢复性:之所以要建立新的win2k文件系统,就是为了具备从系统崩溃和磁盘故障中恢复的能力;●安全性:NTFS使用win2k对象模型来实施安全机制.●大磁盘和大文件:NTFS比包括FAT在内的其它大多数文件系统都能够更有效地支持非常大的磁盘和非常大的文件;3●多数据流:文件的实际内容被当作字节流处理,在NTFS中可以为一个文件定义多个数据流;●通用索引功能:NTFS中,每个文件都有一组属性与之关联.这样,文件管理系统中文件描述的集合组织成一个关系数据库,因而文件可以建立关于任何属性的索引.20轮转法知道么,用在什么系统?简单介绍下分时操作系统,时间片可等长——简单轮转调度,亦可不等长——多级反馈调度数据结构部分:1介绍分治算法,回溯算法,动态规划法?分治算法:任何一个可以用计算机求解的问题所需要的计算时间都与其规模有关。问题的规模越小,解题所需要的时间往往也越少,从而也比较容易处理。分治法分设计思想是,将一个难以直接解决的大问题分解成一些规模较小的相同问题,以便各个击破,分而治之。如果规模为N的问题可以分解为K个子问题,1K=N,这些问题相互独立且与原问题相同。递归求解这些子问题,然后将各个子问题的解合并得到原问题的解。回溯算法:回溯法有“通用的解题法”之称,它可以系统地搜索一个问题的所有解或任一解。回溯法是一个既带有系统性又带有跳跃性的搜索算法。它在包含问题所有解的解空间中,按照深度优先的策略,从根结点出发搜索解空间树。算法搜索至解空间树的任一节点时,总是先判断该节点是否肯定不包含问题的解。如果肯定不包含,则跳过对以该节点为根的子树的系统搜索,逐层向前祖先节点回溯。否则进入该子树,继续按深度优先的策略进行搜索。回溯法在用来求解问题的所有解时,要回溯到根,且根节点的所有子树都已被搜索遍才结束。当用此法求解问题的任一解时,只要搜索到问题的一个解就可结束。这种以深度优先的方式系统地搜索问题的解的算法称为回溯法,它适用于解一些组合数较大的问题。动态规划法:动态规划算法与分治法类似,其基本思想也是将待求解的问题分解成若干子问题,先求解子问题,然后从这些子问题的解得到原问题的解。与分治法不同的是,适合于用动态规划法求解的问题,经分解得到的子问题往往不是独立的。若用分治法来解决这些问题,则会因分解得到的子问题数目太多,以至于昀后解决原问题需要耗费指数级时间。然而不同子问题数目常常只有多项式量级。在用分治法求解时,有些子问题被重复了许多次。如果我们能够保存已解决的子问题的答案,而在需要时再找出已求得的答案,这样就可以避免大量的重复计算,从而得到多项式时