设为首页  
联系我们  
加入收藏  
网页制作 冲浪宝典 图形图像 操作系统 软件教学 编程开发 认证考试 安全技术 站长专区 文学驿站 娱乐天地 游戏天地 办公软件
文章搜索
您的位置: 首页 >> 文章首页 >> 编程开发 >> 其他开发语言 >> Memory Management
精品推荐
其他开发语言点击TOP10
·数字小键盘指法练习
·用C语言编通讯录程序(初学者级别的)
·Modem 常用AT指令集
·单片机模拟I2C总线及24C02(I2C EEPROM)读写实例(源代码)
·C++经典电子书下载
·Thinking in C++ 简体中文第二版
·debug和release的区别
·error LNK2001: unresolved external symbol __ftol2 错误解决
·C库函数手册
·一个简单的C语言编译器
编程开发点击TOP10
·数字小键盘指法练习
·ASP.NET 程序中常用的三十三种代码
·用C语言编通讯录程序(初学者级别的)
·我写的Java学生成绩管理系统源代码
·CHK文件恢复工具
·Modem 常用AT指令集
·java笔试题
·异常java.sql.SQLException: Io exception:The Network Adapter could not establish connection
·单片机模拟I2C总线及24C02(I2C EEPROM)读写实例(源代码)
·C++经典电子书下载
精选专题

Memory Management

作者: 来源:网络文章 时间:2005-12-17 18:39:35

Memory Management(3)



也许你担心,光为了分页就用掉
4MB,是不是太多了些。噢,不必担心,操作系统可以藉由 page directory 这一层,告诉 CPU 说某一个page table(占用 4KB)不在内存中(not present),于是就可以省下 4KB RAMPage directory page tables 很少真正使用将近 4MB 的实际内存,但它们的确是使用 4MB 地址空间,就从 FF800000h 开始。Page directory 也位于这 4MB 之中。利用 SoftIce/W 可以观察得到它们。

Windows 95 的内存管理函式

Windows 95 的内存管理函式分为层,层函式依赖层函式。最底层是 VMM 提供的函式,用来配置大块内存并在其操作 pages。应用程序并不直接呼叫这层函式,KERNEL32.DLL 才会用到它们,用以成就较高阶的函式。

层是 KERNEL32 提供的 VirtualXXX 函式:VirtualAllocVirualFreeVirtualProtect等等。这些函式系以 VMM 函式为基础,用来管理大块内存,并以 page 为单位。

上一层是 KERNEL32 HeapXXX 函式,包括 HeapAllocHeapFreeHeapCreate 等等。它们大约相当于 C 函式库的内存相关函式(如 mallocfree 等等)。事实,在 Windows NT SDK C 函式库malloc 只是 HeapAlloc 的另一个包装而已。

最上一层是 LocalXXX GlobalXXX 函式。但和 Win16 不同的是,这两组函式基本上没有差别,例如 LocalAlloc 就和 GlobalAlloc 完全相同。KERNEL32 开放出这两个函式,但使用同一个函式地址。LocalXXX GlobalXXX 其实只是 HeapXXX 的上层包装而已,其实没有太多理由需要在 Win32 程序中使用LocalAlloc GlobalAlloc 这样的函式。这些内存管理函式不再像 Win16 GlobalAlloc 一样需要和selector 打交道,也不再像 Win16 LocalAlloc 一样从程序的数据节区中挖空间。它们之所以继续存在于Win32,主要理由就是让原来的 Win16 程序更容易生存。

共4页 9 7 [1] [2] [3] [48 :>

Memory Management 相关文章:
Memory Management 相关软件:
特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
转载请注明来源:http://www.xgdown.com