Расположение операционной системы в памяти - PullRequest
3 голосов
/ 12 июня 2011

Гальвин говорит:

Мы можем поместить операционную систему в память с низким или высоким объемом памяти. Основным фактором, влияющим на это решение, является местоположение вектора прерывания. Поскольку вектор прерывания обычно находится в нехватке памяти, программисты обычно также помещают операционную систему в нехватку памяти.

Я не совсем уверен, как расположение вектора прерываний влияет на расположение ОС в памяти. Я пытался гуглить, но не мог найти что-либо к моему удовлетворению. Может кто-нибудь уточнить, пожалуйста.

Ответы [ 3 ]

0 голосов
/ 12 июня 2011

Основная память состоит из 2 основных частей:

  1. Резидентная ОС с небольшим объемом памяти с вектором прерывания, где «Вектор прерывания - это адрес памяти обработчика прерывания», т. Е. Это один из самых низких уровней памяти.
  2. Пользовательские процессы в старшей памяти

Теперь, почему ОС удерживается в нехватке памяти?
Поскольку вы не занимаетесь высоко в памяти, стоимость за байт увеличивается, и, поскольку ОС требуется быстрый доступ к памяти, она должна быть размещена в самом низком порядке.

Таким образом, расположение вектора прерывания не является прямой причиной для размещения операционной системы, но является низким требованием к памяти. Мы знаем, что там будут размещаться векторы прерываний, поэтому ОС также размещается вместе с ним.

0 голосов
/ 27 сентября 2017

Недостаточно памяти используется для хранения резидентных программ, а также программ, которые используют часть физической памяти, которая не отображается непосредственно в таблицах страниц.И поскольку операционные системы удовлетворяют обоим критериям, очевидно, что они будут храниться в памяти с недостаточным объемом памяти.

0 голосов
/ 12 июня 2011

В зависимости от архитектуры, о которой вы говорите, может быть проще / короче / быстрее получить доступ к адресам, близким к исполняемому коду.Таким образом, для ОС, размещенной в малой памяти, может быть проще получить доступ к вектору прерываний, если он находится в малой памяти.

Например, при использовании x86 в реальном режиме (в отличие от защищенного режима), если вы разместитеОС в сегмент 0x0 (где также живет вектор прерывания) вы можете ссылаться на векторы прерываний, просто используя текущую CS (которая, очевидно, будет 0x0) и 16-битный индекс.

...