【操作系统】常见简答题整理(更新完毕)

目录

    • 一、常见的为什么引入
    • 二、关于死锁
    • 三、关于进程、线程和程序
    • 四、内存管理
    • 五、文件管理
    • 六、设备管理
    • 七、几个常问的技术


【操作系统】常见简答题整理(更新完毕)_第1张图片

一、常见的为什么引入

1:为什么引入进程?

为了更好地控制和描述程序的并发执行,实现操作系统的并发性和共享性,提高系统资源的利用率系统吞吐量

定义:具有独立功能的程序在有关数据集的一个动态的执行过程,是资源分配的基本单位。

特征
结构特性:进程除了相应的程序段、数据段,还包含一个进程控制块PCB。
动态性:进程是程序的一次执行过程。进程有一定的生命周期,它必须由创建产生,由调度而执行,由撤销而消亡。
并发性:多个进程实体同时存在于内存中,且能在同一段时间内同时运行。
独立性:进程实体是一个能够独立运行,独立分配资源和独立接收调度的基本单位。
异步性:进程可按各自独立的、不可预知的速度向前推进。

引申:引起调度的时机?

1️⃣执行中的进程执行完毕或因某事不再继续执行。
2️⃣执行中的进程因提出I/O请求而暂停执行。
3️⃣在进程通信或同步过程中执行了某种原语操作。
4️⃣在剥夺式的调度中,比当前进程优先级更高的进程进入就绪队列。
5️⃣时间片轮转算法中,时间片用完。

2:为什么引入PCB?

为了管理和控制进程并发执行,协助进程完成状态转换

引申:PCB的成分?为什么说PCB时进程存在的唯一标识?

成分:
1️⃣ 进程描述信息:进程标识符、用户标识符。
2️⃣ 进程管理和控制信息:进程当前状态、进程优先级、进入内存时间和处理机占用时间。
3️⃣ 资源分配清单:程序段指针、数据段指针、堆栈段指针。
4️⃣ 处理机相关信息:通用寄存器值、状态字。

唯一标志:
在进程的创建、运行、撤销周期中,系统总是通过PCB对进程进行控制,即系统是根据PCB感知进程存在。

3:为什么引入线程?

为了减少进程并发执行过程中的时空开销,使操作系统具有更好的并发性

4:为什么引入同步机制?

由于多个并发执行的进程共享系统内存资源,需要多个进程协同合作完成某一项工作时,就产生了相互制约的关系。其中:
间接制约:多个进程要访问临界资源,从而产生了竞争的互斥关系。
直接制约:多个进程协同完成一项工作,存在执行顺序的要求,为同步关系。

四个原则
1️⃣空闲让进:临界区空闲,允许一个请求进入临界区的进程立即进入临界区。
2️⃣忙则等待:已有进程进入临界区,其他试图进入临界区的进程必须等待。
3️⃣有限等待:对请求进入临界区的进程,应保证能在有限时间内进入临界区。
4️⃣让权等待:当进程不能进入临界区时,应立即释放处理机,防止进程忙则等待。

引申:临界区、临界资源是什么?

临界资源: 必须互斥访问使用的资源。
临界区: 访问临界资源的那段代码

5:为什么引入管程?

大量分散的同步操作操作系统管理带来了麻烦,容易操作不当造成死锁,管程的特性保证了进程互斥,无需程序员自己实现互斥,降低了死锁发生的可能性。

6:为什么要引入重定位?

程序的逻辑地址与其所在内存中的物理地址无直接关系,编译时逻辑地址都是从0开始,程序地址都是相对地址,而在程序进入内存时,不可能总是从内存起始地址0开始,因此需要根据在其内存中的具体位置,将逻辑地址转换为物理地址,具体又分为装入时重定位和运行时重定位。

7:为什么引入I/O通道?

