Слайд 3Мультипрограммирование
Мультипрограммирование, или многозадачность (multitasking) - это способ организации вычислительного процесса, при котором
на одном процессоре попеременно выполняются сразу несколько программ.
Слайд 4Мультипрограммирование
Эти программы совместно используют процессор и другие ресурсы компьютера: оперативную и внешнюю
память, устройства ввода-вывода.
Слайд 5Мультипрограммирование
Главными критериями эффективности вычислительных систем являются:
Пропускная способность - количество задач, выполняемых
вычислительной системой в единицу времени;
Слайд 6Мультипрограммирование
Удобство работы пользователей: например, пользователи имеют возможность интерактивно работать одновременно с несколькими
приложениями на одной машине;
Слайд 7Мультипрограммирование
Реактивность системы - способность системы выдерживать заранее заданные интервалы времени между запуском
программы и получением результата.
Слайд 8Мультипрограммирование
По способу организации мультипрограммирования ОС делятся на системы:
пакетной обработки
разделения времени
реального времени
Слайд 10Системы пакетной обработки
Главной целью и критерием эффективности систем пакетной обработки является максимальная
пропускная способность, то есть решение максимального числа задач в единицу времени.
Слайд 11Системы пакетной обработки
Концепция мультипрограммирования положена в основу пакетных систем.
Для этого в
системах пакетной обработки формируется пакет заданий.
Каждое задание содержит требование к системным ресурсам, из этого пакета формируется мультипрограммная смесь, то есть множество «одновременно» выполняемых задач.
Слайд 12Системы пакетной обработки
Для «одновременного» выполнения выбираются задачи, предъявляющие разные требования к ресурсам,
так, чтобы обеспечивалась сбалансированная загрузка всех устройств вычислительной машины.
Слайд 13Системы пакетной обработки
Следовательно, в вычислительных системах, работающих под управлением пакетных ОС, невозможно
гарантировать выполнение того или иного задания в течение определенного периода времени.
Слайд 14Организация операций ввода-вывода в вычислительных системах
Слайд 15Системы пакетной обработки
Специализированный процессор ввода-вывода.
В компьютерах класса мэйнфреймов такие процессоры называют
каналами.
Слайд 16Системы пакетной обработки
Команды канала специально предназначены для управления внешними устройствами, например «проверить
состояние устройства», «установить магнитную головку», «установить начало листа», «напечатать строку».
Слайд 17Системы пакетной обработки
Центральный процессор и канал работают параллельно.
Слайд 18Системы пакетной обработки
Компьютеры с управлением контроллерами внешних устройств.
Слайд 19Системы пакетной обработки
Каждое внешнее устройство (или группа внешних устройств одного типа) имеет
свой собственный контроллер, который автономно отрабатывает команды, поступающие от ЦП.
Слайд 20Системы пакетной обработки
При этом контроллер и центральный процессор работают асинхронно, поскольку многие
внешние устройства включают электромеханические узлы, контроллер выполняет свои команды управления устройствами существенно медленнее, чем ЦП.
Слайд 23Системы разделения времени
В системах разделения времени пользователям (или одному пользователю) предоставляется
возможность интерактивной работы сразу с несколькими приложениями.
Слайд 24Системы разделения времени
Всем приложениям попеременно выделяется квант процессорного времени, таким образом пользователи,
запустившие программы на выполнение, получают возможность поддерживать с ними диалог.
Слайд 25Системы разделения времени
Системы разделения времени обладают меньшей пропускной способностью, чем системы пакетной
обработки, так как на выполнение принимается каждая запущенная пользователем задача, а не та, которая «выгодна» системе.
Слайд 26Системы разделения времени
Это соответствует тому, что критерием эффективности систем разделения времени является
не максимальная пропускная способность, а удобство и эффективность работы пользователя.
Слайд 28Системы реального времени
Системы реального времени, предназначаются для управления техническими объектами (например,
станком, спутником, научной экспериментальной установкой и т. п.) или технологическими процессами (гальванической линией, доменным процессом и т. п.).
Слайд 29Системы реального времени
При таком управлении существует понятие предельно допустимого времени, в течение
которого должна быть выполнена та или иная управляющая объектом программа.
Слайд 30Системы реального времени
Т.О., критерием эффективности здесь является способность выдерживать заранее заданные интервалы
времени между запуском программы и получением результата (управляющего воздействия).
Слайд 31Системы реального времени
Это время называется временем реакции системы, а соответствующее свойство системы
— реактивностью.
Слайд 32Системы реального времени
Способность аппаратуры компьютера и ОС к быстрому ответу зависит от
скорости переключения с одной задачи на другую и от скорости обработки сигналов прерывания.
Слайд 33Системы реального времени
Время обработки прерывания в системах реального времени определяет требования к
производительности процессора даже при небольшой его загрузке.
Слайд 34Системы реального времени
Основной особенностью систем является строго регламентированное время отклика на внешние
события.
Слайд 35Системы реального времени
ОС реального времени принято делить на два класса:
жесткого и
мягкого реального времени.
Слайд 36Системы реального времени
Признаки систем жёсткого реального времени:
недопустимость никаких задержек ни
при каких условиях;
бесполезность результатов при опоздании;
катастрофа при задержке реакции;
цена опоздания бесконечно велика.
Слайд 37Системы реального времени
Пример системы жесткого реального времени — бортовая система управления самолетом.
Среди
систем с жестким реальным временем можно выделить распространённую коммерческую операционную систему QNX, которая основывается на UNIX.
Слайд 38Системы реального времени
Признаки систем мягкого реального времени:
при опоздании результатов не возникает
катастрофических последствий;
снижение производительности системы, вызванное запаздыванием реакций, приемлемо.
Слайд 40Мультипроцессорная обработка
Мультипроцессорная обработка — это способ организации вычислительного процесса в системах с
несколькими процессорами, при котором несколько задач (процессов, потоков) могут одновременно выполняться на разных процессорах системы.
Слайд 41Мультипроцессорная обработка
В мультипрограммных системах параллельная работа разных устройств позволяет одновременно вести
обработку нескольких программ, но при этом в процессоре в каждый момент времени выполняется только одна программа, т.е. в этом случае несколько задач выполняются попеременно на одном процессоре, создавая лишь видимость параллельного выполнения.
Слайд 42Мультипроцессорная обработка
Функции мультипроцессорной обработки данных имеются во всех популярных ОС: Sun Solaris
2.x, Santa Crus Operations Open Server 3.x, IBM OS/2, Microsoft Windows NT и Novell NetWare, начиная с 4.1.
Слайд 43Планирование процессов и потоков
Слайд 45Потоки и процессы
Потоки и процессы — это связанные понятия в вычислительной технике.
Оба понятия представляют из себя последовательность инструкций, которые должны выполняться в определенном порядке.
Слайд 46Потоки и процессы
Поток, с другой стороны, существует внутри процесса, по этой причине
потоки иногда называются "облегченные процессы".
Каждый процесс состоит из одного или более потоков.
Слайд 47Процессы и потоки
Потоки выполнения (англ. Thread — нить) отличаются от процессов многозадачной ОС
тем, что:
процессы независимы, тогда как потоки существуют как составные элементы процессов ;
Слайд 48Процессы и потоки
несколько потоков выполнения внутри процесса совместно используют информацию о состоянии,
а также память и другие вычислительные ресурсы процесса;
Слайд 49Процессы и потоки
процессы имеют отдельные адресные пространства, тогда как потоки выполнения совместно
используют адресное пространство процессов;
Слайд 50Процессы и потоки
процессы взаимодействуют только через предоставляемые ОС механизмы связей между процессами;
Слайд 51Процессы и потоки
переключение контекста между потоками выполнения в одном процессе происходит быстрее,
чем переключение контекста между процессами.
Слайд 52Потоки и процессы
Возникающие проблемы синхронизации являются причиной ошибок в многопоточных приложениях:
один
поток может ожидать результата другого потока;
одному потоку может понадобиться монопольный доступ к ресурсу, который используется другим потоком;
Слайд 53Потоки и процессы
поток может закончиться, ожидая ресурс, который никогда не будет доступен.
Это состояние называется взаимоблокировкой.
Слайд 54Планирование процессов и потоков
Одной из основных подсистем ОС, является подсистема управления процессами
и потоками, которая
занимается их созданием и уничтожением,
поддерживает взаимодействие между ними,
распределяет процессорное время между несколькими одновременно существующими в системе процессами и потоками.
Слайд 55Планирование процессов и потоков
ОС для реализации мультипрограммирования выполняет планирование и диспетчеризацию потоков
(в ОС, не поддерживающих потоков, — диспетчеризацию процессов).
Слайд 56Планирование процессов и потоков
Планирование включает определение момента времени для смены текущего потока,
а также выбор нового потока для выполнения.
Слайд 57Планирование процессов и потоков
Диспетчеризация заключается в реализации найденного в результате планирования решения,
то есть в переключении процессора с одного потока на другой.
Слайд 58Планирование процессов и потоков
Планирование бывает динамическим, когда решения принимаются во время работы
системы на основе анализа текущей ситуации, или статическим, если потоки запускаются на выполнение на основании заранее разработанного расписания.
Слайд 59Планирование процессов и потоков
Динамический планировщик ОС может реализовывать различные алгоритмы планирования, которые
делятся на классы:
вытесняющие алгоритмы
невытесняющие алгоритмы
алгоритмы квантования
приоритетные алгоритмы.
Слайд 60Планирование процессов и потоков
Невытесняющие (non-preemptive) алгоритмы основаны на том, что активному потоку
позволяется выполняться, пока он сам, по собственной инициативе, не отдаст управление ОС для того, чтобы та выбрала из очереди другой готовый к выполнению поток.
Слайд 61Планирование процессов и потоков
Вытесняющие (preemptive) алгоритмы - решение о переключении процессора с
выполнения одного потока на выполнение другого потока принимается ОС, а не активной задачей.
Слайд 62Планирование процессов и потоков
В основе многих вытесняющих алгоритмов планирования лежит концепция квантования.
Каждому
потоку поочередно для выполнения предоставляется ограниченный непрерывный период процессорного времени - квант.
Слайд 63Планирование процессов и потоков
Смена активного потока происходит, если:
поток завершился и покинул
систему;
произошла ошибка;
поток перешел в состояние ожидания;
исчерпан квант процессорного времени, отведенный данному потоку.
Слайд 65Планирование процессов и потоков
Другой важной концепцией, лежащей в основе многих вытесняющих алгоритмов
планирования, является приоритетное обслуживание (приоритетный алгоритм).
Слайд 66Планирование процессов и потоков
Приоритетное обслуживание предполагает наличие у потоков некоторой изначально известной
характеристики — приоритета, на основании которой определяется порядок их выполнения.