一、综合题
1. 通过一个例子来说明通常的优先级调度算法为什么不能适用于实时系统?
【答案】有两个周期性任务,任务A 的周期时间为20ms ,每个周期的处理时间为10ms , 任务B 的周期时间为50ms ,每个周期的处理时间为25ms 。如表1中所示第一行显示出了两个任务的到达时间、最后期限和执行时间图。其中任务A 的到达时间为0、20、40、…;任务A 的最后期限为20、40、60、…;任务B 的到达时间为0、50、100、…(注:单位皆为ms )。
为了说明通常的优先级调度不适用于实时系统,如表2所示增加了第二行。在第二行中假定任务A 具有较高的优先级,所以在t=0ms时,先调度A1执行,在A1完成后(t=10ms)才调度B1执行;在t=20mS时,调度A2执行;在t=30ms时,A2完成,又调度B1执行;在t=40ms时,调度A3执行;在t=50ms时,虽然A3已完成,但B1已错过了它的最后期限,这说明利用通常的优先级调度已经失败。
表1中到达时间,执行时间和最后期限
表2具有较高优先级
实时系统的调度算法很多,主要是基于任务的开始截止时间和任务紧急/松弛程度的任务优先
级调度算法,通常的优先级调度算法不能满足实时系统的调度实时性要求因此不适用于实时系统。
2. 试说明进程在三个基本状态之间转换的典型原因。
【答案】进程的三种基本状态是就绪状态、执行状态和阻塞状态,这三种基本状态之间转换的典型原因如图所示,具体如下:
(1)就绪状态
(2)执行状态
(3)执行状态
(4)阻塞状态执行状态:进程通过调度分配到CPU 资源; 就绪状态:时间片用完; 阻塞状态:I/O设备请求; 就绪状态:I/O设备请求完成。
图 进程状态转换图
3. 如何实现共享分段的分配和回收?
【答案】(1)共享段的分配
在为共享段分配内存时,对第一个请求使用该共享段的进程,由系统为该共享段分配一物理区,再把共享段调入该区,同时将该区的始址填入请求进程的段表的相应项中,还须在共享段表中增加一表项,填写有关数据,把count 置为1之后,当又有其它进程需要调用该共享段时,由于该共享段已被调入内存,故此时无须再为该段分配内存,而只需在调用进程的段表中增加一表项,填写该共享段的物理地址;在共享段的段表中,填上调用进程的进程名、存取控制等,再执行操作,以表明有两个进程共享该段。
(2)共享段的回收
当共享此段的某进程不再需要该段时,应将该段释放,包括撤消在该进程段表中共享段所对应的表项,以及执行操作。若结果为0, 则须由系统回收该共享段的物理内存,以及取消在共享段表中该段所对应的表项,表明此时己没有进程使用该段;否则(减1结果不为0),只是取消调用者进程在共享段表中的有关记录。
4. 为什么说中断是0S 赖以生存的基础?
【答案】(1)中断在操作系统中有着特殊重要的地位,它是多道程序得以实现的基础,没有中断,就不可能实现多道程序,因为进程之间的切换是通过中断来完成的。
(2)中断是设备管理的基础,为了提高处理机的利用率和实现CPU 与I/O设备并行执行,也必需有中断的支持。
(3)中断处理程序是I/O系统中最低的一层,它是整个I/O系统的基础。
5. 试举例说明如何建立二又树结构的命令行树。
【答案】(1)命令表型结点
Shell 命令解释程序按命令行语句的结构顺序进行检查,每当遇到面的命令行所构成的命令树如图所示: 及分隔符时便为之建立一个命令表型结点,将分隔符左面部分构成该结点的左子树,右面部分构成右子树。例如下
图 命令表型结点及其左、右子树
(2)管道文件型结点
当Shell 命令解释程序遇到管道算符“I ”时,先为之建立一个管道文件型结点。再将分隔符左面部分构成该结点的左子树,右面部分构成右子树。例如对下面的命令行所构成的命令树如图所示:
图 管道文件型结点及其左、右子树
(3)简单命令型结点
对于简单命令,在命令行中仅有一条命令,它是属于可以立即执行的命令,系统无需为它建立二叉树结构的命令行树。当命令解释程序读入键盘缓冲区中的命令后,若判定它是简单命令,再进一步确定是否是内部命令。Shell 解释程序本身提供了内部命令的可执行程序,因此若是内部命令,Shell 便立即执行,此时Shell 也不需要为该命令创建新进程。如果不是内部命令也非特殊命令,Shell 将认为该命令是一个可执行文件,于是将为它创建一个新进程,并作为Shell 的子进程执行,直到子进程运行完毕,又恢复Shell 运行。
6. 目前常用的外存有哪几种组织方式?
【答案】(1)连续组织方式
在对文件采取连续组织方式时,为每个文件分配一片连续的磁盘空间,由此所形成的文件物理结构将是顺序式的文件结构。
(2)链接组织方式