【保研面试】操作系统

博主暑期整理了一些操作系统相关的问题,以作保研面试之用。参考书籍:《操作系统教程(第5版)》费翔林、骆斌编著;王道考研操作系统书。整理过程中也借鉴了一些网上的其他资料,其中绝大部分已不可考,如有侵权,通知删除。


1.系统调用概念与机制

系统调用是指,计算机中的资源是有限的,为了更好地使用这些资源,需要对这些资源的访问进行控制。而系统调用就是对这些资源进行控制的一种方式。也就是说操作系统是使用这些资源的唯一入口,而这个入口就是操作系统提供的系统调用。一般地,系统调用都是通过中断实现的。
操作系统为用户态进程与硬件设备进行交互提供了一组接口——系统调用:1.把用户从底层的硬件编程中解放了出来;2.极大地提高了系统的安全性使用户程序具有可移植性;用户程序与具体硬件已经被抽象接口所替代。
在这里插入图片描述

2.操作系统结构

3.微内核

微内核是相对于大内核而言的。随着操作系统的发展越来越复杂,因此需要将一部分操作系统的功能移出内核,从而降低内核的复杂性。然后微内核里面就包含了一些核心的功能。

4.虚拟机

5.单道程序、多道程序

单道程序是指,所有程序一个一个排队执行,假如A被阻塞,B只能等待。此时CPU就只能空闲。
而多道程序是指,所有进程都可以穿插执行。如果A被阻塞,B进程可以趁这个时间占用CPU执行,这样可以提高CPU的利用率。

6.运行态、就绪态、阻塞态、新建态、僵死态

进程的状态。

7.进程、进程模型、线程、线程模型

进程是操作系统进行调度和资源分配的一个独立单位,线程是操作系统进行调度的一个最小的单位。因为进程的切换通常开销比较大,所以就引入了线程这个概念。线程可以独立地被调度,但是却不是独立拥有资源的。线程是进程的组成部分。

8.进程控制块 (PCB)

是进程管理和控制的最重要的数据结构,没一个进程都有一个PCB,在创建进程时,建立PCB,伴随进程运行的全过程,直到进程撤销而撤销。

9.陷入、抢占

10.FCFS进程调度、时间片轮转调度、优先级调度、多重队列调度、最短进程优先调度、两级调度

11.同步

多个进程的执行有一定的先后顺序。比如某个进程需要另一个进程提供的消 息,获得消息之前进入阻塞态;

12.互斥竞争条件

进程互斥是指若干进程因为相互争夺资源而产生的一种制约关系系。

13.临界区

并发进程中和共享变量有关的程序段。
临界资源
共享变量所代表的资源,这个资源一次只能供一个进程使用。

14.忙等算法

15.锁变量

16.原子操作

要么一次性全部都完成,要么全部都不完成的操作。不会被线程调度机制打断的操作, 运行期间不会有任何的上下文切换(context switch).

17.信号量

是一个整型的变量,用来解决同步互斥问题。如果信号量大于0,说明还有资源可以用,如果信号量小于等于0,说明已经没有资源可以用了。

18.管程

是一种程序结构,结构内的多个子程序(对象或模块)形成的多个工作线程互斥访问共享资源。

19.消息

用来传递信息,由一个结构体构成。 每一个WindowS应用程序开始执行后,系统都会为该程序创建一个消息队列,这个消息队列主要用来存放该程序创建的窗口的消息。

20.经典IPC问题

21.两阶段加锁

22.管道

是一种传统的进程通信方式,他是一个特殊的文件,是单向的。对于发送进程来讲,管道是输出文件,对于接受进程来讲,管道是输入文件。

23.I/O 的各种控制方式

①轮询控制方式:不断查询控制器的状态,看他是否就绪了,如果就绪了,那就进行IO操作。这种方式占用CPU,耗费资源。
②中断方式:如果要进行IO操作,那么设备控制器会通过中断请求线来发出中断信号。然后CPU响应这个中断信号,执行中断。
③DMA方式:设备和内存之间有一条数据通路,可以成块传送数据,无需设备干预。
④通道方式。

24.设备控制器

是CPU和设备之间的接口。

25.设备驱动程序

包括与用户设备相关的所有代码,其任务是把用户提交的IO逻辑请求转换为物理IO操作来执行。

26.SPOOLing

假脱机输入输出技术。spooling可以将一台物理上的设备虚拟成多个逻辑上的设备。它在磁盘上开辟了一个输入井/一个输出井,这是用来作缓冲的存储区域。
在这里插入图片描述

