位置: 编程技术 - 正文

详细介绍windows系统下创建进程、线程的过程(详细介绍的英文)

编辑:rootadmin

推荐整理分享详细介绍windows系统下创建进程、线程的过程(详细介绍的英文),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:详细介绍自己,详细介绍地府的书籍,详细介绍windows注册表的书,详细介绍一个基金产品,详细介绍变异的含义,详细介绍的英文,详细介绍安吉尔净水器,详细介绍安吉尔净水器,内容如对您有帮助,希望把文章链接给更多的朋友!

进程(Process)是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位。程序只是一组指令的有序集合,它本身没有任何运行的含义,只是一个静态实体。而进程则不同,它是程序在某个数据集上的执行,是一个动态实体。它因创建而产生,因调度而运行,因等待资源或事件而被处于等待状态,因完成任务而被撤消,反映了一个程序在一定的数据集上运行的全部动态过程。

线程(Thread)是进程的一个实体,是CPU调度和分派的基本单位。线程不能够独立执行,必须依存在进程中,由进程提供多个线程执行控制。从内核角度讲线程是活动体对象,而进程只是一组静态的对象集,进程必须至少拥有一个活动线程才能维持运转。当某个应用程序调用一个创建进程的函数比如CreateProcess或者用户执行某一个程序(其实windows下用户执行一般普通程序是由explorer.exe调用CreateProcess来完成),操作系统把这个过程分成以下步骤来完成:

1.打开将要在该进程中执行的映像文件。2.创建Windows执行体进程对象。3.创建初始线程(栈、堆执行环境初始化及执行线程体对象)。4.通知Windows子系统新进程创建了(子系统是操作系统的一部分它是一个协助操作系统内核管理用户态/客户方的一个子系统具体的进程为Csrss.exe)。5.开始执行初始线程(如果创建时候指定了线程的CREATE_SUSPENDED状态则线程暂时挂起不执行)。6.在新进程和线程环境中完成地址空间的初始化(比如加载必须的DLL和库),然后开始到进程入口执行。到这里操作系统完成一个新进程的创建过程。

下面来看下具体每一步操作系统所做的工作:1.打开将要在该进程中执行的映像文件。首先操作系统找到执行的Windows映像然后创建一个内存区对象,以便后面将它映射到新的进程地址空间中。

2.创建Windows执行体进程对象。接下来操作系统调用内部的系统函数NtCreateProcess来创建一个Windwos执行体进程对象。具体步骤是:(1)建立EPROCESS*分配并初始化EPROCESS结构块*从父进程处继承得到进程的亲和性掩码*分配进程的最大最小工作集尺(由两个参数决定PsMinimumWorkingSet PsMaximumWorkingSet)*降新进程的配额块设置为父进程配额块地址,并递增父进程配额块的引用计数*继承Windows的设备名字空间*将父进程进程ID保存在新进程对象的InheritedFormUniqueProcessId中*创建该进程的主访问令牌*初始化进程句柄表*将新进程的退出状态设置为STATUS_PENDING

(2)创建初始的进程地址空间*在适当的页表中创建页表项,以映射初始页面*从MmresidentAvailablePage算出进程工作集大小*系统空间的非换页部分和系统缓存的页表被映射到进程

(3)初始化内核进程块KPROCESS(4)结束进程地址空间的创建过程(5)建立PEB(6)完成执行体进程对象的创建过程

详细介绍windows系统下创建进程、线程的过程(详细介绍的英文)

3.创建初始线程(栈、堆执行环境初始化及执行线程体对象)。

这时候Windows执行体进程对象已经完全建立完成,但它还没有线程所以无法执行,

接下来系统调用NtCreateThread来创建一个挂起的新线程它就是进程的主线程体。

4.通知Windows子系统新进程创建了(子系统是操作系统的一部分它是一个协助操作系统内核管理用户态/客户方的一个子系统具体的进程为Csrss.exe)。

接下来操作系统通过客户态(Kernel.dll)给Windows子系统(Csrss)发送一个新进程线程创建的数据消息,让子系统建立自己的进程线程管理块。当Csrss接收到该消息时候执行下面的处理:

*复制一份该进程和线程句柄*设置进程优先级*分配Csrss进程块*把新进程的异常处理端口绑定到Csrss中,这样当该进程发生异常时,Csrss将会接收到异常消息*分配和初始化Csrss线程块*把线程插入到进程的线程列表中*把进程插入到Csrss的线程列表中*显示进程启动光标

5.开始执行初始线程(如果创建时候指定了线程的CREATE_SUSPENDED状态则线程暂时挂起不执行)。到这里进程环境已经建立完毕进程中开始创建的主线程到这里获得执行权开始执行线程

