计算机考研复试之操作系统四十二问

  • Post author:
  • Post category:其他


/*

前言

:本小白近期在准备帝都某理工科211高校计算机专业复试,因为平时遇到一些专业性问题都会在CSDN寻找解决方案,深感这里是一个技术交流的良好平台也能见识到各路大佬。这是本小白第一次写博客,自身专业水平有限,文章布局排版不够熟悉,如有问题恳请大家批评指正,谢谢!本篇文章我列出了四十二个操作系统基础问题,按照处理机管理、存储器管理、文件管理和设备管理的顺序编写问题,如果觉得有帮助可以点赞收藏,祝愿大家都能考研上岸!*/

ps:以下都是面试题,但是要掌握好操作系统,还是要结合具体计算题和分析题学习。比如进程调度的策略、进程同步互斥关系的PV操作和伪代码、内存中的地址转换(一定要结合计组,计组中对cache的分析更详细,那一块也是重难点)、虚拟存储技术中的页面置换算法、文件系统中的磁盘调度、设备管理中的四种IO控制方式。

/**********************************处理机管理部分************************************/

问题一:请说一下什么是操作系统,它有哪些功能和特征?

操作系统是管理计算机硬件和软件资源的计算机程序,是直接运行在裸机上的系统软件,任何其他软件都得在操作系统的支持下才能运行。操作系统可管理计算机系统资源,主要分为

1.处理机管理2.存储器管理3.文件管理4.设备管理。

同时,操作系统提供用户与计算机硬件之间的接口,也提供计算机硬件与其他软件之间的接口。操作系统有

1.并发2.共享

3.虚拟4.异步  这四个特征,其中并发和共享是最主要的两个特征。

问题二:什么是原语?

原语是一种特殊的程序,是最接近硬件的部分,这种程序具有

原子性,即要么不运行,一旦运行就运行到底

。原语可用于进程同步互斥关系中。

问题三:中断的概念和作用,并说一下“核心态”与“用户态”的转换关系。

中断是指收到中断信号时,CPU立即进入核心态并暂停当前运行的进程,去处理中断。

CPU从“用户态”切换到“核心态”的方式只有一种,中断。

(这里要注意,系统调用和异常也能使CPU切换到核心态,但是系统调用的切换本质上还是使用了中断,异常情况,如缺页异常,最后也是会发生缺页中断,所以这两种方式归根到底属于中断方式)。而“用户态”切换到“核心态”是通过执行一个特权指令,将程序状态字PSW的标志位设置为“用户态”。

问题四:什么是系统调用?有何作用?并说一下系统调用的过程。

计算机系统中的各种共享资源都由操作系统统一管理,用户进程要使用系统资源时,必须通过系统调用请求操作系统服务。系统调用可保证系统的安全性和稳定性。过程为:传递系统调用参数……

执行陷入指令(发生在用户态)……执行系统调用服务程序(发生在核心态)……

返回用户程序。

问题五:详细说明一下操作系统的管理功能(4点)

  1. 处理机管理:处理机管理最基本的是

    进程控制

    。进程是系统分配资源的基本单位,因此在作业运行过程中,会进行进程创建、进程调度和撤销进程等操作。

    进程之间存在同步与互斥关系

    ,操作系统要对它们进行协调工作。比如进程对临界区资源的访问,就要进行互斥操作;进程间因完成某项任务而存在直接制约关系,就要进行同步操作协调顺序。在多个进程相互协调完成任务时,进程之间需要交换信息,这又要求操作系统管理

    进程通信

    。进程通信有共享存储、管道通信和消息传递(message)这三种方式。
  2. 存储器管理:存储器管理主要是对内存空间的管理。内存用来存放数据和指令,因此首先要进行

    内存分配

    ,对不用的内存空间也要进行回收。分配空间之后,要提供

    内存保护

    ,不同的进程只允许在自己的空间运行。程序中的地址为逻辑地址,而在内存中存放的地址是物理地址,因此要提供

    地址映射




    操作系统具有虚拟性,虚拟存储器将内存极大“扩充”,因此操作系统也提供了

    内存扩充技术

  3. 文件管理:对不同的文件在逻辑组织关系上进行

    目录管理

    ,建立目录项,方便查找文件提高速度。文件内部的数据存储,要提供

    文件存储空间管理

    ,为文件分配磁盘空间。同时还有

    文件读写的管理和保护功能

  4. 设备管理:分为设备处理程序,设备分配和缓冲管理。缓冲管理能解决高速CPU与低速IO设备之间速度不匹配的矛盾。

