处理器管理1

发布时间 2023-09-24 01:17:52作者: 郭培鑫同学

21计5郭培鑫 第二次作业

1.什么是程序状态字(PSW)?它有什么作用?

答案:程序状态字(PSW),是计算机体系结构中的一个重要的寄存器。它用于存储有关处理器执行的当前指令和程序的状态信息。PSW包含了多个位,每个位都对应于不同的处理器状态或标志,这些标志可以影响处理器的执行行为。

作用:指令执行控制、状态标志、中断控制、特权级别设置、异常处理。

2.为什么将机器指令分成特权指令和非特权指令?

答案:这是一种安全性和隔离性的设计决策为了实现计算机系统的安全性、稳定性和隔离性。具有安全性是指只有分别特权才能访问计算机内部;稳定性是指允许操作系统有效地管理和维护系统资源;隔离性是指非特权用户无法访问计算机特权部分。

3.什么是进程?操作系统为什么要引入进程的概念?

答案:进程是操作系统中的一个核心概念,它代表着正在执行的程序的实例。一个进程包括了程序的代码、数据、执行状态以及与其相关的系统资源。进程是计算机系统中的基本执行单元,每个进程都在自己的执行环境中运行,拥有独立的内存空间和执行上下文。

操作系统引入进程的概念有以下主要原因:

实现多任务处理、对计算机资源隔离、实现并发、实现进程间通信、异常处理、实现任务调度和资源分配。

4.假定一个处理器正在执行两个进程,其中一个进程以计算为主,另一个进程以I/O操作为主。应该如何赋予它们占有处理器的优先级,使得系统效率较高?

答案:若计算型进程优先级高于I/O型进程,则计算型进程占领处理器,这时计算型进程会忙于计算,这将会导致I/O型进程空闲,而处理器调度算法会考虑到CPU应该尽量和外围设备并行工作,因为如果外围空闲会浪费大量资源,包括时间成本和设备成本。所以我的结论是:应该让I/O型进程的优先级高于计算型进程的优先级。

5.若后备作业队列中同时等待运行的有三个作业Job1、Job2、Job3,已知其运行时间分别为a、b、c,且满足a<b<c。证明采用最短作业优先调度算法能获得最小的平均作业周转时间。

答案:本题使用到数学推理和归纳法。

假设有三个作业Job1、Job2、Job3,其运行时间分别为a、b、c,其中a < b < c。我们需要证明在最短作业优先调度算法下,平均作业周转时间最小。

首先考虑两个作业Job1和Job2,它们的运行时间分别为a和b,其中a < b。在最短作业优先调度算法下,Job1会被先调度,然后是Job2。这两个作业的平均周转时间可以表示为:

平均周转时间(Job1和Job2) = [(a + b) + (b)] / 2 = (a + 2b) / 2

现在,考虑三个作业Job1、Job2和Job3,它们的运行时间分别为a、b、c,其中a < b < c。根据最短作业优先调度算法,Job1会被调度,然后是Job2,最后是Job3。那么,Job1和Job2的平均周转时间已经在上面计算过了,为(a + 2b) / 2。

对于Job3,它将在Job1和Job2之后才被调度,因此它的等待时间为(a + 2b),并且它的运行时间为c。因此,Job3的周转时间为(a + 2b + c)。

三个作业的平均周转时间可以表示为:

平均周转时间(Job1、Job2和Job3) = [(a + 2b) / 2 + (a + 2b + c)] / 3

现在,我们需要证明采用最短作业优先调度算法的平均周转时间最小。为了做到这一点,我们可以比较两种情况下的平均周转时间:一种是采用最短作业优先调度算法,另一种是采用其他调度算法。

假设存在一种调度算法,按照不同的顺序调度作业Job1、Job2和Job3,并且平均周转时间比最短作业优先调度算法的平均周转时间更小。那么,我们可以将这种算法应用到Job1、Job2和Job3的排列上,得到一个更小的平均周转时间。但这与最短作业优先调度算法的定义相矛盾,因为最短作业优先算法始终选择运行时间最短的作业。因此,最短作业优先调度算法的平均周转时间是最小的。

6.若有一组作业J1、J2·····,Jn,其执行时间依次为S1,S2,····,Sn。这些作业同时到达系统,并在一台处理器上按照单道方法执行。试找出一种处理器调度算法,使得这些作业的平均周转时间最短。

答案:要找出一种处理器调度算法,使得这些作业的平均周转时间最短,最佳选择可以使用短作业优先(SJF)算法。

具体步骤:

  1. 初始化,将所有作业J1、J2·····,Jn放入就绪队列。
  2. 从就绪队列取出执行时间最短的作业作为下一个要执行的作业。也就是说,从就绪队列中选择Si值最小的作业。(Si为第i个作业的执行时间)
  3. 执行选定的作业,直到它完成。
  4. 回到第2步骤,直到所有作业完成。
  5. 某系统就绪队列中有10个进程,已知该系统处理间隔时钟中断需1 ms,完成一次进程切换需9 ms。若采用时间片轮转算法调度进程,时间片长度设为200 ms,试计算系统在进程调度的过程中,轮转一次所花费的调度开销占该次进程调度总时间的多少?

答案: 一个时间片轮转的过程包括以下步骤:

  1. 运行当前进程,消耗时间片200 ms
  2. 中断当前进程,消耗间隔时钟 1 ms
  3. 切换进程,消耗切换时间9 ms
  4. 运行新的进程,消耗时间片200 ms

故:一个时间片的总时间:200+1+9+200=410 ms

进程切换和中断的时间: 1+9 = 10 ms

轮转一次所花费的调度开销占该次进程调度总时间:10/410=2.44%

所有轮转一次所花费的调度开销占该次进程调度总时间的2.44%