ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 26.10.2023
Просмотров: 650
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
АРХИТЕКТУРЫ, ХАРАКТЕРИСТИКИ, КЛАССИФИКАЦИЯ ЭВМ
3. ФУНКЦИОНАЛЬНАЯ И СТРУКТУРНАЯ
4. ПРИНЦИПЫ ОРГАНИЗАЦИИ ПОДСИСТЕМЫ ПАМЯТИ ЭВМ И ВС
ОРГАНИЗАЦИЯ СИСТЕМНОГО ИНТЕРФЕЙСА И ВВОДА/ВЫВОДА ИНФОРМАЦИИ
МНОГОПРОЦЕССОРНЫЕ И МНОГОМАШИННЫЕ ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ
только один раз во время загрузки, а во втором случае – каждый раз при обращении по данному адресу.
В некоторых случаях (обычно в специализированных системах), ко- гда заранее точно известно, в какой области ОП будет выполняться про- грамма, транслятор выдает исполняемый код сразу в физических адресах.
Все методы управления памятью могут быть разделены на два класса (рис. 4.11):
Первая группа включает методы распределения памяти фиксирован- ными, динамическими и перемещаемыми разделами. Вторая – страничное, сегментное и странично-сегментное распределение памяти.
Рис. 4.11. Классификация методов распределения ОП
Рассмотрим вначале первую группу методов.
Распределение памяти фиксированными разделами
Самым простым способом управления оперативной памятью явля- ется разделение её на несколько разделов (сегментов) фиксированной величины (статическое распределение). Это может быть выполнено вручную оператором во время старта системы или во время её генера- ции. Очередная задача, поступающая на выполнение, помещается либо в общую очередь (рис. 4.12, а), либо в очередь к некоторому разделу (рис. 4.12, б). Подсистема управления памятью в этом случае выполняет следующие задачи: сравнивает размер программы, поступившей на вы- полнение, и свободных разделов памяти; выбирает подходящий раздел; осуществляет загрузку программы и настройку адресов.
При очевидном преимуществе, заключающемся в простоте реали- зации, данный метод имеет существенный недостаток – жёсткость. Так как в каждом разделе может выполняться только одна программа, то уровень мультипрограммирования заранее ограничен числом разделов независимо от того, какой размер имеют программы.
Даже если программа имеет небольшой объём, она будет занимать весь раздел, что приводит к неэффективному использованию памяти. С другой стороны, даже если объём оперативной памяти машины поз- воляет выполнить некоторую программу, разбиение памяти на разделы не позволяет сделать этого.
a
Очередь задач
– свободная память
б
Очереди к разделам
Раздел 1
Раздел 2
Раздел 3
Раздел 1
Раздел 2
Раздел 3
Рис. 4.12. Распределение памяти фиксированными разделами:
а– с общей очередью; б– с отдельными очередями
В этом случае память машины не делится заранее на разделы. Сна- чала вся память свободна. Каждой вновь поступающей задаче выделя- ется необходимая ей память. Если достаточный объём памяти отсут- ствует, то задача не принимается на выполнение и стоит в очереди. По- сле завершения задачи память освобождается и на это место может быть загружена другая задача. Таким образом, в произвольный момент вре- мени оперативная память представляет собой случайную последова- тельность занятых и свободных участков (разделов) произвольного раз- мера. На рис. 4.13 показано состояние памяти в различные моменты времени при использовании динамического распределения. Так, в мо- мент t0 в памяти находится только ОС, а к моменту t1 память разделена между 5 задачами, причём задача П4, завершая работу, покидает память к моменту t2. На освободившееся место загружается задача П6, посту-
пившая в момент t3.
Задачами операционной системы при реализации данного метода управления памятью являются: ведение таблиц свободных и занятых областей, в которых указываются начальные адреса и размеры участков памяти; анализ запроса (при поступлении новой задачи); просмотр таб- лицы свободных областей и выбор раздела, размер которого достаточен для размещения поступившей задачи: загрузка задачи в выделенный ей раздел и корректировка таблиц свободных и занятых областей; корректи- ровка таблиц свободных и занятых областей (после завершения задачи).
Программный код не перемещается во время выполнения, т.е. мо- жет быть проведена единовременная настройка адресов посредством использования перемещающего загрузчика.
Выбор раздела для вновь поступившей задачи
В некоторых случаях (обычно в специализированных системах), ко- гда заранее точно известно, в какой области ОП будет выполняться про- грамма, транслятор выдает исполняемый код сразу в физических адресах.
Классификация методов распределения оперативной памяти
Все методы управления памятью могут быть разделены на два класса (рис. 4.11):
-
методы распределения ОП без использования внешней памяти (дискового пространства); -
методы распределения памяти с использованием дискового про- странства.
Первая группа включает методы распределения памяти фиксирован- ными, динамическими и перемещаемыми разделами. Вторая – страничное, сегментное и странично-сегментное распределение памяти.
Без использования внешней памяти | |||
| | ||
| Фиксированными разделами | ||
| | ||
| |||
| Динамическими разделами | ||
| | ||
| |||
| Перемещаемыми разделами | ||
|
С использованием внешней памяти | ||
| | |
| Страничное распределение | |
| | |
|
Рис. 4.11. Классификация методов распределения ОП
Рассмотрим вначале первую группу методов.
Распределение памяти фиксированными разделами
Самым простым способом управления оперативной памятью явля- ется разделение её на несколько разделов (сегментов) фиксированной величины (статическое распределение). Это может быть выполнено вручную оператором во время старта системы или во время её генера- ции. Очередная задача, поступающая на выполнение, помещается либо в общую очередь (рис. 4.12, а), либо в очередь к некоторому разделу (рис. 4.12, б). Подсистема управления памятью в этом случае выполняет следующие задачи: сравнивает размер программы, поступившей на вы- полнение, и свободных разделов памяти; выбирает подходящий раздел; осуществляет загрузку программы и настройку адресов.
При очевидном преимуществе, заключающемся в простоте реали- зации, данный метод имеет существенный недостаток – жёсткость. Так как в каждом разделе может выполняться только одна программа, то уровень мультипрограммирования заранее ограничен числом разделов независимо от того, какой размер имеют программы.
Даже если программа имеет небольшой объём, она будет занимать весь раздел, что приводит к неэффективному использованию памяти. С другой стороны, даже если объём оперативной памяти машины поз- воляет выполнить некоторую программу, разбиение памяти на разделы не позволяет сделать этого.
| | | | | | |
a
Очередь задач
– свободная память
| | | | | | |
б
| | | | | | |
| | | | | | |
Очереди к разделам
Раздел 1
ОС |
|
|
|
|
|
|
Раздел 2
Раздел 3
Раздел 1
Раздел 2
Раздел 3
ОС |
|
|
|
|
|
|
Рис. 4.12. Распределение памяти фиксированными разделами:
а– с общей очередью; б– с отдельными очередями
Распределение памяти разделами переменной величины
В этом случае память машины не делится заранее на разделы. Сна- чала вся память свободна. Каждой вновь поступающей задаче выделя- ется необходимая ей память. Если достаточный объём памяти отсут- ствует, то задача не принимается на выполнение и стоит в очереди. По- сле завершения задачи память освобождается и на это место может быть загружена другая задача. Таким образом, в произвольный момент вре- мени оперативная память представляет собой случайную последова- тельность занятых и свободных участков (разделов) произвольного раз- мера. На рис. 4.13 показано состояние памяти в различные моменты времени при использовании динамического распределения. Так, в мо- мент t0 в памяти находится только ОС, а к моменту t1 память разделена между 5 задачами, причём задача П4, завершая работу, покидает память к моменту t2. На освободившееся место загружается задача П6, посту-
пившая в момент t3.
Задачами операционной системы при реализации данного метода управления памятью являются: ведение таблиц свободных и занятых областей, в которых указываются начальные адреса и размеры участков памяти; анализ запроса (при поступлении новой задачи); просмотр таб- лицы свободных областей и выбор раздела, размер которого достаточен для размещения поступившей задачи: загрузка задачи в выделенный ей раздел и корректировка таблиц свободных и занятых областей; корректи- ровка таблиц свободных и занятых областей (после завершения задачи).
Программный код не перемещается во время выполнения, т.е. мо- жет быть проведена единовременная настройка адресов посредством использования перемещающего загрузчика.
Выбор раздела для вновь поступившей задачи