В ранних системах логические функции (типа макрокоманд ныне) вставлялись внутрь программ, что увеличивало их размеры и неизбежно приводило к загрузке кодов, реализующих эти функции, в случае загрузки основной программы. Присвоение простейшим общим логическим функциям статуса резидентных существенно уменьшило время, тратящееся на компиляцию, редактирование связей и загрузку программ пользователей. Появление в системах без мультипрограммирования резидентных программ было вызвано стремлением сократить процесс обработки основной программы.
В мультипрограммных ОС, а также в ОС разделения времени, создание набора общих резидентных функций позволяет уменьшить размеры включаемых в смесь программ, поскольку многие часто используемые процедуры становятся разделяемыми. В результате появляется возможность повысить уровень программирования, а также увеличить допустимые объемы памяти для каждой программы.
В среду выполнения включают:
· функции, которые с наибольшей вероятностью и частотой будут использоваться более чем одной программной смеси;
|
|
· функции, позволяющие координировать совместное использование ресурсов независимыми программами.
Системные функции.
С целью увеличения гибкости систем многие функции, ранее относившиеся к предварительной обработке, были перенесены в среду выполнения. Это в первую очередь функции, реализующие связь между программами и необходимыми им ресурсами, а также о функциях межпрограммной связи.
Включение соответствующих функций в среду выполнения означает отсрочку принятия решений о распределении ресурсов до момента запуска программы и последующее многократное их перераспределение. Это значит, что программы могут пользоваться макрокомандами среды выполнения, служащими для запросов дополнительных областей памяти, обращение к независимым модулям, не присоединенным к основным программам ни при компиляции, ни при редактировании связей, ни при загрузке, а также для динамического распределения и последующего освобождения устройств и наборов данных. Гибкость взаимодействий между программами и аппаратной частью системы, программами и ОС, между самими программами можно увеличить с помощью специальных макрокоманд. При этом значительное количество информации, включавшейся ранее в программы пользователя и занимавшей дополнительный объем в определенных областях памяти, перенесен в так называемые системные таблицы, которые легко модифицировать при изменении состояния системы и активных таблиц.
Таблицы и управляющие блоки ОС довольно сложны по структуре, но обеспечивают высокую степень гибкости. В любой момент времени распределение устройств ввода/вывода, памяти и наборов данных между выполняющимися программами отражается обычно в предназначенных для этого таблицах, которые могут служить для хранения информации о состоянии системных ресурсов.
|
|
Глобальные функции.
Глобальные функции применяются для координации использования ресурсов и обеспечения одновременного доступа к ним независимых программ, специально рассчитанных на работу в мультипрограммной смеси. Примеры глобальных функций:
· переключение ЦПр с программы на программу;
· подкачка частей программ из внешней памяти в основную;
· сбор статистики о нагрузке на каждый из системных компонентов;
· оценка скорости прохождения заданий в системе с целью внесения необходимых изменений в последовательность ее работы (например, корректировка приоритетов задач и др.).