费翔林操作系统课后题
(1)思考题
1:什么是PSW?它有何作用 ★★★
【答案】
操作系统将程序运行时的一组动态信息汇集在一起,称为程序状态字PSW,并放在处理器的一组特殊寄存器里,以方便系统的控制和管理
- PSW用来指示运行程序状态、控制指令执行顺序,并且保留和指示与运行程序有关的各种信息,主要作用是实现程序状态的保护和恢复
2:为什么要把机器指令分为特权指令和非特权指令★
【答案】
操作系统是系统资源的管理者和控制者,所以操作系统程序具有较高特权,而应用程序权限较低,前者可以使用全部机器指令,如果让应用程序也能执行全部整理,那么在运行时极易造成系统混乱,造成系统或用户信息被破坏,所以要分为特权指令和非特权指令
3:硬件如何发现中断事件?发现中断事件后应该做什么工作★
由外部设备、时钟部件或其他机器发出的,发现中断源并产生中断的硬件称为中断装置,这些硬件包括中断逻辑线路和中断寄存器。需要做4件事情
4:试分别从中断事件的性质、来源和实现角度对其进行分类★
可以将中断分为外中断和内中断
- 外中断:又称为中断,是指来自处理器之外的中断信号,包括时钟中断,键盘等。外中断又可以分为可屏蔽和不可屏蔽中断
- 内中断:又称为异常,是指来自处理器内部的中断信号。具体可分为访管中断、硬件故障中断、程序性异常
5:概述程序性中断的处理方式
【答案】
应用程序错误有以下几类:
- 语法错误:可由编译程序发现并报错
- 逻辑错误:可由测试程序发现并报错
- 程序运行时异常(例如浮点异常):不同用户往往有不同的处理要求,借助于信号机制,操作系统可以将捕获的中断事件原封不动地转交给应用程序自行处理
6:何为中断优先级?为什么要对中断事件进行分级?★
- 中断是随机发生的,在计算机执行的每一瞬间都可能有多个中断同时出现,这时中断装置如何响应这些中断便成了一个问题。因此,可以按照紧迫程度把中断源进行分级,级别高中断自然拥有优先响应的权利。所以中断装置所预设的响应顺序就称为中断优先级
- 因为优先级是按照中断请求的轻重缓急程度而定的,如果严重的事件得不到及时响应将会导致严重后果
7:为什么中断事件的处理可以嵌套,但是不能递归
【答案】
因为在计算机系统运行过程中可能同时出现多个中断,或者前一个中断尚未处理完接着又发生新的中断,于是CPUU暂停正在运行的中断处理程序,转而执行新的中断处理程序,这就是中断嵌套
8:试述中断在操作系统中的重要性及主要作用★★★
【答案】
在计算机运行过程中,可能会有很多随机事件发生,如硬件故障、网络通信、人机交互等,因此必须对这些事件及时处理。所以中断正是在这种需求下提出的,使用中断可以暂停当前正在运行的程序,转去处理紧急事件,处理完毕还可以回到原来的位置继续执行。中断大大提高了计算机的灵活性,可靠性和并行性
9:试述时钟中断在操作系统中的重要性及其主要作用
【答案】
时钟中断是一种硬中断,由时间硬件(系统定时器,一种可编程硬件)产生,CPU处理后交由时间中断处理程序来完成更新系统时间、执行周期性任务等。利用时钟中断可以确保操作系统在必要时获得控制权,陷入死循环的进程最终会因为时间片耗尽而被迫让出处理机
10:试述中断屏蔽的作用★★
【答案】
中断屏蔽是指禁止CPU响应中断或禁止中断产生,前者指硬件产生中断请求后,CPU暂时不予响应的状态,等到直到中断开放后,被屏蔽的中断才能被相应并获得处理;后者指可引起中断的事件产生时,硬件不允许提出中断请求而不通知处理器 作用如下
- 延迟或禁止某些中断的响应,系统程序执行过程中不希望产生干扰事件,以免共享数据结构收到破坏
- 协调中断响应与中断处理的关系,确保高优先级中断可以打断低优先级中断,反之则不能
- 防止同级中断相互干扰,在处理某优先级中断事件时,必须屏蔽该级中断,以免造成混乱
11:操作系统如何处理多重中断事件★
【答案】
对于多重中断,可能是同一优先级的不同中断,也可能是不同优先级的中断,对于前者,通常由同一个中断处理程序按自左至右的顺序逐个处理并清除之;对于后者,可以分不同情况处理
- 串行处理:在运行一个中断处理程序时,禁止再次发生中断,可以通过屏蔽终端实现
- 嵌套处理:这是系统应负责保护被中断的中断处理程序现场,然后转向处理新中断事件的中断处理程序,以便在结束时可以返回原来的中断处理程序继续运行
- 即时处理:在运行中断处理程序时,如果出现程序性中断事件,在一般情况下,表明此时中断处理程序有异常,应对其立即响应并做处理
12:什么进程?计算机操作系统为何要引入进程★★★
【答案】
- 在多道程序系统出现后,为了刻画系统内部动态状况,描述运行程序活动规律,为此引入了进程的概念
- 从原理上看,进程是支持程序执行的一种系统机制,他对处理器上运行程序的活动规律进行抽象;从实现角度看,进程则是一种数据结构,用来准确刻画运行程序的状态和系统动态变化状况
- 引入的主要目的:刻画程序的并发性和解决资源的共享性
13:进程有哪些属性★★★
【答案】
- 动态性:进程是程序在数据集合上的一次执行过程,而程序则是一组有序指令序列
- 共享性:同一程序同时运行于不同数据集合上时构成不同进程
- 独立性:每个进程是操作系统的一个独立实体,有自己的虚存空间,程序计数器和内部状态
- 制约性:进程因为共享资源或协同工作会产生相互制约关系,造成进程运行的异步性
- 并发性:多个进程的执行再时间上可以重叠,在单处理系统中可并发执行
14 :进程最基本的状态有哪些?★★★
【答案】
- 运行态:进程占有处理器
- 就绪态:进程具备运行条件,正等待系统分配处理器
- 阻塞态:进程不具备运行条件,正在等待某个事件完成
15:五态模型的进程中,新建态和终止态的主要作用是什么★★
【答案】
- 新建态对应于进程被创建时的状态,尚未进入就绪队列。此状态内可以为进程分配所需要的资源和建立必要的管理信息
- 终止态是指进程完成任务到达正常结束点,或出现无法克服的错误而异常终止,或被操作系统及有终止权的进程所终止时所处的状态,处于终止态的进程不再被调度执行,下一步将会被系统撤销
16:试说明引发创建一个进程的事件★
17:什么是进程的挂起状态★
【答案】
挂起进程等同于不在内存的进程,因此挂起进程将不参与低级调度直到它们被对换进内存,有如下特征
- 该进程不能立即被执行
- 该进程可能会等待事件,但所等待的事件是独立于挂起条件的,事件结束并不能导致进程具备执行条件
- 该进程进入挂起状态是由于操作系统、父进程或进程自身阻止它的运行
- 结束进程挂起状态的命令只能通过操作系统或父进程发出
18:试述组成进程的基本要素,并说明其作用★★★
【答案】
- 进程控制块(PCB):每个进程捆绑一个,用来存储进程的标志信息,现场信息和控制信息
- 进程程序块:是被进程执行的程序,规定进程一次运行所应该完成的功能
- 进程核心块:每个进程捆绑一个,进程在核心态工作时使用,用来保存中断/异常现场,局部变量等
- 进程数据块:是进程的私有地址空间,存放各种私有数据
19:何谓PCB,它包含哪些基本信息★★★
【答案】
每个进程有且仅有一个进程控制快(PCB),它是进程存在的唯一标识,是操作系统用来记录和刻画进程状态及环境信息的数据结构,是进程动态特征的话汇集,也是操作系统掌握进程的唯一资料结构和管理进程的主要依据。主要包含
- 标识信息:用于唯一表示一个进程
- 现场信息:保留进程在运行时存放在处理器现场中的各种信息
- 控制信息:用于管理和调度进程
20:何谓进程队列 【答案】
- 进程队列:并发系统中往往同时存在很多进程,其状态千差万别。因此为了便于对进程进行管理和调度,常常将进程的PCB通过某种方法组织起来。一般来说,把处于统一状态的所有进程的PCB链接在一起的数据结构称之进程队列
21:请列举组织进程队列的各种方法★
- 链接方式:对于同一状态进程的PCB,通过PCB中的链接指针将其链接成队列
- 索引方式:利用索引表记录不同状态进程的PCB地址或在PCB中的编号,系统会建立若干索引表
22:试述内核创建进程所要做的主要工作★
【答案】
- 在进程列表中增加一项,从PCB池中申请一个空闲PCB,为新进程分配一个进程标识符
- 为新进程的进程映像分配地址空间,以便容纳进程实体,由进程管理程序确定加载进地址空间中的程序
- 为新进程分配各种资源
- 初始化PCB,如进程标识符、处理器初始状态、进程优先级等
- 把新进程的状态设置为就绪态,并将其移入就绪队列
- 通知操作系统某些模块
23:什么是进程上下文★
【答案】
进程上下文一般在进程切换中提到,也就是当进程要切换时关于当前进程的寄存器内容以及内存页表的详细信息等等内容,一句话概括也就是关于描述进程的信息
24:什么是进程切换?简述进程切换的主要步骤★★
【答案】
【答案】
从用户态带内核态或从内核态到用户态的转换是处理器的状态转换,此时仍在同一个进程中运行,进程仍然在自己的上下文中执行,仅处理器状态发生了变化。处理器状态转换不同于进程上下文切换,在大多数情况下,状态转换不一定赢取上下爱问切换。处理器上执行进程在任何时刻必定处于以下4个活动范围之内
- 用户空间中,处于进程上下文,应用进程在用户态下运行,使用用户栈
- 内核空间中,处于进程上下文,内核代表参加在内核态下运行,使用核心态
- 内核空间中,处于中断上下文,与任何进程无关,中断服务例程在内核态下处理特定中断
- 内核空间中,内核线程运行于内核态
25:试述引起撤销一个进程的主要事件,系统撤销进程时所作的主要工作有哪些★
【答案】
引起进程撤销的事件有
- 进程运行结束
- 进程执行非法指令
- 进程在用户态执行特权指令
- 进程运行时间超过所分配的最大时间配额
- 进程等待时间超过所设定的最长等待时间
- 越界错误
- 对共享内存区的非法使用
- 出现程序性故障
- I/O操作故障
- 操作员干预等
所做工作
- 根据撤销进程的标识号从相应队列中查找并移除它
- 将此进程所拥有的的资源归还给父进程或操作系统
- 若此进程拥有子进程,先撤销其所有子进程以防止他们脱离控制
- 回收PCB并将其归还至PCB池
- 转向进程调度程序工作
26:列举进程被阻塞和唤醒的主要事件★
【答案】
阻塞步骤
- 停止进程运行,将现场信息保存到PCB
- 修改进程PCB的有关内容,例如进程状态由运行态改为阻塞态等,并把状态已修改的进程移入相应事件的等待队列
- 转向进程调度程序,调度其他进程运行
唤醒步骤
- 从相应等待队列中移出进程
- 修改进程PCB的有关内容,例如将状态改为就绪态等,并将进程移入就绪队列
- 若被唤醒的进程比当前运行进程的优先级更高,则重新设置调度标志
27:为什么要引入线程★★★
【答案】
- 引入进程是为了使读个程序更好的并发执行,以便改善资源利用率和提高系统效率
- 引入线程是为了减少程序并发执行时所付出的时空卡小,使得并发粒度更细,并发性更好
28:试述多线程环境中进程和线程的定义★★★
- 进程:操作系统中除处理器以外的资源分配和保护的基本单位,它有一个独立的虚拟地址空间,用来容纳进程映像,并以进程为单位对各种资源,如文件,I/O设备等资源实施保护
- 线程: 是进程中能够并发执行的实体,是进程的组成部分,也是处理器调度和分配的基本单位,线程可以共享进程的内存空间和资源
于是,进程可以分为两个部分:资源集合和线程集合。进程要支持线程运行,为线程提供虚拟地址空间和各种资源,进程封装管理信息,包括对指令代码,全局数据、打开的文件和信号量等共享部分的管理;线程封装执行信息,包括状态信息,寄存器,执行栈和局部变量等。由于线程具有传统进程的诸多特征,所以线程也叫做轻量级进程(LWP)
27:什么是线程控制块,它有哪些主要内容★★★
【答案】
线程控制块(Thread Control Block,TCB)是与进程的控制块(PCB)相似的子控制块,只是TCB中所保存的线程状态比PCB中保存少而已
28:试从调度性、并发性、 拥有资源和系统开销4个方面对进程和线程进行比较★★★
【答案】
-
调度性: 线程在OS中作为调度和分派的基本单位,进程只作为资源拥有的基本单位 -
并发性: 进程可以并发执行,一个进程的多个线程也可以并发执行 -
拥有资源: 进程始终是拥有资源的基本单位,线程只拥有运行时必不可少的资源,本身基本不拥有资源,但可以访问隶属进程的资源 -
系统开销: 操作系统在创建、撤销和切换进程时付出的开销远大于线程
29:什么是内核级线程、用户级线程和混合式线程,比较他们★★
【答案】
30:挂起状态与线程有什么关系
【答案】
由于线程不是自愿拥有单位,挂起状态对于线程是没有意义的。如果进程在挂起后被对换出内存,那么它的所有线程就会因共享地址空间而被全部对换出去
31:试述并发多线程程序设计的主要优点及其应用★★★
【答案】
32:列举线程的组织方式应用场合★
【答案】
组织方式
- 调度员-工作者模式:一个线程担任调度员,接受和处理工作请求,其他线程但仍工作者
- 组模式:进程中的各个线程都可以取得并处理工作请求
- 流水线模式
应用:
- 前台和后台工作
- Server-Client应用模式
- 任务异步处理
- 用户界面设计
33:何谓访管指令?它是特权指令吗
【答案】
访管指令是一条可以在用户态下执行的指令,用户程序中凡是要调用操作系统功能时就安排一条访管指令。当处理器执行到访管指令时就产生一个中断事件(自愿中断),暂停用户程序的执行,而让操作系统来为用户服务
34:处理器调度分为哪几种类型★★★
【答案】
35:试述衡量一个处理器调度算法优劣的主要标准
【答案】
38:作业和进程的关系
【答案】
作业是任务实体,进程是完成任务的执行实体;没有作业任务,进程无事可做,没有进程,作业无法完成。作业的概念更多用于批处理系统中,进程更多用于多道程序设计系统中
37:试述作业调度和低级调度之间的关系
【答案】
作业调度是指按照某种算法从后背作业队列中选择部分作业进入内存运行,当作业运行结束时完成善后工作,主要完成以下任务
- 选择作业:
- 分配资源
- 创建进程:每当选中作业将其装入内存时,系统就为此作业创建进程,生成PCB及各种进程实体,这些进程将在低级调度控制下占有处理器运行
38:试述中级调度的主要作用
【答案】
中级调度就是要决定处于挂起状态的进程重新调入内存。 因为在引入虚拟存储技术后,可以将暂时不能运行的进程调至外存等待,等它重新具备了运行条件且内存又有空闲时,再重新调入内存,这样做可以提高内存利用率和系统吞吐量
39:简述各调度算法的思想
【答案】
- 先来先服务算法思想(FCFS):先来后到,每次从就绪队列选择最优先进入队列的进程,然后一直运行,直到进程退出或被阻塞,才会继续在队列中选择下一个第一个进程继续运行,属于非抢占
- 最短作业优先调度算法思想(SJF):最短(要求服务时间最短)的作业/进程优先得到服务,既可以用于作业调度,也可以用于进程调度
- 最短剩余时间优先算法思想(SRTN是SJF的抢占式版本):
- 高响应比优先调度算法思想(HRRN):该算法综合考虑作业/进程的等待时间和要求服务的时间。在每次调度时先计算各个作业/进程的响应比,选择响应比最高的作业/进程为其进行服务,属于非抢占
- 时间片轮转调度算法思想(RR):
- 优先级调度算法思想(HPF):
- 多级反馈队列调度算法思想(MFQ)
(2)应用题
【答案】
(1) FCFS
SJF
非抢占HPF
(2)
FCFS
- 周转时间分别为:job1=10,job2=11,job3=13,job4=14,job5=19
- 平均周转时间为:(10+11+13+14+19)/5=13.4
- 带权周转时间分别为:job1=10/10=1,job2=11/1=11,job3=13/2,job4=14/1,job5=19/5
- 平均带权周转时间:(1+11+6.5+14+19/5)/5=1.82
SJF
- 周转时间分别为:job1=19,job2=1,job3=4,job4=2,job5=9
- 平均周转时间为:(19+1+4+2+9)/5=7
- 带权周转时间分别为:job1=19/10,job2=1/1=1,job3=4/2,job4=2/1,job5=9/5
- 平均带权周转时间:(19/10+1+4/2+2+9/5)/5=0.43
非抢占HPF
- 周转时间分别为:job1=16,job2=1,job3=18,job4=19,job5=6
- 平均周转时间为:12
- 平均带权周转时间:(16/10+1+9+19+1.2)/5=6.36
【答案】
- 周转时间分别为:job1=60,job2=120,job3=50,job4=50
- 平均周转时间为:70
- 平均带权周转时间:(1+120/50+50/30+50/10)/5=2.52
【答案】 (1)先来先服务
(2)最高响应比优先算法
当Job1在12:00结束时,job3和job2的响应比为
- job3=
95
+
25
25
=
4.8
\frac{95+25}{25}=4.8
2595+25?=4.8
- job2=
110
+
60
60
=
2.8
\frac{110+60}{60}=2.8
60110+60?=2.8
所以在12:00时选择job3调度
所以高响应比优先算法要由于先来先服务算法
(1)分别给出6个颙的执行时间序列,也即开始执行时间,作业完成时间,作业周转时间 (2)计算平均作业周转时间
【答案】
|