∑
线程是进程内执行代码的独立实体 各进程的地址空间被分成了 用户空间2G 和 系统空间2G两部分 Windows使用了两种访问模式:内核模式和用户模式 分别使用了 3 和 0 两个特权级别 在CPU的支持下 每个进程都被赋予自己的私有地址空间 当进程内的线程运行时 该线程仅仅能够访问属于它的进程的内存 而属于其他进程的内存被屏蔽起来 应用程序的启动过程就是进程的创建过程 内核对象 是系统提供的 用户模式下代码 与 内核模式下代码 进行交互的基本接口 一个内核对象是一块内核分配的内存 只能被运行在内核模式下的代码访问 内核对象和普通的数据结构间的最大区别是 它的内部数据结构是隐藏的 必须调用一个对象服务才能从此对象服务中得到数据 或者是向其输入数据 而不能直接读或者改变对象内部的数据 进程内核对象:操作系统使用此内核对象来管理该进程 OS是通过调用CreateProcess函数来创建新的进程的 当调用了CP进程,系统会创建一个进程内核对象 其使用计数被初始化为1 此进程对象不是这个进程本身 仅仅是一个系统用来管理这个进程的小型数据结构 然后系统会为新的进程创建一个虚拟地址空间,加载应用程序运行时所需要的代码和数据 |