2018年中国科学技术大学408计算机学科专业基础综合之计算机操作系统考研强化五套模拟题
● 摘要
一、综合题
1. 试说明低级调度的主要功能。
【答案】低级调度又称为进程调度或短程调度,其所调度的对象是进程(或内核级线程),它的主要功能如下:
(1)保存处理机的现场信息
在进行进程调度时,首先需要保存当前进程的处理机的现场信息,将它们送入该进程的进程控制块(PCB )中的相应单元。
(2)按某种算法选取进程
低级调度程序按某种算法如优先数算法、轮转法等,从就绪队列中选取一个进程,把它的状态改为运行状态,并准备把处理机分配给它。
(3)把处理器分配给进程
由分派程序(Dispatcher )把处理器分配给进程。此时需为选中的进程恢复处理机现场,即把选中进程的进程控制块内有关处理机现场的信息装入处理器相应的各个寄存器中,把处理器的控制权交给该进程,让它从取出的断点处开始继续运行。
2. 分页和分段存储管理有何区别?
【答案】分段和分页存储管理的区别主要表现在:
(1)页是信息的物理单位,分页是为实现离散分配方式,以消减内存的外零头,提高内存利用率。或者说,分页仅仅是由于系统管理的需要而不是用户的需要。段则是信息的逻辑单位,它含有一组意义相对完整的信息,分段的目的是为了能更好地满足用户的需要;
(2)页的大小固定且由系统决定,由系统把逻辑地址划分为页号和页内地址两部分,是机械硬件实现的,因而在系统中只能有一种大小的的页面;而段的长度却不固定,决定于用户所编写的程序,通常由编译程序对源程序进行编译时,根据信息的性质来划分;
(3)分页的作业地址空间是一维的,即单一的线性地址空间,程序员只需利用一个记忆符,即可表示一个地址;分段的作业地址空间则是二维的,程序员在标识一个地址时,既需给出段名,又需给出段内地址。
3. 线程控制块TCB 中包含了哪些内容?
【答案】如同每个进程有一个进程控制块一样,系统也为每个线程配置了一个线程控制块TCB , 将所有用于控制和管理线程的信息记录在线程控制块中。线程控制块通常有这样几项:
(1)线程标识符,为每个线程赋予一个唯一的线程标识符;
(2)—组寄存器,包括程序计数器PC 、状态寄存器和通用寄存器的内容;
(3)线程运行状态,用于描述线程正处于何种运行状态;
(4)优先级,描述线程执行的优先程度;
(5)线程专有存储区,用于线程切换时存放现场保护信息,和与该线程相关的统计信息等;
(6)信号屏蔽,即对某些信号加以屏蔽;
(7)堆栈指针,在TCB 中,也须设置两个指向堆栈的指针:指向用户自己堆栈的指针和指向核心栈的指针。
4. 在多道程序技术的0S 环境下的资源共享与一般情况下的资源共享有何不同? 对独占资源应采取何种共享方式?
【答案】(1)0S 环境下与一般情况下的资源共享间的不同点
①一般情况下的共享
一般情况下的共享只是说明某种资源能被大家使用,对于这样的资源共享方式,只要通过适当的安排,用户之间并不会产生对资源的竞争,因此资源管理是比较简单的。
②0S 环境下的共享
0S 环境下的资源共享或称为资源复用,是指系统中的资源可供内存中多个并发执行的进程共同使用。这里在宏观上既限定了时间(进程在内存期间),也限定了地点(内存)。对于这种资源共享方式,其管理就要复杂得多,因为系统中的资源少于多道程序需求的总和,会形成它们对共享资源的争夺。所以,系统必须对资源共享进行妥善管理。
(2)独占资源应采取的共享方式
对独占资源应采用互斥共享方式,该共享方式仅当占有该资源的进程访问并释放资源后,才允许另一进程对该资源进行访问。
5. 3个进程P1I 、P2、P3互斥使用一个包含N (N>0)个单元的缓冲区,P1每次用
成一个正整数,并用
数,并用送入缓冲区某一空单元中;P2每次用统计奇数个数;P3每次用从该缓冲区中取出一个偶数,并用生从该缓冲区中取出一个奇
统计偶数个数。请用信号量机制实现这3个进程的同步与互斥活动,并说明所定义的信号量的含义。要求用伪代码描述。
【答案】看到题目之后,可以按照如下的“五步法”来处理:
(1)分析进程之间的同步互斥关系;
(2)确定进程之间的执行顺序;
(3)根据执行顺序的制约,添加信号量;
(4)在正确位置添加对信号量的操作,并依此写出伪代码;
(5)添加关于所有信号量的说明和初值设置,完成题目。
下面按照“五步法”一步一步来讲解这个题目:
(1)分析进程之间的同步互斥关系
本题读题之后就应该看出这是在考查“生产者-消费者”问题,题中共涉及了3个进程,根据进程的行为,可以很轻易地判断出其中P1是生产者,P2和P3是消费者。
有了这个结论,可以很容易得出如下结论:Pl 、P2、P3这3个进程由于都对缓冲池有操作,而且操作结果对彼此都有影响,所以要互斥访问缓冲池,因此3个进程之间存在互斥关系。同时可以看到,只有P1产生出了奇数,P2才可以取出进行处理,如果没有奇数,则P2无法工作。因此P1和P2因为奇数而产生了固定的执行顺序(先产生,再消耗),而且只有P2释放了缓冲单元,P1才能够继续放入数字。换句话来说,P1和P2之间存在同步关系。同理可知,P1和P3之间也存在同步关系。
(2)确定进程之间的执行顺序
有了上述同步互斥关系的分析结果,可以比较容易地得到进程执行顺序:P1只要在有空余缓冲池的时候就可以随意放入数字,并通知P2或P3来取。如果P1产生的数字是奇数,则P2可以执行;如果是偶数,则P3可以执行。用图来表示更直观,如图1所示。
图1 3个进程之间的执行顺序
图中可以看到,P2和P3分别与P1因为奇数和偶数而存在同步关系,执行顺序固定。而且P2和P3处理数字之后会释放缓冲池中的缓冲单元,有空余缓冲单元P1才能够继续放入数字。图中虽然没有标明但不能忽视的一点就是:3个进程都会操作缓冲池,每次与缓冲池有关的操作都要先占用缓冲池,最后释放缓冲池,即要互斥进行。
(3)根据执行顺序的制约,添加信号量
通常在PV 题目中涉及的信号量可以分为两种,一种是互斥信号量,一种是同步信号量(通常都是因某种资源而产生同步关系,也可以叫做资源信号量)。根据上述步骤的分析,知道3个进程之间存在互斥操作缓冲池的关系,因此设置互斥操作缓冲池的互斥信号量mutex ,由于同时
相关内容
相关标签