Однозадачные системы.
Управление памятью.
Реальная память | Виртуальная память | ||||
Однозадачные | Многозадачные | Сегментная организация | Странично-сегментная организация | ||
Фиксированные разделы | Переменные разделы | ||||
Абсолютные модули | Переменные модули | ||||
|
1. Защитить ОС от программы.
Решение: ввели граничный регистр – здесь записан адрес конца операционной системы.
Когда программа обращалась к памяти, то проверялся адрес так, чтобы он был больше граничного регистра.
2. Нехватка памяти.
Решение: появился слой: OVERLAY – вся программа разбита на модули: 1 резидент и модули, которые находятся на внешнем носителе:
| |||||
| |||||
![]() | |||||
![]() | |||
![]() | |||
OVERLAY
![]() |
tab<(ta+tb)
|
|
|
Calc 2(); -> Calc(“A”, “Calc2”,…)
Print ();
В данном примере действует ограничение: если calc1 и calc2 вычисляют значение, которое надо напечатать, то возникает проблема: где хранить значение à хранить в резиденте.
А также модули не должны вызывать друг друга.