虽然在 CPU 和 I/O设备间增加了设备控制器后,已能大大减少CPU对I/O的干预,但当主机所配置的外设很多时,CPU的负担仍然很重。为此在 CPU 和 设备控制器之间又增加了通道。
主要是为了建立独立的I/O操作,不仅使数据的传送独立于CPU,而且也希望有关对I/O操作的组织、管理及结束处理尽量独立,以保证CPU有更多的时间去进行数据处理;或者说,是使一些原来由CPU处理的I/O任务转由通道来承担,从而把CPU从繁杂的I/O任务中解脱出来

8:为什么要在设备管理中引入缓冲技术?

缓和 CPU 和 I/O设备间的速度不匹配问题。
提高 CPU 和 I/O设备之间的并行性
减少CPU中断频率,放宽对中断响应时间的限制。
解决数据粒度不匹配的问题。

9:为什么要引入虚拟存储器?

提高系统的内存利用率和系统吞吐量。


二、关于死锁

1:什么是死锁

多个进程因为竞争资源执行时推进的顺序不当,引发的一种胶着状态,若无外力作用,这种状态将永远保持下去。

2:死锁的必要条件

互斥条件:进程要求对分配的资源进行排他性控制,即在一般时间内某资源仅为一个进程所占用。
不可抢占条件:进程所获得的资源在未使用完之前,不能被其他进程强行夺走,只能由获得该资源的进程自己释放。
请求和保持条件:进程已经保持了至少一个资源,但又提出了新的资源请求,而该资源已经被其他进程占有,此时请求进程被阻塞,但对自己已获得的资源保持不放。
循环等待条件:存在一种进程资源等待链,链中每个进程已获得的资源同时被链中下一个进程所请求。

3:死锁预防与死锁避免的区别

1️⃣死锁预防:通过设立一些限制条件,破坏死锁的一些必要条件,让死锁无法产生。
2️⃣死锁避免:在动态分配资源的过程中,用一些算法防止系统进入不安全状态。

4:死锁与饥饿的区别

1️⃣死锁的进程都处于阻塞态,饥饿的进程不一定处于阻塞态。
2️⃣死锁一定是多个进程,但不一定是全部,饥饿可能是只有一个进程。
3️⃣死锁一定是发生了循环等待,饥饿不一定。
4️⃣死锁进程等待是永远不会释放资源,饥饿进程可以释放资源,但等待时间无限。
5️⃣死锁无外力作用,永远无法推进,饥饿在很长时间可以推进。

5:死锁检测

对资源的申请和分配不限制,只要有剩余的资源就应把资源分配给申请者,操作系统要判断系统是否出现了死锁,当有死锁发生时设法解除死锁。


三、关于进程、线程和程序

1:进程与线程的区别

1️⃣调度性:传统的操作系统中拥有资源和独立调度的基本单位是进程,而引入线程的操作系统中,线程是调度的基本单位,而把进程作为资源拥有的基本单位。
2️⃣并发性:引入线程的操作系统中,不仅进程间可以并发执行,而且统一进程内的多个线程也可以并发执行。
3️⃣拥有资源:进程是拥有资源的基本单位,线程除本身必不可少的资源外,本身不具有资源,但可以访问其隶属进程的资源。
4️⃣开销:创建或撤销进程时,系统都要为之分配和回收资源;进程切换时,所要保存和设置的现场信息也要明显多于线程。

2:进程和程序的区别

1️⃣一个程序可以产生多个不同进程。
2️⃣进程是动态的,程序是静态的。
3️⃣进程是暂时的,程序是永久的。
4️⃣进程的组成包括程序段、数据段和进程控制块PCB。

3:现今操作系统申请CPU的基本单位?申请除CPU之外资源的基本单位是什么?

现今的操作系统中,线程是进行处理机调度的基本单位,也就是说申请CPU的基本单位,而申请除CPU之外的资源的基本单位仍是进程。
进程为线程提供运行资源并构成静态环境。引入线程后,同一进程中的所有线程共享进程所获得的主存空间和资源,操作系统可以在线程间进行快速切换,大大提高了系统的运行性能。

