2

我们如何将 taskmanager 中的进程(如 notepad.exe)作为输入作为我的银行家算法(死锁检测)的进程?

4

1 回答 1

1

跟踪所有操作系统/外部条件以在实际应用程序上实现真正的死锁预防算法将是困难的,并且可能是不可行的。现代操作系统(当我们不是在谈论支持 RT 的系统时)由于其压倒性的复杂性和昂贵性而不愿实现此类算法。

换句话说,您可以摆脱 Windows 死锁,在最坏的情况下,只需重新启动即可。考虑到这种情况发生了多少次,它在桌面操作系统市场上并不被认为是一个大问题。

因此,我建议使用虚拟应用程序编写一个简单的测试用例,该应用程序将要么

  • 服务于你的目的
  • 让您准确了解您的应用程序正在使用什么,并让您管理复杂性

作为旁注:像 notepad.exe 或类似的应用程序不是实时进程,即使您在 Windows 任务管理器中赋予它们“实时”优先级(甚至不是软实时)。实时流程具有必须遵守的时间限制(即期限)。这在任何桌面操作系统中都不是这样,因为它们只是在构建时考虑了不同的概念(时间共享)。Linux 有一些 RT 补丁(例如Xenomai)可以将内核中的调度算法呈现为实时的,但我现在不知道该补丁的状态。

于 2014-04-29T09:21:05.957 回答