引言
本来在写一篇Windows内存管理的文章,写着写着就发现好多基础的概念都要先讲。更可怕的是,这些基础的概念我却不能完全讲清楚。只好再把这本《深入解析Windows操作系统》翻到第一章…… 很多书的第一章往往都会说:第一次读本章往往一知半解,建议学习后面的内容时隔段时间再回来看本章,会有更多的收获。这本书就是这样。
友情提示:结尾更精彩~
进程
尽管表面上看起来程序和进程非常类似,但本质上它们却是截然不同的。程序是一个静态的指令序列,而进程则是一个容器,其中包含了当执行一个程序的特定实例时所用到的各种资源。比如:Notepad是一个程序,运行这个程序便产生了进程。
从高层次的抽象来看,一个Windows进程是由以下元素构成的。
- 一个私有的虚拟地址空间。(虚拟地址空间指的是一组虚拟内存地址的范围)
- 一个可以执行的程序。它定义了初始的代码和数据,并且被映射到该进程的虚拟地址空间。即可执行映像。
- 一个已打开句柄的列表,这些句柄指向各种系统资源。该进程内的所有线程都可以访问。
- 一个被称为访问令牌的安全环境,它标识了与该进程关联的用户、安全组和特权。
- 一个被称为进程ID的唯一标识符。
- 至少一个执行线程。(第一个执行线程称为主线程)
进程、线程的定义很多,但像这本书这么直接了当的毫不抽象(貌似与上面某句话矛盾哈^_^)的定义倒很新颖。当然,说的这么细,人家就不一定能看懂了。