处理器管理1
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)算法。
具体步骤:
- 初始化,将所有作业J1、J2·····,Jn放入就绪队列。
- 从就绪队列取出执行时间最短的作业作为下一个要执行的作业。也就是说,从就绪队列中选择Si值最小的作业。(Si为第i个作业的执行时间)
- 执行选定的作业,直到它完成。
- 回到第2步骤,直到所有作业完成。
- 某系统就绪队列中有10个进程,已知该系统处理间隔时钟中断需1 ms,完成一次进程切换需9 ms。若采用时间片轮转算法调度进程,时间片长度设为200 ms,试计算系统在进程调度的过程中,轮转一次所花费的调度开销占该次进程调度总时间的多少?
答案: 一个时间片轮转的过程包括以下步骤:
- 运行当前进程,消耗时间片200 ms
- 中断当前进程,消耗间隔时钟 1 ms
- 切换进程,消耗切换时间9 ms
- 运行新的进程,消耗时间片200 ms
故:一个时间片的总时间:200+1+9+200=410 ms
进程切换和中断的时间: 1+9 = 10 ms
轮转一次所花费的调度开销占该次进程调度总时间:10/410=2.44%
所有轮转一次所花费的调度开销占该次进程调度总时间的2.44%
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)