Слайд 1Способы совмещения во времени операций ввода-вывода и вычислений:
В компьютерах организуют
специализированный процессор ввода-вывода (канал), имеющий систему команд, отличающуюся от системы
команд центрального процессора. В системе команд центрального процессора предусматривается специальная инструкция, с помощью которой каналу передаются параметры и указания на то, какую программу ввода-вывода он должен выполнить.
Слайд 32. Внешние устройства управляются не процессором ввода-вывода, а контроллерами. Каждое
внешнее устройство (или группа внешних устройств одного типа) имеет свой
собственный контроллер, который автономно отрабатывает команды, поступающие от центрального процессора.
Слайд 5Максимальный эффект ускорения достигается при наиболее полном перекрытии вычислений и
ввода-вывода. Общее время выполнения смеси задач часто оказывается меньше, чем
их суммарное время последовательного выполнения. Однако выполнение отдельной задачи в мультипрограммном режиме может занять больше времени, чем при монопольном выделении процессора этой задаче.
Слайд 7Мультипрограммирование
в системах разделения времени
Повышение удобства и эффективности работы пользователя
является целью другого способа мультипрограммирования — разделения времени. В системах
разделения времени пользователям предоставляется возможность интерактивной работы сразу с несколькими приложениями.
Слайд 9ОС принудительно периодически приостанавливает приложения, не дожидаясь, когда они добровольно
освободят процессор. Всем приложениям попеременно выделяется квант процессорного времени.
Cистемы разделения
времени обладают меньшей пропускной способностью, чем системы пакетной обработки, так как на выполнение принимается каждая запущенная пользователем задача, а не та, которая «выгодна» системе. Кроме того, производительность системы снижается из-за возросших накладных расходов вычислительной мощности на более частое переключение процессора с задачи на задачу.
Слайд 10Мультипрограммирование
в системах реального времени
Системы реального времени предназначены для управления
от компьютера различными техническими объектами (например, станком, спутником, научной экспериментальной
установкой и т. д.) или технологическими процессами (например, гальванической линией, доменным процессом и т. п.). Во всех этих случаях существует предельно допустимое время, в течение которого должна быть выполнена та или иная управляющая объектом программа.
Слайд 12Критерий эффективности- способность выдерживать заранее заданные интервалы времени между запуском
программы и получением результата (управляющего воздействия).
В системах реального времени не
стремятся максимально загружать все устройства, обычно закладывается некоторый «запас» вычислительной мощности на случай пиковой нагрузки.
Слайд 13Лекция 4
Процессы и потоки.
Создание, планирование и диспетчеризация.
Слайд 14Чтобы поддерживать мультипрограммирование, ОС определяет и оформить для себя те
внутренние единицы работы, между которыми будет разделяться процессор и другие
ресурсы компьютера. В настоящее время в большинстве операционных систем определены два типа единиц работы. Более крупная единица работы, обычно носящая название процесса, требует для своего выполнения нескольких более мелких работ, -«потоков».
Слайд 15При управлении процессами операционная система использует два основных типа информационных
структур: дескриптор процесса и контекст процесса.
Дескриптор процесса содержит такую информацию
о процессе, которая необходима ядру в течение всего жизненного цикла процесса независимо от того, находится он в активном или пассивном состоянии, находится образ процесса в оперативной памяти или выгружен на диск.
Слайд 16Контекст процесса содержит менее оперативную, но более объемную часть информации
о процессе, необходимую для возобновления выполнения процесса с прерванного места:
содержимое регистров процессора, информация обо всех открытых файлах и незавершенных операциях ввода-вывода и другие данные.
Слайд 17Планирование и диспетчеризация потоков
На протяжении существования процесса выполнение его потоков
может быть многократно прервано и продолжено. Переход от выполнения одного
потока к другому осуществляется в результате планирования и диспетчеризации.
Работа по определению того, в какой момент необходимо прервать выполнение текущего активного потока и какому потоку предоставить возможность выполняться, называется планированием.
Слайд 18В большинстве операционных систем универсального назначения планирование осуществляется динамически (on-line),
то есть решения принимаются во время работы системы на основе
анализа текущей ситуации. ОС работает в условиях неопределенности — потоки и процессы появляются в случайные моменты времени и также непредсказуемо завершаются.
Слайд 19Другой тип планирования — статический — может быть использован в
специализированных системах, в которых весь набор одновременно выполняемых задач определен
заранее, например в системах реального времени. Результатом работы статического планировщика является таблица, называемая расписанием, в которой указывается, какому потоку/процессу, когда и на какое время должен быть предоставлен процессор.
Слайд 20Диспетчеризация заключается в реализации найденного в результате планирования решения, то
есть в переключении процессора с одного потока на другой. Прежде
чем прервать выполнение потока, ОС запоминает его контекст, с тем чтобы впоследствии использовать эту информацию для последующего возобновления выполнения данного потока.
Слайд 21Функции диспетчеризации:
сохранение контекста текущего потока, который требуется сменить;
загрузка контекста
нового потока, выбранного в результате планирования;
запуск нового потока на выполнение.
Слайд 22Состояния потока
В мультипрограммной системе поток может находиться в одном из
трех основных состояний:
выполнение — активное состояние потока, во время которого
поток обладает
всеми необходимыми ресурсами и непосредственно выполняется процессором;
Слайд 23ожидание — пассивное состояние потока, находясь в котором, поток заблокирован
по своим внутренним причинам (ждет осуществления некоторого со
бытия, например завершения
операции ввода-вывода, освобождения какого-либо необходимого ему ресурса);
готовность - также пассивное состояние потока, поток заблокирован внешними по отношению к нему обстоятельством (имеет все требуемые для него ресурсы, готов выполняться, однако процессор занят выполнением другого потока).
Слайд 25В состоянии выполнения в однопроцессорной системе может находиться не более
одного потока, а в каждом из состояний ожидания и готовности
— несколько потоков. Эти потоки образуют очереди соответственно ожидающих и готовых потоков. Очереди потоков организуются путем объединения в списки описателей отдельных потоков.
Слайд 26Каждый описатель потока, кроме всего прочего, содержит по крайней мере
один указатель на другой описатель, соседствующий с ним в очереди.
Такая организация очередей позволяет легко их переупорядочивать, включать и исключать потоки, переводить потоки из одного состояния в другое.
Слайд 28Вытесняющие и невытесняющие алгоритмы планирования
Невытесняющие алгоритмы основаны на том, что
активному потоку позволяется выполняться, пока он сам, по собственной инициативе,
не отдаст управление операционной системе для того, чтобы та выбрала из очереди другой готовый к выполнению поток.
Вытесняющие алгоритмы- способы планирования потоков, в которых решение о переключении процессора с выполнения одного потока на выполнение другого потока принимается операционной системой, а не активной задачей.
Слайд 29Алгоритмы планирования, основанные на квантовании
В основе многих вытесняющих алгоритмов планирования
лежит концепция квантования, в соответствии с которой каждому потоку поочередно
для выполнения предоставляется ограниченный непрерывный период процессорного времени — квант.
Слайд 30Смена активного потока происходит, если:
поток завершился и покинул
систему;
произошла ошибка;
поток перешел в состояние ожидания;
исчерпан
квант процессорного времени, отведенный данному потоку.
Слайд 32Если в системе имеется n потоков, то время, которое поток
проводит в ожидании следующего кванта, можно грубо оценить как q(n-1),
где q- длина кванта времени каждого потока. Чем больше потоков в системе, тем больше время ожидания, тем меньше возможности вести одновременную интерактивную работу нескольким пользователям.
Слайд 34Если квант короткий, то суммарное время, которое проводит поток в
ожидании процессора, прямо пропорционально времени, требуемому для его выполнения.
Если потоки
с интенсивными обращениями к вводу-выводу используют только небольшую часть выделенного им процессорного времени, то алгоритмом планирования таким потокам назначаются привилегии при последующем обслуживании.
Слайд 36Алгоритмы планирования, основанные на приоритетах
Приоритетное обслуживание предполагает наличие у потоков
некоторой изначально известной характеристики — приоритета, на основании которой определяется
порядок их выполнения. Приоритет — это число, характеризующее степень привилегированности потока при использовании ресурсов вычислительной машины, в частности процессорного времени: чем выше приоритет, тем меньше времени будет проводить поток в очередях.
Слайд 37В большинстве ОС, поддерживающих потоки, приоритет потока непосредственно связан с
приоритетом процесса, в рамках которого выполняется данный поток.
Приоритет процесса назначается
операционной системой при его создании. Значение приоритета включается в описатель процесса и используется при назначении приоритета потокам этого процесса.
Слайд 38Существуют две разновидности приоритетного планирования: обслуживание с относительными и абсолютными
приоритетами. В обоих случаях выбор потока на выполнение из очереди
готовых осуществляется одинаково: выбирается поток, имеющий наивысший приоритет.
Слайд 39В системах с относительными приоритетами активный поток выполняется до тех
пор, пока он сам не покинет процессор, перейдя в состояние
ожидания (произойдет ошибка, или поток завершится).
Слайд 41В системах с абсолютными приоритетами выполнение активного потока прерывается кроме
указанных выше причин, еще при одном условии: если в очереди
готовых потоков появился поток, приоритет которого выше приоритета активного потока.
Слайд 43Мультипрограммирование на основе прерываний
Система прерываний переводит процессор на выполнение потока
команд, отличного от того, который выполнялся до сих пор, с
последующим возвратом к исходному коду.
Прерывание возникает либо в зависимости от внешних по отношению к процессу выполнения программы событий, либо при появлении непредвиденных аварийных ситуаций в процессе выполнения данной программы.
Слайд 44В зависимости от источника прерывания делятся на три больших класса:
Внешние
(аппаратные) прерывания могут возникать в результате действий пользователя или оператора
за терминалом, или же в результате поступления сигналов от аппаратных устройств — сигналов завершения операций ввода-вывода, вырабатываемых контроллерами внешних устройств компьютера.
Слайд 45Внутренние прерывания, называемые также исключениями (exeption), происходят синхронно выполнению программы
при появлении аварийной ситуации в ходе исполнения некоторой инструкции программы.
Примерами исключений являются деление на нуль, ошибки защиты памяти, обращения по несуществующему адресу, попытка выполнить привилегированную инструкцию в пользовательском режиме и т. п.
Слайд 46Программное прерывание возникает при выполнении особой команды процессора, выполнение которой
имитирует прерывание, то есть переход на новую последовательность инструкций.
Прерываниям
приписывается приоритет, с помощью которого они ранжируются по степени важности и срочности. О прерываниях, имеющих одинаковое значение приоритета, говорят, что они относятся к одному уровню приоритета прерываний.
Слайд 47Процедуры, вызываемые по прерываниям, обычно называют обработчиками прерываний, или процедурами
обслуживания прерываний (Interrupt Service Routine, ISR).