windows核心编程---windows内存体系结构
来源:互联网 发布:有趣有深度的问题知乎 编辑:程序博客网 时间:2024/05/21 09:23
-虚拟地址空间的分区
1.空指针赋值区
2.用户模式分区
进程无法访问驻留在这一分区的其它进程的数据。
3.内核模式分区
驻留在这一分区内的任何东西为所有进程共有。
-地址空间中的区域
1.创建进程并赋予它地址空间时,可用地址空间的大部分是闲置或未分配的。
须先预订–VirtualAlloc。
预订:
区域起始地址:分配粒度整数倍。系统预订区域不受限。
区域大小:页面大小整数倍。
释放–VirtualFree
区域类型:
闲置
私有
映像
映射
-给区域调拨物理存储器
要使用区域,须分配物理存储器+将存储器映射到所预订区域,
即调拨–VirtualAlloc。
调拨:
块大小:页面整数倍。
释放–VirtualFree
-物理存储器–页交换文件
如一台机器有1GB内存,硬盘还有1GB页交换文件,则,应用认为可用内存总量为2GB。
线程试图访问一块数据:
数据在内存,虚拟地址–>物理地址,依据物理地址访问内存数据。
数据在页交换文件,内存中腾出一个闲置页面,把页交换文件数据写入内存闲置页面,虚拟地址–>物理地址,依据物理地址访问内存数据。
-物理存储器–硬盘
当把一个程序位于硬盘的文件映像用作地址空间区域对应的物理存储器时,称此文件映像为内存映射文件。载入exe,dll时,系统自动 预订地址空间区域+把文件映像映射到该区域。
允许开发人员,把数据文件映射到地址空间。
-页面保护属性
PAGE_NOACCESS
PAGE_READONLY
PAGE_READWRITE
PAGE_EXECUTE
PAGE_EXECUTE_READ
PAGE_EXECUTE_READWRITE
PAGE_WRITECOPY
PAGE_EXECUTE_WRITECOPY
PAGE_NOCACHE
PAGE_WRITECOMBINE
PAGE_GUARD
-写时复制
windows支持多个进程共享同一存储器。
系统给共享的存储页指定写时复制属性。系统映射exe,dll到地址空间时,对其中可写页面,从页交换文件中为其分配预留备用空间。
-其它
一个进程地址对应的数据的物理存储器,可能有内存,页交换文件,硬盘。但实际操作数据均是在数据放到内存后进行。
-数据对齐
把数据的地址模除数据的大小,结果为0,则,数据就是对齐的。
- Windows核心编程:内存体系结构
- Windows核心编程:内存体系结构
- Windows核心编程--Windows内存体系结构
- windows核心编程---windows内存体系结构
- windows 核心编程 (内存体系结构)
- 《Windows核心编程》之”内存体系结构“
- 《Windows核心编程》读书笔记十三 内存体系结构
- 《Windows核心编程系列》十二谈谈Windows内存体系结构
- windows核心编程系列13---Windows内存体系结构
- 《Windows核心编程系列》十二谈谈Windows内存体系结构
- Windows核心编程(十三)Windows内存体系结构
- 《windows核心编程》读书笔记——内存体系结构
- Windows核心编程笔记(十三)Windwos内存体系结构
- Windows核心编程(笔记11) 第十三章 Windows内存体系结构
- 读书笔记——Windows核心编程(13)Windows内存体系结构
- 《Windows核心编程》读书心得——内存(内存体系结构)(5)
- windows核心编程--内存笔记
- windows内存体系结构
- 「算法精解_C语言描述」栈_栈的接口定义
- python爬虫环境安装-mongodb
- RecyclerView与SwipeRefreshLayout的完美搭配
- DeepMind提出架构搜索新方法:使用分层表示,时间短精度高
- 冷启动、微创新、产品思维,一家AI公司孵化输入法的跋涉之路
- windows核心编程---windows内存体系结构
- 终于!谷歌移动端深度学习框架TensorFlow Lite正式发布
- 如何使用深度学习为照片自动生成文本描述?
- 原来,能成功解锁你 iPhone X 的不是黑客与假脸,而是你儿子
- 学习Requests笔记
- Xcode9学习笔记55
- 029 二次型标准化方法一正交变换法
- Xcode9学习笔记56
- windows核心编程--探索虚拟内存