操作系统之处理机调度与死锁
发布日期:2021-11-02 12:35:05 浏览次数:3 分类:技术文章

本文共 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:c++面向过程---50以内正整数算术题
下一篇:java面向对象之封装

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年04月17日 18时52分55秒