/*前言:本小白近期在准备帝都某理工科211高校计算机专业复试,因为平时遇到一些专业性问题都会在CSDN寻找解决方案,深感这里是一个技术交流的良好平台也能见识到各路大佬。这是本小白第一次写博客,自身专业水平有限,文章布局排版不够熟悉,如有问题恳请大家批评指正,谢谢!本篇文章我列出了四十二个操作系统基础问题,按照处理机管理、存储器管理、文件管理和设备管理的顺序编写问题,如果觉得有帮助可以点赞收藏,祝愿大家都能考研上岸!*/
ps:以下都是面试题,但是要掌握好操作系统,还是要结合具体计算题和分析题学习。比如进程调度的策略、进程同步互斥关系的PV操作和伪代码、内存中的地址转换(一定要结合计组,计组中对cache的分析更详细,那一块也是重难点)、虚拟存储技术中的页面置换算法、文件系统中的磁盘调度、设备管理中的四种IO控制方式。
/**********************************处理机管理部分************************************/
问题一:请说一下什么是操作系统,它有哪些功能和特征?
操作系统是管理计算机硬件和软件资源的计算机程序,是直接运行在裸机上的系统软件,任何其他软件都得在操作系统的支持下才能运行。操作系统可管理计算机系统资源,主要分为1.处理机管理2.存储器管理3.文件管理4.设备管理。同时,操作系统提供用户与计算机硬件之间的接口,也提供计算机硬件与其他软件之间的接口。操作系统有1.并发2.共享3.虚拟4.异步 这四个特征,其中并发和共享是最主要的两个特征。
问题二:什么是原语?
原语是一种特殊的程序,是最接近硬件的部分,这种程序具有原子性,即要么不运行,一旦运行就运行到底。原语可用于进程同步互斥关系中。
问题三:中断的概念和作用,并说一下“核心态”与“用户态”的转换关系。
中断是指收到中断信号时,CPU立即进入核心态并暂停当前运行的进程,去处理中断。CPU从“用户态”切换到“核心态”的方式只有一种,中断。(这里要注意,系统调用和异常也能使CPU切换到核心态,但是系统调用的切换本质上还是使用了中断,异常情况,如缺页异常,最后也是会发生缺页中断,所以这两种方式归根到底属于中断方式)。而“用户态”切换到“核心态”是通过执行一个特权指令,将程序状态字PSW的标志位设置为“用户态”。
问题四:什么是系统调用?有何作用?并说一下系统调用的过程。
计算机系统中的各种共享资源都由操作系统统一管理,用户进程要使用系统资源时,必须通过系统调用请求操作系统服务。系统调用可保证系统的安全性和稳定性。过程为:传递系统调用参数……执行陷入指令(发生在用户态)……执行系统调用服务程序(发生在核心态)……返回用户程序。
问题五:详细说明一下操作系统的管理功能(4点)
问题六:操作系统的发展历程是什么?
问题七:什么是管态,什么是目态?
管态又叫核心态,CPU在管态下能执行指令的全集。如果程序在管态下,能访问计算机的一切资源,访问不受限制。目态又称为用户态,CPU在用户态下只能执行非特权指令,不能直接使用系统资源。操作系统区分为管态、目态的目的是为了保证系统的安全稳定性。
问题八:什么是进程?它由什么组成?它有哪几种状态?
进程也称为进程实体,是操作系统分配资源的基本单位,强调的是一个动态的执行过程。它由进程控制块PCB、程序段和数据段组成。进程除了创建和终止之外,有三种状态:就绪态、执行态和阻塞态。
问题九:什么是线程?它和进程有什么区别?线程的实现方式又有哪几种?
线程是一种“轻量级”进程,它不拥有系统资源,仅拥有少量在运行中必不可少的资源,引入线程后,进程是系统资源分配的基本到位,线程是CPU调度的基本单位。一个进程可以包括多个线程,进程结束后,它的所以线程都被销毁,而线程的结束不会影响同一个进程内的其他线程。线程的实现方式分为用户级线程和内核级线程,只有内核级线程才是CPU调度的单位。
问题十:进程通信有哪几种方式,分别详述。
进程通信分为1.共享存储:两个进程对共享空间的访问是互斥的。2.管道通信:管道也是互斥访问的,是在内存区开辟的一个固定大小的缓冲区,管道通信要求,没写满不能读,没读空不能写。3.消息传递:以格式化消息为单位,进程通过“发送消息/接收消息”这一对原语进行数据交换。
问题十一:请说一下处理机调度的三个层次
处理机调度分为高级调度、中级调度和低级调度。高级调度也称为作业调度,决定将作业调度至内存的顺序,分配内存空间,创建相应进程。中级调度是内存调度,将阻塞的进程调出内存,将可以运行的进程重新调入内存,提高了内存利用率和系统吞吐量。低级调度称为进程调度,按照某种策略,把就绪队列中的进程分配处理机资源。
问题十二:调度算法的评价指标有哪几种?
问题十三:常用的调度算法有哪些?(书上标答六种)
问题十四:不同进程之间存在什么关系?
存在同步与互斥关系。同步是直接制约关系,两个或者多个进程为完成某个共同任务,协调先后顺序而等待。互斥是间接制约关系,进程之间因为访问临界区资源而等待,临界区资源只能互斥访问。
问题十五:什么是死锁?死锁产生的原因是什么?产生死锁的必要条件是什么?怎么解决死锁?
死锁指多个进程因竞争资源而造成互相等待,若无外力作用,这些进程将无法向前推进。死锁产生的原因有两点:1.系统资源的竞争2.进程推进顺序非法。死锁产生的四个必要条件:1.互斥条件2.不可剥夺条件3.请求并保持条件4.循环等待条件。解决死锁也有四种方法:1.死锁预防2.死锁避免3.死锁检测4.死锁解除。
问题十六:简述银行家算法工作原理。
银行家算法主要思想是避免系统进入不安全状态(死锁避免)。在每次进行资源分配时,首先检查系统是否有足够的资源满足要求,若有则先进行分配,并对分配后的新状态进行安全性检查。若新状态安全,则正式分配上述资源,否则拒绝分配上述资源。这样就能保证系统始终处于安全状态,避免了死锁的发生。
/*****************************************存储器管理部分**********************************************/
//注意:存储器管理部分,和计算机组成原理中的存储器章节高度吻合,复习本章时要与计算机组成原理结合起来分析
问题十七:操作系统内存管理的功能有哪些?
问题十八:覆盖与交换的区别。
覆盖技术用于同一个程序或者进程中,交换技术用于不同进程或者作业之间进行。覆盖思想是,将内存分为一个固定区和若干个覆盖区,将需要常驻内存的短放在固定区,而不常用的段放在覆盖区。在需要调用时,将外存中的段调入覆盖区,覆盖原有的段。覆盖技术的缺点是,对用户和程序员不透明,该技术已经逐渐淘汰。交换技术是指,内存空间紧张时,系统将某些进程暂时换出内存,并把外存中已经具备运行条件的进程换入内存。
问题十九:动态重定位是什么?如何实现?
程序执行过程中,要访问指令或数据的地址。首先得到的是逻辑地址,需要转换成物理地址去存储器寻找,引入了动态重定位,这也是用的最多的方式。具体实现时,需要设置一个重定位寄存器,用来存放程序在内存中的起始地址。程序执行时,要访问的物理地址=程序逻辑地址+重定位寄存器中的地址,实现动态重定位。
问题二十:在操作系统内存管理中请问连续分配方式有哪几种?请详述它们的特点。
内存空间的连续分配方式有三种:1.单一连续分配2.固定分区分配3.动态分区分配。单一连续分配优点是简单、无外部碎片,可以采用覆盖技术,不用采取其他技术支持。缺点是只能用于单用户、单任务的操作系统,有内部碎片,存储器利用率极低。固定分区分配时,分区大小可以相等也可以不等,此分配方式会产生内部碎片。动态分区分配不预先划分内存,而是在进程装入内存时,根据进程大小动态的分配内存,因此系统中的分区大小和数目是可变的。动态分区分配方式不存在内部碎片,只会产生外部碎片。外部碎片可采用紧凑技术处理。动态分区分配方式有四种分配算法:1.首次适应算法2.最佳适应算法3.最坏适应算法4.邻近适应算法。其中首次适应算法和邻近适应算法都是按照地址递增顺序分配,首次适应算法每次分配之后,又从头开始寻找空间。最佳适应算法按内存空间大小递增的顺序分配。最坏适应算法按照内存空间大小递减顺序分配,因此很容易导致大内存被很快消耗。
问题二十一:内存管理中非连续分配方式有哪些?介绍一下它们的特点。
补充:在没有快表的情况下,页式存储至少需要访存两次,段式存储少需要访存两次,段页式存储少需要访存三次(段表、页表、存储器)
问题二十二:请简述页面置换算法有哪几种,分别介绍一下。
问题二十三:什么是Belady异常?
在页面置换算法中,仅先来先服务置换算法会发生Belady异常,指的是,分配更多的物理块时,缺页次数不减小反而增大的异常情况。
问题二十四:什么是抖动 (颠簸)?
在页面置换算法中,刚调入内存的页面马上又被调出;刚调出内存的页面马上又调入内存。发生频繁的页面调度行为占用了大量CPU工作时间的现象称为抖动。
问题二十五:简述局部性原理。
局部性原理又分为时间局部性和空间局部性。时间局部性是指程序中的某条指令一旦执行,不久后该指令可能再次执行;某数据被访问后,不久后又会被访问。原因是程序中有大量的循环操作。空间局部性是指,一旦程序访问了某个存储单元,不久后,其附近的存储单元也将会被访问。这是因为指令是顺序存放、顺序执行的,数据也一般是以向量、数组等形式存储的。
问题二十六:虚拟存储器的特征是什么?
1.多次性:作业在运行时无须一次性调入内存,可允许多次调入2.对换性:作业运行时无须常驻内存,可进行换入换出。3.虚拟性:从逻辑上扩充内存容量,使用户看到的内存容量远大于实际的内存容量。
问题二十七:虚拟内存技术的实现有哪几种方式?需要的硬件支持有哪些?
虚拟内存的实现有以下三种方式:1.请求分页存储管理2.请求分段存储管理3.请求段页式存储管理。它们一般需要硬件支持:1.一定容量的内存和外存2.页表机制(段表机制)作为主要的数据结构3.中断机构,当用户程序要访问的部分尚未调入内存时,则产生中断4.地址变换机构,将逻辑地址转为物理地址。 ps:看完本题记得再回头看二十一题
问题二十八:请简述缺页中断原理。
在请求分页系统中,每当所要访问的页面不在内存时,便产生一个缺页中断,请求操作系统将所缺的页调入内存。此时应将缺页的进程阻塞,若内存中有空闲块,则分配一个块,并修改页表中的相应页表项。若此时内存中没有空闲块,则要淘汰某页。缺页中断属于内部中断。
问题二十九:操作系统中,请简述一个地址翻译的过程。
得到一个逻辑地址,先去快表中找页表项内容。若快表没命中,则去页表找对应项。得到物理块号后,先去cache中找是否有对应的物理地址,若cache没命中,再去主存中找,如果主存缺页,最后去外存中找。
/***************************************文件管理部分********************************************/
问题三十:文件逻辑结构和文件物理结构有何区别?
文件逻辑结构是从用户观点出发看到的文件的组织形式,就是说在文件的内部,数据逻辑是如何组织起来的。文件物理结构是指文件在外存上的存储组织形式。
问题三十一:按照逻辑结构,文件可划分为哪两种?
按照逻辑结构,文件可划分为无结构文件和有结构文件。其中有结构文件又可分为顺序文件、索引文件、索引顺序文件。顺序文件有顺序存储和链式存储两种方式,顺序存储可直接访问,链式存储不可直接访问但是易扩展(这里可回忆一下数据结构顺序表和链表知识)。索引文件,即建立一个索引表。文件的每条记录对应一个索引项。索引表本身就是一个顺序文件,支持直接访问。索引顺序文件同样会建立一个索引表,不同的是,文件的一组记录对应一个索引项。
问题三十二:文件目录结构指的是什么,由什么组成?
文件目录结构指多个文件之间在逻辑上是如何组织的。文件目录结构由文件控制块(FCB)组成,一个FCB就是一个文件目录项。FCB包括文件的基本信息和存取控制信息、使用信息等。有些系统将文件描述信息和文件名分开。文件描述信息单独形成一个称为索引节点的数据结构。因此文件目录项中只包含了文件名和索引节点指针,使文件目录项长度大幅减小,磁盘空间能放更多的目录项。
问题三十三:文件目录结构有哪些?
文件目录结构有单级目录结构、两级目录结构、树级目录结构和无环图目录结构。在树级目录结构中,从根目录出发的是绝对路径,从当前目录出发的是相对路径。无环图目录结构方便的实现了文件共享。(在共享结点处设置一个count,增加共享时,count+1,删除结点时,count-1) ps:目前用的最多的文件目录结构是树形结构。
问题三十四:文件共享有哪几种方式?
文件共享分为硬链接和软链接。硬链接指文件的索引指针指向索引节点,即用户目录项链接到共享文件上。软链接是指,只有文件的拥有者才索引节点指针指向索引节点。而共享该文件的其他用户只有该文件的路径名,并不拥有指向其索引节点的指针。硬链接的查找速度比软链接快。
问题三十五:文件保护有哪几种方式?
问题三十六:文件分配方式有哪几种?(为文件分配磁盘块的方式有哪些)
问题三十七:文件存储空间的管理有哪些?
问题三十八:在磁盘上进行一次读写操作需要哪几部分时间?哪部分时间最长?
分为寻道时间、延迟时间和传输时间三部分。寻道时间是磁头移动到指定的磁道所需要的时间。延迟时间是磁头定位到某一磁道的扇区所需要的时间。寻到时间因为要移动磁头,所以花费时间最久。
问题三十九:磁盘管理的调度算法有哪些?
注意:3和4,都有一种改进的算法,分别是LOOK和C-LOOK,它们的特点是不用移动到两端,因此性能得到了提升。
/*************************************设备管理部分*******************************************/
问题四十:IO控制方式有哪些?
问题四十一:SPOOLing技术指的是什么?SPOOLing系统有哪几部分组成?
SPOOLing技术又称为假脱机技术。该技术利用专门的外围控制机,将低速的IO设备上的数据传送到高速磁盘上,同时使外部设备同时联机操作。SPOOLing系统的特点有:提高了IO的速度;将独占设备改造为共享设备;实现了虚拟设备功能。
SPOOLing系统由三部分组成:1.输入井和输出井2.输入缓冲和输出缓冲3.输入进程和输出进程。
问题四十二:引入缓冲区的目的是什么?
//本文到此结束,谢谢大家浏览,如发现不足之处请批评指正,谢谢!觉得有帮助可点赞收藏哈。