进程&线程

 


线程是进程内执行代码的独立实体
各进程的地址空间被分成了 用户空间2G 和 系统空间2G两部分
 
Windows使用了两种访问模式:内核模式和用户模式
分别使用了 3 和 0 两个特权级别
 
在CPU的支持下
每个进程都被赋予自己的私有地址空间
当进程内的线程运行时
该线程仅仅能够访问属于它的进程的内存
而属于其他进程的内存被屏蔽起来

应用程序的启动过程就是进程的创建过程


内核对象
是系统提供的
用户模式下代码

内核模式下代码
进行交互的基本接口
一个内核对象是一块内核分配的内存
只能被运行在内核模式下的代码访问 
内核对象和普通的数据结构间的最大区别是
它的内部数据结构是隐藏的
必须调用一个对象服务才能从此对象服务中得到数据
或者是向其输入数据
而不能直接读或者改变对象内部的数据






进程内核对象:操作系统使用此内核对象来管理该进程

OS是通过调用CreateProcess函数来创建新的进程的
当调用了CP进程,系统会创建一个进程内核对象
其使用计数被初始化为1
此进程对象不是这个进程本身
仅仅是一个系统用来管理这个进程的小型数据结构

然后系统会为新的进程创建一个虚拟地址空间,加载应用程序运行时所需要的代码和数据 
原文地址:https://www.cnblogs.com/Cheetos/p/5177863.html