Конспект установочных лекций по комплексному курсу Информатика, Теория информации

       

Распределение ресурсов ВС


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

Выделение процессора

Принципиально выделяют следующие стратегии выделения процессора:

·

LIFO: программа с высшим приоритетом, прерванная последней, продолжается первой;

·         FIFO: программа дольше всех ожидающая продолжения выполнения первой продолжает выполняться;

·         смешанные формы FIFO-и LIFO-стратегий.

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

Длительность активной фазы программы может определяться одним из следующих способов:

·         неограниченное выполнение,

·         выделение времени программам по кругу,

·         концепция прерывания.

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

Управление оперативной памятью



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

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

2.      защита отдельных отрезков памяти от неправомерного доступа к ним из других программ пользователей.

При управлении памятью возникают следующие проблемы:

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

2.      часто объем оперативной памяти оказывается недостаточным для размещения всех данных в пользовательских программах,

3.      наборы данных, содержательно связанные друг с другом должны быть объединены и организационно.

Обычными методами управления памятью, которые в значительной мере решают эти проблемы, являются:

·         сегментация,

·         страничный обмен.

При сегментации оперативная память разбивается на много частичных отрезков.


Контекст процесса также может охватывать многие сегменты. Сегменты управляются с помощью дескрипторов.

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

Выделение устройств ввода/вывода

В противоположность центральному процессору, устройства ввода/вывода в основном не воспринимают активно относящиеся к ним указания, хранимые в памяти. Эти устройства активизируются процессором ввода/вывода с помощью регистров команд. Если последовательность команд запомнена в регистрах устройства, то взводится особый регистр (флаг); этим действием активизируется устройство ввода/вывода, которое автономно выполняет запомненную последовательность команд. После этого (путем установки соответствующего регистра) выдается сигнал об окончании выполнения заказа и устройство снова становится пассивным.

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

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

Распределение ресурсов в мультипрограммном режиме

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



Обратим внимание, что пользовательские программы предъявляют к ВС самые различные требования:

·         программы с интенсивным счетом требуют, прежде всего, процессорного времени;

·         программы с большими объемами используемых данных требуют, прежде всего, оперативной и внешней памяти;

·         программы с интенсивным вводом/выводом, прежде всего, запрашивают устройства ввода/вывода;

·         всякого рода управляющие программы, прежде всего, нуждаются в слябах системы и тем самым, соответственно, в каналах, памяти и процессоре.

При мультипрограммном режиме перед ОС возникают дополнительные проблемы:

·         замещение при выполнении отдельных программ для разрешения конфликтов при запросах на ресурсы;

·         справедливое распределение ресурсов;

·         минимизация организационных затрат;

·         минимизация времени переключения с задачи на задачу при прерываниях;

·         регулирование прав доступа к наборам данных. В таких случаях могут возникнуть и технические проблемы:

·         если в системе будет обрабатываться одновременно слишком много программ пользователей, то взаимное вытеснение программ из памяти может привести почти к застою в работе системы;

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

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

Выделение ресурсов в режиме диалога



По сравнению с пакетным режимом, диалоговый режим ведет к дополнительным требованиям к ОС и распределению ресурсов. Здесь перед ОС стоит задача обслужить каждого пользователя за минимальное время ожидания ответа. В частности, ОС должна управлять всем потоком ввода/вывода - это касается и передачи информации между памятью и устройствами ввода/вывода.

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

·         полудуплексном: попеременно осуществляется то ввод, то вывод;

·         полностью дуплексном: одновременно может идти и ввод, и вывод.

В квазимногопрограммном режиме с простыми дисплеями каждый введенный или выведенный знак или слово вызывает прерывание, что ведет к значительной загрузке процессора (на обработку прерываний). Если использовать более мощные дисплеи и каналы, то процессор может быть существенно разгружен.

В диалоговом режиме ОС дополнительно к ее классическим функциям решает и следующие задачи:

·         объединяет введенные знаки в последовательности знаков и соединяет их в команды;

·         предписывает ввод/вывод отдельным программам пользователей и дисплеям;

·         выдает информацию на экран как эхо ввода и как истинный вывод;

·         управляет данными пользователей

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


Содержание раздела