生活每天正能量互联网@时事传播

CPU的保护模式与进程空间

2019-07-10  本文已影响30人  307656af5a04

CPU的保护模式

保护模式

Windows多任务的实现

虚拟内存

内核模式与用户模式


1、保护模式

80386处理器有三种工作模式:实模式、保护模式和虚拟86模式。Windows系统运行在保护模式下。

多道程序并发执行从而诞生保护模式。

“保护”指进程内存的隔离。

2、虚拟内存

在保护模式下,32位的Windows系统可寻址4GB的地址空间。各进程的地址空间被分成了用户空间和系统空间两部分。

进程空间

1、内核模式与用户模式

80386处理器定义了4种特权级别,Windows使用了两种访问模式:内核模式与用户模式

用户程序在用户模式下运行,系统程序(服务、驱动)在内核模式下运行

2、线性地址空间(逻辑地址)

3、进程内存空间说明

32位OS可寻址4GB的地址空间,也就是OS的虚拟内存空间位4G,win2000开始,64K--2G给应用程序预留,2G--4G为OS预留,0--64K不被映射,目的是为了捕捉程序种的错误。

Windows采用分页机制管理内存,每页的大小为4K(X86处理器上),也就是说Windows以4K为单位为应用程序分配内存。

内核对象

1、内核对象的概念

2、内核对象的句柄

3、使用计数

1、内核对象的概念

内核对象是系统提供的用户模式下代码与内核模式下代码进行交互的基本接口。

内核对象是一块内核分配的内存,只能被内核模式下的代码访问,也叫系统资源。Windows提供了API对内核对象的访问,没有其他的访问方式。

进程和进程内核对象是两块内存,进程销毁,不会自动把内核对象销毁。

创建进程时除了给进程分配一定的内存空间用于存储进程的代码和数据以及资源外,还将创建进程内核对象和线程内核对象。

内核对象的内容:安全属性、使用计数(所有内核对象都有)

-- 进程内核对象:进程ID、优先级、退出代码

-- 文件内核对象:偏移量、共享模式、打开模式

2、内核对象句柄

使用API创建内核对象时返回对象句柄

用于定位数据结构的位置,是一个不透明的值

句柄是与进程相关的,即仅对创建进程有效

内核对象句柄的数据类型为HANDLE

3、使用计数

使用计数指明进程对特定内核对象的引用次数

创建内核对象时,内核对象的使用计数=1,若又有另一个进程打开内核对象(使用内核对象)时,使用计数=2;该进程使用完内核对象,应该使用CloseHandle将使用计数值减1,当使用计数=0时,系统将释放此内核对象资源

使用CreateProcess创建进程时,在创建完后应该调用CloseHandle关闭创建好的子进程内核对象句柄和子进程的主线程内核对象句柄,因为CreateProcess的执行会将新创建的两个内核对象的使用计数+1

上一篇下一篇

猜你喜欢

热点阅读