关于wince的内存空间布局

来源:互联网 发布:excel断开数据连接 编辑:程序博客网 时间:2024/05/22 14:20

才写了2篇博客就有点上瘾了,今天写点以前的心得。

以wince5.0为例,4G内存分为上下各2G,0~2G是进程使用,其中0~1G才是给用户使用的,这里还包括一些系统的进程。关于具体的分配有很多资料都有讲解,我想说点资料和书籍上没人说过的东西。

 

1。书上都说系统分配32M空间供进程使用,那么是怎么分配的呢?其实系统也没干什么,不过是从空闲的进程链表里找个进程控制块,填上必要的信息罢了,至于给进程分配32M空间根本就是编译器的干的事。

 

2。书上都说Slot0是个特殊的槽,会把正在执行的进程映射到这个槽里。这句话使我迷惑了很久,到底怎么做到的呢?其实这句话本身就是句空话,根本没有什么实际的操作,每个进程编译的时候都是从0地址开始的,当然底部64K是保留的,所以系统不过是把需要执行的进程控制块找到,恢复其中必要的上下文环境就可以了。

 

理解好空间的这些概念对写程序大有裨益,关于这方面的内容我现在心里有个模型但是我却表达不好,以后再详细的解释。