问题六:操作系统的发展历程是什么?

  1. 手工阶段2.单道批处理3.多道批处理4.分时操作系统5.实时操作系统6.网络操作系统和分布式操作系统

问题七:什么是管态,什么是目态?

管态又叫核心态,CPU在管态下能执行指令的全集。如果程序在管态下,能访问计算机的一切资源,访问不受限制。目态又称为用户态,CPU在用户态下只能执行非特权指令,不能直接使用系统资源。操作系统区分为管态、目态的目的是为了保证系统的安全稳定性。

问题八:什么是进程?它由什么组成?它有哪几种状态?

进程也称为进程实体,是操作系统分配资源的基本单位,

强调的是一个动态的执行过程

。它由进程控制块PCB、程序段和数据段组成。进程除了创建和终止之外,有三种状态:就绪态、执行态和阻塞态。

问题九:什么是线程?它和进程有什么区别?线程的实现方式又有哪几种?

线程是一种“轻量级”进程,

它不拥有系统资源,仅拥有少量在运行中必不可少的资源

,引入线程后,进程是系统资源分配的基本到位,线程是CPU调度的基本单位。一个进程可以包括多个线程,进程结束后,它的所以线程都被销毁,而线程的结束不会影响同一个进程内的其他线程。线程的实现方式分为用户级线程和内核级线程,只有内核级线程才是CPU调度的单位。

问题十:进程通信有哪几种方式,分别详述。

进程通信分为1.

共享存储

:两个进程对共享空间的访问是互斥的。2.

管道通信

:管道也是互斥访问的,是在内存区开辟的一个固定大小的缓冲区,管道通信要求,没写满不能读,没读空不能写。3.

消息传递

:以格式化消息为单位,进程通过“发送消息/接收消息”这一对原语进行数据交换。

问题十一:请说一下处理机调度的三个层次

处理机调度分为

高级调度、中级调度和低级调度

。高级调度也称为作业调度,决定将作业调度至内存的顺序,分配内存空间,创建相应进程。中级调度是内存调度,将阻塞的进程调出内存,将可以运行的进程重新调入内存,提高了内存利用率和系统吞吐量。低级调度称为进程调度,按照某种策略,把就绪队列中的进程分配处理机资源。

问题十二:调度算法的评价指标有哪几种?

  1. CPU利用率
  2. 系统吞吐量
  3. 周转时间
  4. 等待时间
  5. 响应时间

问题十三:常用的调度算法有哪些?(书上标答六种)

  1. FCFS先来先服务调度算法:简单,但是对短作业不利
  2. SJF短作业优先调度算法:对长作业不利,可能产生饥饿
  3. 优先级调度算法:又可分为非抢占式和抢占式,体现在是否剥夺正在执行的进程或作业
  4. 高响应比优先调度算法:响应比=(等待时间+要求服务时间)/要求服务时间。优先权取决于上述公式,可以随时间动态变化。因此可以消除饥饿,但是会增大开销。
  5. 时间片轮转调度算法:公平,时间片的选取应该合理
  6. 多级反馈队列调度算法

问题十四:不同进程之间存在什么关系?

存在同步与互斥关系。

同步是直接制约关系

,两个或者多个进程为完成某个共同任务,协调先后顺序而等待。

互斥是间接制约关系

,进程之间因为访问临界区资源而等待,临界区资源只能互斥访问。

问题十五:什么是死锁?死锁产生的原因是什么?产生死锁的必要条件是什么?怎么解决死锁?


死锁指多个进程因竞争资源而造成互相等待,若无外力作用,这些进程将无法向前推进

。死锁产生的原因有两点:1.系统资源的竞争2.进程推进顺序非法。死锁产生的四个必要条件:1.互斥条件2.不可剥夺条件3.请求并保持条件4.循环等待条件。解决死锁也有四种方法:1.死锁预防2.死锁避免3.死锁检测4.死锁解除。

问题十六:简述银行家算法工作原理。

银行家算法主要思想是避免系统进入不安全状态(

死锁避免

)。在每次进行资源分配时,首先检查系统是否有足够的资源满足要求,若有则先进行分配,并对分配后的新状态进行安全性检查。若新状态安全,则正式分配上述资源,否则拒绝分配上述资源。这样就能保证系统始终处于安全状态,避免了死锁的发生。

/*****************************************存储器管理部分**********************************************/

