考研复试常见问题(操作系统篇)

文章目录

  • 一、计算机系统概述
    • 1.简述操作系统的目标和功能(什么是操作系统)
    • 2.简述处理机的两种状态
    • 3.简述操作系统的层次结构
    • 4.简述中断和异常异同
    • 5.简述系统调用
    • 6.大内核和微内核
  • 二、进程管理
    • 1.简述进程与线程
    • 2.简述进程和程序的区别
    • 3.进程通信方式
    • 4.进程的5状态模型及转换过程
    • 5.进程的调度算法
    • 6.进程同步和互斥
    • 7.死锁
    • 8.银行家算法
    • 9.死锁定理
    • 10.饥饿和死锁的区别
    • 11.什么是临界区?解决临界区问题需要什么条件?
    • 12.用户级线程和内核级线程的区别?
    • 13.某计算机系统有两个cpu,每个cpu可两个线程(超线程),A、B、C三个程序在单个CPU上运行时间分别为:5、10、20ms。问当A、B、C在此系统上运行时,有哪几种可能,运行时间为多少?
  • 三、内存管理
    • 1.存储器管理应具有的功能
    • 2.将用户程序变为可在内存中执行程序的步骤
    • 3.程序的链接方式有哪些
    • 4.程序的装入方式有哪些
    • 5.覆盖技术和交换技术
    • 6.内存连续分配管理方式有哪些
    • 7.动态分区算法
    • 8.基本分页和请求分页存储管理方式
    • 9.页面置换算法
    • 10.页表和快表
    • 11.分段分页方式的比较
    • 12.在分页管理中,假定驻留集有m个块(初始块都为空),在长度为p的访问串中具有n个不同的页号(n > m),对于任意页面置换算法,求出缺页次数的上下限?
  • 四、文件管理
    • 1.文件的基本操作
    • 2.磁盘调度算法
    • 3.磁盘减少延迟时间的办法
    • 4.磁盘管理
    • 5.文件系统的层次结构
    • 6.文件逻辑结构
    • 7.文件物理结构
    • 8.文件存储空间的管理
  • 五、I/O设备
    • 1.I/O控制方式
    • 2.SPOOLING技术
    • 3.IO软件层次

一、计算机系统概述

1.简述操作系统的目标和功能(什么是操作系统)

  • 作为计算机资源的管理者
    • 处理机管理
    • 存储器管理
    • 文件管理
    • 设备管理
  • 为用户提供计算机软硬件的接口
    • 命令结构
    • 程序结构(系统调用)
    • GUI
  • 作为扩充机器存在,在裸机的基础上,增加了一层软件,增加了计算机的易用性和,方便用户使用,成为虚拟机器或扩充机器

2.简述处理机的两种状态

CPU只能执行两种性质的程序:操作系统内核程序、用户自编程程序。
内核程序是应用程序的管理者,为了严格区分两种程序,操作系统在具体实现上划分了用户态(目态)和核心态(管态),CPU在用户态下只能执行非特权指令,而在核心态下可以执行特权指令(I/O指令、置中断指令)

3.简述操作系统的层次结构

操作系统将各功能分别设置在不同的层次上,一些与硬件密切联系的,如时钟管理、中断模块、设备驱动等放在了底层;运行频率比较高的程序,如进程管理、存储器管理和设备管理等放在了上层。这两部分共同构成了操作系统的内核,这部分内容只允许在CPU核心态下工作。

4.简述中断和异常异同

  • 中断:也称为外中断,中断信号是来在CPU执行指令的外部,如I/O结束中断、时钟中断。

  • 异常:也称为内中断、陷入、例外,中断信号来源于CPU执行指令的内部,如非法操作码、地址越界、算数溢出、缺页异常等。

  • 中断的处理流程:关中断,保存断点,引出中断服务程序,保存现场和屏蔽字,开中断,执行中断服务程序,关中断,恢复现场和屏蔽字,开中断、中断返回。

5.简述系统调用