4:进程的创建

原因:用户登录、作业调度、系统提供服务、用户程序的应用请求。

过程
1️⃣为新进程分配一个唯一的进程标识符,并申请一个空白的PCB
2️⃣为进程分配资源,为新进程的程序数据,以及用户栈分配必要的内存空间;若失败,则阻塞。
3️⃣初试化PCB,主要包括初始化标志信息、处理机状态信息和处理机控制信息,以及设置进程优先级。
4️⃣如果进程就绪队列能够接纳新进程,就将进程插入就绪队列等待调度执行。

5:进程的切换

1️⃣保存处理机上下文,包括程序计数器和其他寄存器。
2️⃣更新PCB信息。
3️⃣把相应进程的PCB移入相应的队列,如就绪队列。
4️⃣选择另一个进程执行,并更新其PCB。
5️⃣更新内存管理的数据结构。
6️⃣恢复处理机上下文。

6:进程的阻塞

原因:向系统请求共享资源失败、等待某种操作完成、新数据尚未到达、等待新任务到达。

过程
1️⃣找到将要被阻塞进程的标识号对应的PCB。
2️⃣若该进程为运行态,则保护其现场,将其状态转为阻塞态,停止运行。
3️⃣把该PCB插入相应事件的等待队列,将处理机资源调度给其他就绪进程。

7:进程的唤醒

原因:进程所期待的事件出现、I/O完成、数据已到达

过程
1️⃣在该事件的等待队列中找到相应的进程的PCB。
2️⃣将其从等待队列中移出,并置其状态为就绪态。
3️⃣把该PCB插入就绪队列,等待调度程序调度。

8:父进程与子进程

1️⃣在操作系统,允许一个进程创建另一个进程,创建进程的进程称为父进程,被创建的进程为子进程。
2️⃣子进程可以继承父进程所拥有的资源,但不共享虚拟空间。
3️⃣子进程会申请一个空白的进程控制块PCB。
4️⃣父子进程可以并发进行,但不能使用同一临界资源。

9:进程切换与模式切换

1️⃣模式切换是处理机在内核态与用户态,可以在同一个进程中切换也可以在不同的进程中切换。
2️⃣进程切换是指CPU在不同进程之间切换
3️⃣进程切换必导致模式切换,反之不一定。

10:调度和切换

1️⃣调度是指决定资源分配给哪个进程的行为,是一种决策行为
2️⃣切换是指实际分配的行为,是一种执行行为
3️⃣一般有资源调度,有进程切换。

11:程序的局部性原理

局部性原理:大多数程序执行时呈现出局部性规律,即在一个较短的时间内仅使用程序代码的一部分,相应的程序所访问的存储空间也局限于某个区域。

时间局部性:一条指令执行后不久可能被再次执行,数据一旦被访问后,不久后数据可能被再次访问。
空间局部性:一旦程序访问了某个存储单元,不久后附近的存储单元也将被访问。

12:系统调用与库函数的区别

库函数是应用程序的一部分,可以运行在用户空间中;而系统调用是操作系统的一部分,是内核提供给用户的程序接口,由应用程序调用,通过预中断进入内核态,运行在内核空间中。许多库函数会使用系统调用来实现功能,没有用系统调用的库函数执行效率比系统调用高,因为系统调用需要内核态与用户态转化


四、内存管理

1:什么是抖动?如何解决?

页面置换过程中,刚刚换入主存的页面马上就要换出,刚刚换出主存的页面马上就要换入,这种频繁的页面调度导致系统的效率急剧下降的现象称为抖动。

解决:
1️⃣ 修改页面置换算法
2️⃣ 降低多道程序的数量
3️⃣ 终止该进程
4️⃣ 增加物理内存的容量

2:虚拟存储器是?如何实现?

定义:具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。

