Мультипрограммирование
МИНИСТЕРСТВО
ОБРАЗОВАНИЯ И НАУКИ РЕСПУБЛИКИ
ТАТАРСТАНГАОУ ВПО «
Психолого-педагогический факультет
Кафедра информатики и математики
Реферат на тему «Мультипрограммирование»
Выполнил студент
Научный руководитель
Альметьевск – 2012
Содержание
Введение 3
Мультипрограммирование 4
Мультипрограммирование в системах пакетной обработки 5
Мультипрограммирование в системах разделения времени 10
Мультипрограммирование в системах реального времени 11
Мультипроцессорная обработка 13
Выводы 18
Список литературы 19
Введение
Важнейшей
функцией операционной системы является
организация рационального
Мультипрограммирование
Мультипрограммирование, или многозадачность (multitasking), — это способ организации вычислительного процесса, при котором на одном процессоре попеременно выполняются сразу несколько программ. Эти программы совместно используют не только процессор, но и другие ресурсы компьютера: оперативную и внешнюю память, устройства ввода-вывода, данные. Мультипрограммирование призвано повысить эффективность использования вычислительной системы, однако эффективность может пониматься по-разному. Наиболее характерными критериями эффективности вычислительных систем являются:
- пропускная способность — количество задач, выполняемых вычислительной системой в единицу времени;
- удобство работы пользователей, заключающееся, в частности, в том, что они имеют возможность интерактивно работать одновременно с несколькими приложениями на одной машине;
- реактивность системы — способность системы выдерживать заранее заданные (возможно, очень короткие) интервалы времени между запуском программы и получением результата.
В зависимости от выбранного критерия эффективности ОС делятся на системы пакетной обработки, системы разделения времени и системы реального времени. Каждый тип ОС имеет специфические внутренние механизмы и особые области применения. Некоторые операционные системы могут поддерживать одновременно несколько режимов, например часть задач может выполняться в режиме пакетной обработки, а часть — в режиме реального времени или в режиме разделения времени.
Мультипрограммирование в системах пакетной обработки
При использовании мультипрограммирования для повышения пропускной способности компьютера главной целью является минимизация простоев всех устройств компьютера, и прежде всего центрального процессора., Такие простои могут возникать из-за приостановки задачи по ее внутренним причинам, связанным, например, с ожиданием ввода данных для обработки. Данные могут храниться на диске или же поступать от пользователя, работающего за терминалом, а также от измерительной аппаратуры, установленной на внешних технических объектах. При возникновении такого рода блокировки выполняемой задачи естественным решением, ведущим к повышению эффективности использования процессора, является переключение процессора на выполнение другой задачи, у которой есть данные для обработки. Такая концепция мультипрограммирования положена в основу так называемых пакетных систем.
Системы
пакетной обработки предназначались
для решения задач в основном
вычислительного характера, не требующих
быстрого получения результатов. Главной
целью и критерием
Для достижения
этой цели в системах пакетной обработки
используется следующая схема
Рассмотрим более детально совмещение во времени операций ввода-вывода и вычислений.
Такое совмещение
может достигаться разными
а).
Рис. 4.1. Параллельное выполнение вычислений и операций ввода-вывода
Другой
способ совмещения вычислений с операциями
ввода-вывода реализуется в компьютерах,
в которых внешние устройства
управляются не процессором ввода-вывода,
а контроллерами. Каждое внешнее
устройство (или группа внешних устройств
одного типа) имеет свой собственный
контроллер, который автономно отрабатывает
команды, поступающие от центрального
процессора. При этом контроллер и
центральный процессор работают
асинхронно. Поскольку многие внешние
устройства включают электромеханические
узлы, контроллер выполняет свои команды
управления устройствами существенно
медленнее, чем центральный процессор
— свои. Это обстоятельство используется
для организации параллельного
выполнения вычислений и операций ввода-вывода:
в промежутке между передачей
команд, контроллеру центральный
процессор может выполнять
Максимальный
эффект ускорения достигается при
наиболее полном перекрытии вычислений
и ввода-вывода. Рассмотрим случай,
когда процессор выполняет
Если
же в системе выполняются
Общее время
выполнения смеси задач часто
оказывается меньше, чем их суммарное
время последовательного
В системах пакетной обработки переключение процессора с выполнения одной задачи на выполнение другой происходит по инициативе самой активной задачи, например, когда она отказывается от процессора из-за необходимости выполнить операцию ввода-вывода. Поэтому существует высокая вероятность того, что одна задача может надолго занять процессор и выполнение интерактивных задач станет невозможным. Взаимодействие пользователя с вычислительной машиной, на которой установлена система пакетной обработки, сводится к тому, что он приносит задание, отдает его диспетчеру-оператору, а в конце дня после выполнения всего пакета заданий получает результат. Очевидно, что такой порядок повышает эффективность функционирования аппаратуры, но снижает эффективность работы пользователя.
Рис. 4.2. Время выполнения двух задач: в однопрограммной системе (а), в мультипрограммной системе (б)
Мультипрограммирование в системах разделения времени
Повышение удобства и эффективности работы пользователя является целью другого способа мультипрограммирования — разделения времени. В системах разделения времени пользователям (или одному пользователю) предоставляется возможность интерактивной работы сразу с несколькими приложениями. Для этого каждое приложение должно регулярно получать возможность «общения» с пользователем. Понятно, что в пакетных системах возможности диалога пользователя с приложением весьма ограничены.
В системах разделения времени эта проблема решается за счет того, что ОС принудительно периодически приостанавливает приложения, не дожидаясь, когда они добровольно освободят процессор. Всем приложениям попеременно выделяется квант процессорного времени, таким образом пользователи, запустившие программы на выполнение, получают возможность поддерживать с ними диалог.
Системы разделения времени призваны исправить основной недостаток систем пакетной обработки — изоляцию пользователя-программиста от процесса выполнения его задач. Каждому пользователю в этом случае предоставляется терминал, с которого он может вести диалог со своей программой. Так как в системах разделения времени каждой задаче выделяется только квант процессорного времени, ни одна задача не занимает процессор надолго и время ответа оказывается приемлемым. Если квант выбран достаточно небольшим, то у всех пользователей, одновременно работающих на одной и той же машине, складывается впечатление, что каждый из них единолично использует машину.
Ясно, что системы разделения времени обладают меньшей пропускной способностью, чем системы пакетной обработки, так как на выполнение принимается каждая запущенная пользователем задача, а не та, которая «выгодна» системе. Кроме того, производительность системы снижается из-за возросших накладных расходов вычислительной мощности на более частое переключение процессора с задачи на задачу. Это вполне соответствует тому, что критерием эффективности систем разделения времени является не максимальная пропускная способность, а удобство и эффективность работы пользователя. Вместе с тем мультипрограммное выполнение интерактивных приложений повышает и пропускную способность компьютера (пусть и не в такой степени, как пакетные системы). Аппаратура загружается лучше, поскольку в то время, пока одно приложение ждет сообщения пользователя, другие приложения могут обрабатываться процессором.
Мультипрограммирование в системах реального времени
Еще одна
разновидность
В системах
реального времени
Способность аппаратуры компьютера и ОС к быстрому ответу зависит в основном от скорости переключения с одной задачи на другую и, в частности, от скорости обработки сигналов прерывания. Если при возникновении прерывания процессор должен опросить сотни потенциальных источников прерывания, то реакция системы будет слишком медленной. Время обработки прерывания в системах реального времени часто определяет требования к классу процессора даже при небольшой его загрузке.
В системах
реального времени не стремятся
максимально загружать все
Мультипроцессорная обработка
Мультипроцессорная обработка — это способ организации вычислительного процесса в системах с несколькими процессорами, при котором несколько задач (процессов, потоков) могут одновременно выполняться на разных процессорах системы.
Концепция
мультипроцессирования ненова, она
известна с 70-х годов, но до середины
80-х доступных
Не следует
путать мультипроцессорную обработку
с мультипрограммной
Мультипроцессорная организация системы приводит к усложнению всех алгоритмов управления ресурсами, например требуется планировать процессы не для одного, а для нескольких процессоров, что гораздо сложнее. Сложности заключаются и в возрастании числа конфликтов по обращению к устройствам ввода-вывода, данным, общей памяти и совместно используемым программам. Необходимо предусмотреть эффективные средства блокировки при доступе к разделяемым информационным структурам ядра. Все эти проблемы должна решать операционная система путем синхронизации процессов, ведения очередей и планирования ресурсов. Более того, сама операционная система должна быть спроектирована так, чтобы уменьшить существующие взаимозависимости между собственными компонентами.
В наши дни
становится общепринятым введение в
ОС, функций поддержки
Мультипроцессорные системы часто характеризуют либо как симметричные, либо как несимметричные. При этом следует четко определять, к какому аспекту мультипроцессорной системы относится эта характеристика — к типу архитектуры или к способу организации вычислительного процесса.
Симметричная
архитектура мультипроцессорной системы
предполагает однородность всех процессоров
и единообразие включения процессоров
в общую схему
Масштабируемость, или возможность наращивания числа процессоров, в симметричных системах ограничена вследствие того, что все они пользуются одной и той же оперативной памятью и, следовательно, должны располагаться в одном корпусе. Такая конструкция, называемая масштабируемой по вертикали, практически ограничивает число процессоров до четырех или восьми.
В симметричных архитектурах все процессы пользуются одной и той же схемой отображения памяти. Они могут очень быстро обмениваться данными, так что обеспечивается достаточно высокая производительность .для тех приложений (например, при работе с базами данных), в которых несколько задач должны активно взаимодействовать между собой.
В асимметричной архитектуре разные процессоры могут отличаться как своими характеристиками (производительностью, надежностью, системой команд и т. д., вплоть до модели микропроцессора), так и функциональной ролью, которая поручается им в системе. Например, одни процессоры могут предназначаться для работы в качестве основных вычислителей, другие — для управления подсистемой ввода-вывода, третьи — еще для каких-то особых целей.
Функциональная
неоднородность в асимметричных
архитектурах влечет за собой структурные
отличия во фрагментах системы, содержащих
разные процессоры системы. Например,
они могут отличаться схемами
подключения процессоров к
Масштабирование в асимметричной архитектуре реализуется иначе, чем в симметричной. Так как требование единого корпуса отсутствует, система может состоять из нескольких устройств, каждое из которых содержит один или несколько процессоров. Это масштабирование по горизонтали. Каждое такое устройство называется кластером, а вся мультипроцессорная система — кластерной.
Другим
аспектом мультипроцессорных систем,
который может
Асимметричное мультипроцессирование является наиболее простым способом организации вычислительного процесса в системах с несколькими процессорами. Этот способ часто называют также «ведущий-ведомый».
Функционирование
системы по принципу «ведущий-ведомый»
предполагает выделение одного из процессоров
в качестве «ведущего», на котором
работает операционная система и
который управляет всеми
Так как операционная система работает только на одном процессоре и функции управления полностью централизованы, то такая операционная система оказывается не намного сложнее ОС однопроцессорной системы.
Асимметричная
организация вычислительного
В архитектурно-асимметричных
системах на роль ведущего процессора
может быть назначен наиболее надежный
и производительный процессор. Если
в наборе процессоров имеется
специализированный процессор, ориентированный,
например, на матричные вычисления,
то при планировании процессов операционная
система, реализующая асимметричное
мультипроцессирование, должна учитывать
специфику этого процессора. Такая
специализация снижает
Симметричное
мультипроцессирование как
Симметричное
мультипроцессирование
Операционная
система полностью
В случае отказа одного из процессоров симметричные системы, как правило, сравнительно просто реконфигурируются, что является их большим преимуществом перед плохо реконфигурируемыми асимметричными системами.
Симметричная
и асимметричная организация
вычислительного процесса в мультипроцессорной
системе не связана напрямую с
симметричной или асимметричной
архитектурой, она определяется типом
операционной системы. Так, в симметричных
архитектурах вычислительный процесс
может быть организован как симметричным
образом, так и асимметричным. Однако
асимметричная архитектура
Выводы
Мультипрограммирование, или многозадачность (multitasking), — это способ организации вычислительного процесса, при котором на одном процессоре попеременно выполняются сразу несколько программ.
- Мультипрограммирование применяется для повышения эффективности вычислительной системы, которая может пониматься как:
- общая пропускная способность вычислительной системы;
- удобство работы пользователей, например возможность интерактивной работы для нескольких пользователей или возможность одновременной работы одного пользователя с несколькими приложениями на одной машине;
- реактивность системы — то есть способность системы выдерживать заранее заданные (возможно,, очень короткие) интервалы времени между запуском программы и получением результата.
- В зависимости от выбранного критерия эффективности ОС делятся на системы пакетной обработки, системы разделения времени и системы реального времени.
- Мультипроцессорная обработка — это способ организации вычислительного процесса в системах с несколькими процессорами, при котором несколько задач (процессов, потоков) могут одновременно выполняться на разных процессорах системы.
- Основной задачей мультипрограммной операционной системы является распределение ресурсов между процессами и потоками — двумя базовыми единицами работы ОС.
Список литературы
http://rudocs.exdat.com/docs/
http://www.gelezo.net/
http://telekom.org.ru/slovar/
http://oval.ru/enc/45233.html
