playerken

博客园 首页 新随笔 联系 订阅 管理

2011年8月28日 #

摘要: 线程是由两个部分组成的:一个是线程的内核对象,操作系统用它来对线程实施管理。内核对象也是系统用来存放线程统计信息的地方。另一个是线程堆栈,它用于维护线程在执行代码时需要的所有函数参数和局部变量。进程是不活泼的。进程从来不执行任何东西,它只是线程的容器。线程总是在某个进程环境中创建的,而且它的整个寿命期都在该进程中。这意味着线程在它的进程地址空间中执行代码,并且在进程的地址空间中对数据进行操作。进程使用的系统资源比线程多得多,原因是它需要更多的地址空间。而线程使用的系统资源要少得多。实际上,线程只有一个内核对象和一个堆栈,保留的记录很少,因此需要很少的内存。线程用于描述进程中的运行路径。每当进程 阅读全文
posted @ 2011-08-28 18:05 playerken 阅读(283) 评论(0) 推荐(0) 编辑

摘要: 将进程组合在一起,并且创建一个“沙框”,以便限制进程能够进行的操作。最好将作业对象视为一个进程的容器。CreateJobObject可以创建一个作业内核对象。OpenJobObject可以根据名字访问一个已经创建好的作业内核对象。CloseHandle可以关闭作业内核对象。关闭作业对象并不会迫使作业中的所有进程终止运行。该作业对象实际上做上了删除标记,只有当作业中的所有进程全部终止运行之后,该作业对象才被自动撤消。关闭作业的句柄后,尽管该作业仍然存在,但是该作业将无法被所有进程访问。对作业进程的限制SetInformationJobObject可以给一个作业加上若干不同类型的限制:基本限制和扩 阅读全文
posted @ 2011-08-28 16:33 playerken 阅读(185) 评论(0) 推荐(0) 编辑

摘要: 进程通常被定义为一个正在运行的程序的实例,它由两个部分组成:一个是操作系统用来管理进程的内核对象。内核对象也是系统用来存放关于进程的统计信息的地方。另一个是地址空间,它包含所有可执行模块或DLL模块的代码和数据。它还包含动态内存分配的空间。如线程堆栈和堆分配空间。Windows支持两种类型的应用程序。一种是基于图形用户界面(GUI)的应用程序,另一种是基于控制台用户界面(CUI)的应用程序。启动函数的功能:检索指向新进程的完整命令行的指针。检索指向新进程的环境变量的指针。对C/C++运行期的全局变量进行初始化。如果包含了stdlib.h文件,代码就能访问这些变量。对C运行期内存单元分配函数(m 阅读全文
posted @ 2011-08-28 14:20 playerken 阅读(394) 评论(0) 推荐(0) 编辑