本文共 1317 字,大约阅读时间需要 4 分钟。
处理机调度与死锁
文章目录
处理机调度层次
作业概念:
作业是一个比程序更广泛的概念,它不仅包括了程序,数据文件,还包括了一份作业执行说明书。
好了,知道了作业的概念后,我们引入概述:
我们知道程序(作业)的运行,需要从外存,加载到内存中,才能被执行。
但是,如果盲目的,没有方法地,就将外存中的作业,加载到内存,必定会造成混乱,内存的利用率就不高,
因此出现了一套方法,来管理调度这些作业,高效地将它们调度加载到内存。这套方法就叫处理机调度。
在多道处理环境中(内存中可以并发处理多个任务),一个作业需要经历处理机调度后,才能获得处理机,进行执行。处理机调度又分为作业调度(又称高级调度/长程调度),进程调度(又称低级调度/短程调度)。
1.高级调度
高级调度的 调度对象是作业。
1.作业和作业步
1)作业指的是待加载到内存中执行的任务。
2)作业步指 作业加载到内存中 经历的每一个步骤。
作业步分为三步:
.编译
.链接
.装入,执行
2.作业控制块(JCB)
处理机调度是一套方法,概念,而作业控制块是真正控制作业的,它是作业存在的标志。这个模块中包含所有系统对作业进行管理和调度所需的全部信息。
3.作业调度
作业调度每次接纳多少个作业加载到内存呢?这主要由多道程序度来决定的,也就是能同时允许在内存中执行多少个任务。
那作业调度,是先接纳哪些作业,后接纳哪些作业呢?
这主要是根据调度算法。常见的调度算法有:1.短作业优先调度法,2.基于作业优先级调度法3.相应比高者优先算法
2.低级调度
高级调度将作业调入内存后,系统又通过低级调度给这些作业分配进程,然后低级调度就是管理调度这些进程的,因此低级调度的对象是进程,进程调度是最基本的一种调度,因为进程是系统进行资源分配的最基本的单位。
3.中级调度
中级调度又叫中程调度,引入中级调度的目的是提高内存利用率和系统吞吐量。它将暂时不能运行的进程,调入外内,不再使其占用内存资源。此时,这种进程的状态成为挂起状态或绪驻外存状态。
死锁
概述:
我们为了提高内存的利用率,因此可以借助进程的并发执行,但这样会出现一种危险情况,会出现死锁。死锁使进程之间因争夺资源而造成一种僵局。
产生死锁地必要条件:
1.互斥条件
进程竞争的资源要是独占资源(临界资源),我们把一段时间内只允许一个进程访问的资源称为独占资源(临界资源),比如 打印机,一段时间内只能处理一个任务,而不能同时处理多个任务。
比如打印机已经在处理一个任务了,但是另一个进程也想进来插一脚,也想同时让打印机处理一个任务,这样打印机就错乱了。
2.请求和保持条件
某进程已经占有了某资源,但是同时又提出新的请求,想要访问另一个资源,但是该资源已被占用, 此时两进程之间就会“打架”,造成阻塞。
3.环路等待条件
产生死锁时,进程必然存在一种环路等待状态。
比如 有进程P1,P2,P3,P4,P5 五个进程,
进程P2正在等待P1正在占用的资源,P3正在等待P2正在占用的资源,P3等待P2正在占用的资源,。。。P5正在等待P1正在占用的资源。
解除死锁
1.给死锁进程更多的资源
2.撤销进程。将死锁进程杀死。
转载地址:https://blog.csdn.net/weixin_43919632/article/details/90474470 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!