Windows核心编程2

第4章  进程

进程通常被定义为一个正在运行的程序的实例,它由两个部分组成:
• 一个是操作系统用来管理进程的内核对象。内核对象也是系统用来存放关于进程的统计
信息的地方。
• 另一个是地址空间,它包含所有可执行模块或D L L模块的代码和数据。它还包含动态内
存分配的空间。如线程堆栈和堆分配空间

若要使进程完成某项操作,它必须拥有一个在它的环境中运行的线程,该线程负责执行包含在进程的地址空间中的代码。实际上,单个进程可能包含若干个线程,所有这些线程都"同时”执行进程地址空间中的代码。为此,每个线程都有它自己的一组C P U寄存器和它自己的堆栈。每个进程至少拥有一个线程,来执行进程的地址空间中的代码

当创建一个进程时,系统会自动创建它的第一个线程,称为主线程。然后,该线程可以创建其他的线程,而这些线程又能创建更多的线程


第5章作业
通常,必须将一组进程当作单个实体来处理。例如,当让Microsoft Developer Studio为你创建一个应用程序项目时,它会生成C l . e x e,C l . e x e则必须生成其他的进程(比如编译器的各个函数传递)。如果用户想要永远停止该应用程序的创建,那么Developer Studio必须能够终止C l . e x e和它的所有子进程的运行。在Wi n d o w s中解决这个简单(和常见的)的问题是极其困难的,因为Wi n d o w s并不维护进程之间的父/子关系。即使父进程已经终止运行,子进程仍然会继续运行。当设计一个服务器时,也必须将一组进程作为单个进程组来处理。例如,客户机可能要求服务器执行一个应用程序(这可以生成它自己的子应用程序),并给客户机返回其结果。由于可能有许多客户机与该服务器相连接,如果服务器能够限制客户机的要求,即用什么手段来防止任何一个客户机垄断它的所有资源,那么这是非常有用的。这些限制包括:可以分配给客户机请求的最大C P U时间,最小和最大的工作区的大小,防止客户机的应用程序关闭计算机,以及安全性限制.


第6章线程的基础知识

由于线程需要的开销比进程少,因此始终都应该设法用增加线程来解决编程问题,而要避免创建新的进程。但是,这个建议并不是一成不变的。许多程序设计用多个进程来实现会更好些。应该懂得权衡利弊,经验会指导你的编程实践。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tof21

支持原创

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值