操作系统思考题
第一章 操作系统
1
在计算机中系统,操作系统有哪两个重要作用?
管理系统中的各种资源
为好友提供友好界面
2
根据操作系统的地位作用 ,请给出操作系统的非形式化的定义
操作系统是位于硬件层之上,所有其他系统软件层之下的一个系统软件,使得管理系统中的各种软件和硬件资源得以充分利用,方便用户使用计算机系统。
3
操作系统引入的目标是什么?
为了方便有效的使用软件
4
什么叫“假脱机“?
作业由读卡机到磁带机的传输、结果由磁带机到打印机的传输,由通道完成,这种非联机也非脱机的方式。
5
多核系统主要解决哪两个问题?
6
操作系统有哪四个特征、基本特征是?
并发性、共享性、异步性(不确定性)、虚拟性
基本特性:并发、共享
7
程序的并发性具体体现在哪三个方面?
(程序和操作系统两两并发)
用户程序和用户程序之间并发执行
操作系统和操作系统之间并发执行
用户程序和操作系统之间并发执行
8
程序并发和并行有什么区别?
并行要求微观上同时,即在绝对的同一时刻有多个程序同时向前推进;
并发不要求微观上同时,只需要宏观上看多个程序都在向前推进。
9
什么是资源共享性?
指操作系统与多个用户程序共有系统中的各种资源,这种共享是在操作系统的控制下实现的。
10
程序运行的异步性
程序执行结果的不确定性:同一程序、相同的输入、在相同环境下,可能产生不同结果
执行时间的不确定性:多道程序执行是以异步方式进行什么时候、什么顺序、所需时间均不确定。
11
什么是虚拟,如何体现虚拟?
虚拟是指把一个物理上的实体变成若干个逻辑上的对应物
通过分时使用 ,在一个CPU上同时执行多道程序(多道程序同时使用一台打印机等)
13
多道批处理操作系统具有哪两个特性?
多道:内存中存在多个正在处理的作业,而且外储存器输入井中还有多个尚待处理的作业。
成批:作业逐批的进入系统,逐渐批的处理,逐批的离开系统。作业与作业之间的过渡由操作系统控制,无须用户干预。
14
分时操作系统具有哪三个主要特征?
多路性 :一个主机可以和多个终端相连。
交互性 :系统以对话的方式为各个终端用户服务。
独占性 :每个终端用户实际上都拥有完全属于自己的虚拟机。
15
实时操作系统应该具有哪两个特征?
及时性 :能够对外部请求作出及时的响应和处理,实时操作系统要求响应速度,但整个响应速度是一个相对的量
可靠性 :与其他类型的系统相比,实时操作系统更加注重其稳定性和可靠性。
16
分布式操作系统除了网络操作系统的特征外,还具有那些特征?
统一的操作系统
资源的进一步共享
可靠性
透明性
17
从透明性和资源共享两个方面说明网络操作系统与分布式操作系统的差异?
资源共享:在网络操作系统中,有与HOST上的操作系统不统一,因而一个计算任务不能由一台HOST迁移到另一台HOST上处理。分布式操作系统因为HOST的操作系统界面一致,作业可以由一台HOST迁移到另一台HOST上处理。
透明性:网络用户能够感觉到本地的HOST于非本地HOST在地理位置上的差异。而分布式操作系统所有的HOST构成一个完整的,功能更强大的计算机系统,操作系统掩盖了不同HOST在地理位置上的差异
18
操作系统具备哪些基本功能?
处理机管理
存储器管理
设备管理
文件管理
作业管理
20
中断与程序并发之间有什么关系?操作系统何时获得控制权?
中断是程序并发的必要条件。如果没有中断,操作系统不能获得系统控制权,无法按调度算法对处理机进行重新分配,一个程序将一直运行到结束而不会被打断。
发生中断后获得控制权
21
系统栈有哪些作用?根据用途说明堆与栈的差别?
保护中断现场
保存操作系统子程序间相互调用的参数、返回值、返回点、局部变量。
差别:栈是一块按后进先出规则访问的存储区域,用来实现中断嵌套(保存调用参数和返回断点);堆虽然是一块存储区域,但是对堆的访问是任意的,没有后进先出的要求,堆主要用来为动态变量分配存储空间。
22
操作系统中把处理机划分成哪两个状态?它们分别可以执行哪类指令?两个状态如何转换?
管态、目态
管态:执行硬件所提供的全部命令(包括特权和非特权指令)
目态:只能执行非特权指令
处理机由目态转换为管态的唯一途径是中断。
管态转换为目态可以通过修改程序状态字来实现。
23
操作系统提供给用户程序什么接口?
作业级接口
程序接口
第二章 进程、线程和作业
1
什么是多道程序设计?为什么要引入多道程序设计?
允许多个程序同时进入一个计算机系统的主存储器并启动进行计算的方法
引入多道程序设计是为了提高计算机系统资源的利用率
2
引入多道程序设计主要解决了哪些问题?
提高程序利用率
提高内存利用率
提高处理器利用率
表达程序内在的并行性
3
引入多道程序设计需要解决什么问题?
处理器资源管理问题
内存资源管理问题
设备资源管理问题
4
什么叫进程?
进程是具有一定独立功能的程序关于一个数据集合的一次运行活动
5
进程有哪三个基本状态?并说明这三个基本状态是何时转换的?
运行态、就绪态、等待态
就绪 => 运行:获得处理机
运行 => 就绪:剥夺处理机
运行 => 等待:申请资源未得到,启动IO
等待 => 就绪:得到资源,IO中断
6
什么是PCB?
进程控制块(Process Control Block)
是用来标识进程存在的数据结构,其中包含系统管理进程所需要的全部信息
7
操作系统进程分配的基本单位是什么?
进程是操作系统资源分配的基本单位
8
进程有几部组成?
进程控制块和程序,其中(程序包括代码和数据)
9
什么叫进程映像?
进程的程序(代码和数据)被叫做进程映像。
10
什么叫做系统开销?
一般是运行操作系统程序、对系统进行管理所花费的时间和空间。
11
进程分为哪两类?
系统进程和用户进程
12
什么叫做守护进程
这类进程属于操作系统的一部分,他们运行操作系统程序,完成操作系统的某些功能。
13
进程有哪些特性?
并发性 :可以与其它进程一道向前推进;
动态性 :动态产生、消亡,生存期内状态动态变化;
独立性 :一个进程是可以调度的基本单位;
交往性 :同时运行的进程可能发生相互作用;
异步性 :进程以各自独立,不可预知的速度向前推进;
结构性 : 每个进程有一个PCB。
14
下面程序运行过程中,操作系统共创建几个进程(实验一):
main(){ fork(); fork(); fork(); }
8个进程(2的N次方个进程,N: fork() 函数的个数)
15. 在程序设计中,用fork()系统调用创建一个子进程,如何区分父进程和子进程?
main(){ int pid; pid=fork(); if(pid==0){ /*代码(1)*/ } else{ /*代码(2)*/ } }
在上述程序中,代码(1)和代码(2)哪 一部分在父进程执行、哪一部分在子进程执行?
16
详细阐述系统调用fork()创建子进程的基本过程。
a) 子进程PCB
b) 子进程的进程空间
c) 子进程的代码
d) 子进程的PC等寄存器的值
等等。
17
进程和程序有什么联系和差异?
程序是构成进程的组成部分之一,一个进程存在的目的就是执行其所对应的程序。
差别 :
程序是静态的;进程是动态的。
程序可以长期保存;进程具有生命周期,创建后存在,撤销后消亡。
一个程序可以对应多个进程,一个进程只能执行一个程序。
18
什么是线程?为什么要引入线程?
进程内一个相对独立的执行流称为线程。
因为当处理器由一个进程切换到另一个进程时,整个上下文都要发生变化,系统开销较大,显得笨重,相关进程间的耦合度差。
19
用图形表示进程与线程的区别?
20
从现实角度看有哪两类基本线程?
用户级别线程
核心级别线程
22
用户级别线程在处理机什么状态实现的?核心级别线程在处理机什么状态下实现的?
用户线程----目态
核心线程-----操作系统
23
什么叫作业?
用户要求计算机系统为其完成计算机任务的集合称为作业。
24
分析作业、进程、线程三者的关系。
一个作业被调入内存执行时可能要为其创建多个进程
进程是资源分配的基本单位,一个进程可能对应若干个线程
线程是处理器调度的基本单位
第三章 中断与处理机调度
-
什么叫做中断,中断系统包括哪两个部分?
-
在程序运行过程中出现某些紧急事件,必须中止运行当前正在运行的程序,转去处理此事件,然后再恢复原来运行的程序,这个过程成为中断。
-
中断装置和中断处理程序统称为中断系统
-
-
中断装置有哪些作业用?
-
检查是否有中断事件发生;
-
若有中断发生,保护好被中断 进程的断点 及现场信息,以便进程在适当时候能恢复执行;
-
启动操作系统的中断处理程序。
-
-
中断装置发现并响应中断有哪些基本步骤?
-
识别中断源
-
保护现场
-
引出中断处理程序
-
-
中断可以分为哪两大类?
-
强迫性中断:这类中断事件是正在运行的程序所无不期望的。 特点:是否发生、什么时候发生事先无法知道。
-
自愿性中断:这类中断是程序中有意识安排的,执行访管指令引起的。 特点:具有必然性,而且发生位置固定。 目的:要求系统提供服务。
-
-
强迫性中断有哪些?
-
时钟中断
-
输入输出中断
-
控制台中断
-
硬件故障中断
-
程序错误中断
-
-
什么叫做中断向量?
-
中断处理程序运行环境(PSW)
-
入口地址(PC)
-
-
操作系统为每个进程分配了哪两个类型的栈?有什么用途?
-
用户栈:保存函数之间相互调用的参数、返回断点、局部变量、返回值。
-
系统栈:保存函数之间相互调用的参数、返回断点、局部变量、返回值;保存中断现场(PSW和PC)。
-
-
什么叫中断续元?
用户自编的中断处理程序
-
根据程序错误中断的性质,有哪两种处理策略?
-
只能由系统处理的中断
-
可以由用户处理的中断
-
-
处理机调度需要解决哪三个问题?
按照
-
什么原则分配处理器
-
什么时候分配处理器
-
如何分配处理器
-
-
什么叫做CPU阵发期?
进程对处理器一次连续使用称为CPU阵发期。
-
什么叫周转时间?
作业等待时间与处理时间之和
-
什么叫(平均)带权周转时间?
周转时间 = 完成时间 - 到达时间 带权周转时间 = 周转时间 / 服务时间
平均周转时间 = 周转时间 / 进程数.
平均带权周转时间 = 带权周转时间 / 进程数.
-
什么叫响应时间?
从第一个提交请求到产生第一个响应所用时间
-
为什么说发生进程切换期间一定发生中断?
进程切换指从正在运行的进程中收回处理器,让待运行进程来占有处理器运行。实质上就是被中断运行进程与待运行进程的上下文切换。
-
什么叫做剥夺式调度?什么叫做非剥夺式调度?
-
剥夺式:就绪进程可以从运行进程手中抢占CPU
-
非剥夺式:就绪进程不可以从运行进程手中抢占CPU。
-
-
反馈排队调度算法有哪些特点?
-
短进程优先处理
-
设备资源利用率高
-
系统开销小
-
-
什么叫做交换?交换的目标是什么?
-
交换是进程在内存和外存储器之间的调度
-
目标:缓解内存空间等资源紧张的矛盾、减少并发度以降低系统开销。
-
主要目标:控制并发度
-
-
为什么要实施中级调度?
引入中级调度的主要目的是为了提高内存利用率和系统吞吐量。将内存中的某些进程暂时交换到外存储器,待以后系统并发度较低时再调回内存。
-
什么是低级调度、中级调度、高级调度?各自的职能是什么?
-
低级调度:负责分派处理器的调度,也称处理器调度; 职能:使被选中的进程真正进入运行状态。
-
中级调度:介于低级调度与高级调度之间的调度; 职能:负责进程在内存和外存之间进行交换,以缓解内存资源紧张的矛盾。
-
高级调度:又称作业调度; 职能:负责将作业由输入井调入内存,并为其创建作业控制进程。
-
-
什么是实时调度?按发生的规律分,有哪两类实时任务?
-
实时调度:满足实时任务各自时间约束条件的调度。
-
分类:随机性实时任务、周期性实时任务
-
-
简述处理器调度的过程
-
保存下降进程的现场
-
选择将要运行的进程
-
恢复上升进程现场
-
第四章 互斥同步与通信
1
程序顺序执行有哪些特性?
连续性、封闭性、可再现性
2
程序并发执行有哪些特性?
间断性、非封闭性、不可再现性
3
什么叫做与时间有关的错误?有时间有关的错误产生的原因是什么?
与时间有关的错误:由于具体交叉的形成与进程的推进速度有关,而速度是时间的函数,因而将这种错误称为与时间有关的错误。
产生原因:两个进程同时对一个变量进行操作,一个进程对变量的操作仅做了一部分,另一个进程的中途插入使得变量处于一种不稳定的状态。
4
什么叫做临界区?什么叫做临界资源?
临界区:访问共享变量的程序段
临界资源:一次只允许一个进程使用的资源
5
什么叫做进程互斥?请写出进程互斥的基本框架。
进程互斥:多个进程不能同时进入关于同一组共享变量的临界区域,否则可能发生与时间有关的错误
基本框架:
do { entry section //进入控制部分 临界区 exit section //退出控制部分 其余代码 } while (1);
6
实现进程互斥,临界区管理应该满足哪三个正确性原则?
互斥性、进展性、有限等待性
7
什么叫做忙式等待?其与阻塞式等待有哪些区别?
忙式等待:不进入等待状态的等待
区别: 阻塞式等待---主动放弃CPU;忙式等待---不主动放弃CPU,尽管CPU可能被剥夺;
8
什么叫做合作进程
有相互逻辑关系的进程
9
什么叫做进程同步
一组进程,为了协调其推进速度,在某些点处需要相互等待或者唤醒,进程之间这种相互制约的关系称为进程同步 (进程间的相互作用形式)
10
请给出信号量类型的定义。
“信号量”是一个具有非负初值的整型变量,并且有一个队列与它关联
11` 信号量变量的初值有什么要求。
初值必须是非负整数
同步的信号量初值一般为0
互斥的信号量初值一般为1
12
什么叫做原语?
一段不可间断执行的程序称为原语
13
说出初值分别是0、1、n(>1的值)时信号量的作用。
0为同步
1为互斥
N为子资源个数
14
在Linux操作系统中,sem_wait(sem_t *s) 和sem_post(sem_t *s)分别表示对信号量的什么操作?
sem_wait(sem_t *s):P操作
sem_post(sem_t *s):V操作
15
Linux系统中采用共享内存进行进程间通信的一般步骤。
共享存储区的建立
共享存储区的附接
共享存储区的分离
16
什么叫管程(Monitor ,Hansen管程)? 一个管程由哪几部分组成?
管程是一种高级同步机制,一个管程定义一个数据结构且能为并发进程所执行(在该数据结构上)的一组操作,这组操作能同步进程和改善管程中的数据。
一个管程由四个部分组成,它们是管程名称、局部与管程的共享数据的说明、对数据进行操作的一组过程和对该共享数据赋初值的语句
第五章 死锁和饥饿
1
什么叫死锁?在操作系统中,发生死锁有哪些特征?
在多道程序系统中,一组进程中的每一个进程均无限期的等待另一组进程所占有且不会释放的资源,这种现象称为死锁。
特征:
参加死锁的进程的数目至少为2
参与死锁的所有进程均等待资源
参与死锁的进程至少有2个占有资源
参与死锁的进程是系统中当前正在运行的进程集合的一个子集。
2
有哪些类型的死锁?
竞争资源引起的死锁
进程通信引起的死锁
其他原因引起的死锁
3
从资源分配过程的角度,说明死锁与饥饿的区别?
死锁进程处于等待状态,饥饿处于忙式等待;
死锁等待不会释放的资源,饥饿分配不到资源;
死锁循环等待,饥饿没有循环等待;
4
参与死锁进程的个数至少几个?如果产生饥饿,发生饥饿的进程至少几个?
至少2个;至少1个
5
请给出发生死锁的必要条件(Coffman条件)并加以解析。
资源独占(mutual exclusion):一个资源在同一时刻只能分配给一个进程。
不可抢占(non preemption):资源申请者不能强行从资源占有者手中夺取资源。
保持申请(hold-while-applying):进程在占有部分资源后还可以申请新的资源,而且在申请新资源时并不释放已占有资源。
循环等待(circular wait):存在一个进程等待序列进程申请的资源被下一个进程占有,头尾相连不断循环。
6
有三种死锁的处理方式?
死锁预防---静态的
死锁避免---动态的
死锁检测与恢复
7
死锁预防有哪两种基本策略?
预先分配策略:进程运行前一次性地向系统申请他所需要的全部资源。(系统要不全给,要不就不给)
有序分配策略:事先将所有资源类完全排序,当进程不占有任何资源时,他可以申请某一资源类中的任意多个资源实例。
8
请阐述预先分配法,它破坏发生死锁什么条件?
事先将所有资源类完全排序;
破坏了循环等待。
9
死锁避免中,什么叫做安全序列?
指系统中的所有进程能够按照某一种次序分配资源,并且依次地运行完毕,这种进程序列{P1,P2,…,Pn}就是安全序列。
10
死锁与饥饿有何相同点和不同点?
相同点:二者都是由于竞争资源而引起的。
不同点:
1)从进程状态考虑,死锁进程都处于等待状态,忙等待(处于运行或就绪状态)的进程并非处于等待状态,但却可能被饿死;
2)死锁进程等待永远不会被释放的资源,饿死进程等待会被释放但却不会分配给自己的资源,表现为等待时限没有上界(排队等待或忙式等待);
3)死锁一定发生了循环等待,而饿死则不然。这也表明通过资源分配图可以检测死锁存在与否,但却不能检测是否有进程饿死;
4)死锁一定涉及多个进程,而饥饿或被饿死的进程可能只有一个。
5)在饥饿的情形下,系统中有至少一个进程能正常运行,只是饥饿进程得不到执行机会。而死锁则可能会最终使整个系统陷入死锁并崩溃。
第六章 存储管理
1
静态等长分区是在什么时候划分的?大小有什么要求?空闲内存有哪些管理方式?
划分时间:在系统初始化时划分的。
大小要求:每个区域长 2的i 次方 B。
管理方式:位图、空闲页表、空闲页链
2
动态异长分区是什么时候划分的?其空闲区域表有什么特点?
划分时间:申请时划分
大小要求:按程序、程序单位、对象大小
空闲区域表特点:表中记录着所有当前未被进程占用的空闲区域。
3
掌握动态异长分区分配的四种算法:
最先适应算法
循环首次适应算法
最佳适应算法
最坏适应算法
4
动态异长分区去配是应该考虑哪四种情况?
Case 1: 前面区域空闲, 和前面区域合并;
Case 2: 后面区域空闲, 和后面区域合并;
Case 3: 前后均空闲, 和前后区域合并;
Case 4: 前后区域均被进程占用, 直接释放 。
5
在动态异长分区管理中,为什么要进行“紧凑”操作?
因为在动态异长分区存储分配可能形成很小的空闲区域,称为碎片,如果碎片很多,将会造成严重的存储资源浪费,因此要进行紧凑操作,移动所有的占有区域,以使所有的空闲区域连成一片。
6
在界地址管理方式中,覆盖技术和交换技术要解决什么问题?它们有什么不同?
覆盖和交换技术都是为了解决存储管理中内存太小问题。
区别:
覆盖技术主要用于同一作业或进程,在彼此无关的不同覆盖段进行;而交换主要在进程或作业间进行。
交换是以进程为基本单位的交换。
覆盖是以进程的互不相关的局部为单位进行的交换。
7
页表有什么作用?页表是什么时候创建的?应该包括哪些内容?
作用:用于记录进程的逻辑页面与内存页框之间的对应关系
创建时间:进程被创建时建立
包括:逻辑页号、页框号
8
操作系统采用分页式存储管理方式,每个进程一个页表还是整个系统共享一个页表?
一个进程一个页表
9
页式存储管理、段式存储管理、段页式存储管理其进程的逻辑地址形式。它们的进程地址空间分别是几维的?
页式存储管理:(一维地址)
段式存储管理:(二维地址)
段页式存储管理:(二维地址)
10
采用分别页式存储管理、段式存储管理、段页式存储管理三种方式,其分别需要访问几次内存?
页式存储管理:要访问两次内存。
第一次用来查找页表,将逻辑地址变换为物理地址;第二次完成真正的读写操作。
段式存储管理:要访问两次内存。
第一次用来查找段表,将逻辑地址变换为物理地址;第二次完成真正的读写操作。
段页式存储管理:需要访问三次内存。
11
操作系统采用分页式存储管理方式,要求每个进程拥有一张页表,且进程的页表驻留在内存中;
12
为何段式管理有段内越界,而页式管理无页内越界问题?
页式管理的划分是由操作系统完成的,每个地址由系统自动划分为页号和页内地址两部分,因此无页内越界问题。
段式管理的划分是由编译程序完成的,逻辑地址由段号和段内偏移量组成,因此,存在段内越界问题。
13
为什么分段技术比分页技术更容易实现程序或数据的共享和保护?
每一段在逻辑上是相对完整的一组信息,分段技术中共享信息是在段一级出现的。因此,任何共享的信息可以单独作一个段;
2)而页式信息的物理单位,在一个页面中可能存在逻辑上互相独立的两组或更多组信息都各不相同的使用方式和存取权限
14
在段页式存储管理系统中,每个进程页表的个数有什么决定的?
一个进程有几个段就有几个页表
15
试比较段式存储管理和页式存储管理的优缺点?
页式存储管理的优缺点:
1)静态等长存储分配简单,有效地解决了内存碎片问题
2)共享和保护不够方便
段式存储管理的优缺点:
1)动态异长存储分配负责,存在碎片问题
2)共享和保护方便
3)可以实现动态连接和动态扩展
16
什么是 Belady异常?采用什么页面淘汰算法会产生Belady异常现象?
17
什么叫做颠簸?颠簸是由什么引起的?如何消除?
颠簸:页面在内存和外存之间频繁调度, 以致于系统用于页面调度时间大于进程运行时间.
原因:
分给进程物理页架过少;
淘汰算法不合理。
程序设计不合理。
处理:
增加分给进程物理页架数;
改进淘汰算法。