При использовании мультипрограммирования для повышения пропускной способности компьютера главной целью является минимизация простоев всех устройств компьютера, прежде всего центрального процессора. Такие простои могут возникать из-за приостановки задачи, связанной с ожиданием ввода данных для обработки. При возникновении такого рода блокировки естественным решением является переключение процессора на выполнение другой задачи, у которой есть данные для обработки. Такая концепция положена в основу так называемых пакетных систем. Главной целью и критерием эффективности систем пакетной обработки является максимальная пропускная способность, то есть решение максимального числа задач в единицу времени.
В начале работы формируется пакет заданий, каждое задание содержит требование к системным ресурсам; из этого пакета заданий формируется мультипрограммная смесь, то есть множество одновременно выполняемых задач. Для одновременного выполнения выбираются задачи, предъявляющие разные требования к ресурсам, так, чтобы обеспечивалась сбалансированная загрузка всех устройств вычислительной машины.
Таким образом, выбор нового задания из пакета заданий зависит от внутренней ситуации, складывающейся в системе, то есть выбирается «выгодное» задание. Следовательно, в вычислительных системах, работающих под управлением пакетных ОС, невозможно гарантировать выполнение того или иного задания в течение определенного периода времени.
Совмещение во времени операций ввода-вывода и вычислений может достигаться разными способами. Один из них характерен для компьютеров, имеющих специализированный процессор ввода-вывода (канал). Обычно канал имеет систему команд, отличающуюся от системы команд центрального процессора. Канальные программы могут храниться в той же оперативной памяти, что и программы центрального процессора. В системе команд ЦП предусматривается специальная инструкция, передающая каналу параметры и указания на то, какую программу ввода-вывода он должен выполнить. Начиная с этого момента центральный процессор и канал могут работать параллельно (рис. 4.1, а).
Рис. 4.1. Параллельное выполнение вычислений и операций ввода-вывода
Другой способ совмещения вычислений с операциями ввода-вывода реализуется в компьютерах, в которых внешние устройства управляются контроллерами. Каждое внешнее устройство имеет свой собственный контроллер, который автономно отрабатывает команды, поступающие от ЦП. При этом контроллер и ЦП работают асинхронно. Контроллер выполняет свои команды управления устройствами существенно медленнее, чем ЦП – свои. Поэтому в промежутке между передачей команд, контроллеру ЦП может выполнять вычисления (рис. 4.1, б). Контроллер может сообщить, что он готов принять следующую команду, сигналом прерывания либо ЦП узнает об этом, периодически опрашивая состояние контроллера.
Общее время выполнения смеси задач часто оказывается меньше, чем их суммарное время последовательного выполнения (рис. 4.2, а). Однако выполнение отдельной задачи в мультипрограммном режиме может занять больше времени, чем при монопольном выделении процессора этой задаче. Действительно, при совместном использовании процессора в системе могут возникать ситуации, когда задача готова выполняться, но процессор занят выполнением другой задачи.
В системах пакетной обработки переключение процессора с выполнения одной задачи на выполнение другой происходит по инициативе самой активной задачи, например, когда она отказывается от процессора из-за необходимости выполнить операцию ввода-вывода. Поэтому существует высокая вероятность того, что одна задача может надолго занять процессор и выполнение интерактивных задач станет невозможным.
Системные ресурсы, используемые устройствами ввода-вывода. Адреса памяти, используемые устройством, каналы запросов прерывания (IRQ), каналы прямого доступа к памяти (DMA), адреса портов ввода-вывода.
Системными ресурсами называются коммуникационные каналы, адреса и сигналы, используемые узлами компьютера для обмена данными с помощью шин. Обычно под системными ресурсами подразумевают:
- адреса памяти;
- каналы запросов прерываний (IRQ);
- каналы прямого доступа к памяти (DMA);
- адреса портов ввода-вывода.
В приведенном списке системные ресурсы размещены в порядке уменьшения вероятности возникновения из-за них конфликтных ситуаций в компьютере. Общим для всех видов ресурсов является то, что любая установленная в компьютере плата (или устройство) должна использовать уникальный системный ресурс, иначе отдельные компоненты компьютера не смогут разделить ресурсы между собой и произойдет конфликт.
Прерывания
Каналы запросов прерывания (IRQ), или аппаратные прерывания, используются различными устройствами для сообщения системной плате (процессору) о необходимости обработки определенного запроса.
Каналы прерываний представляют собой проводники на системной плате и соответствующие контакты в разъемах. После получения IRQ компьютер приступает к выполнению специальной процедуры его обработки, первым шагом которой является сохранение в стеке содержимого регистров процессора. Затем происходит обращение к таблице векторов прерываний, в которой содержится список адресов памяти, соответствующих определенным номерам (каналам) прерываний. В зависимости от номера полученного прерывания запускается программа, относящаяся к данному каналу.
После выполнения необходимых действий по обслуживанию устройства, пославшего запрос, процедура обработки прерывания восстанавливает содержимое регистров процессора (извлекая его из стека) и возвращает управление компьютером той программе, которая выполнялась до возникновения прерывания.
Благодаря прерываниям компьютер может своевременно реагировать на внешние события. Например, всякий раз, когда с последовательного порта в систему поступает новый байт, вырабатывается IRQ.
Аппаратные прерывания имеют иерархию приоритетов: чем меньше номер прерывания, тем выше приоритет. Прерывания с более высоким приоритетом обладают преимуществом и могут "прерывать прерывания". В результате в компьютере может возникнуть несколько "вложенных" прерываний.
Прямой доступ к памяти (Direct Memory Access - DMA).
Использование механизма прерываний позволяет разумно загружать процессор в то время, когда устройство ввода-вывода занимается своей работой. Однако запись или чтение большого количества информации из адресного пространства ввода-вывода (например, с диска) приводят к большому количеству операций ввода-вывода, которые должен совершать процессор. Для разгрузки процессора от операций последовательного вывода данных из оперативной памяти или последовательного ввода в нее был предложен механизм прямого доступа внешних устройств к памяти - ПДП или Direct Memory Access - DMA. Для того чтобы какое-либо устройство помимо процессора могло записать информацию в память или прочитать ее из памяти, необходимо чтобы это устройство могло забрать у процессора управление локальной магистралью для выставления соответствующих сигналов на шины адреса, данных и управления
При прямом доступе к памяти процессор и контроллер DMA по очереди управляют локальной магистралью. Это, конечно, несколько снижает производительность процессора, так как при выполнении некоторых команд или при чтении очередной порции команд во внутренний кэш он должен поджидать освобождения магистрали, но в целом производительность вычислительной системы существенно возрастает.
При подключении к системе нового устройства, которое умеет использовать прямой доступ к памяти, обычно необходимо программно или аппаратно задать номер канала DMA, к которому будет приписано устройство. В отличие от прерываний, где один номер прерывания мог соответствовать нескольким устройствам, каналы DMA всегда находятся в монопольном владении устройств.
Адреса портов ввода-вывода
Через порты ввода-вывода к компьютеру можно подключать разнообразные устройства для расширения его возможностей. Принтер, подключенный к одному из параллельных портов LPT, позволяет вывести на бумагу результаты работы. Модем, соединенный с одним из последовательных портов СОМ, обеспечивает связь по телефонным линиям с другими компьютерами, находящимися за тысячи километров от вас.
Порты ввода-вывода позволяют установить связь между устройствами и программным обеспечением в компьютере. Они подобны двусторонним радиоканалам, так как обмен информацией в ту и другую сторону происходит по одному и тому же каналу.
В отличие от прерываний IRQ и каналов прямого доступа к памяти, в персональных компьютерах множество портов ввода-вывода. Существует 65 535 портов, пронумерованных от 0000h до FFFFh, и это, пожалуй, самый удивительный артефакт в процессоре Intel. Хотя многие устройства используют до восьми портов, все равно их количество более чем достаточное. Самая большая проблема состоит в том, чтобы двум устройствам случайно не назначить один и тот же порт.
Наиболее современные системы, поддерживающие спецификацию Plug and Play, автоматически разрешают любые конфликты из-за портов, выбирая альтернативные порты для одного из конфликтующих устройств.
Задача
В систему реального времени поступает четыре периодических сигнала с периодами 50, 100, 200 и 250 мс. На обработку каждого сигнала требуется 35, 20, 10 и X мс времени процессора. Требуется определить максимальное значение Х, при котором система остается поддающейся планированию.
Решение
Период Т | ||||
Время выполнения t | Х |
Загрузка процессора каждой задачей – Bi = ti / Ti.
Полная загрузка Btotal = СУММА (Bi).
Для планирования необходимо, чтобы Btotal <=1.
Таким образом, имеем уравнение:
35/50+20/100+10/200+Х/250 = 1, откуда Х = 12,5.