注意:虚拟存储器的容量与物理内存无关,而受限于计算机的地址结构和可用磁盘容量。

实际容量为:min{内存、外存容量之和,CPU寻址范围}

最大容量为:CPU寻址范围,即计算机地址结构

实现:首先需要扩充页表增加状态位、访问标志、修改标志和外存地址等标志。同时,还需要实现请求调页技术页面置换技术。请求调页技术是通过缺页中断技术机制将进程所需页面及时调入内存。页面置换技术是在内存空间紧张时,选择被淘汰的页面,以腾出内存的空间。

基本特征

1️⃣ 多次性:作业只要部分装入内存便可启动执行,其余部分可待需要时,再调入内存,即一个作业分多次装入内存。
2️⃣ 对换性:在程序运行期间,允许将那些暂时不使用的程序和数据从内存调至外存的对换区,待需要时再将它们换入。
3️⃣ 虚拟性:只是逻辑上扩充内存容量,而实际的内存容量没有扩大。

3:程序链接的三种方式

静态链接:在程序装入之前,先将目标模块及它们所需的库函数链接成一个完整的可执行程序,以后不再拆开。
动态链接的定义:指用户的各程序段不是在程序开始运行前就链接好,而是程序装入或运行过程中,当发现要调用的程序未链接时才进行链接。
装入时动态链接:将用户源程序编译后所得到的一组目标模块,在装入内存时,来用边装入边链接的链接方式。
运行时动态链接:对某些目标模块的链接,是在程序执行中需要该模块时,才对它进行链接。其优点是便于修改和更改,便于实现对目标模块的共享。

4:外存分配的几种方式,以及优缺点?

连续分配

指为每个文件分配一组相邻的物理块,并将文件中的信息按逻辑顺序依次存放在这些物理块中。

优点:可以随机访问磁盘顺序访问速度快。
缺点:要求有连续的存储空间,容易产生外部碎片,磁盘利用率低,且不利于文件的增长扩充。

链接分配

指通过每个磁盘块上的链接指针,将同属于一个文件的多个离散的盘块链接成一个链表

优点:不要求连续的存储空间,磁盘利用率极高,有利于文件的增长扩充。
缺点:只适合顺序访问,不适合随机访问;文件数据块之间靠指针链接,耗费额外存储空间,可靠性差。

索引分配

为每个文件分配一个索引块,再把分配给文件的所有盘块号都记录在该索引块中。

优点:既支持顺序访问,又支持随机访问,查找效率高,便于文件的删除。
缺点:索引表占用一定的存储空间。

5:段页式存储管理时如何形成的,从地址空间划分、地址结构及地址转换等方面简述其原理。

形成: 分页系统能有效提高内存的利用率,而分段系统能反映程序的逻辑结构,便于段的共享与保护,将分页与分段两种存储方式结合起来,就形成了段页式存储管理方式

地址空间划分: 在段页式存储管理系统中,作业的地址空间首先被分成若干个逻辑分段,每段都有自己的段号,然后再将每段分成若干个大小相等的页。对于主存空间也分成大小相等的页,主存的分配以页为单位

地址结构: 段页式系统中,作业的地址结构包含三部分内容:段号、页号、页内偏移量,程序员按照分段系统的地址结构将地址分为段号和段内位移量,地址变换机构将段内位移量分解为页号和页内偏移量

地址转换: 首先用段号S 与 表长TL 进行比较,若S未越界,于是利用段表起始地址和段号来求出段所对应的段表项在段表中的位置,从中得到该段的页表起始地址,并利用逻辑地址中的段内页号p来获得对应页的页表项位置,从中读出该页所在的物理块号,再利用块号b和页内地址来构成物理地址。


五、文件管理

1:如何实现文件共享?

1️⃣基于索引结点的文件共享
在文件的目录中填上需要共享文件的索引结点的序号,在索引结点中加上用户计数。
2️⃣基于符号链的文件共享
建立一种特殊的链接文件,内容为需要共享文件的路径和名字,访问该文件时,根据路径找到该文件。

