【问题标题】:Location of Operating system in Memory操作系统在内存中的位置
【发布时间】:2011-09-13 07:45:32
【问题描述】:

高尔文说:

我们可以将操作系统放置在低内存或高内存中。影响这个决定的主要因素是中断向量的位置。由于中断向量通常在低内存中,因此程序员通常也将操作系统放在低内存中。

我不太确定中断向量的位置如何影响操作系统在内存中的位置。我试图用谷歌搜索,但找不到任何令我满意的东西。 有人可以澄清一下吗?

【问题讨论】:

  • 你指的是哪个内存?虚拟的还是物理的?我假设你的意思是虚拟的?
  • @Jeff :- 我指的是主内存,因此是物理的

标签: memory memory-management operating-system


【解决方案1】:

主内存有两个主要部分:

  1. 带有中断向量的低内存驻留操作系统,其中“中断向量是中断处理程序的内存地址”,即它是最低级别的内存之一。
  2. 高内存中的用户进程

现在,为什么操作系统保持在低内存中?
由于您在内存中的位置不高,因此每字节的成本会增加,并且由于操作系统需要快速访问内存,因此它应该位于顺序中最低的位置。

所以,中断向量的位置并不是操作系统放置的直接原因,而是低内存需求。我们知道,中断向量会放在那里,所以OS也放在那里。

【讨论】:

  • - 你的意思是说每个字节的访问成本随着我们在内存中的增加而增加??
  • 嗯,从操作系统的角度来看,确实如此。
  • 那么你的回答似乎有道理
  • @zengr:您能否详细说明为什么随着内存的增加,每字节的成本会增加?它只是访问成本还是其他一些参数的成本?你能举个例子让我知道为什么访问成本或任何其他成本会增加。谢谢。
【解决方案2】:

根据您所讨论的架构,访问接近执行代码的地址可能更容易/更短/更快。因此,对于位于低内存的操作系统来说,访问位于低内存的中断向量可能会更容易。

例如,在实模式下使用 x86(与保护模式相反),如果您将操作系统置于 0x0 段(中断向量也位于该段),您可以仅使用当前 CS 引用中断向量(这将显然是 0x0) 和一个 16 位宽的索引。

【讨论】:

  • 我想说,除非你的 CPU 很慢和/或你的内存太少(对于手头的任务),否则它可能更多的是方便而不是必要(例如你不'不想处理远指针,并希望避免编写与指针相关的代码并在许多地方使用它)。如今,大多数非平凡设备使用超过 64KB 左右的内存。
【解决方案3】:

Low memory 用于存储内存驻留程序以及使用物理内存部分而不是由页表直接映射的程序。而且,由于操作系统满足这两个条件,所以很明显它将存储在低内存中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-02
    • 2012-12-02
    • 2019-08-29
    • 1970-01-01
    • 2021-10-16
    • 2011-02-20
    • 2017-07-11
    相关资源
    最近更新 更多