Слайд 1Архитектура вычислительных систем.
Лекция 2.
Ловецкий К.П.
Москва,
сентябрь 2014
Мультизадачность
Аппарат прерываний
Привилегированный и
ограниченный режимы
Слайд 2ЭНИАК выполнял баллистические расчёты и потреблял мощность в 160 кВт
Слайд 3The Columbia Supercomputer, located at the NASA Ames Research Center.
It was built by Silicon Graphics
Слайд 5Комплектующие
Транзисторы, в качестве миниатюрной и более эффективной замены электровакуумным лампам,
совершили революцию в вычислительной технике. Это второе поколение ЭВМ.
Интегральные микросхемы
содержат многие сотни миллионов транзисторов. Это третье поколение ЭВМ.
Память на ферритовых сердечниках. Каждый сердечник — один бит.
Слайд 7Ленточные накопители ЕС-5017
Архитектура вычислительных систем.
Слайд 8PDP11/40 as exhibited in Vienna Technical Museum
Архитектура вычислительных систем.
Компьютер PDP-11/40
Слайд 9IBM PC 5150 with keyboard and green monochrome monitor (5151),
running MS-DOS 5.0
Архитектура вычислительных систем.
Слайд 10Информация в вычислительной системе может запоминаться и храниться устройствами различного
типа в зависимости от того, насколько оперативным должен быть доступ
к данной информации,
насколько долговременным должно быть ее хранение и каков ее объем.
Архитектура вычислительных систем.
Два слоя, отвечающие за управление аппаратурой,
составляют операционную систему.
Предназначение операционных систем – управление ресурсами вычислительной
системы с целью оптимизации работы прикладных программ
Слайд 11Мультизадачность
Одновременное исполнение нескольких задач
Мультизадачность или режим мультипрограммирования − это
такой режим работы вычислительной системы, при котором несколько программ могут
выполняться в системе одновременно.
Две задачи, запущенные на одной вычислительной системе, называются выполняемыми одновременно, если периоды их выполнения (временной отрезок с момента запуска до момента завершения каждой из задач) полностью или частично перекрываются.
Слайд 12Мультизадачность
Одновременное исполнение нескольких задач
Итак, если процессор, работая в каждый
момент времени с одной задачей, при этом переключается между несколькими
задачами, уделяя внимание то одной из них, то другой, эти задачи в соответствии с нашим определением будут считаться выполняемыми одновременно
Задача 1
Задача 2
Задача 3
Одновременное выполнение задач на одном процессоре
Слайд 13Мультизадачность
Пакетный режим
В простейшем случае мультизадачность позволяет решить проблему простоя центрального
процессора во время операций ввода-вывода.
работа
ввод-вывод (простой процессора)
Диск
Простой процессора в однозадачной
системе
работа
При этом, возможно, во входной очереди заданий имеются задачи, на решение которых можно было бы употребить время центрального процессора, впустую пропадающее в ожидании окончания операций ввода-вывода.
Слайд 14Мультизадачность
Пакетный режим
В мультизадачных операционных системах как только активная задача затребует
проведение операции ввода-вывода, операционная система выполняет необходимые действия по запуску
контроллеров устройств на исполнение запрошенной операции, после чего заменяет активную задачу на другую − новую или уже имеющуюся. Замененная задача в этом случае считается перешедшей в состояние ожидания результата ввода-вывода, или состояние блокировки.
задача 1
блокировка готовность
Диск
Пакетная операционная система
задача 1
задача 2
Слайд 15Мультизадачность
Пакетный режим
В простейшем случае новая активная задача остается в режиме
выполнения до тех пор, пока она не завершится либо не
затребует, в свою очередь, проведения операции ввода-вывода. При этом блокированная задача по окончании операции ввода-вывода переходит из состояния блокировки в состояние готовности к выполнению, но переключения на нее не происходит; это обусловлено тем, что операция смены активной задачи, вообще говоря, отнимает много процессорного времени.
Такой способ построения мультизадачности, при котором смена активной задачи происходит только в случае ее окончания или запроса на операцию ввода-вывода, называется пакетным режимом, а операционные системы, реализующие этот режим,− пакетными операционными системами.
Режим пакетной мультизадачности является самым эффективным с точки зрения использования вычислительной мощности центрального процессора, поэтому именно пакетный режим используется для управления суперкомпьютерами и другими машинами, основное назначение которых − большие объемы численных расчетов.
Слайд 16Мультизадачность
Режим разделения времени
С появлением первых терминалов и диалогового (иначе говоря,
интерактивного) режима работы с компьютерами возникла потребность в других стратегиях
смены активных задач, или, как принято говорить, планирования времени центрального процессора.
Организовать комфортную диалоговую работу позволяет режим разделения времени. В этом режиме каждой задаче отводится определенное время работы, называемое квантом времени. По окончании этого кванта, если в системе имеются другие готовые к исполнению задачи, активная задача принудительно приостанавливается и заменяется другой задачей. Приостановленная задача помещается в очередь задач, готовых к выполнению и находится там, пока остальные задачи не отработают свои кванты; затем она снова получает очередной квант времени для работы.
Слайд 17Мультизадачность
Режим разделения времени
Некоторые операционные системы, включая ранние версии Windows, применяли
стратегию, занимающую промежуточное положение между пакетным режимом и режимом разделения
времени. В этих системах задачам выделялся квант времени, как и в системах разделения времени, но принудительной смены текущей задачи по истечении кванта времени не производилось; система проверяла, не истек ли квант времени у текущей задачи, только когда задача обращалась к операционной системе за какими-либо услугами (не обязательно за вводом-выводом).
Таким образом, задача, не нуждающаяся в услугах операционной системы, могла занимать процессор сколь угодно долго, как и в пакетных операционных системах. Такой режим работы называется невытесняющим.
В современных системах он не применяется, поскольку налагает слишком жесткие требования на исполняемые в системе программы; так, в ранних версиях Windows любая программа, занятая длительными вычислениями, блокировала работу всей системы.
Слайд 18Мультизадачность
Режим реального времени
В некоторых специальных случаях режим разделения времени также
оказывается непригоден. Например, при управлении полетом самолета, ядерным реактором, автоматической
линией производства и т.п., некоторые задачи должны быть завершены строго до определенного момента времени.
Так, если автопилот самолета, получив сигнал от датчиков тангажа и крена, потратит на вычисление необходимого корректирующего воздействия больше времени, чем допустимо, самолет может вовсе потерять управление.
В случае, когда выполняемые задачи (как минимум некоторые из них) имеют жесткие рамки по необходимому времени завершения, применяются операционные системы реального времени. В отличие от систем разделения времени, задача планировщика реального времени не в том, чтобы дать всем программам отработать некоторое время, а в том, чтобы обеспечить гарантированное время реакции на определенные внешние события.
Слайд 19Мультизадачность
Режим реального времени
В некоторых случаях возможно при необходимости пропустить ту
или иную операцию, если на нее не хватило времени. Так,
при воспроизведении видеопотока можно в случае крайней необходимости попросту пропустить некоторые кадры, в то время как те кадры, которые показываются на экране, должны быть распакованы и обсчитаны к строго определенным моментам времени. В подобных случаях говорят о мягкой системе реального времени, в противоположность жесткой (автопилот самолета)
Слайд 20Мультизадачность
Требования к аппаратуре для обеспечения мультизадачного режима
Для построения мультизадачного режима
работы вычислительной системы аппаратура (прежде всего центральный процессор) должна обладать
определенными свойствами.
В однозадачной системе во время исполнения операции ввода-вывода центральный процессор может непрерывно опрашивать контроллер устройства на предмет его готовности (завершена ли требуемая операция), после чего возобновить работу активной задачи.
В этом случае процессор непрерывно занят во время операции ввода-вывода, несмотря на то, что никаких полезных вычислений он при этом не производит. Такой способ взаимодействия называется активным ожиданием. Такой подход неэффективен, так как процессорное время можно использовать с большей пользой.
Слайд 21Мультизадачность
Аппарат прерываний
При мультизадачной обработке возникает определенная проблема. Ведь в момент
завершения операции ввода-вывода контроллером процессор занят выполнением второй задачи, а
как минимум необходимо перевести первую задачу из состояния блокировки в состояние готовности.
Возникает необходимость посылки сообщения операционной системе о завершении операции ввода-вывода, в то время как процессор занят и непрерывного опроса контроллера не производит.
Решить задачу позволяет аппарат прерываний. По завершении операции контроллер подает центральному процессору сигнал (электрический импульс), называемый запросом прерывания. Центральный процессор, получив этот сигнал, прерывает выполнение активной задачи и передает управление процедуре ОС, которая выполняет необходимые по окончании операции ввода-вывода действия. После этого управление возвращается активной задаче.
Слайд 22Мультизадачность
Защита памяти
Если не предпринять специальных мер, одна из программ может
модифицировать данные или код других программ или самой операционной системы.
Даже если допустить отсутствие злого умысла у разработчиков всех запускаемых программ, от случайных ошибок в программах это допущение не спасет.
Ясно, что необходимы средства ограничения возможностей работающей программы по доступу к областям памяти, занятым другими программами. Программная реализация такой защиты недопустима из соображений эффективности. Поэтому применяется аппаратная поддержка защиты памяти.
Слайд 23Мультизадачность
Привилегированный и ограниченный режимы
Коль скоро существует защита памяти, процессор
должен иметь набор команд для управления этой защитой. Если не
предпринять специальных мер, то такие команды сможет исполнить любая из выполняющихся программ, сняв защиту памяти или модифицировав ее конфигурацию. Такая возможность делает саму защиту памяти практически бессмысленной.
Проблема касается не только защиты памяти, но и работы с внешними устройствами. Чтобы обеспечить нормальное взаимодействие всех программ с устройствами ввода-вывода, операционная система должна взять непосредственную работу с устройствами на себя, а пользовательским программам предоставлять интерфейс для обращения к операционной системе за услугами по работе с устройствами.
Слайд 24Мультизадачность
Привилегированный и ограниченный режимы
Проблема решается введением двух режимов работы
центрального процессора: привилегированного и ограниченного. В привилегированном режиме процессор может
выполнять любые существующие команды. В ограниченном режиме выполнение команд, влияющих на систему в целом, запрещено; разрешаются только команды, эффект которых ограничен модификацией данных в областях памяти, не закрытых защитой памяти.
Сама операционная система (программа, называемая еще ядром операционной системы) выполняется в привилегированном режиме, пользовательские программы − в ограниченном.
Слайд 25Мультизадачность
Таймер
A simple digital timer. The internal components—including the circuit
board with control chip and LED display, a battery, and
a buzzer—are visible.
Слайд 26Мультизадачность
Таймер
Для реализации пакетного мультизадачного режима перечисленных аппаратных средств уже
достаточно. Если же необходимо реализовать систему разделения времени или реального
времени, в аппаратуре вычислительной системы требуется наличие еще одного компонента − таймера.
Планировщику операционной системы разделения времени нужна возможность отслеживания истечения квантов времени, выделенных пользовательским программам; в системе реального времени требования к ней даже более жесткие: не сняв вовремя с процессора активное на тот момент приложение, планировщик рискует попросту не успеть выделить более важным программам необходимое им процессорное время, в результате чего могут наступить неприятные последствия (пример с автопилотом самолета).
Слайд 27Мультизадачность
Существуют два вида таймеров:
Аппаратные таймеры функционируют независимо от центрального
процессора и в момент срабатывания посылают прерывание.
Программные таймеры реализуются за
счёт выполнения в цикле заданного количества одинаковых «пустых» операций. При фиксированной частоте работы процессора это позволяет точно определять прошедшее время. Главными минусами такого метода являются: зависимость количества итераций цикла от типа и частоты процессора, невозможность выполнения других операций во время задержки.
Слайд 28Мультизадачность
Таймер
Таймер представляет собой сравнительно простое устройство, вся функциональность которого
сводится в простейшем случае к генерации прерываний через равные промежутки
времени.
Эти прерывания дают возможность операционной системе получить управление, проанализировать текущее состояние имеющихся задач и при необходимости сменить активную задачу.
Слайд 29Мультизадачность
Краткий итог
Для реализации мультизадачной операционной системы аппаратное обеспечение компьютера
обязано поддерживать:
аппарат прерываний;
защиту памяти;
привилегированный и ограниченный режимы работы центрального процессора;
таймер.
Первые
три свойства необходимы в любой мультизадачной системе, последнее может отсутствовать в случае пакетной планировки (хотя в реальных системах таймер присутствует всегда). Из перечисленных свойств только таймер является отдельным устройством, остальные три представляют собой функции центрального процессора.
Слайд 30Аппарат прерываний
Внешние (аппаратные) прерывания
Устройства вычислительной системы могут осуществлять свои
функции независимо от центрального процессора. Однако время от времени им
может требоваться внимание операционной системы. Центральный процессор может быть именно в такой момент занят обработкой пользовательской программы.
Аппаратные (или внешние) прерывания были призваны решить эту проблему. Для поддержки аппаратных прерываний процессор обычно имеет специально предназначенные для этого контакты; электрический импульс, представляющий логическую единицу, поданный на такой контакт, воспринимается процессором как сигнал о том, что некоторому устройству требуется внимание операционной системы.
Слайд 31Аппарат прерываний
Внешние (аппаратные) прерывания
Прерывание является единственным (из известных нам
на текущий момент) способом переключения процессора в привилегированный режим.
Слайд 32Аппарат прерываний
Внутренние прерывания
Что следует делать центральному процессору, если активная
задача выполнила целочисленное деление на ноль? А в случае нарушения
защиты памяти, попытки выполнить запрещенную или несуществующую инструкцию, попытки прочитать слово по нечетному адресу и т.п.?
Действия, которые должен выполнить процессор, оказываются очень похожими на рассмотренный ранее случай аппаратного прерывания. Основное отличие состоит в отсутствии обмена по шине (запроса и подтверждения прерывания): информация о перечисленных событиях возникает внутри процессора, а не вне его.
Слайд 33Аппарат прерываний
Внутренние прерывания
Поэтому обработку ситуаций, в которых дальнейшее выполнение
активной задачи оказывается невозможной по причине выполненных ею некорректных действий,
называют так же, как и действия по запросу внешних устройств − прерываниями. Чтобы не путать разные по своей природе прерывания, их делят на внешние (аппаратные) и внутренние; такая терминология оправдана тем, что причина внешнего прерывания находится вне центрального процессора, тогда как причина внутреннего − у ЦП внутри.
Слайд 34Аппарат прерываний
Программные прерывания. Системные вызовы.
Уже известны два случая, в
которых такие действия выполняются − это аппаратные и внутренние прерывания.
Изобретать дополнительный механизм для системного вызова ни к чему; для его реализации можно использовать частный случай внутреннего прерывания, инициируемый специально предназначенной для этого машинной инструкцией.
Отличие этого вида прерывания (программного прерывания) от остальных состоит в том, что оно происходит по инициативе пользовательской задачи, тогда как другие прерывания случаются без ее ведома.
Слайд 35Привилегированный и ограниченный режимы.
Ядро и процессы.
В основе операционной системы
всегда находится программа, осуществляющая работу с аппаратурой, обрабатывающая прерывания и
обслуживающая системные вызовы. Эта программа называется ядром операционной системы.
В определенном смысле ядро и есть сама операционная система; в некоторых случаях, однако, под словосочетанием «операционная система» понимают большой набор программ, включающий, кроме ядра, еще разнообразные системные утилиты, программы для управления и настройки, иногда даже компиляторы и интерпретаторы языков программирования. В этом смысле термин «операционная система» может использоваться в разных значениях, тогда как использование термина «ядро» никакой неопределенности не оставляет.
Слайд 36Информация в вычислительной системе может запоминаться и
храниться устройствами различного
типа в зависимости от того,
насколько оперативным должен быть доступ
к данной информации,
насколько долговременным должно быть ее хранение и каков ее объем.
Архитектура вычислительных систем.
Слайд 37Привилегированный и ограниченный режимы.
Ядро и процессы.
Как уже говорилось, процессор
в современных вычислительных системах имеет два режима выполнения команд: привилегированный
и ограниченный.
В привилегированном режиме можно выполнять любые команды, имеющиеся на данном процессоре, в ограниченном же выполнение любых команд, влияющих на что-либо за пределами ограниченной области памяти, заблокировано и вызывает внутреннее прерывание.
Слайд 38Привилегированный и ограниченный режимы.
Ядро и процессы.
Традиционно семейство микропроцессоров x86
обеспечивает четыре кольца защиты.
Слайд 39Привилегированный и ограниченный режимы.
Единственной программой, выполняющейся в привилегированном режиме во
время работы операционной системы, является ядро операционной системы.
Все остальные
программы, вне зависимости от уровня их полномочий, выполняются в ограниченном режиме в виде процессов, а все действия, выходящие за рамки преобразования данных в отведенной им памяти, выполняют путем обращения к ядру с помощью системных вызовов.
Ядро и процессы.
Я Д Р О
привилегированный
режим
ограниченный
режим
процессы
Слайд 40Привилегированный и ограниченный режимы.
Известно, что никакой код никакого пользовательского процесса
ни при каких условиях не может быть исполнен в привилегированном
режиме процессора. Но...
Поскольку при попытке выполнения процессом некорректной инструкции (в том числе и инструкции, относящейся к привилегированным) возникает прерывание, в результате которого ядро операционной системы получает управление, оказывается возможным сымитировать действия физической машины таким образом, чтобы у программы, работающей в рамках пользовательского процесса, «создалось впечатление», что эта программа работает в привилегированном режиме на машине, на которой никого кроме нее нет.
Эмуляция физического компьютера
Слайд 41Привилегированный и ограниченный режимы.
Действия, которые на физической машине осуществлял бы
процессор в ответ на привилегированную команду, в режиме эмуляции выполняют
обработчики прерываний по некорректной инструкции и нарушению защиты памяти.
В режиме такой эмуляции можно запустить в виде пользовательского процесса ядро другой операционной системы или даже второй экземпляр той же самой.
Впервые такая эмуляция была реализована на IBM/360 операционной системой VM/360. Под VM/360 можно было запустить несколько операционных систем OS/360, причем каждая из них была уверена, что компьютер IBM/360 находится в ее полном распоряжении. Более того, под VM/360 можно было загрузить в режиме эмуляции ее саму.
Эмуляция физического компьютера
Слайд 42Режим гипервизора
Некоторые современные процессоры могут предоставлять дополнительный режим работы, известный
как режим гипервизора. Как правило данный режим реализуется с целью
поддержки технологий виртуализации на уровне аппаратного обеспечения. Это позволяет достигнуть не только одновременного выполнения нескольких задач, но и одновременного выполнения нескольких операционных систем на одном процессоре без существенных потерь производительности и без изменения самих операционных систем. Обычно при использовании этого режима полный доступ ко всем ресурсам возможен именно из режима гипервизора. В таком случае режим супервизора уже не является максимально привилегированным и ограничиваются его многие привилегированные операции.
Слайд 43Режим гипервизора
При выполнении привилегированных операций операционными системами в режиме супервизора
управление передается специальной программе - гипервизору. Гипервизор осуществляет арбитраж использования
имеющихся аппаратных ресурсов несколькими операционными системами аналогично тому как сами операционные системы осуществляют распределение ресурсов между несколькими задачами. Гипервизор обычно является небольшим ядром, которое управляет распределением ресурсов между несколькими операционными системами и работает уровнем ниже, чем сами операционные системы.
В силу этого в терминологии x86 данный режим как правило называют кольцом -1 (Ring -1).