2:顺序文件、索引文件、索引顺序文件和HASH文件

顺序文件:

一系列记录按照某种顺序排列所形成的文件。
优点:当需要对文件进行批量存取时,它的存取效率最高。
缺点:当文件较大时,记录的检查效率较低。记录的增加和删除比较困难。

索引顺序文件:

索引文件和顺序文件的结合,将顺序文件中所有记录分为若干个组,并为顺序文件建立一张索引表,在索引表中为每组第一个记录建立一个索引项,其中包含有该记录的键值和指向该记录的指针

检索过程:
在对索引顺序文件检索时,先充分利用用户所给关键字去检索索引表,找到该记录所在记录组中第一个记录的表项,从中得到该记录组第一个记录在主文件中的位置;再用顺序查找去查找主文件,找到所要求的记录。


六、设备管理

1:如何在设备管理中现实缓冲技术?

1️⃣用专门的硬件缓冲器、

2️⃣内存缓冲区,在内存中画出一个专用的缓冲区,以便存入输出的数据。

2:SPOOLing技术

1️⃣SPOOLing技术是同时联机外围操作技术的简称,它是关于慢速字符设备如何与计算机主机进行数据交换的一种技术,又称假脱机技术。
2️⃣在多道程序环境下,利用多道程序中的一道或者两道程序来模拟脱机输入\输出中的外围控制机的功能,以达到 “脱机” 输入\输出的目的。
3️⃣利用这种技术可以把独占设备转变为共享的虚拟设备,从而提高独占设备的利用率和进程的推进速度

3:具有I/O通道的系统分配设备的过程是什么?

1️⃣分配设备:
根据进程给出的物理设备名找系统设备表SDT,从中找出改设备的设备控制表DCT。检查设备状态字段,若设备忙或本次分配会导致系统进入不安全状态,则将该进程插入设备等待队列;否则将设备分配给该进程。
2️⃣分配控制器:
根据DCT中指向控制器的指针找到对应的COCT表,检测控制器状态字段,则将请求进程插入控制器等待队列;否则,将控制器分配给请求进程。
3️⃣分配通信:
通过COCT找到对应的通道控制表CHCT,检查通道状态则将该请求进程放入通道等待队列;否则将通道分配给进程。
只有当设备、控制器和通道都分配成功,才算成功,然后便可启动I/O设备进行数据传送。


七、几个常问的技术

1:何为批处理系统,以及优点

用户准备好要执行的程序、数据和控制作业执行的说明书,由操作员输入到计算机系统中等待处理,操作系统选择作业并按作业说明书的要求自动控制作业执行

优点:
1️⃣ 多道作业并行工作,减少CPU空闲时间
2️⃣ 作业成批输入,减少I/O次数
3️⃣ 作业调度可以合理选择装入主存的作业,充分利用计算机系统资源
4️⃣ 作业执行过程不再访问低速设备,而直接访问高速的磁盘设备,缩短执行时间

2:多道程序设计

1️⃣ 允许多个程序同时进入一个计算机系统的主存并启动进行运算的方法,即计算机内存中可以同时存取多道独立程序,它们都处于开始和结束之间。
2️⃣ 从宏观上看是并行的,多道程序都处于运行中,并且都没有结束
3️⃣ 从微观上看是串行的,多道程序轮流使用CPU交替执行
4️ 根本目的是为了提高CPU的利用率,充分发挥计算机系统的并行性

3:分时技术

把处理机的运行时间分为很短的时间片,按时间片轮转把CPU分给各联机作业使用;如果某个作业分配的时间片计算未完成,该作业就中断调入就绪队列等待下轮继续计算,此时把CPU给下一个进程。

你可能感兴趣的:(操作系统,笔记,考研,操作系统,电子科大,820,电子科技大学)