简答题 - wolai 笔记

1.死锁

死锁产生的原因:是资源竞争和进程推进顺序不当
死锁产生的四个必要条件为:互斥条件、请求和保持条件、不剥夺条件、环路等待条件
死锁检测算法:每种类型一个资源的死锁检测算法通过检测有向图是否存在环来实现,从一个节点出发进行深度优先搜索,对访问的结点进行标记,如果访问了已标记的结点,就表示有向图存在环,也就是检测到死锁的发生。
死锁的处理策略
  • 预防死锁:不允许死锁发生,静态策略或破坏死锁的四个必要条件;
  • 避免死锁:不允许死锁发生,动态策略,避免系统进入不安全状态(银行家算法)
  • 死锁的检测和解除:允许死锁发生,系统负责检测出死锁并解除

2.进程、线程

  1. 调度:在传统的操作系统中,拥有资源和独立调度的基本单位都是进程。在引入线程的操作系统中,线程是独立调度的基本单位,进程是拥有资源的基本单位在同一进程中,线程的切换不会引起进程的切换。在不同进程中的线程进行线程切换,会引起进程切换。
  2. 拥有资源进程都是拥有资源的基本单位,而线程不拥有系统资源(也有一点儿必不可少的资源),但线程可以访问其隶属进程的系统资源。
  3. 并发性:在引入线程的操作系统中,不仅进程之间可以并发执行,而且多个线程之间也可以并发执行。
  4. 系统开销:由于创建或撤销进程时,操作系统需要分配或回收资源,因此操作系统所付出的开销远大于创建或撤销线程时的开销。
  5. 地址空间和其他资源(如打开的文件)进程的地址空间之间互相独立,同一进程的各线程间共享进程资源,某些进程内的线程对其他进程不可见。
  6. 通信方面:进程间通信(IPC)需要进程同步和互斥手段的辅助,以保证数据的一致性,而线程间可以直接读/写进程数据段(如全局变量)来通信。

3.管程实现互斥同步

管程对共享变量进行互斥操作,管程的数据只能被管程内的函数所访问一个进程只有通过调用管程内的函数才能进入管程访问共享数据。每次仅允许一个进程在管程内执行某个函数。换句话说就是封装了临界区访问。(说白了就是靠条件变量的操作管理实现的互斥使用资源)

4.操作系统

区别:
  • 分布式操作系统中若干计算机相互协同完成工作(分布控制)。
  • 网络操作系统主要是各资源的共享,以及各计算机之间的通信(集中控制)。
  • 分时操作系统共享一个主机,及时处理命令。
联系:可以连接多台计算机,且可以相互通信,充分实现资源利用。

5.虚存中局部和全局页表置换算法

局部页表置换算法主要功能是当缺页中断发生时,需要调入新的页面。当内存已满时,根据先进先出算法、最近最近未使用算法以及最佳置换算法等算法进行置换在内存中的物理页面。但是局部页表置换算法不能动态分配,所以引入了全局置换算法。
与局部置换算法不同的是,全局置换算法是当发生一个缺页中断时,被置换的页面可以是在其它进程当中,各个并发进程竞争的使用物理页面。

6.请求分段地址重定位

  1. 由逻辑地址得到段号、页号、页内偏移量
  2. 段号与段表寄存器中的段长度比较,检查是否越界
  3. 由段表始址、段号找到对应段表项
  4. 根据段表中记录的页表长度,检查页号是否越界
  5. 由段表中的页表地址、页号得到查询页表,找到相应页表项
  6. 由页面存放的内存块号、页内偏移量得到最终的物理地址
  7. 访问目标单元

7.逻辑结构、物理结构

文件的逻辑结构:从用户观点出发看到的文件组织形式;是用户直接处理的数据结构。从逻辑结构上看,一种是有结构的记录式文件,另一种是无结构的流式文件。有结构的记录式逻辑结构通常有顺序文件、直接文件和索引文件。
文件的物理结构是:从计算机的角度出发,文件在外存上的存放组织形式。
通过对文件的不同分配方式再转换,文件系统通过符号名和FCB组成的地址来一一对应磁盘的物理地址。

8.逻辑请求到物理请求的转换方法

  1. 用户点击文件索引
  2. 在资源管理,请求一个文件读(写)入内存操作
  3. FCB中找到对应的物理结构,读(写)磁盘
  4. 磁盘指向对应的柱面、盘面、磁道号、块号,开始请求内存。

9.磁盘调度算法

