Windows CE 系统结构和功能(内存管理).pptVIP

  • 11
  • 0
  • 约3.23千字
  • 约 15页
  • 2018-05-14 发布于四川
  • 举报

Windows CE 系统结构和功能(内存管理).ppt

Session 2: Testing Windows CE .NET Alan Page, Microsoft 内存管理 内存结构 物理内存 在内部或外部总线上可访问的实际的RAM/ROM 虚拟内存 通过内存管理单元MMU转换过的虚拟地址 允许代码在需要的时候再换入 虚拟内存 虚拟内存管理 Windows CE为所有进程提供平板的4GB虚拟地址空间 系统仍然对每个进程提供保护 允许快速的进程间线程切换 使用虚拟内存 申请大块虚拟内存 Windows CE把虚拟内存分成64K的块 使用本地堆 内核为你的应用程序保留的虚拟地址 使用栈 存放函数内部使用的临时数据的区域 概述 虚拟内存模型 静态映射的虚拟内存 进程模型 进程内存 进程 模块 堆 栈 虚拟内存模型 虚拟内存 一个 32-bit (4 Gigabyte) 平板式虚拟内存地址空间 提供了被保护物理内存的有效使用 虚拟地址 内存管理单元 (MMU) “拥有” 物理内存 MMU将虚拟地址转换为物理地址 一个有效的虚拟地址必须被映射到一个物理地址 虚拟地址的静态和动态映射 物理地址 在上电时,在MMU有效之前只被CPU使用 虚拟内存模式 特权模式 在内核模式和用户模式间的虚拟内存split 所有的进程共享同一个平板式虚拟内存地址空间 通过MMU内核模式管理用户模式进程保护 内核空间 只被特权访问的内核模式代码使用(Kmode) 大多数是静态虚拟地址映射(不会有页内错误) 用户空间 每32MB由64个slots组成 大多数是动态虚拟地址映射 虚拟内存模式 静态映射虚拟地址 Process Model 虚拟地址 Slots 每个slot是32 MB (225 bytes) 虚拟地址空间 Slot空间被进程,DLLs, 和虚拟分配共享 在进程slot间快速进行上下文切换(交换页表) 当前线程执行在slot 0上 管理粒度 虚拟地址空间以64KB的粒度被分割 物理地址以4KB的粒度被页进行管理 分配规则 DLL 分配从高地址开始向下增长 进程分配从低地址开始向上增长 Lesson: Process Memory 模块 模块 标准的 Win32 Portable 可执行文件格式 标准的 Win32 工具 (符号, 数字信号, 等等) 动态连接库 (DLL) 用于输入和输出进程的可装载库 不同的实例数据执行在同一物理拷贝上 被当前进程激活/撤销控制 请求页面调度 将页面从存储器中提交/拷贝到RAM中用于执行 对于基于非压缩ROM的模块的在线执行(XIP) 解压基于ROM模块到RAM中 系统 API 调用机制 Coredll.dll 定位每一个进程slot的头地址 从用户模式的线程实现对系统API的调用 直接实现一些系统API的调用 引起一个例外(陷阱)转递到系统API的请求上 内核 捕获系统API请求的异常陷阱 分配一个系统exe去执行请求 用户模式的线程切换到系统exe进程空间 用户模式的线程继承当前进程的访问权限 系统 API 调用机制 堆 用法 以字节为粒度来分配内存 独立于处理器(隐藏了内存分页) 自动的分配内存和按要求提交页 不可变更 (当整个堆被释放时进行页面回收) 使用首次适应算法(first-fit algorithm)通过堆列表进行管理 使用相同大小对象分配时效率最高 局部堆 在装载处理时保留192KB虚拟内存 提交进程分配的物理页面 Private 堆 保留最初的固定和可扩展堆空间 一系列多线程的互斥对象 Shared 堆 对于当前进程可写,对于其它进程只读 栈 用法 存储在一个函数中使用的临时数据 存储在执行处理过程中的处理器寄存器的状态 为每一个线程创建时分配默认的栈 按要求提交 大小 依赖于CPU默认的栈大小 /STACK 连接器切换决定默认线程的栈大小 默认情况,一个进程的所有线程拥有相同的栈大小 使用 /GS 连接器检查栈看是否有缓存溢出 GetThreadCallStack – 恢复一个线程调用栈 * 只在桌面Windows上存在 Physical Memory * Storage Device Virtual Memory Logical Memory (Heap, stack) C Runtime (mallc, new…) Application Memory Mapping (Shared) Reserved Slot 32:Process32 . . . Slot 1:XIP DLL Code Slot 0:Active Process 2GB 2GB 32MB Kernel Space User Space Kernel Addresses: KPAGE, Trap Area, Others Slot 97: NK.EXE Unused S

文档评论(0)

1亿VIP精品文档

相关文档