首页 > 解决方案 > 什么是 Windows 进程模型(状态进程模型)?

问题描述

我一直在尝试查找 Windows 用于其进程的状态模型,但在互联网上找不到任何东西。我尝试了研究论文和普通图像,但它们都没有任何具体的东西。

他们中的一些人试图通过解释 5-states 或 7-states 过程模型图来举例,并说 windows 使用这样的状态,但他们从不告诉 windows 实际使用的模型是什么。其中一个甚至谈到了混合动力车,但没有明确的解释。

我能够找到Unix,但没有找到Windows。所以谁能告诉我是哪一个?

标签: windowsoperating-systemprocessmodel

解决方案


Windows 上的进程基本上只是其线程的容器,进程本身从不执行代码。一个进程从一个线程开始它的生命,这个线程可能会立即运行或者可以被请求开始挂起。只要进程中有适用的线程,它就会运行。当没有更多线程要运行(ExitProcess/TerminateProcess调用等)时,进程对象会发出信号。其他进程中的线程可以等待这个信号(WaitForSingleObject等)。

当进程收到信号并且进程对象的所有句柄都已关闭时,内核会释放与进程相关的所有内存和资源并删除进程对象。

线程的状态更复杂。在基本术语中,状态是

  • 暂停。
  • 准备运行。
  • 阻塞/等待(等待内核对象或 I/O)。
  • 跑步。
  • 已结束(已发出信号,将永远不会再次执行代码)。

我推荐Windows Internals 书籍,以全面深入地了解 Windows 内核。


推荐阅读