gpt4 book ai didi

operating-system - 完全可以在没有虚拟内存的情况下运行,只需要物理内存(事实上,大多数嵌入式系统都以这种方式运行)。如何?

转载 作者:行者123 更新时间:2023-12-01 07:39:30 24 4
gpt4 key购买 nike

我正在学习计算机体系结构,并遇到了一种说法:“完全可以在没有虚拟内存的情况下运行,只需物理内存(事实上,大多数嵌入式系统都以这种方式运行)”。

这是真的吗?如果是,那么我想知道如何?

谢谢。

最佳答案

不使用虚拟内存的嵌入式系统通常作为单个进程或线程运行,或者支持多线程而不是多处理任务模型。也就是说,所有线程/任务共享一个公共(public)地址空间,但具有单独的堆栈(尽管也在单个地址空间中)。

在具有 MMU 并支持虚拟内存的处理器上,这只需通过不配置 MMU 或至少具有具有一对一映射的静态 MMU 配置来完成,以便物理地址和 MMU 地址相同,或者至少这样有一个单一的虚拟地址空间。

PIC、AVR、ARM7、ARM Cortex-M、Zilog Z8 等嵌入式系统中使用的许多中低端架构缺少 MMU,并且通常具有比典型 ARM9/11/Cortex-A 小得多的内存资源或基于 x86 的系统。

对于无 MMU 系统中的多线程支持,您通常会使用实时操作系统 (RTOS)。大多数 RTOS,除了一些值得注意的异常(exception),都是带有 IPC 和同步原语的简单任务调度程序,并且不使用或支持 MMU。 QNX 和 VxWorks 等高端 RTOS 支持 MMU,尽管在 VxWorks 中它是可选的。

uCLinux 是针对具有足够内存资源来运行 Linux 但缺少诸如 ARM7 和 Cortex-M 之类的 MMU 的处理器的 GPOS。尽管可以说,没有 MMU 的 Linux 错过了使用 Linux 的主要优势之一,同时缺乏硬实时性能,并且需要大内存;一个典型的 RTOS 内核需要(远)少于 10kBytes 的代码。

关于operating-system - 完全可以在没有虚拟内存的情况下运行,只需要物理内存(事实上,大多数嵌入式系统都以这种方式运行)。如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19336407/

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