详细介绍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)完成执行体进程对象的创建过程
3.创建初始线程(栈、堆执行环境初始化及执行线程体对象)。
这时候Windows执行体进程对象已经完全建立完成,但它还没有线程所以无法执行,
接下来系统调用NtCreateThread来创建一个挂起的新线程它就是进程的主线程体。
4.通知Windows子系统新进程创建了(子系统是操作系统的一部分它是一个协助操作系统内核管理用户态/客户方的一个子系统具体的进程为Csrss.exe)。
接下来操作系统通过客户态(Kernel32.dll)给Windows子系统(Csrss)发送一个新进程线程创建的数据消息,让子系统建立自己的进程线程管理块。当Csrss接收到该消息时候执行下面的处理:
*复制一份该进程和线程句柄
  *设置进程优先级
  *分配Csrss进程块
  *把新进程的异常处理端口绑定到Csrss中,这样当该进程发生异常时,Csrss将会接收到异常消息
  *分配和初始化Csrss线程块
  *把线程插入到进程的线程列表中
  *把进程插入到Csrss的线程列表中
  *显示进程启动光标
5.开始执行初始线程(如果创建时候指定了线程的CREATE_SUSPENDED状态则线程暂时挂起不执行)。到这里进程环境已经建立完毕进程中开始创建的主线程到这里获得执行权开始执行线程
6.在新进程和线程环境中完成地址空间的初始化(比如加载必须的DLL和库),然后开始到进程入口执行。到这步实质是调用ldrInitializeThunk来初始化加载器,堆管理器NLS表TLS数组以及临界区结构,并且加载任何必须要DLL并且用DLL_PROCESS_ATTACH功能代码来调用各DLL入口点,最后当加载器初始化例程返回到用户模式APC分发器时进程映像开始在用户模式下执行,然后它调用线程启动函数开始执行。
到这里操作系统完成了所有的创建工作,我们写的程序就这样被操作系统调用运行起来了。

win10系统功能介绍
答:1、win10正式版新功能一拨动滑动及缩放在win10系统中拥有完整触控功能,您可以尽情发挥电脑潜力,自然直接的受控操作方式让您尽享快意流畅的运作步调win10正式版新功能二网络世界无所不在在win10系统中的interne。2、还请根据需求选择,各版本区别如下。3、Windows 7,是由微软公司Microsoft于2009年10月22...

Windows7系统自带光盘刻录功能图文详细介绍
答:1、把一张空白光盘放入刻录机,打开“计算机”窗口,双击刻录机图标,弹出“刻录光盘”对话框,选择刻录类型。这里有两个选项:一个是“类似于USB闪存驱动器”;另一个是“带有CD/DVD播放器”。2、选择“类似于USB闪存驱动器”,将刻录一张可以随时保存、编辑和删除文件,可以在WinXP或更高版本系统中运...

windows7系统下的winsxs是什么
答:winsxs是Win 7的Windows目录下一个非常重要的文件夹,该文件夹里边有很多重要的组件,版本也很复杂,为了保证Windows的正常运行,里面的文件是不可删除的,这些文件夹支撑着mscorwks.dll,没有它们nmscorwks也无法加载。如果强行删除后,可能只能以安全模式能勉强进入 Windows,Windows也就“挂”了。winsxs文...

详细介绍Win10 32位和64位系统的区别
答:第一,CPU要求不同 CPU有32位和64位之分,32位的CPU只能安装32位系统,而64位的CPU既可以安装32位系统也可以安装64位系统。第二,运算速度不同 64位CPU的指令集可以运行64位数据指令,比32位CPU提高了一倍(需要64位软件支持)。第三,寻址能力不同 64位系统可以支持多达128 GB的内存和多达16 TB...

详细介绍Win10 32位和64位系统的区别
答:windows 32位是指在操作系统针对32位的cpu设计,就是CPU处理器一次性能处理32位也就是4字节的数据,而windows 64是操作系统针对64位的cpu设计,就是一次CPU性能处理64位也就是8位字节,在工作频率相同的前提下,64位的cpu处理速度就比32位的高一倍。4、软件支持 越来越多的软件有了64位的版本,而64...

Win10系统的储存空间有什么做用|Windows10系统下如何创建存储池_百度知 ...
答:创建存储空间的具体步骤如下:1、右击Windows10开始菜单,选择“控制面板”命令。以“小图标”方式查看控制面板选项,在“所有控制面板项”列表中选择“存储空间”选项。2、进入“存储空间”创建窗口。3、在“存储空间”创建窗口中,点击“创建新的池和存储空间”。小提示:如果没有看到任务链接,请单击“...

浅析win764位旗舰版系统的三种windows系统账户类型
答:下面小编就跟大家详细介绍一下这三种账户类型及其特点,帮助大家选择更适合自己的电脑账户!一、管理员账户计算机的管理员账户拥有对全系统的控制权,能改变系统设置,可以安装和删除程序,能访问计算机上所有的文件。除此之外,它还拥有控制其他用户的权限。Windows7中至少要有一个计算机管理员账户。在只有一...

win10系统更新文件删除方法详细介绍
答:1、1首先双击此电脑进入系统盘界面,如下图所示2进入系统盘界面,找到本地磁盘,鼠标右键点击,选项属性,如下图所示3然后在打开的系统盘属性界面,如下图所示,点击磁盘清理按钮4这时磁盘清理程序开始扫面盘符下。2、方法一1从Win10开始菜单打开设置系统储存,我们可以看到一个储存感知功能,这个开关打开...

win7系统哪家公司的版本比较好详情介绍
答:1、win7旗舰版的最好用一介绍 Windows 7旗舰版属于微软公司开发的Windows 7操作系统系统系列中的功能最高级的版本,也被叫做终结版本,是为了取代Windows XP和windows vista等老系统的新系统,Windows 7操作系统的版本还有简。2、win7系统主要有家庭版专业版企业版旗舰版,其中win7旗舰版的功能是最全的...

Windows系统常用设置
答:本文将介绍Windows系统中常用的设置,包括硬件添加、程序卸载、日期时间、字体、Internet选项和用户账户等。️添加硬件硬件添加可通过从一个硬件列表选择,或者指定设备驱动程序的安装文件位置来完成。️卸载程序卸载程序允许用户从系统中添加或删除程序。添加/删除程序对话框也会显示程序被使用的频率,以及程序占用的...

IT评价网,数码产品家用电器电子设备等点评来自于网友使用感受交流,不对其内容作任何保证

联系反馈
Copyright© IT评价网