系统调用是操作系统提供给用户程序使用计算机软硬件资源的接口,操作系统统一管理计算机资源把用户从底层硬件编程中解放出来专注于应用层面的开发,提高了效率。

6.大内核和微内核

  • 大内核:将操作系统功能作为一个紧密结合的整体放入内核中,由于各模块共享信息,执行效率很高,但程序庞大,复杂,难以维护。
  • 微内核:将操作系统划分为小的、定义良好的模块,只有微内核这一个模块运行在内核态,其余模块运行在用户态下,因此无可避免的带来核心态和用户态之间的频繁切换,效率降低,但程序管理方便,可以执行好。

二、进程管理

1.简述进程与线程

在多道程序环境下,允许多个程序并发执行,失去了封闭性,拥有了间断性和不可重复性,为了更好的描述和控制,引入进程的概念,实现操作系统的并发性和共享性。
早期,进程在操作系统的中拥有独立的资源,但进程的切换会是计算机利用率下降,需要引入轻量级进程,就是线程。
进程与线程的区别:

  • 进程是资源的分配和调度单位,线程是CPU调度和分派单位
  • 线程依赖于进程,一个进程至少拥有一个线程
  • 进程拥有自己独立的地址空间,线程共享进程的地址空间
  • 进程是拥有系统资源的一个独立单位,线程不拥有资源
  • 进程间切换开销远大于线程
  • 多线程程序中一个线程崩溃,整个程序就崩溃了;多进程程序一个进程崩溃,不会影响其他进程

2.简述进程和程序的区别

  • 程序是静态的,进程是动态的;程序是永久的,进程是程序在数据集上的一次执行,是暂时的
  • 进程具有并发性,而程序没有
  • 进程是竞争计算机资源的单位,程序不是
  • 进程和程序不是一一对应的:一个程序可以对应多个进程(多个进程执行同一个程序);一个进程可以执行一个或多个程序

3.进程通信方式

  • 共享内存
  • 无名管道(半双工,只允许有亲缘关系的进程间,不存在磁盘结点,自存在内存,用完即毁)
  • 命名管道(半双工,存在磁盘结点)
  • 消息队列
  • 套接字
  • 信号

4.进程的5状态模型及转换过程

进程5状态:创建态、就绪态、运行态、阻塞态、终止态

操作系统创建进程后,进程从创建态转到就绪态,开始竞争CPU资源,当进程获得CPU,进程有就绪态转到运行态;当一个时间片到程序还没执行完,操作系统将进程从运行态转到就绪态;当进程请求I/O设备时,进程主动从运行态转到阻塞态;当I/O结束中断时,该进程从阻塞态转到就绪态,重新竞争处理机;当程序正常执行结束,进程进入终止态。

5.进程的调度算法

  • 先来先服务调度算法(非抢占,开销小,无饥饿,对短进程不利)
  • 最短作业优先调度算法(非抢占,开销大,会饥饿,对长进程不利)
  • 优先级调度算法(长时间没有被调度的进程可以提高优先级)
  • 时间片轮转调度算法(抢占式,开销小,无饥饿)
  • 最高响应比调度算法(非抢占,开销大,无饥饿)
  • 多级反馈队列调度算法(优先级递减,时间片递增,会饥饿,对IO型进程有利)

6.进程同步和互斥

  • 互斥量
  • 信号量
  • 事件
  • 临界区
  • 同步机制的4个准则
    • 空闲让进
    • 忙着等待
    • 有限等待
    • 让权等待

7.死锁

多个进程因为资源争抢而发生了循环等待,造成了死锁。
死锁发生的主要原因:

  • 计算机系统资源不足
  • 进程推进顺序不当

死锁发生的必要条件:

  • 互斥访问
  • 不剥夺
  • 请求和保持
  • 循环等待

8.银行家算法

银行家算法是一种避免死锁的算法,它的原理是避免系统进入不安全状态从而避免死锁。在分配资源之前,它会检查资源是否充足,如果充足,它会试分配资源,再检查此时系统是否处于安全状态,如果处于安全状态,那么就正式分配资源,否则拒绝分配资源。

