首页
社区
课程
招聘
[求助]求大神//关于windows内存管理//真心不懂
发表于: 2014-9-7 10:45 5120

[求助]求大神//关于windows内存管理//真心不懂

2014-9-7 10:45
5120
看了很多资料和一些视频教程,都讲的很烂,一会儿是段式内存,一会儿又是页式内存,一会儿说什么逻辑地址只是偏移地址,一会儿又说intel规定逻辑地址前要加上段号才是逻辑地址,操作系统原理书我也都看过,
我只想知道,windows系统下的内存管理,到底是段式内存管理,还是页式内存管理,还是两者都有,还有是不是 页式内存管理 是以前的技术,现在都用的 段式内存管理,希望有个真正懂的人给讲清楚,小弟真是谢谢了

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 185
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
一、最初的16位+4 20位的地址是段式的。

二、现在系统是页式的。  段是必须要填 的。 但是直接默认值。不会更改的。
2014-9-7 11:11
0
雪    币: 388
活跃值: (707)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
3
这些东西,我觉得刚开始,得结合他的历史来看,就是以前的电脑几m内存就够了,后来软件升级了,硬件也要跟着升级,内存也大了,但是总线带宽还是原来的,于是大家就想到了用段加偏移的方式来访问更大的内存。(段式内存)

但是后来的电脑内存越来越大了,而且出现了很多问题,比如进程A使用了野指针,把进程B的内存给改了,导致B经常出错呀,而且开发人员还不好找问题,因为本身自己程序没有问题。后来大神就想到了一种方法来解决这些问题,就是页式内存管理,每个进程都有独立的内存地址空间,但是他所访问的地址并不是真正的物理内存地址,叫做逻辑地址吧,操作系统就管理一张表,他里面记录着这个进程的逻辑地址对应的物理地址,然后还用了一些标志位来记寻这一块内存地址的属性之类的....

你可以看看罗云彬的win32,那本书有讲保护模式的,或者80x86汇编语言程序设计教程,这本应该是国内讲保护模式讲得比较权威的了,看的时候不能只顾着记,想着当时的情况,那种设计会遇到什么问题,要怎么样解决,这样记得了,以后就真的记住了!

我以前也是看得云里雾里的!如果有答得不对的地方,请指出!
2014-9-7 11:29
0
雪    币: 2161
活跃值: (750)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
4
windows是段页式管理内存
但段寄存器用处已经不大了
剩下的就是线性地址和分页机制了
http://bbs.pediy.com/showthread.php?t=61327
2014-9-7 13:01
0
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
你说的对我很有用,
2014-9-8 23:14
0
雪    币: 1555
活跃值: (3103)
能力值: ( LV11,RANK:180 )
在线值:
发帖
回帖
粉丝
6
多看看 底层书 就能找到答案了
2014-9-9 15:17
0
雪    币: 10
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
谢谢你了,说的很详细,真心感谢
2014-9-9 23:14
0
游客
登录 | 注册 方可回帖
返回
//