//注意:存储器管理部分,和计算机组成原理中的存储器章节高度吻合,复习本章时要与计算机组成原理结合起来分析

问题十七:操作系统内存管理的功能有哪些?



  1. 内存空间的分配与回收。


    (由操作系统完成内存空间的分配和管理,使程 序员减轻负担,只用关心编程本身的东西)


  2. 地址转换。


    (多道程序环境下,程序的逻辑地址和物理地址可能不一致, 因此存储管路必须提供地址变换功能,把逻辑地址转为物理地址)


  3. 内存空间的扩充。


    (利用虚拟存储技术或者自动覆盖技术,从逻辑上扩充 内存)


  4. 存储保护。


    保证各道作业在自己的存储空间内运行,互不干扰。(具体如 何保护,可采取重定位寄存器和界地址寄存器来实现这种保护。重定位寄存 器含最小的物理地址值,界地址寄存器包含逻辑地址的最大值。界地址寄存 器主要用来


    比较


    逻辑地址是否越界,如果没有越界,则和重定位寄存器


    相加


    , 即逻辑地址 加上重定位寄存器的地址,得到物理地址)

问题十八:覆盖与交换的区别。


覆盖技术用于同一个程序或者进程中,交换技术用于不同进程或者作业之间进行。

覆盖思想是,将内存分为一个固定区和若干个覆盖区,将需要常驻内存的短放在固定区,而不常用的段放在覆盖区。在需要调用时,将外存中的段调入覆盖区,覆盖原有的段。覆盖技术的缺点是,对用户和程序员不透明,该技术已经逐渐淘汰。交换技术是指,内存空间紧张时,系统将某些进程暂时换出内存,并把外存中已经具备运行条件的进程换入内存。

问题十九:动态重定位是什么?如何实现?

程序执行过程中,要访问指令或数据的地址。首先得到的是逻辑地址,需要转换成物理地址去存储器寻找,引入了动态重定位,这也是用的最多的方式。具体实现时,需要设置一个

重定位寄存器

,用来存放程序在内存中的起始地址。程序执行时,要访问的物理地址=程序逻辑地址+重定位寄存器中的地址,实现动态重定位。

问题二十:在操作系统内存管理中请问连续分配方式有哪几种?请详述它们的特点。

内存空间的连续分配方式有三种:

1.单一连续分配2.固定分区分配3.动态分区分配。

单一连续分配优点是简单、无外部碎片,可以采用覆盖技术,不用采取其他技术支持。缺点是只能用于单用户、单任务的操作系统,有内部碎片,存储器利用率极低。固定分区分配时,分区大小可以相等也可以不等,此分配方式会产生内部碎片。动态分区分配不预先划分内存,而是在进程装入内存时,根据进程大小动态的分配内存,因此系统中的分区大小和数目是可变的。动态分区分配方式不存在内部碎片,只会产生外部碎片。

外部碎片可采用紧凑技术处理

。动态分区分配方式有四种分配算法:

1.首次适应算法2.最佳适应算法3.最坏适应算法4.邻近适应算法。

其中首次适应算法和邻近适应算法都是按照地址递增顺序分配,首次适应算法每次分配之后,又从头开始寻找空间。最佳适应算法按内存空间大小递增的顺序分配。最坏适应算法按照内存空间大小递减顺序分配,因此很容易导致大内存被很快消耗。

问题二十一:内存管理中非连续分配方式有哪些?介绍一下它们的特点。


  1. 页式存储管理2.段式存储管理3.段页式存储管理

    。页是信息的物理单位,大小是由系统分配的且固定不变,分页的作业地址是一维的;而段是信息的逻辑单位,满足用户需要,长度不固定,取决于用户编写的程序,段地址空间是二维的。段页式存储管理则结合以上两种方式,逻辑上采取分段,物理上采取分页方式。

补充:在没有快表的情况下,页式存储至少需要访存两次,段式存储少需要访存两次,段页式存储少需要访存三次(段表、页表、存储器)

问题二十二:请简述页面置换算法有哪几种,分别介绍一下。

  1. 最佳置换算法OPT:这是理想化的算法,是观察的未来页面使用情况,因此实际中此算法不存在。
  2. 先进先出置换算法FIFO:按照页面进入内存的先后顺序来决定调出内存的顺序。
  3. 最近最久未使用置换算法LRU:将最近长时间未访问的页面调出。需增大开销,为每个页面设置访问字段,记录页面被访问以来经历的时间。调出时,把记录时间最长的页面调出。
  4. 时钟置换算法CLOCK:为页面设置访问位和修改位,按照时钟顺序依次访问并按规则修改标记。