9.死锁定理

资源有向图可以完全简化,也就是所有的边都可以消除,那么就不存在死锁

10.饥饿和死锁的区别

  • 进入饥饿的进程可以只有一个,但死锁进程必须大于两个
  • 处于饥饿的进程可以是一个就绪进程,但死锁进程一定是阻塞进程

11.什么是临界区?解决临界区问题需要什么条件?

  • 临界区:访问临界资源的那段代码,临界资源是一次仅允许一个进程使用的共享资源。
  • 进程进入临界区的调度准则:
    • 空闲让进:若临界区空闲,则一次仅允许一个进程进入
    • 忙着等待:如果已有进程进入临界区,则其他试图进入临界区的进程必须等待
    • 有限等待:进入临界区的进程要在有限时间内退出,以便让其他进程进入
    • 让权等待:如果进程不能进入临界区,则释放CPU资源,避免进程出现“忙等”现象

12.用户级线程和内核级线程的区别?

  • 用户级线程由应用程序负责,线程的切换在用户态下完成;内核级线程由操作系统内核负责,线程的切换在核心态下完成
  • 内核级线程是操作系统可感知的,用户级线程不可被感知
  • 用户级线程执行系统调用指令时将导致其所属进程被中断;而内核级线程只导致该线程被中断
  • 内核级线程才是CPU的分配单位

13.某计算机系统有两个cpu,每个cpu可两个线程(超线程),A、B、C三个程序在单个CPU上运行时间分别为:5、10、20ms。问当A、B、C在此系统上运行时,有哪几种可能,运行时间为多少?

超线程CPU线程的切换很快,但是并不具有线程间并行工作能力,任一时刻只能有一个线程运行

  • P0、P1、P2调度到同一个CPU上运行,完成这些程序的执行需要5+10+20=35ms
  • P0、P1调度到同一个CPU上运行,P2调度到了一个CPU上运行,完成执行P0、P1需要时间15ms,完成执行P2需要时间20ms,而两个CPU可以并行工作,所以完成这些程序的执行需要20ms
  • P0、P2调度到同一个CPU上运行,P1调度到了一个CPU上运行,完成执行P0、P2需要时间25ms,完成执行P1需要时间10ms,而两个CPU可以并行工作,所以完成这些程序的执行需要25ms
  • P1、P2调度到同一个CPU上运行,P0调度到了一个CPU上运行,完成执行P1、P2需要时间30ms,完成执行P0需要时间5ms,而两个CPU可以并行工作,所以完成这些程序的执行需要30ms

三、内存管理

1.存储器管理应具有的功能

存储器管理是为了给多道程序的运行提供良好的环境,方便用户使用存储器,提高存储器的利用率以及在逻辑上扩充存储器。

  • 内存的分配与回收
  • 地址变换(将逻辑地址变换为物理地址)
  • 扩充内存(通过虚拟存储技术,在逻辑上扩充内存)
  • 内存保护(保证在内存中的各作业都在自己的存储空间下运行,互不干扰)

2.将用户程序变为可在内存中执行程序的步骤

  • 编译:编译程序将用户程序编译成为若干个目标模块
  • 链接:将目标模块和相关库函数链接成一个完整的装入模块
  • 装入:由装入程序将装入模块装入内存中运行

3.程序的链接方式有哪些

  • 静态链接:在程序运行之前,将各个目标模块以及所需库链接成为一个完整的可执行程序,不在拆开
  • 装入时动态链接:将应用程序编译后所得一组目标模块在装入内存时,边装入边链接。
  • 运行时动态链接:在运行时,程序需要哪些模块,才对这些模块进行链接

4.程序的装入方式有哪些

  • 绝对装入:在编译时就知道程序将驻留内存的物理地址,编译程序产生含有物理地址的目标代码。
  • 可重定位装入:又称静态重定位,操作系统分配以某一地址为起始地址的连续内存,在装入时一次性完成地址转换,将程序指令的逻辑地址加上起始地址得到物理地址。
  • 动态运行时装入:装入模块装入内存时仍是相对地址,在程序执行过程中,访问到相应指令时才将相对地址转换为物理地址,这个过程需要依靠硬件地址变换机构

