简而言之:一个进程的虚拟地址空间是连续的吗?
我需要了解内核分配给进程的虚拟地址.如果我继续错误,请纠正我.
在进程创建时,内核将虚拟内存分配给进程,并在task_struct的mm_struct中存储进程的不同段的虚拟地址的开始和结束.
现在说一个进程已经用完了堆,需要增加堆size.calls brk().
如果虚拟地址范围是连续的,那么新分配的堆块是否从最初为此进程分配的范围之外提供?或者它是以新块与原始块相邻的方式分配的.如果没有空间(因为内存映射段正在那里),该怎么办?它是如何跟踪的?
如果虚拟地址范围不连续,vm_struct如何跟踪堆(或任何其他段)的地址范围的不同块?
你可以清楚我的概念吗?
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。