CPU 作为资源会发生死锁吗?

问题描述

我在读软件工程的第四年,我们正在讨论死锁的主题

概括来说,当两个进程 A 和 B 使用两个资源 X 和 Y 并在释放它们之前等待另一个进程资源释放时,就会发生死锁。

我的问题是,鉴于 cpu 本身就是一种资源,是否存在将 cpu 作为资源导致死锁的情况?

我对这个问题的第一个想法是,您需要一个不能通过定时中断从 cpu 释放进程的系统(它可能只是一个 FCFS 算法)。您也不需要等待资源的队列,因为进入队列会释放资源。但是我也想问,有队列会不会死锁?

解决方法

CPU 调度程序可以以任何方式实现,您可以构建一个使用 FCFS 算法并允许进程决定何时放弃对 CPU 的控制的调度程序。但是这些类型的实现既不实用也不可靠,因为 CPU 是操作系统拥有的最重要的单一资源,并且允许进程以永远不会被抢占的方式控制它会有效地使处理系统的所有者,这与操作系统应该始终控制系统的基本思想相矛盾。

就现代操作系统(Linux、Windows 等)而言,这永远不会发生,因为它们不允许出现这种情况。