问题二十三:什么是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:目前用的最多的文件目录结构是树形结构。

问题三十四:文件共享有哪几种方式?


文件共享分为硬链接和软链接

。硬链接指文件的索引指针指向索引节点,即用户目录项链接到共享文件上。软链接是指,只有文件的拥有者才索引节点指针指向索引节点。而共享该文件的其他用户只有该文件的路径名,并不拥有指向其索引节点的指针。硬链接的查找速度比软链接快。

问题三十五:文件保护有哪几种方式?

  1. 口令保护2.加密保护3.访问控制

问题三十六:文件分配方式有哪几种?(为文件分配磁盘块的方式有哪些)


  1. 连续分配

    。即要求每个文件在磁盘上占有一组连续的块。

  2. 链接分配

    。(显式链接和隐式链接)隐式链接可理解为链表,中间的指针对用户透明。显示链接把链接指针显示地存放在一张表中,称为文件分配表FAT。(注意:一个磁盘仅设置一张FAT,开机时将FAT读入内存,并常驻内存)

  3. 索引分配

    。系统会为每个文件建立一张索引表索,索引表记录了文件各个逻辑块对应的物理块。如果文件太大导致索引表太长。可以采取链接方案、多层索引和混合索引的方式。

问题三十七:文件存储空间的管理有哪些?

  1. 空闲表法(把空闲块组织成表)2.空闲链表法(把空闲块组织成链表)3.位示图法(利用二进制的每位记录空闲块)4.成组链接(空闲表和空闲链表相结合的方法)

问题三十八:在磁盘上进行一次读写操作需要哪几部分时间?哪部分时间最长?

分为寻道时间、延迟时间和传输时间三部分。寻道时间是磁头移动到指定的磁道所需要的时间。延迟时间是磁头定位到某一磁道的扇区所需要的时间。寻到时间因为要移动磁头,所以花费时间最久。

问题三十九:磁盘管理的调度算法有哪些?

  1. 先来先服务。根据进程请求访问磁盘的先后顺序来调度。
  2. 最短寻找时间优先。优先处理的磁道是与当前磁头最近的磁道,可以保证每次寻道时间最短,但不能保证总的时间最短。缺点是容易产生饥饿。
  3. 扫描算法。扫描时到达一端才掉头,然后转向向另一头扫描。

    注意扫描方向
  4. 循环扫描算法。只有磁头朝某个方向移动时才会响应请求,移动到头后立即让磁头返回起点,返回中途不响应任何请求。

    注意扫描方向


注意

:3和4,都有一种改进的算法,分别是LOOK和C-LOOK,它们的特点是不用移动到两端,因此性能得到了提升。

/*************************************设备管理部分*******************************************/

问题四十:IO控制方式有哪些?

  1. 程序直接控制方式。计算机从外部设备读取数据到存储器,每次读一个字。CPU一直在轮询检查,长期处于忙等状态。
  2. 中断驱动方式。CPU和IO设备并行工作,当IO完成后,控制器发送一个中断信号给CPU,CPU处理中断,读取数据。
  3. DMA方式(直接存储器存取方式)。数据流直接在外设和内存之间传输,数据传送的单位是“块”。CPU仅在传输数据开始和结束时才干预。
  4. 通道方式。

    通道是一种专门的硬件

    ,可识别并执行通道指令。数据只有在读写完成之后,才发送中断信号。硬件并行程度高。

问题四十一:SPOOLing技术指的是什么?SPOOLing系统有哪几部分组成?

SPOOLing技术又称为假脱机技术。该技术利用专门的外围控制机,

将低速的IO设备上的数据传送到高速磁盘上

,同时使外部设备同时联机操作。SPOOLing系统的特点有:

提高了IO的速度;将独占设备改造为共享设备;实现了虚拟设备功能

SPOOLing系统由三部分组成:1.输入井和输出井2.输入缓冲和输出缓冲3.输入进程和输出进程。

问题四十二:引入缓冲区的目的是什么?

  1. 缓和CPU和IO设备速度不匹配的矛盾
  2. 减少对CPU的中断频率,放宽对CPU中断响应时间的限制
  3. 解决数据单元大小不匹配的问题
  4. 提高CPU和IO设备之间的并行性

//本文到此结束,谢谢大家浏览,如发现不足之处请批评指正,谢谢!觉得有帮助可点赞收藏哈。



版权声明:本文为weixin_42514735原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。