5.覆盖技术和交换技术

  • 覆盖技术,将内存分为一个固定区和若干个覆盖区,固定区存放最活跃的程序段,固定区中的程序不会在运行过程中调入调出;覆盖区中的程序段在运行过程中根据需要进行调入调出。
  • 交换技术,内存紧张情况下,将某些进程换出内存,称为挂起,但该进程的PCB仍驻留内存,换出的程序存放在磁盘上的对换区。
  • 区别:覆盖技术是同一个进程中,交换技术是在不同进程之间。

6.内存连续分配管理方式有哪些

  • 单一连续分配方式:内存分为用户区和系统区,单道程序独占用户区,无法用于多道程序,无外部碎片,有内部碎片
  • 固定分区分配方式:将内存用户空间分为若干个固定大小的分区,每个分区装一道作业,无外部碎片,有内部碎片
  • 动态分区分配方式:在进程装入内存时,根据进程大小和动态分区算法动态建立分区,无内部碎片,有外部碎片(可用紧凑技术解决)

7.动态分区算法

  • 首次适应算法:按空闲分区地址递增顺序排列
  • 最佳适应算法(用最小):按空闲分区容量递增排列
  • 最坏适应算法(用最大):按空闲分区容量递减排列
  • 临近适应算法:按空闲分区地址递增顺序排列,每次查找从上次查找结束地方开始。

8.基本分页和请求分页存储管理方式

  • 基本分页管理:是非连续存储管理的方案,把进程分页,各个分页离散的放入各个内存块中
  • 请求分页存储管理:是虚拟存储技术,利用局部性原理,不要求将程序全部调入内存,当访问的信息不在内存时,由操作系统将信息从外存调入内存;当内存空间不足时,将暂时不用的信息换出外存

9.页面置换算法

  • 最佳置换算法:优先淘汰最长时间不会被访问到的页面(要预知未来,无法实现)
  • 先进先出置换算法:优先淘汰最先进入内存的页面(Belady异常)
  • 最近最久未使用置换算法:优先淘汰最近最久未使用的页面(需要硬件支持,算法开销大)
  • 时钟置换算法:循环,淘汰访问位=0的
  • 改进型时钟置换算法:(0,0)(0,1)(0,0)(0,1)

10.页表和快表

  • 页表:是指逻辑地址的页号与所占主存块号的对应关系,用于地址转换工作
  • 快表:存放高速缓冲处理器的部分页表,与页表作用相同,但有了快表,如果命中,地址转换只需要一次访存,提高效率。

11.分段分页方式的比较

  • 分页是信息的物理单位,为实现离散式分配方式,以减少外部碎片,提高资源利用率;分段是信息的逻辑单位,其含有一组意义相对完整的语义
  • 的大小是固定的,由操作系统确定;的大小不确定,由程序员在编程中指出
  • 分页的地址空间是一维的,程序员只需要利用一个标记符;分段的地址空间是二维的,在确定一个地址时,不仅要给出段名还要给出段内地址。

12.在分页管理中,假定驻留集有m个块(初始块都为空),在长度为p的访问串中具有n个不同的页号(n > m),对于任意页面置换算法,求出缺页次数的上下限?

  • 缺页次数的下限为不同的页号数目n
  • 缺页次数的上限为访问串长度p(极端情况下,每访问一个页面都会缺页)

四、文件管理

1.文件的基本操作

