5、 为什么说中断向量的位置是由硬件决定的、其内容是系统初始化时确定的?
6、 什么叫做中断续元?用户栈和系统栈各自有什么用途?
中断续元:用户自编的中断处理程序
用户栈:保存函数之间相互调用的参数、返回断点、局部变量、返回值。
系统栈:保存函数之间相互调用的参数、返回断点、局部变量、返回值;保存中断现场(PSW和PC)。
7、 根据程序错误中断的性质,有哪两种处理策略?可以哪些类型的程序性错误中断,中
断续元会起作用?
两种策略:只能由系统处理的中断、可以由用户处理的中断 8、 处理机调度需要解决哪三个问题?
按照什么原则分配处理器、什么时候分配处理器、如何分配处理器
9、 什么叫做CPU阵发期?
进程对处理器的一次连续使用称为CPU阵发期 10、 什么叫做周转时间?什么叫做(平均)带权周转时间?
周转时间:作业等待时间与处理时间之和
平均带权周转时间:所有作业的带权周转时间与作业道数的比值 11、 什么叫做响应时间?
从提交第一个请求到产生第一个响应所用时间 12、 掌握FCFS、SJF、SRTN、HRN、HPF、RR调度算法,以及调度指标的计算。
13、 什么叫做剥夺式调度?什么叫做非剥夺式调度?
a) 剥夺式:就绪进程可以从运行进程手中抢占CPU b) 非剥夺式:就绪进程不可以从运行进程手中抢占CPU 14、 反馈排队调度算法有哪些特点?
1) 短进程优先处理 2) 设备资源利用率高 3) 系统开销小 15、 什么叫做“交换”?交换的目标是什么?
1) 交换是进程在内存和外存储器之间的调度
2) 目标:缓解内存空间等资源紧张的矛盾、减少并发度以降低系统开销。 3) 主要目标:控制并发度 16、 为什么要实施中级调度?
引入中级调度的主要目的是为了提高内存利用率和系统吞吐量。将内存中的某些进程暂时交换到外存储器,待以后系统并发度较低时再调回内存。
17、 什么是低级调度、中级调度、高级调度?各自的职能是什么?
1) 低级调度:负责分派处理器的调度,也称处理器调度;职能:使被选中的进程真正
进入运行状态。
2) 中级调度:介于低级调度与高级调度之间的调度;职能:负责进程在内存和外存之
间进行交换,以缓解内存资源紧张的矛盾。
3) 高级调度:又称作业调度;职能:负责将作业由输入井调入内存,并为其创建作业
控制进程。 18、 什么是实时调度?按发生的规律分,有哪两类实时任务?
1) 实时调度:满足实时任务各自时间约束条件的调度 2) 分类:随机性实时任务、周期性实时任务 19、 掌握EDF和RMS两个实时调度算法?
P74 20、 完成P79-80题31、32、35。
第四章 互斥、同步与通信
1、 程序顺序执行有哪些特性?
连续性、封闭性、可再现性
2、 程序并发执行有哪些特性?
间断性、非封闭性、不可再现性
3、 什么是Bernstein(伯恩斯坦)条件?并加以说明。
程序p1和p2满足下面条件,则能够保持可再现,因而可以并发执行 R(p1)W(p2)R(p2)W(p1)W(p1)W(p2)??例如: S1: a=x-y; S2: b=z+1; S3: v=a+b; S4: w=v+1;
请问S1和S2是否可并发执行?S3和S4是否可以并发执行?S2和S3是否可以并发执行?
4、 什么叫做与时间有关的错误?有时间有关的错误产生的原因是什么?
与时间有关的错误:由于具体交叉的形成与进程的推进速度有关,而速度是时间的函数,因而将这种错误称为与时间有关的错误。
原因:进程执行交叉、涉及公共变量
5、 什么叫做临界区?什么叫做临界资源?
临界区:访问共享变量的程序段
临界资源:一次只允许一个进程使用的资源
6、 什么叫做进程互斥?请写出进程互斥的基本框架。
进程互斥:多个进程不能同时进入关于同一组共享变量的临界区域,否则可能发生与时间有关的错误 基本框架: do { entry section //进入控制部分 临界区 exit section //退出控制部分 其余代码 } while (1);
7、 实现进程互斥,临界区管理应该满足哪三个正确性原则?
互斥性、进展性、有限等待性
8、 请分析Dekker互斥算法、Peterson互斥算法、Lamport面包店算法各自的互斥性、
进展性和有限等待性。 P89
9、 什么叫做忙式等待?其与阻塞式等待有哪些区别?
忙式等待:不进入等待状态的等待 区别:阻塞式等待---主动放弃CPU;
忙式等待---不主动放弃CPU,尽管CPU可能被剥夺;
10、 什么叫做原子指令?
该指令在执行时是不可分割的
11、 请写出“测试与设置”原子指令?并给出利用“测试与设置”指令实现互斥的算法。 int test_and_set(int *target){ int temp; temp=*target; *target=1; return(temp); }
互斥算法: int lock;
do{
while test_and_set(&lock) skip;
临界区
lock=0;
}while(1);
12、 请写出“交换”的原子指令?给出利用“交换”指令实现互斥的算法。
void swap(int *a,int *b){ int temp; temp=*a;
*a=*b; *b=temp;
}
互斥算法:
int lock=0(初始=false); int key; do{
key=1; do {
swap(&lock,&key); } while(key==1); 临界区 lock=0; }while(1);
13、 什么叫做进程同步?
一组进程,为了协调其推进速度,在某些点处需要相互等待或者唤醒,进程之间这种相互制约的关系称为进程同步。
14、 请给出信号量类型的定义。
“信号量”是一个具有非负初值的整型变量,并且有一个队列与它关联。
15、 信号量变量的初值有什么要求?
初值必须是非负整数
同步的信号量初值一般为0 互斥的信号量初值一般为1
16、 什么叫做原语?
一段不可间断执行的程序称为原语
17、 分别写出对信号量进行P操作和V操作的操作原语。
P操作原语:
void P(semaphore *s){ s->value--; If(s->value<0)
asleep(s->queue); }
V操作原语:
void V(semaphore *s){
s->value++; If(s->value<=0) wakeup(s->queue); }
18、 请给出信号量元素s.value与s.queue之间的关系。
19、 说出初值分别是0、1、n(>1的值)时信号量的作用。
0为同步 1为互斥
N为子资源个数
20、 某图书馆阅览室有50个座位。进入阅览室的读者需要在登记簿上登记,登记后,如
果有空座位,安排到对应位置上;如果没有空座位,要求在入口等待。当读者离开阅览室时,进行注销登记。此时,如果有读者等待,唤醒等待读者进行阅览室。使用信号量、PV操作实现对阅览室进行管理。 【参考答案】 公共变量:
enum seat[50];(free,used) semaphore S;(50) semaphore mutex;(1)
进入登记控制: int Enter(){ int i; P(S); P(mutex);
for(i=0;i<50;i++)
if(seat[i]==free) break; seat[i]=used; V(mutex); return i; }