先来先服务(FSFC):优点是公平、简单、每个请求都能依次得到处理,不会出现某一进程的请求时间长期得不到满足;缺点是平均寻道时间长,适用于磁盘IO请求数量较少的场合
最短寻道时间优先(SSTF),其要求访问的磁道与当前磁头所在的磁道距离近,缺点是优先级低的进程会发生“饥饿”现象。因为新进程请求到达,且其所要访问的磁道与磁头当前所在的磁道距离较近,必先优先满足。
循环扫描算法(CSCAN),只有磁头移动到最边缘的磁道时才可以改变磁头移动方向。首先自里向外访问,当磁头移到最外的磁道并访问后,磁头返回到最里的欲访问磁道,即将最小磁道号紧接着最大磁道号构成循环,继续徜环扫描直至无更外的磁道需要访问时,才将磁臂换向为自外向里移动:下一个访问的磁道在当前位置内为距离最近者;直至再无更里面的磁道要访问。优点是弥补扫描算法的不足。

10.存储管理器

目的:将内存空间合理的划分和有效的动态分配;
问题:碎片处理,内存空间不足,划分FCB占内存。

11.设备分配的基本类型和基本策略

静态分配策略:将其要求的内存全部一次性分配
动态分配:在运行过程中,根据需求分配内存;
基本策略:既要充分发挥设备使用效率,又要避免由于不合理的分配造成死锁,还要做到设备无关性

12.名词解释

(1)操作系统及其功能

管理计算机硬件屿软件资源的计算机程序。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。
操作系统的功能:处理机管理、存储器管理、设备管理、文件管理、操作系统与用户之间的接口、现在操作系统的新功能。
特性:并发性、共享性、虚拟性、异步性

(2)内存地址重定位

根据内存当前的情况将装入模块到内存适当位置,装入时对目标程序指令和数据的修正过程叫做重定位。

(3)SPOOLing技术

为了缓和CPU的高速性与IO设备的低速性的矛盾而引入脱机输入、输出技术,利用外围控制机,将低速IO设备上的数据传送到高速的缓存上。

(4)共享设备和独占设备

独占设备:进程互斥地访问这类设备,即系统一旦把这类设备分配给某进程后,便由该进程独占,直到用完释放。电磁能够的独占设备有打印机、磁带机等;
共享设备:共享设备就是可以被别的计算机使用的设备。

(5)物理地址和逻辑地址

在有地址变换功能的计算机中,访内指令给出的地址(操作数)叫逻辑地址,也叫相对地址。要经过寻址方式的计算或换才得到内存储器中的实际有效地址,即物理地址。

(6)中断

指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。

(7)虚拟设备

通过虚拟技术将一台独占设备虚拟成多台逻辑设备,供多个用户同时使用,通常把这种经过虚拟的设备称为虚拟设备。

(8)调度

  • 高级调度(作业调度):按照某种规则,从后备队列中选择合适的作业调入内存。
  • 中级调度(内存调度):按照某种队则,从挂起队列中选择合适的进程将其数据调回内存。
  • 低级调度(进程调度):按照某种规则,从就绪队列中粗安泽一个进程为其分配处理机

(9)LRU算法

最近最少使用,是一种常用的页面置换算法,选择最近最久未使用的页面予以淘汰。该算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来所经历的时间t,当须淘汰一个页面时,选择现有页面中其t值最大的,即最近最少使用的页面予以淘汰。

(10)动态重定位

在程序运行过程中要访问数据时,再进行逻辑地址与物理地址的变换(即在逐条指令执行时完成地址映射。一般为了提高效率,此工作由硬件址映射机来完成。硬件支持,软硬件结合完成)硬件上需要一对寄存器支持。

(11)寻道时间

活动头磁盘在读写信息前,将磁头移动到特定磁道所需要的时间

(12)用户态线程

在用户态线程中,有关线程管理的所有工作都由应用程序完成,内核意识不到线程的存在。

(13)内存碎片

已经分配给某进程,却不能被利用的内存空间。

(14)临界区

访问临界资源的那段代码,又称为临界段。

13.抖动

抖动(也称颠簸,Thrashing)是在虚拟存储技术中出现的一个问题;
刚换出的页面马上又要换入主存,刚刚换入得页面马上又要换出主存。
工作集指在某个时间间隔内,进程要访问集合的页面。经常被使用的需要在工作集中,而长期不用的要从工作集中discard;

14.系统调页策略

