gpt4 book ai didi

memory-management - 当一个程序被操作系统从文件系统加载到内存中时,操作系统如何知道这个程序有多大?

转载 作者:行者123 更新时间:2023-12-04 08:59:38 25 4
gpt4 key购买 nike

当一个程序被操作系统从文件系统加载到内存中时,操作系统如何知道这个程序有多大?

它一次只从文件系统一页一页地翻页吗?或者是否有某种硬件或软件指示器,以便操作系统知道程序有多大?

最佳答案

可执行文件的开头有一个 header ,列出了操作系统的可执行文件部分。在 Linux 上,这通常是 "ELF" format , 在 Windows 上它是一种不同的格式,但想法是一样的。

可执行文件中的部分可以直接复制到内存中,或者可以按需加载/分页。有些部分可能是虚拟的(例如,布局说“我需要 8MB 的零内存”,但文件实际上并不包含 8MB 的零)。部分可以在内存中四处移动,也可以加载到内存中的固定位置。

操作系统仅以这种方式加载初始可执行文件。任何其他文件(或动态链接库等)都由操作系统间接加载(应用程序只是请求内存,请求将一些文件复制到内存中,然后跳转到该代码)。

关于memory-management - 当一个程序被操作系统从文件系统加载到内存中时,操作系统如何知道这个程序有多大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13364938/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com