考研复试问答(操作系统部分)
1、什么是操作系统?
2、操作系统的基本特征和功能?
答:基本特征:并发:两个或多个事件在同⼀时间间隔内发⽣
虚拟:把⼀个物理上的实体变为若⼲逻辑上的对应物
异步:进程的执⾏以不可预知的速度向前推进
功能:资源管理(处理机管理,存储器管理,⽂件管理和设备管理),作为⽤户与计算机硬件的接⼝(命令接⼝,程序接⼝),扩充机器(覆盖了软件)。
3、硬实时和软实时操作系统的概念?
答:硬实时操作系统:动作必须在规定的时间范围内发⽣。
软实时操作系统:能接受偶尔违反时间规定且不会引起永久性的损害。
4、简述系统调⽤的过程?
答:正在运⾏的进程传递系统调⽤参数,执⾏访管指令从⽤户态转换为内核态,并将返回地址压栈留作备⽤,接下来CPU执⾏相应的内核态服务程序,最后返回⽤户态继续执⾏进程。
5、库函数与系统调⽤的区别?
答:库函数属于语⾔或应⽤程序的⼀部分,运⾏在⽤户空间,系统调⽤是操作系统的⼀部分,运⾏在内核空间中,是内核为⽤户提供的程序接⼝。
6、⼤内核和微内核的概念?
答:⼤内核:将操作系统的主要功能模块都作为⼀个紧密联系的整体运⾏在核⼼态,从⽽为应⽤程序提供⾼性能的系统服务。
微内核:将内核中最基本的功能保留在内核,将不需要在核⼼态执⾏的功能迁移到⽤户态执⾏,从⽽降低内核设计复杂度,接⼝更加清晰,维护代价更⼩,系统更加可靠。
7、进程的特征?
答:动态性:进程是程序的⼀次执⾏,具有⽣命周期
并发性:内存中的多个进程能在⼀段时间内同时运⾏
独⽴性:进程是⼀个独⽴拥有资源和独⽴接受调度的基本单位
异步性:进程按各⾃独⽴的、不可预知的速度向前推进
结构性:进程由程序段、数据段和进程控制块组成
8、 进程和线程的区别?
答:调度:传统操作系统中,进程是CPU调度的基本单位,在引⼊线程的操作系统中,线程是CPU调度的基本单位。
拥有资源:在传统操作系统或者引⼊线程的操作系统中,进程都是拥有资源的基本单位,⽽线程⼏乎不拥有系统资源,但线程可以访问其⾪属进程的系统资源。
并发性:进程之间可以并发执⾏,线程之间也可以并发执⾏。
系统开销:由于创建或撤销进程时,操作系统都要为之分配或回收资源,如内存空间/IO设备等,所以操作系统为进程所付出的开销远⼤于线程。
地址空间和其他资源:进程之间的地址空间互相独⽴,同⼀进程内的线程共享进程的资源。
9、线程/进程空间是什么?
答:进程空间:⽤户进程所能看到的内存空间,包括静态存储区,栈区,堆区,常量区,代码区。
线程空间:线程运⾏必不可少的资源,主要是栈和寄存器。
10、进程和程序的区别?
答:进程是程序的⼀次执⾏过程,⼀个动态的概念,存在⽣命周期。进程映像包括程序、数据、PCB。
程序是⼀组有序的指令集合,是⼀个静态的概念,是永久存在的。
11、作业与进程的联系与区别?
答:进程是对程序的执⾏过程的描述,是资源分配的基本单位。作业是⼀组⽤户要求计算机完成的任
务。其主要区别如下:
1、在⽤户向计算机提交作业后,系统将它放⼊外存中的作业等待队列中等待执⾏。⽽进程只要被创建,总有相应的部分存在于内存中。
2、⼀个作业可由多个进程组成,且必须⾄少由⼀个进程组成,反过来则不成⽴。
12、进程的三种基本状态,以及之间转换的过程?
答:就绪->运⾏,获得处理机;运⾏->就绪,处理机被剥夺;运⾏->阻塞,进程需要的资源(除处理机)没准备好;阻塞->就绪,进程需要的资源(除处理机)已准备好。
13、进程有哪些⾼级通信⽅式?
答:共享存储(互斥访问)、消息传递(直接通信⽅式即消息队列、间接通信⽅式即信箱通信)、管道通信(半双⼯通信)。
14、有哪些进程调度算法?
答:先来先服务,短作业优先,优先级调度,⾼响应⽐优先,时间⽚轮转,多级反馈队列。
15、临界资源和临界区的概念?
答:临界资源是⼀次仅允许⼀个进程使⽤的资源,临界区是进程中访问临界资源的那段代码。
16、为禁⽌两个进程同时进⼊临界区,同步机制应遵循的准则是什么?
答:1.空闲让进 2.忙则等待 3.有限等待 4.让权等待
17、什么是原⼦操作?具有什么特点?
答:概念:完成某种功能且不会被分割,不会被中断执⾏的操作序列。
特点:1.处于操作系统的最底层,是最接近硬件的部分
2.程序的运⾏具有原⼦性,只能⼀⽓呵成
3.程序的运⾏时间都较短,⽽且调⽤频繁
18、操作系统中的信号量的概念?
答:信号量是⼀种实现进程同步和互斥的⼯具。
整型信号量:⼀个表⽰资源个数的整型量。
记录型信号量:⽤⼀个结构体实现,⾥⾯包含了表⽰资源个数的整型量和⼀个等待队列。
19、什么是PV操作?
答:P、V 操作是⼀对低级通信原语,信号量的值只能由这两条原语改变。P操作相当于申请资源,V操作相当于释放资源。P操作和V操作必定成对出现,但未必在同⼀个进程中。
20、什么是管程?由哪些基本特性?
答:定义:管程是由共享数据及定义在其上的操作组成的软件模块,这组操作能同步进程和改变管程中的数据。实质是个抽象类,没有实体。
特性: 1.局部于管程的数据只能被管程内的过程所访问(安全性)
2.进程通过调⽤管程内的过程访问共享数据(封装性)
3.多个进程对管程的访问是互斥的(互斥性)
21、死锁的定义是什么?死锁产⽣的必要条件?
答:死锁是指多个进程因竞争资源⽽造成的⼀种互相等待的现象,若⽆外⼒作⽤,它们都将⽆法向前推进。
必要条件:互斥条件,请求和保持条件,不剥夺条件,循环等待条件。
22、死锁形成原因?死锁的处理⽅法?
答:形成原因:⾮剥夺资源的竞争和进程的不恰当推进顺序
处理⽅法: 1.死锁预防:破坏产⽣死锁的四个必要条件中的⼀个或者⼏个
2.避免死锁:在资源的动态分配过程中,⽤某种⽅法去防⽌系统进⼊不安全状态
3.死锁的检测和解除:系统及时检测出死锁地发⽣,然后采取某种措施解除死锁(资源剥夺法,撤销进程法,进程回退法)
23、介绍下银⾏家算法?介绍下安全性算法?
答:银⾏家算法:1.检查此次申请是否超过了之前声明的最⼤需求数
2.检查此时系统剩余可⽤资源能否满⾜此次请求
3.试探着分配,修改各数据结构
4.⽤安全性算法检查此次分配是否会导致系统进⼊不安全状态
安全性算法:1.检查当前剩余可⽤资源是否能满⾜某进程的最⼤需求,若可以则将该进程加⼊安全序列,并回收该进程持有的资源
2.不断重复上述过程,看最终能否所有的进程都加⼊安全序列
24、什么是饥饿?和死锁的区别?
答:概念:由于操作系统对某类资源的分配策略不公平导致某些进程长时间等待的情况。
区别:数量:饥饿状态的进程可以只有⼀个;死锁状态进程⾄少有两个
状态:饥饿状态的进程可以是就绪进程;死锁状态进程⼀定是阻塞进程
一块操25、存储器管理应具有的功能?
答:1、内存的分配和回收 2、地址转换 3、扩充内存空间 4、存储保护
26、常⽤存储保护⽅法有哪些?
答:1、在CPU中设置⼀对上、下限寄存器
2、采⽤重定位寄存器(基址寄存器)和界地址寄存器(限长寄存器)
27、程序链接⽅式有哪些?程序的装⼊⽅式有哪些?
答:链接⽅式(形成逻辑地址):1.静态链接:将各⽬标模块及库函数链接成⼀个完整的可执⾏程序
2.装⼊时动态链接:编译得到⼀组⽬标模块,边装⼊边链接
3.运⾏时动态链接:程序执⾏中需要⽬标模块才对⽬标模块链接
装⼊⽅式(完成地址变换):1.绝对装⼊:编译时就知道程序将要驻留在内存的物理地址
2.静态重定位:地址变换在装⼊时⼀次完成,之后不再改变
3.动态重定位:装⼊模块在内存中是相对地址,地址转换在程序执⾏时才进⾏,可在内存中移动位置
28、什么是覆盖技术?什么是交换技术?两者有什么区别?
答:覆盖技术:把⽤户空间分成⼀个固定区和若⼲覆盖区,将经常活跃的部分放在固定区,其余部分按调⽤关系分段,放在外存中的段在需要调⽤前,系统再将其调⼊覆盖区,替换覆盖区中原有的段。
交换技术:把处于等待状态的程序从内存移到辅存,把内存空间腾出来,这⼀过程⼜称换出;把准备好竞争cpu运⾏的程序从辅存移到内存,这⼀过程⼜称换⼊。
主要区别: 1、交换主要是在不同进程(或作业)之间进⾏ 2、覆盖主要在同⼀个程序或进程中进⾏
29、连续分配管理⽅式有哪⼏种?
答:1、单⼀连续分配:适合单道程序 2、固定分区分配:适合多道程序,简单。 3、动态分区分配:根据内存实际需要,动态地为进程分配空间。
30、动态分区分配算法有哪些?
答:⾸次适应算法,最佳适应算法,最坏适应算法,邻近适应算法。
31、什么是拼接技术?
答:拼接技术/紧凑技术:移动所有已分配区到存储器的⼀端,将其余空闲分区合并为⼀个⼤的空闲分区。
32、什么是块/物理块?什么是页⾯?什么是页表?
答:块/物理块:将主存空间划分为⼤⼩相等且固定的区域,这些区域被称为块。
页⾯:进程中的块称为页,为了便于地址转换,页⾯⼤⼩应是2的整数幂。
页表:⽤于在内存中到进程的每个页⾯所对应的物理块的索引表。
33、分页管理⽅式和分段管理⽅式有什么区别?
答:⽬的:页是信息的物理单位,分页是为了实现离散分配⽅式,提⾼内存利⽤率;段是信息的逻辑单位,分段是为了能更好地满⾜⽤户的需要。
长度:页的⼤⼩固定且由系统决定,段的长度不固定且决定于⽤户所编写的程序。
维度:分页管理的地址空间是⼀维的,分段管理的地址空间是⼆维的(段号和段内偏移量)。
碎⽚:分页管理有内部碎⽚,⽆外部碎⽚,分段管理有外部碎⽚,⽆内部碎⽚。
共享和动态链接:分页管理不容易实现共享和动态链接,分段管理容易实现共享和动态链接。
34、什么内部碎⽚?什么是外部碎⽚?
答:内部碎⽚:系统分配给进程的存储空间中未被利⽤的部分。
外部碎⽚:内存中由于太⼩⽽难以利⽤的空闲分区。
35、什么是虚拟存储器?为什么要引⼊虚拟存储器?
答:虚拟存储器是⼀种借助于外存空间,从⽽允许⼀个进程在其运⾏过程中部分地装⼊内存的技术。之所以引⼊虚拟存储管理⽅式,是为了在逻辑上扩充内存。
36、什么是局部性原理?
答:1.时间局部性:程序对某存储单元的⼀次访问和下次访问,可能集中在⼀个较短时间内。
2.空间局部性:程序在⼀段时间内所访问的存储单元,可能集中在⼀个较⼩区域内。
37、传统存储管理器的特征?虚拟存储管理器的特征?
答:传统存储管理器:⼀次性:作业必须⼀次性全部装⼊内存后,才能开始运⾏
驻留性:作业被装⼊内存后,就⼀直驻留在内存中
虚拟存储管理器:多次性:允许作业分多次调⼊内存运⾏
对换性:允许作业在运⾏过程中换⼊换出
虚拟性:从逻辑上扩充内存的容量
38、有哪些页⾯置换算法?
答:最佳置换算法(OPT),先进先出置换算法(FIFO),最近最久未使⽤(LRU)算法,Clock置换算法(LRU 算法的近似实现)。
39、有哪些页⾯分配策略?
答:固定分配局部置换,可变分配全局置换,可变分配局部置换。
(固定分配和可变分配指驻留集⼤⼩不变和可变;局部置换指缺页时只能和本进程的物理块进⾏置换,全局置换指缺页时还可与操作系统的空闲块或者其他进程的物理块进⾏置换)
40、什么是抖动?抖动的主要原因是什么?
答:抖动指频繁发⽣缺页,进⾏页⾯调度的现象。
抖动的主要原因是某个进程频繁访问的页⾯数⽬⾼于可⽤的物理页框数⽬。
41、什么是⽂件?什么是⽂件系统?⽂件系统的功能?
答:⽂件是以计算机硬盘为载体的存储在计算机上的信息集合。
⽂件系统即⽂件管理系统,是操作系统中负责管理和存储⽂件的软件。
⽂件系统功能:1.对⽤户⽽⾔,⽂件系统的功能包括实现对⽂件的基本操作、⽂件共享和⽂件保护
2.对系统⽽⾔,⽂件系统的功能包括管理与磁盘的信息交换,完成⽂件逻辑结构和物理结构的互相转换,组织⽂件在磁盘上的存放以及磁盘调度
42、打开⽂件的过程?
答:⽤户进程⾸次使⽤⽂件时,使⽤系统调⽤open将指明⽂件的FCB从外存复制到系统打开⽂件表的⼀个表⽬中,并将该表⽬的索引返回给⽤户进程,然后进程打开⽂件表中会增加相应的表⽬,并通过指针与系统打开⽂件表中的表⽬相连。
43、软链接和硬链接的区别?
答:软链接就是把到达共享⽂件的路径记录下来,当要访问⽂件时,根据路径寻⽂件。
硬链接就是多个FCB的索引指针指向⼀个索引结点。
44、⽂件的逻辑结构分类?索引⽂件和索引顺序⽂件的区别?
答:⽆结构⽂件(流式⽂件)
有结构⽂件(记录式⽂件):1.顺序⽂件 2.索引⽂件 3.索引顺序⽂件 4.散列⽂件
区别:索引⽂件每个记录对应⼀个索引表项(类似索引查);索引顺序⽂件每组记录对应⼀个索引表项(类似分块查)
45、什么是⽂件分配表(FAT)?
答:⽂件的显式链接分配把⽤于链接⽂件各物理块的指针显式地存放在内存的⼀张链接表中,每个表项中存放对应块的下⼀块链接指针。(每个磁盘对应⼀张FAT)
46、有哪些⽂件分配⽅式?⽂件存储空间管理有哪些⽅法?
答:⽂件分配⽅式:连续分配,链接分配(隐式链接,显式链接),索引分配(单级索引,多层索引,混合索引)
⽂件存储空间管理:空闲表法,空闲链表法,位⽰图法,成组链接法。
47、操作系统中磁盘调度的⽬的和算法?哪⼏种不会导致磁臂黏着?
答:磁盘调度的⽬标是使磁盘的平均寻道时间最少。
调度算法:先来先服务(FCFS:First Come First Serve),最短寻道时间优先 (SSTF:Shorted Seek Time First) ,扫描算法(SCAN)==电梯调度,循环扫描算法(CSCAN)
不会导致磁臂黏着的算法只有先来先服务
48、操作系统如何被加载?
答:计算机⾸先从rom中加载⼀个⾃举装⼊程序,⾃举装⼊程序再加载完整的⾃举程序,⾃举程序完成初始化cpu和内存等⼯作,然后将操作系统加载到ram,再跳转到起始地址,从⽽开始操作系统的运⾏。
49、I/O系统的层次划分?
答:⽤户层I/O软件、设备独⽴性软件、设备驱动程序、中断处理程序、硬件
50、⾼速缓存存储器cache和缓冲区的区别?
答:存放数据:cache存放的是低速设备上的某些数据的副本;缓冲区存放的是低速设备传送给⾼速设备的数据或者是⾼速设备传送给低速设备的数据
通信过程:若⾼速设备访问的数据不在cache中,则需要访问低速设备;⾼速设备和低速设备的通信都要经过缓冲区,⾼速设备不会直接访问低速设备
51、什么是设备独⽴性?怎么实现?
答:概念:设备独⽴性是指应⽤程序独⽴于具体使⽤的物理设备。
实现:在系统中设置⼀张逻辑设备表(LUT),⽤于将逻辑设备名映射为物理设备名
52、⽂件区缓冲算法?
答:在主存上设⽴⼀⽚缓冲区,外部设备与处理机的数据交互都经过缓冲区,这样外部设备和处理机就都不⽤互相等待。
单缓冲:磁盘输⼊缓冲区和CPU处理⼯作区数据并⾏,缓冲区搬运到⼯作区单道
双缓冲:缓冲区搬运到⼯作区和CPU处理⼯作区数据分别和磁盘输⼊缓冲区并⾏
53、缓冲区的特性?
答:没写满,不允许读;没读空,不允许写
54、内核态和⽤户态的理解?为什么要区分⽤户态和内核态?
答:特权:内核态与⽤户态是操作系统的两种运⾏级别,⽤户态只能执⾏⾮特权指令,核⼼态可以执⾏除了访管指令外的所有指令
转换:⽤户态转核⼼态只能通过中断实现;核⼼态转⽤户态通过⼀个特权指令将程序状态字标志位设置为⽤户态
原因:为了安全性。在cpu的⼀些指令中,有的指令如果⽤错,将会导致整个系统崩溃。分了内核态和⽤户态后,当⽤户需要操作这些指令时候,内核为其提供了API,可以通过系统调⽤陷⼊内核,让内核去执⾏这些操作。
55、页表存放在内存还是磁盘上?
答:单级页表:页表是全部在内存的
多级页表:⾼层页表(相对级别⽐较⾼的)放在内存,部分底层页表在内存,另外的⼀些就被塞在磁盘,被⾼层页表点名之后,才调⼊内存。
56、操作系统中⽤到哪些数据结构?
答:1.LRU算法:堆栈
2.进程调度:队列
3.空闲内存:链表
4.FAT⽂件系统:树
5.磁盘空闲分区:链表
6.银⾏家算法:矩阵
57、PCB包含的内容?如果进程创建PCB失败会怎么样?如果进程成功创建PCB但没有分配运⾏需要的内存资源会怎么样?
答:PCB包含进程标识符信息,处理机相关信息,进程调度信息。
PCB是进程存在的唯⼀标志,创建PCB失败则创建进程失败
进程创建PCB成功之后,没有得到进程运⾏所需要内存资源,进⼊阻塞状态
58、操作系统的性能指标?
答:吞吐率,响应时间,可靠性,并发度
发布评论