进程:
从最高层次的抽象来看,一个Window就能成是由以下元素构成的:
1、一个私有的 虚拟地址空间,这是指该进程可以使用的一组虚拟内存地址。2、一个可执行的程序,它定义了初始化的代码和数据,并且被映射到该进程的虚拟地址空间中。
3、一个 已打开句柄的列表,这些句柄指向各种系统资源,比如信号量、通信端口和文件,该进程内所有的线程都可以访问这些系统资源。
4、一个被称为 访问令牌的安全环境,它标识了与该进程关联的用户、安全组和特权。
5、一个被称为 进程ID的唯一标示符(在内部被称为 客户ID)
6、至少一个执行线程。
线程:
1、一组代表处理器状态的CPU寄存器中的内容
2、两个栈,一个用于当线程在内核模式下执行的时候,另一个用户线程在用户模式下执行的时候
3、一个被称为线程局部存储区的私有存储区域,各个子系统、运行库和DLL都会用到该存储区域
4、一个被称为线程ID的唯一标识符(在内部也被称为客户ID——进程ID和线程ID是在同一个名字空间中生成的,所以它们永远不会重叠)
5、有时候线程也有它们自己的安全环境,如果多线程服务器应用程序要模仿其客户的安全环境,则往往可以利用线程的安全环境
线程环境:易失的寄存器、栈和私有存储区域合起来被称为线程的环境。
访问令牌::每个进程都有一个安全韩剧,被存储在一个称为访问令牌的对象中。进程的访问令牌也包含了该进程的安全标识和凭证。在默认情况下,线程没有自己的访问令牌,但是他们也可以包含一个访问令牌,因此单独的线程可以模仿另一个进程的安全环境。
虚拟地址空间(VAD):是指一些数据结构,内存管理器利用这些数据结构来记录一个进程所使用的虚拟地址。
作业(job):作业对象的的主要功能是,使得一组进程被当做一个整体来管理和维护。