Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Система запросов на основную память




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

Управление заданиями осуществляется планировщиком заданий и главным планировщиком. Планировщик заданий планирует прохождение потоков заданий и распределяет ресурсы системы (внешние устройства, наборы данных, области основной памяти, суммарное время обработки задания и пр.) между заданиями в момент их запуска. Главный планировщик обеспечивает связь человека с операционной системой и/или с операционной средой.

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

Управление задачами (процессами) осуществляется супервизором. Задача в данном контексте – это программа, загруженная вместе с обрабатываемыми ею данными в основную память. Управление задачами состоит в динамическом распределении ресурсов системы между несколькими задачами в динамике их выполнения. Супервизором распределяются время центрального процессора, участки областей основной памяти и т.д.

Управление восстановлением выполняется программами, которые сохраняют информацию о состоянии центрального процессора и каналов при сбоях и т.д. и, если возможно, восстанавливают работоспособность системы в целом.

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

Использование основной памяти, не занятой ядром операционной системы, зависит от реализуемого супервизором режима мультипрограммирования. В режиме одной задачи эта часть памяти представляет собой единую область, называемую разделом. В режиме мультипрограммирования с фиксированным числом задач основная память разбивается на несколько разделов, количество и размеры которых определяются при генерации операционной системы. Каждый раздел доступен программам только одного пункта задания. Конфигурация разделов не меняется динамически, однако оператор разделов может переопределить ее, используя соответствующие макросредства. В режиме мультипрограммирования с переменным числом задач основная память, не занятая ядром операционной системы, не разбивается на жесткие разделы. Раздел образуется только в момент подготовки к выполнению очередного пункта задания. Программы пункта задания могут использовать основную память раздела, обращаясь к супервизору с запросами, явными или неявными, на выделение участков памяти внутри раздела. Запросы оформляются при помощи соответствующих макросредств. Если программа, для которой выделен участок памяти, через некоторое время перестает в нем нуждаться, то она может обратиться к супервизору с запросом на освобождение участка памяти. Выделение участка основной памяти состоит в том, что супервизор передает его адрес программе, которая сообщает в запросе атрибуты требуемого участка памяти. Полученный адрес может быть использован для обращения к ячейкам выделенного участка памяти. Макросредства предоставляют разнообразные возможности для получения участков памяти, которые запрашиваются путем указания типа запроса. По способам указания длины и количества требуемых участков памяти запросы делятся на элементарные, переменные и списковые.

Элементарный запрос определяется кодом Е и означает, что требуется выделить один участок памяти фиксированной длины. Длина указывается при помощи операнда , супервизор помещает адрес выделяемого участка памяти в слово, адрес которого задается операндом А. Обращение имеет вид

F E, LA, A, где F – аббревиатура макросредства.

Переменный запрос определяется кодом V и означает, что требуется выделить один участок памяти, длина которого может находиться в пределах двух значений – минимального и максимального. Предельные значения длины указываются в поле памяти, адрес которого задается операндом LA. Супервизор стремится удовлетворить переменный запрос, используя максимальное значение длины участка памяти. Если же выделить участок памяти максимальной длины не удается, то супервизор предоставляет участок памяти, длина которого находится в указываемых пределах. Операнд А определяет адрес двойного слова, в которое супервизор последовательно помещает адрес и длину выделяемого участка памяти. Переменные запросы удобны в случае, если программа обладает свойством адаптации к имеющемуся объему основной памяти в разделе.

В режиме мультипрограммирования с переменным числом задач допустимо применять списковые запросы. Списковый запрос определяется кодом L и означает, что требуется выделить несколько участков памяти, каждый из которых имеет фиксированную длину. Операнд должен указать адрес списка, каждое слово которого содержит длину требуемого участка памяти, а число слов в списке определяет количество участков памяти. Операнд А определяет адрес другого списка, в слова которого супервизор поместит адреса выделенных участков памяти. Число слов в списках, определяемых операндами LA и А, должно быть одинаковым. Для обозначения концов списков бит 0 последнего слова в каждом списке должен быть установлен в единицу.

По действиям, которые супервизор должен предпринять в случае, если требуемый участок памяти не может быть выделен, запросы дополнительно делятся на безусловные и условные. Безусловный запрос определяется кодами ЕU, VU или LU (в зависимости от способа указания длины и количества требуемых участков памяти), условный – кодами ЕС, VC или . Если из-за отсутствия достаточного количества свободной памяти в разделе супервизор не в состоянии удовлетворить запрос, то при безусловном запросе производится аварийное завершение задачи, от которой запрос поступил, а при условном запросе супервизор возвращает управление задаче, которая его выдала. В одном из общих регистров при этом содержится код возврата, отражающий характер удовлетворения запроса: 0 означает, что запрос на выделение памяти выполнен успешно, а 4 – запрос удовлетворен не был. Получив управление после выдачи условного запроса, программа должна проверить содержимое этого регистра, чтобы определить дальнейшие действия. Условные запросы позволяют продолжить выполнение программы в случае отсутствия свободной памяти в разделе, если программа может исключить или снизить потребность в основной памяти.

Для освобождения некоторого участка основной памяти в определенном макросредстве необходимо указать адрес и длину этого участка. Способ указания зависит от типа запроса, определенного первым операндом соответствующие макросредства. Запросы на освобождение участков памяти делятся также на элементарные, переменные и списковые.

Элементарный запрос, определяемый кодом Е, означает, что требуется освободить один участок памяти, длина которого задается операндом , а адрес – операндом А. Для освобождения одного участка памяти предусмотрен также регистровый тип запроса, который определяется кодом R. Регистровые запросы позволяют передавать супервизору длину и адрес освобождаемого участка памяти в фиксированных регистрах соответственно.

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

В режиме мультипрограммирования с переменным числом задач допустимо также использование списковых запросов для освобождения одного или сразу нескольких участков памяти. Списковые запросы определяются кодом L. Операнд LA должен указать адрес списка, каждое слово которого содержит длину освобождаемого участка памяти, а операнд А – адрес другого списка, слова которого содержат адреса соответствующих участков памяти. Число слов в обоих списках должно быть одинаковым. Для указания конца списков бит 0 последнего слова в каждом списке необходимо установить в единицу. При освобождении нескольких участков памяти удобно использовать те же самые списки, что и при получения этих участков.

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




Поделиться с друзьями:


Дата добавления: 2014-12-29; Просмотров: 334; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.016 сек.