6.在新进程和线程环境中完成地址空间的初始化(比如加载必须的DLL和库),然后开始到进程入口执行。到这步实质是调用ldrInitializeThunk来初始化加载器,堆管理器NLS表TLS数组以及临界区结构,并且加载任何必须要DLL并且用DLL_PROCESS_ATTACH功能代码来调用各DLL入口点,最后当加载器初始化例程返回到用户模式APC分发器时进程映像开始在用户模式下执行,然后它调用线程启动函数开始执行。

到这里操作系统完成了所有的创建工作,我们写的程序就这样被操作系统调用运行起来了。

windows安全模式的作用、种类及功能详解 使用计算机的老手一定对windows安全模式不陌生,在删除病毒,卸载顽固软件,或者系统维护时,Windows的安全模式肯定会帮助很大,下面电脑技术就说说

什么是微软Windows的未来:一个内核,多个版本 据国外ZDNet网站评论,近期关于微软未来将取消三个不同平台的Windows系统的评论引起了轩然大波,但这个猜想是错误的,而微软Windows的未来是一个内核

Win系统没有崩溃前如何恢复安装 如果Windows系统没有完全崩溃,但有些系统错误通过磁盘扫描或纠错软件又没法修复,这时可以使用Windows的部分恢复安装程序。这个安装程序可以在Wi

标签: 详细介绍的英文

本文链接地址:https://www.jiuchutong.com/biancheng/355072.html 转载请保留说明!

上一篇:windows xp/2000/2003系统自动登陆设置方法无需输入密码

下一篇:windows安全模式的作用、种类及功能详解(windows 11安全模式)

  • 特别关税是多少人民币
  • 非关联企业借款利息扣除
  • 企业所得税是含税价还是不含税价
  • 金税三期是什么时候投入使用的
  • 高新技术企业亏损弥补
  • 办公室购买清洁剂
  • 土地使用权摊销计入在建工程
  • 外经证核销反馈表
  • 存款利息缴纳个税
  • 红字信息表已核销不允许撤销
  • 认证发票密文有误不能抵扣如何处理?
  • 设备安装成本如何核算
  • 物业公司需要向哪个部门缴费
  • 长期待摊费用的摊销方法
  • 当期应税销售收入是含税还是不含税
  • 税局未核定印花税一直没有交怎么办
  • 开票软件维护费计入什么科目
  • 分公司筹备方案
  • 旧税号的发票专用章还能使用吗
  • 审计报告报备流程
  • ios14 举报短信
  • macOS 11.0.1(20B29)更新了什么?macOS Big Sur 11.0.1(20B29)更新详解
  • 怎么操作win10系统
  • 总产值在报表中怎么看
  • 财政拨款收入的明细科目
  • Win11怎么关闭自动休眠
  • php中apache的配置
  • 利息股息红利所得属于综合所得吗
  • PHP:curl_getinfo()的用法_cURL函数
  • 做事应该怎么做
  • 原始凭证的分类依据有哪些?分别能分为哪些类型?
  • php类和对象
  • PHP:imagecreatefromwbmp()的用法_GD库图像处理函数
  • 金融企业财务规则(征求意见稿)
  • 直运商品委托代销商品的销售成本的计算方法应采用
  • 愚人挑战
  • mongodb4.4安装
  • 企业捐赠的资产如何入账
  • 消防工程材料费用占比
  • 分公司和总公司的账务处理
  • 收到返利冲成本还是记收入
  • 公司记账可以不开发票吗
  • 哪种银行贷款利息最低
  • SQLite教程(十一):临时文件
  • 保洁公司的税率是多少
  • 税控盘开票机号在哪里能查到
  • 扣缴义务人如何登录电子税务局
  • 小规模企业可以抵扣进项税吗
  • 个体户定额征收后还要报税吗
  • 企业哪些收入不需要交税
  • 小规模纳税人零税率怎么申报
  • 人力资源外包服务企业
  • 承兑汇票利息分录
  • 高速公路过路费怎么算的
  • 一次性收取房租怎么做分录
  • 购进商品的运费计入什么科目
  • 未收到投资款可以确认实收资本吗
  • 年终奖企业应该计入哪个会计年度
  • 单位结算卡和回单卡
  • 增值税稽查补交税会计处理
  • 企业应缴纳的消费税
  • mysql获取表行数的方法
  • linux下mysql5.7.17最新稳定版本安装教程
  • mac如何取消自动开机
  • SUSE Linux Enterprise Server 11 SP3安装教程详解
  • rundll32.exe是什么程序
  • win10使用技巧有什么用
  • win8系统盘瘦身
  • WIN10怎么设置在平板模式下隐
  • iptables -z
  • win10天气系统怎么弄掉
  • opengl渲染流程图
  • javascript 函数定义
  • 关于echo的名字
  • e87移植
  • js基础
  • 中国裁判文书怎么查个人案件
  • 车船税填表说明
  • 交完车船税后地税局都给什么
  • 盐城滨海人口
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设