Windows Via C/C++ Part Ⅰ Chapter4: 进程(1)_概述

来源:互联网 发布:青岛seo雪无痕 编辑:程序博客网 时间:2024/06/05 18:35

概述(Overview)


 

  本章讨论系统如何管理所有正在运行的应用程序,我们将谈到什么是进程、系统如何使用进程内核对象来管理进程、进程对象的属性以及修改他们的方法、如何调用API产生进程以及进程如何终止等。
  进程常被定义为正在运行的程序实例,它由两部分组成:(1) 操作系统用来管理进程、统计进程状态的内核对象。(2) 包含进程加载的所有可执行模块和动态链接库模块代码和数据的地址空间,其中也包括像线程堆栈和堆这样的动态内存空间。
  进程是惰性的。一个进程为了完成任务必须让一个线程运行在其上下文中,该线程用来执行包含在进程地址空间的代码。事实上,一个进程可以包含若干个线程,它们可以“同时”执行进程地址空间的代码,这时每个线程都拥有独立的CPU寄存器和堆栈。每个进程必须至少包含一个线程来执行其代码,在进程创建时,系统自动为其创建一个称为主线程的线程来执行其代码。如果进程中没有任何线程存在,系统将自动销毁该进程对象及其地址空间。
  当进程中含有若干个线程时,操作系统必须为每个线程调度CPU时间。图4-1显示了一种单核心处理器的调度方式,其中系统采用轮循方式为每个线程分配时间片:

  单核心处理器的cpu轮循调度模式
  在拥有多个处理器的计算机上,操作系统将使用更加复杂的算法为线程分配CPU时间。Windows可以在不同的处理器中调度线程以实现真正的并行执行,而无需应用程序开发人员的干预。然而有些时候开发人员必须考虑其程序采用的算法,以利用多核特性获取更高性能。

 

原创粉丝点击