操作系统精髓与设计重点店课后习题整理

  • 格式:doc
  • 大小:537.00 KB
  • 文档页数:24

1 3 4 9 7 8 11 12 6章第10章多CPU调度,实时调度第1章作业:习题P25 (更正印刷错误106)操作系统的大神求解答假设有一个32位微处理器,其32位的指令由两个域组成:第一个字节包含操作码,其余部分为一个直接操作数或一个操作数地址。

如果微处理器总线具有如下特征,分析a、最大可直接寻址的存储器能力为多少以字节为单位如果微处理器总线具有如下特征,分析对系统速度的影响:b、(1)一个32位局部地址总线和一个16位局部数据总线,或者(2)一个16位局部地址总线和一个16位局部数据总线。

C、程序计数器和指令寄存器分别需要多少位答案:没必要全写捡重点(定长)指令32位,1字节操作码,则后3字节为立即数或内存地址(a) 最大可直接寻址直接寻址是一种基本的寻址方法,其特点是:在指令格式的地址的字段中直接指出操作数在内存的地址。

由于操作数的地址直接给出而不需要经过某种变换,所以称这种寻址方式为直接寻址方式。

2^24(b) 总线问题地址总线32位,数据总线16位直接寻址存储器24位,bus32位,地址传送一次即可;但指令32位,操作数32位(因为是32位微处理器),要两次传送地址总线16位,数据总线16位传送地址,传送指令/数据全部需要2次。

地址可视作:先行地址后列地址(c) PC和IR 至少:PC24位,IR8位一般:PC32bit IR 32bit更现实复杂情形:是否分段,使用段寄存器; 直接寻址中逻辑地址/位移/偏移offset,与有效地址effective address区别OS中,逻辑地址与物理地址一个DMA模块从外部设备给内存传送字节,传送速度为9600位每秒(b/s)。

处理器可以每秒100万次的速度取指令,由于DMA活动,处理器的速度将会减慢多少答案:没必要全写捡重点看清楚题干:每秒100万次取指令,即1M/s取一次指令,不是100M!该CPU主频多少不知,是否使用cache不知,执行一条指令多少时钟周期不知,此题中无需知道还假设,此CPU只取指令要访问内存,执行指令不需要读写数据,不访内存. 还假设DMA 一次访问内存传送1个字节凭什么如此假设9600b/s=1200B/s 即1s中要传送1200次,而原本CPU要1M次访存,现在因DMA要减少1200次,所以影响是1200/1M=%一台计算机包括一个CPU和一台I/O设备D,通过一条共享总线连接到主存储器M,数据总线的宽度为1个字。

CPU每秒最多可执行106条指令,平均每条指令需要5个机器周期,其中3个周期需要使用存储器总线。

存储器读/写操作使用1个机器周期。

假设CPU正在连续不断地执行后台程序,并且需要保证95%的指令执行速度,但没有任何I/O指令。

假设1个处理器周期等于1个总线周期,现在要在M和D之间传送大块数据。

a.若使用程序控制I/O,I/O每传送1个字需要CPU执行两条指令。

请估计通过D的I/O数据传送的最大可能速度。

b.如果使用DMA传送,请估计传送速度。

答案:没必要全写捡重点题干信息:多少位CPU不知,字长多少位不知,以处理器周期为单位,访问内存(读1条指令读1字数据)要1周期,执行1指令需要5周期。

CPU每秒最多执行10^6条指令程序IO:传送1字要2条指令限制只能有5%的CPU处理用于IO程序IO:传送1字要2条指令限制只能有5%的CPU处理用于IO此限制下,1秒可执行用于IO的指令为5% * 10^6条指令而2条指令才可传送1字数据,所以每秒IO最大可传送的字为*5%*10^6=25000字/秒DMA情形:最大速度:在CPU执行后台程序时,总共能找到多少周期可以利用。

1周期传送1字5%CPU处理能力,全部可用于DMA,可执行指令条数为5%*10^6,而1条有5周期,所以可传送字:5*5%*10^6 个字DMA情形:最大速度:在CPU执行后台程序时,总共能找到多少周期可以利用。

1周期传送1字最大吗要见缝插针!后台程序执行时,执行1条指令共5个周期,但只在3个周期中访存,还有2个没有使用,DMA可用这两个周期DMA情形:最大速度:在CPU执行后台程序时,总共能找到多少周期可以利用。

1周期传送1字最后,DMA最大速度为:10^6 × 5 + × 2) = × 10^6 即字/秒第三章:进程描述与控制P103 , P1041、概念:交换(swapping):操作系统将内存中进程的内容或部分内容写入硬盘,或反之的操作。

进程:具有一定独立功能的程序关于一个数据集合的一次运行活动。

2. 进程有哪三个基本状态试说明状态转换的典型原因,图示。

(1)处于就绪状态的进程,当进程调度程序为之分配了处理机后,该进程就由就绪状态变为执行状态(2)正在执行的进程因发生某事件而无法执行,如暂时无法取得所需资源,则由执行状态转变为阻塞状态。

(3)正在执行的进程,如因时间片用完或被高优先级的进程抢占处理机而被暂停执行,该进程便由执行转变为就绪状态。

v1.0 可编辑可修改(2)状态转换1不会立即引起其他状态转换。

状态转换2必然立即引发状态转换1:状态转换2发生后,进程调度程序必然要选出一个新的就绪进程投入运行,该新进程可能是其他进程,也可能是刚从执行状态转换成就绪状态的那个进程。

状态转换3可能立即引发状态转换1:状态转换3发生后,若就绪队列非空,则进程调度程序将选出一个就绪进程投入执行。

状态转换4可能引发状态转换1:状态转换4发生后,若CPU空闲,并且没有其他进程竞争CPU,则该进程将被立即调度。