文件属于抽象数据类型,操作系统提供系统调用,对文件进行创建、写、读、定位和截断

  • 创建文件:两个步骤,一、在文件系统中找到空间。二、在目录中创建新条目,记录文件名称、文件位置以及其他信息
  • 写文件:指明文件名称和写入的内容。根据文件名称在文件目录中搜索。系统维护一个写指针,每当发生写操作都会更新写指针
  • 读文件:指明文件名称和要读文件块的位置。根据文件名称在文件目录中搜索。系统维护一个读指针,每当发生读操作都会更新读指针。
  • 文件寻址:按条件搜索目录
  • 删除文件:先从目录中找到删除文件的目录项,使之成为空项,回收文件所占用的存储空间
  • 截断文件:保持文件属性不变,删除文件内容

2.磁盘调度算法

  • 先来先服务算法:按进程请求访问磁盘的先后次序进行调度
  • 最短寻道时间优先算法:访问与当前磁头所在磁道最近的磁道
  • 扫描算法(SCAN 电梯算法):优先考虑磁头的当前移动顺序,需要移动到要访问的最边缘磁道才会变换方向,类似与电梯
  • 循环扫描算法(CSCAN):与SCAN类似,但磁头移动到要访问的边缘磁道后,立即返回起点,返回途中不响应任何请求

3.磁盘减少延迟时间的办法

  • 交替编号:让编号相邻的扇区在物理上不相邻
  • 错位命名:让相邻盘面的扇区编号错位
  • 磁盘物理结构设计:(柱面号,盘面号,扇区号)

4.磁盘管理

  • 磁盘初始化:划分扇区,建立文件系统
  • 引导块:自举程序初始化
  • 坏块管理:标记管理坏块

5.文件系统的层次结构

  • 用户接口:发出具体文件操作指令
  • 文件目录系统:查找文件FCB
  • 存取控制模块:查看是否拥有权限
  • 逻辑文件系统:根据文件记录号,转为逻辑地址
  • 物理文件系统:逻辑地址转为物理地址
  • 设备管理模块:调用硬件
  • 辅助分配模块:分配和回收存储空间

6.文件逻辑结构

文件逻辑结构是说明文件内部如何被组织起来的

  • 顺序结构:顺序存放记录,增加删除一个记录比较困难
  • 索引结构:在索引表中存放记录,方便快速查找
  • 索引顺序结构:先将记录分组,在用索引表记录

7.文件物理结构

文件物理结构是说明文件是如何存放在外存上的

  • 连续分配:文件会在磁盘上占用一组连续的块
  • 链接分配:用链接或者文件分配表实现离散分配
  • 索引分配:每个文件家里一张索引表,如果索引表过大,可以采用多级索引的方式

8.文件存储空间的管理

是操作系统如何管理外存空闲块,空闲磁盘块的管理

  • 空闲表法(适用于连续分配)
  • 空闲链表法
  • 位示图法(离散、连续均使用)
  • 成组链接法(大型文件系统)

五、I/O设备

1.I/O控制方式

  • 程序直接控制方式:CPU发出I/O命令后不断轮询检查IO控制器状态
  • 中断驱动控制方式(中断程序):CPU发出I/O命令后可以去处理别的进程,当本次IO结束后设备控制器会向CPU发送中断信号,让他回来继续处理。
  • DMA方式(直接存储器存取):CPU发出IO命令后处理别的进程,本次IO结束后DMA控制器发出中断信号,数据传输单位是块
  • 通道控制方式(硬件):CPU发送IO命令后处理别的进程,通道会执行通道程序完成IO,完成后通道向CPU发送中断信号,数据传输单位是一组块

2.SPOOLING技术

用SPOOLING技术将独占式虚拟成为共享设备

  • 输入井和输出井(磁盘):在磁盘上开辟,输入井暂存IO设备输入数据;输出井暂存用户程序的输出数据
  • 输入缓冲区和输出缓冲区(内存):为缓和CPU和磁盘之间速度不匹配矛盾,输入缓冲区暂存有输入设备出入的数据,之后送给输入井;输出缓冲区暂存输出井送来的数据,之后送给输出设备
  • 输入进程和输出进程

3.IO软件层次

  • 用户层软件(库函数)
  • 设备独立性软件(系统调用)
  • 设备驱动程序
  • 中断处理程序
  • 硬件

你可能感兴趣的:(考研)