27.死锁

操作系统允许多个进程并发执行的时候,出现的进程永远被阻塞的现象。比如说,两个进程分别等待对方所占有的一个资源,那两者将永远处于等待状态。

28.死锁预防:

死锁产生的条件
互斥条件(临界资源是独占资源)
占有和等待条件(进程会占有资源不会主动释放,并且等待另一个进程放弃资源)
不剥夺条件(进程在使用完资源之前,不能让其他进程把资源强行夺走)
循环等待条件(存在一个循环等待链,每一个进程都在等待下一个进程所持有的资源)

死锁的预防方法就是破坏这上面的四个条件。
死锁检测:使用资源分配图:用圆圈代表一个进程,框代表一类资源。从进程到资源的箭头代表资源的请求边,从资源到进程的箭头代表资源的分配边。然后基于资源分配图,使用死锁定理来检测当前系统是否处于死锁状态。
死锁避免:避免死锁的发生,采用银行家算法可以避免死锁的发生。
银行家算法的基本思想:在资源分配之前,先检查一下这样的资源分配是否会使得系统处于不安全状态,如果是的话,那么就不进行资源分配,如果不是的话,那么久继续进行资源分配。
银行家算法的实现过程:

  • 系统内每一类资源总数向量resource=[r1,r2,…,r3]
  • 系统中每类资源当前可用数向量avaliable=[v1,v2,…,v3]
  • 每个进程对每个资源的最大需求矩阵claim[i,j]
  • 每个进程已经占有的各类资源数量的矩阵allocation[i,j]
  • 每个进程当前申请各类资源数量矩阵Request[i,j]

如果某一个进程要申请资源:

  • 若Request[i,]<=Need[i,],转步骤2,否则因为申请量超过最大需求量,进行出错处理。
  • 若Request[i,]<=Available[],转步骤3,否则申请量超过可分配量,进程等待。
  • 系统对进程请求的资源进行试探性分配
  • 转向执行安全性测试算法,如果返回安全状态,则承认试探性分配,否则抛弃分配。

29.磁盘

是一种直接存取存储设备。它的结构包括柱面/磁道/扇区等等。

30.磁盘调度算法

①先来先服务
②最短查找时间优先算法(总是先执行查找时间最短的请求)
③扫描算法(移动臂每次沿着一个方向扫描,一直扫描到头,再向相反的方向移动回来)
④电梯调度算法(对扫描算法的改进,移动臂不必扫描到头,没有访问请求的时候,移动臂不动,有访问请求的时候,移动臂根据需求进行移动)
⑤循环扫描算法(移动臂0->最大,0->最大)

31.虚拟存储器

在计算机中,实现部分装入,部分替换的功能,在逻辑上为用户提供一个比物理内存容量大得多的/可寻址的内存储器。书P216

32.地址重定位/地址映射/地址转换

将逻辑地址转换为物理地址的过程。

33.逻辑地址

是指由程序产生的与段相关的偏移地址部分。例如,你在进行C语言指针编程中,可以读取指针变量本身值(&操作),实际上这个值就是逻辑地址,它是相对于你当前进程数据段的地址,不和绝对物理地址相干。只有在Intel实模式下,逻辑地址才和物理地址相等(因为实模式没有分段或分页机制,Cpu不进行自动地址转换);逻辑也就是在Intel 保护模式下程序执行代码段限长内的偏移地址(假定代码段、数据段如果完全一样)。应用程序员仅需与逻辑地址打交道,而分段和分页机制对您来说是完全透明的,仅由系统编程人员涉及。应用程序员虽然自己可以直接操作内存,那也只能在操作系统给你分配的内存段操作。

34.物理地址

是指内存中各物理存储单元的地址从统一的基地址进行的顺序编址。物理地址又称绝对地址,它是数据在内存中的实际存储地址。

35.固定分区

把内存分成若干固定大小的许多区域,每一个分区只装入一道作业。这些区域可以大小相同,也可以大小不同。

36.可变分区(动态分区)

不预先划分内存,而是在进程装入内存的时候,根据进程的大小动态建立分区。

37.交换

把处于等待状态的程序从内存移到甫存,把准备好竞争CPU的程序从甫存移到内存。

38.内碎片

某个分区内部的空间浪费。

39.外碎片

在动态分区的方法中,内存中会产生许多小的/没有被利用的碎片,这个被称为外部碎片。

40.首次适配法:(地址)