(1)预调页策略:以预测为基础,将预计不久后便会被访问的若干页面,预先调入内存。
优点:一次调入若干页,效率较好:
缺点:预测不一定准确,预调入的页面可能根本不被执行到。主要用于进程的首次调入,由程序员指出应该先调入那些页面。
(2)请求调页策略:运行中需要的页面不在内存,便立即提出请求,由OS将其调入内存。
优点:由请求调页策略所确定调入的页,一定会被访问:比较容易实现。
缺点:每次仅调入一页,需花费较大的系统开销,增加了磁盘的IO的启动频率

15.内存分配

有三种文件分配方案:连续分配、链接分配、UNIX incode,请说明下列的文件访问需求,采用哪种分配方案最合适?
(1)大文件顺序访问连续分配,每个文件占据磁盘上的一组连续的块,适合文件顺序存储;
(2)大文件直接访问UNIX inode,是索引分配的一种,可以将所有的数据块指针集中到索引块中,直接访问文件;
(3)小文件直接访问链接分配,可以直接访问文件,适合小文件直接访问。

16.缺页中断

系统发现所要访问的页面不在内存中,这时就产生一个缺页信号,即缺页中断
其过程为:
  • 首先转到操作系统的缺页中断处理程序,
  • 然后程序根据该页在外存的位置将其调入内在中。
  • 在调页过程中,如果内存中有空闲空间,则程序只把缺页装入任何一个空闲存储块中,再对页表中的相应表现进行修改即可;
  • 若内存中无空闲空间,则必须先淘汰内存中的某些页面,若被淘汰页曾被修改过,则要将其写回外存。
缺页中断与硬件中断的区别:缺页中断在指令的执行期间产生和处理,一条中断指令可以产生多个缺页中断。

17.文件目录项、文件目录、目录文件

文件目录项是为了使文件控制块与文件一一对应,而其中的每一个文件控制块被称为文件目录项。
为实现“按名存取",须建立文件名与辅存空间中物理地址的对应关系,体现这种对应关系的数据结构称为文件目录
所谓目录文件是指存放文件的一组相关信息的集合。
它们三者之间的关系是包含与被包含的关系,但也存在区别,目录文件存储有文件目录项,文件目录也包含文件目录项的相关信息,但是目录文件并不包含全部的文件目录。

18.虚拟存储

作用:内存在计算机中的作用很大,电脑中所有运行的程序都需要经过内存来执行,如果执行的程序很大或很多,就会导致内存消耗殆尽。
为了解决这个问题,操作系统中运用了虚拟内存技术,即拿出一部分硬盘空间来充当内存使用,当内存占用完时,电脑就会自动调用硬盘来充当内存,以缓解内存的紧张

19.银行家算法

银行家算法是著名的死锁避免算法
安全序列:如果系统按照这种序列分配资源,则每个进程都能顺利完成。
核心思想:在进程提出资源申请时,先预判此次资源分配是否会导致系统进入不安全状态。如果会进入不安全状态,就暂时不答应这次请求,让该进程先阻塞等待。
银行家算法步骤
  • 检查此次申请是否超过了之前声明的最大需求数
  • 检查此时系统剩余的可用资源是否还能满足这次需求
  • 试探着分配,更改各数据结构
  • 检查当前的剩余可用资源是否能满足某个进程的最大需求,如果可以,就把该进程加入安全序列,并把该进程持有的资源全部回收。

20.动态分区和固定分区分配

动态分区和固定分区分配方式相比动态分区内存空间的利用会高一些,但是总会有存在分散比较小的空闲分区,即外部碎片。它们存在已分配分区之间,不能充分利用,可以采用拼接技术加以解决。

21.文件目录

目录是一种数据结构,用于标识系统中的文件及其物理地址,供检索时使用。文件目录有三种组织形式,单级目录结构,两级目录结构,多级目录结构(树形目录结构)。
把用户所给定的文件名与文件目录中个目录项中的文件名逐一比较,找到该指定文件的文件控制块,在文件控制块的使用信息类中找到文件的创建日期。

22.进程、子进程创建

进程和它创建的子进程(父进程和子进程):父进程创建子进程,系统会为子进程分配一块独立的地址空间,将可执行文件或其他任何必要的动态链接库文件的代码和数据装载到该地址空间中;子进程被创建之后,父进程的全局变量和静态变量等会复制到子进程的地址空间中。父进程和子进程各自拥有独立的地址空间,两个进程结束时互不相干。
进程和它创建的线程:属于同一个进程的不同线程会共享进程内存空间中的全局区和堆,而不共享私有的线程空间。因此,对于同一进程的不同线程来说,每个线程的局部变量都是私有的,而全局变量、局部静态变量、分配的堆变量都是共享的。当进程结束时,其创建的线程也将结束,将释放进主程中的所有线程的资源。

Comment