如果物理内存的大小是2^32-1,那么虚拟内存的大小是多少?

2024-05-01

我知道物理地址是 32 位长,但是如何通过这些信息找出虚拟内存的大小?


虚拟内存地址空间的总大小为2^32x86架构和更大(目前约为 2^48)x64建筑学 。然而,操作系统通常会保留一部分空间,因此 32 位应用程序不一定能一次寻址 4GB。此外,操作系统可以轻松地将不同的内存块换入和换出,因此,如果有必要,可以在操作系统的帮助下通过某种形式的存储体切换来支持超过 4GB 的内存,告诉它在要访问内存时修改页表当前尚未映射到您的地址空间。

另外,支持的最大物理内存量不一定是 2^32。即使是 32 位机器也通常通过 PSE36 或 PAE 支持最多 2^36。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如果物理内存的大小是2^32-1,那么虚拟内存的大小是多少? 的相关文章

  • 恢复用python删除的文件

    所以 我使用 python 删除了一个文件 我在回收箱中找不到它 有什么办法我可以undo它或其他东西 提前致谢 编辑 我用过os remove 我尝试过Recuva 但似乎没有发现任何东西 我做了深入的搜索 如果你用过os remove并
  • 检测堆栈溢出

    操作系统如何检测用户空间程序的堆栈溢出 然后将 SIGTERM 或 SIGSEGV 发送到这些用户空间程序 防护页 当操作系统为程序创建堆栈时 它将分配比指定的多一点的空间 内存按页分配 通常每页 4KB 并且额外的页将进行设置 以便任何访
  • zsh:找不到命令:导入[重复]

    这个问题在这里已经有答案了 我正在使用 MAC OS Catalina 版本 10 15 1 并且正在开发一个 python 项目 每次我在命令行版本 2 10 433 上使用命令 import OS 时 都会收到以下消息 zsh 找不到命
  • 当操作系统只是进程之一时,抢占式多任务处理如何工作?

    我现在正在阅读有关先发制人的多任务处理的材料 但我忘记了一件事 所有材料都暗示 操作系统以某种方式从 外部 中断了CPU上正在运行的进程 从而导致了上下文切换等 然而 我无法想象当操作系统的内核只是 CPU 上的另一个进程时 这将如何工作
  • 内存映射显示的 RAM 多于物理可用内存

    我正在开发一个小型 x86 内核 我正在访问并尝试读取 GRUB 在多重引导标头中提供的内存映射 我有一个 Intel i3 cpu 和 4 GiB RAM 在这台机器上运行时 我正在读取以下内存映射 Base Address Length
  • 动态加载和动态链接的区别?

    例程在被调用之前不会被加载 所有例程都以可重定位加载格式保存在磁盘上 主程序被加载到内存中并被执行 这称为动态链接 为什么这称为动态链接 不应该是动态加载吗 因为在动态加载中调用例程之前不会加载 而在动态链接中 链接会推迟到执行时 此答案假
  • C 标准库和 C POSIX 库的区别

    我对 C standard lib 和 C POSIX lib 有点困惑 因为我发现 C POSIX lib 中定义的许多头文件也是 C standard lib 的一部分 所以 我假设 C standard lib 是由ANSI C组织定
  • Linux中分配特定地址

    我想在Linux进程中的特定地址分配一块内存 实际上我想做一些类似的事情 我会有进程号 每个进程都会调用库 由我编写 中的初始化函数 该函数将在进程的地址空间中分配一些内存 它将存储进程相关信息 这将由每个进程完成 一旦分配了该内存 程序就
  • 自旋锁与信号量

    信号量和自旋锁之间的基本区别是什么 我们什么时候会使用信号量而不是自旋锁 自旋锁和信号量主要有四个不同点 1 它们是什么 A spinlock是锁的一种可能实现 即通过忙等待 旋转 实现的锁 信号量是锁的概括 或者 相反 锁是信号量的特例
  • Python 中可用和已使用的系统内存? [复制]

    这个问题在这里已经有答案了 如何从 Python 获取可用和当前使用的内存 它需要是跨平台的 并且至少可以在 Windows Mac OS X 和 Linux 上运行 我想向我的应用程序中的用户报告没有足够的可用内存来继续 你应该看看psu
  • Minix 与 Linux 相比如何学习操作系统设计?

    我想学习操作系统设计 我想知道在此过程中我是否应该解决 Minix 或 GNU Linux 问题 我喜欢书籍 所以我主要关注一本书 尽管视频资源 大概是录像讲座 也很受欢迎 我已经正式学习了 C 和 C 可以用它们编写中小型程序 我对数据结
  • Python 上的 io.open() 和 os.open() 有什么区别?

    我意识到open 我一直在使用的函数是一个别名io open 以及导入 from os会掩盖这一点 通过以下方式打开文件有什么区别io模块和os module io open 是文件 I O 的首选高级接口 它将操作系统级文件描述符包装在一
  • 全局变量和静态变量存储在内存段的哪里?

    在我的链接器脚本中 起始地址和大小如下 code start 90400000 code end 90a00000 data start 90b00000 size 3MB bss start 91200000 size 1MB 但是当我声
  • 缓冲区溢出(与)缓冲区溢出(与)堆栈溢出[重复]

    这个问题在这里已经有答案了 可能的重复 堆栈溢出和缓冲区溢出有什么区别 https stackoverflow com questions 1120575 what is the difference between a stack ove
  • 从 Java 访问文件名中带有空格的文件

    我想从java程序访问文件名中有空格的目录中的文件 但它不访问文件 场景是我在文件中有文件名 iread 从该文件中读取文件名 但无法在 java 中打开带有空格的文件 我们使用 File exist 函数来检查文件是否存在 但它返回 fa
  • 全局键盘挂钩的合法用途是什么?

    除了仅应由操作系统提供的应用程序启动快捷方式之外 Windows 键盘挂钩等东西的合法用途是什么 在我看来 我们只在键盘记录器之类的事情上遇到问题 因为操作系统提供了钩子来执行除操作系统内核本身之外的任何情况下任何人都不允许执行的操作 编辑
  • 为什么x86分页没有特权环的概念?

    早在 1982 年 当 Intel 发布 80286 时 他们在分段方案中添加了 4 个特权级别 环 0 3 由全局描述符表 GDT 和局部描述符表 LDT 中的 2 位指定 在 80386 处理器中 Intel 添加了分页功能 但令人惊讶
  • 为什么使用Python的os模块方法而不是直接执行shell命令?

    我试图了解使用Python的库函数执行特定于操作系统的任务 例如创建文件 目录 更改文件属性等 背后的动机是什么 而不是仅仅通过执行这些命令os system or subprocess call 例如 我为什么要使用os chmod而不是
  • Azure:列出操作系统映像

    我是 Windows azure 新手 我看过这个文档 http msdn microsoft com en us library windowsazure jj157191 aspx 对我来说它有效 在画廊上列出图像 https mana
  • 如何检索 iPhone 的区域设置

    我用谷歌搜索过它 但令我有点惊讶的是我找不到它 我只想访问设备配置的区域设置 我试图找到如何列出所有系统属性 以防我能在那里找到区域设置 但甚至找不到如何做到这一点 我知道 认为 我之前检索过系统属性 但我也记得在谷歌搜索时找到该信息并不容

随机推荐