下次适配法、
最佳适配法:(容量)
最差适配法:(分配时从上次结束的位置开始查找)

41.分页

把内存空间/进程都分成大小相等的块。进程在执行的过程中,以块为单位申请主存中的空间。
分段:把用户进程分为不同的段,系统为每一个进程建立一个段表。

42.页表

为了便于在内存中找到每个进程的每个页面所对应的物理块,而建立的一个页表。每一个进程有一个页表,页表的第一部分是页号,第二部分是内存中的物理块号,第三部分是页内偏移。

43.页框

内存中的块被称为页框。进程中的块被称为页。外存中的块就被称作块。

44.多级页表

如果逻辑地址空间太大,那么可能会导致页表太大,占用空间太多的问题。多级页表提供了一个索引。二级页表他里面分为一级页号、二级页号

45.TLBs,翻译后援存储器(快表)

用来存放最近访问的页表项的副本, 可以加速地址变换的速度。与此对应, 内存中的页表常称为慢表。

46.页面替换算法

最近未使用页面替换算法(NRU):
先进先出页面替换算法(FIFO):先进来的先出去。
第二次机会页面替换算法、
时钟页面替换算法、
最久未使用页面替换算法(LRU):挑一个最近最长时间没有使用的页面进行淘汰。
软件模拟LRU算法 (NFU)、老化算法、

47.Belady异常

随着页面数量的增加,缺页中断率没有减少,反而增加

48.系统抖动

一个页面刚刚换入,就又被换出了。主要原因是,某一个进程频繁访问的页面数量,要多于给它分配的页面数量。

49.工作集模型、工作集

在某一个时间段内,进程所需要访问的页面的集合。

50.文件

一个文件是以计算机硬盘为载体的,存储在计算机中的一个信息的集合。

51.目录文件

文件目录和目录文件是同一种事物的两种称谓。从用途的角度来看称为文件目录,从实现的角度来看称为目录文件。

52.一些其他概念

字符设备文件、块设备文件、硬链接、符号链接、目录项、i-node、超级块、打开文件表、文件系统安装、块高速缓存、文件系统的性能、一致性检查、文件系统安全性与保护机制。

53.操作系统的目标和功能

(1)操作系统是计算机资源的管理者
处理机管理(进程控制、进程同步、进程通信、死锁处理、处理机调度)
存储器管理(提高内存利用率,内存的分配与回收、地址映射、内存保护与共享、内存扩充)
文件管理(计算机中的信息都是以文件的形式存在的)
设备管理(完成用户的I/O请求,方便用户使用设备、并提高设备的利用率)
(2)操作系统为用户提供使用计算机硬件系统的接口命令接口(用户通过控制台或终端输入操作命令,向系统提供各种服务要求)
程序接口(由 系统调用 组成,用户在程序中使用这些系统调用来请求操作系统为其提供服务)
图形接口 最常见的 图形用户界面GUI (最终还是通过调用程序接口实现的)
(3)操作系统用作扩充机器
没有任何软件支持的计算机称为裸机,实际呈现在用户面前的计算机系统是经过若干层软件改造的计算机。操作系统将裸机改造成功能更强、使用更方便的机器。我们将覆盖了软件的机器称为扩充机器或虚拟机。

54.内核态和用户态

在计算机系统中,通常CPU执行两种不同性质的程序:一种是操作系统内核程序;另一种是用户自编程序或系统外层的应用程序。内核程序是应用程序的”管理者”。“管理程序“可以执行一些特权指令,而”被管理程序“出于安全考虑不能执行这些指令。所谓特权指令,是指计算机中不允许用户直接使用的指令,如:I/O指令、置中断指令,存取用于内存保护的寄存器,送程序状态字到程序状态字寄存器等指令。

55.中断和异常

(1)中断的引入——为了支持CPU和设备之间的并行操作
中断也称外中断,指来自CPU执行指令以外的事件的发生,如设备发出的I/O结束中断、时钟中断等。这一类中断通常是与当前执行的指令无关的事件。
(2)异常的引入——表示CPU执行指令本身时出现的问题
异常也称内中断、例外或陷入,指源自CPU执行指令内部的事件,如程序的非法操作码、地址越界、算术溢出、缺页异常等。对异常的处理一般要依赖与当前程序的运行现场,不能被屏蔽。
(3)中断和异常的区别
在这里插入图片描述

(4)中断执行的流程
在这里插入图片描述

56.进程和线程的区别 / 进程和程序的区别

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值