当前位置:鱼C工作室 >Win32汇编 > 查看文章

Win32基础知识5 – Win32汇编语言006

Win32基础知识5

 

让编程改变世界

Change the world by program


 

Windows的内存安排

 

这节课我们需要理解三个概念:

每个应用程序都有自己的4 GB的寻址空间,就算这个程序只暂 1KB的内存;

不同应用程序的线性地址空间是隔离的,尽管他们在内存中是搞在一起;

时刻要记住,DLL程序是“小三”,因此它们没有自己“私有”的空间。

 

本节课我们将图文并茂地来进行原理层面的分析!

 

虚拟内存安排:

 

Windows 系统一般在硬盘上建立大小为物理内存两倍左右的交换文件用作虚拟内存。

利用 80386处理器的内存分页机制,交换文件的寻址上可以很方便地作为物理内存使用。

(只需要在真正调用的时候将其读入物理内存并同时修改线性地址映射到这块内存即可)。

同样道理,反正是映射一个地址而已,所以被执行的程序也可以不必装入内存,只需要在页表中建立映射关系,真正运行到这段代码才调入内存。

 

众所周知,Windows 是一个分时的多任务操作系统,CPU时间(就是CPU运行的过程)被分成一个个的时间片后分配给不同程序轮流使用。

在A程序的时间片中,和这个程序执行无关的部分(B和C等其他程序的代码和数据)并不需要映射到线性地址中。

 

附加解析:

内存中,所有的程序都搞在一起,关系十分混乱;

CPU只能看到线性地址(假的),每个程序拥有自己的线性地址(小三除外)。

 

虚拟内存安排

 

分页阅读: 1 2 下一页
为您推荐

报歉!评论已关闭.