另外,状态转换4还可能同时引发状态转换1和2:若系统采用抢占调度方式,而新就绪的进程具备抢占CPU的条件(如其优先权很高),则它可立即得到CPU转换成执行状态,而原来正在执行的进程则转换成就绪状态。

什么是交换,目的是什么:操作系统将内存中进程的内容或部分内容写入硬盘,或反之的操作。

目的:将暂时无法运行的进程(阻塞状态)从内存中移出,空出内存,以便在内存中装入尽可能多的可运行的进程。

模式切换与进程切换是什么有什么区别是什么:为便于OS实现和管理,处理器一般支持两种(以上的)执行模式:用户态和内核态。

OS在内核态下运行,用户进程在用户态下运行。

从用户态到内核态的改变或反之,称之为模式切换。

用户进程运行时,如处理器响应中断,进入中断处理程序,则由用户态进入内核态;而中断返回后,从内核态返回用户态。

区别:模式切换不一定会改变当前运行的进程的状态,而进程切换过程中必然会出现模式切换。

模式切换(对应的中断处理)保存/恢复的状态信息少,而进程切换需要保存/恢复的状态信息多。

中断A)中断如何支持多道程序设计:1.外部设备具备中断能力后,CPU才可能在外部设备开始工作到完成之间执行其它程序;(轮询方式中,外部设备工作完成之前,CPU一直循环测试外部设备的状态,不可能执行其它程序)2.利用中断方式,操作系统可以及时获得控制权,在多个程序之间选择调度。

B)中断如何支持错误处理:在硬件发生异常时,如奇偶校验错,掉电等,以特殊中断形式出现;程序中出现系统错误时,如除零,地址越界,(无访问权限的)非法访问,以特殊中断形式出现;程序中应用语义级的错误,也可以中断形式出现;各种错误统一地用中断方式处理,只要分别编制相应的中断处理程序即可,简化了硬件设计,也方便了用户程序开发。

C)对于单线程而言,说明一个能够引起中断并且导致进程切换的情景,另外说明能引起中断但没有进程切换的例子导致切换例:用户进程要求输入,则在启动外部设备工作后,用户进程进入阻塞状态,进行进程切换;不导致切换例:发生时钟中断,当前运行的用户进程的时间片还未用完,则继续执行。

(另,若不限定为外部中断,则用户进程执行系统调用时,发生中断,若系统调用不涉及IO,则不会发生进程切换)第四章线程对称处理SMP和微内核概念:线程是进程中一个相对独立的执行流,是CPU调度的单位。

1、为什么要引入线程,多线程有何优点操作系统引入线程后,可以简化并发程序的设计,方便在一个进程内实现多个并行处理。

多线程的优点包括:实现进程内并行处理;方便数据共享;降低了切换时的系统开销;提高了CPU的利用率;改善了程序的响应性。

2.比较TCB与PCB内容。

TCB:线程标识,线程状态(运行,就绪,阻塞),处理器状态,(堆栈,私用数据段的)指针PCB: (TCB中没有的)进程的虚拟空间指针,文件等资源,进程的权限,进程间通信等。

3.比较用户级线程与内核级线程的异同用户级:优点:不需要OS支持,调度方式灵活,开销小;缺点:不能并行,一线程阻塞,其它线程也不能运行。

内核级:优点:可并行,一线程阻塞不会阻塞其它线程,缺点:创建切换开销相对大第九章:单处理器调度P291 , ,简要描述三种类型的处理器调度长程调度:决定加入到待执行的进程池中;中程调度:决定加入到部分或全部在主存中的进程集合中;短程调度:决定哪一个可用进程将被处理器执行。

抢占式和非抢占式有什么区别非抢占:在这种情况下,一旦进程处于运行态,他就不断执行直到终止,或者为等待I/O或请求某些操作系统服务而阻塞自己。

抢占:当前正在运行的进程可能被操作系统中断,并转移到就绪态。

关于抢占的决策可能是在一个新进程到达时,或者在一个中断发生后把一个被阻塞的进程置为就绪态时,或者基于周期性的时间中断。

简答定义最高响应比优先调度调度基于抢占原则并且使用动态优先级机制。

当一个进程第一次进入系统时,它被放置在RQ0。

当它第一次被抢占后并返回就绪状态时,它被防止在RQ1。

在随后的时间里,每当它被抢占时,它被降级到下一个低优先级队列中。

一个短进程很快会执行完,不会在就绪队列中降很多级。

一个长进程会逐级下降。

因此,新到的进程和短进程优先于老进程和长进程。

在每个队列中,除了在优先级最低的队列中,都使用简单的FCFS机制。

一旦一个进程处于优先级最低的队列中,它就不可能再降低,但是会重复地返回该队列,直到运行结束。

补充题:分析多级反馈算法(指出其目标,假设,内容及效果)反馈调度算法分析:目标系统效率:减少平均等待时间,提高系统呑吐量公平:减少饥饿现象出现或减轻程度尽量减少系统开销反馈调度算法分析:假设,理由程序由CPU阵发期,IO阵发期交替构成程序完成一次IO后,紧接着可能是一个短暂的IO阵发期程序一开始,一般都是一个CPU阵发期程序运行时间有长有短;长时间运行没有结束的程序可能还需要很长时间才能结束反馈调度算法分析:内容设置多个分成优先级不同的就绪队列,高优先级队列的时间片短,低优先级队列的时间片长。

(任一优先级的进程被调度运行时,时间片内不会被抢占。

)调度时,某一优先级队列的进程只在所有比其高的队列都为空时,才会调度这一队列中的进程。

进程新创建时,进入优先级最高的队列。