Скачать презентацию Архитектура вычислительных систем Лекция 2 Мультизадачность Аппарат прерываний Скачать презентацию Архитектура вычислительных систем Лекция 2 Мультизадачность Аппарат прерываний

Arcitecture_of_Computers_Lecture02.ppt

  • Количество слайдов: 38

Архитектура вычислительных систем. Лекция 2. Мультизадачность Аппарат прерываний Привилегированный и ограниченный режимы Москва, сентябрь Архитектура вычислительных систем. Лекция 2. Мультизадачность Аппарат прерываний Привилегированный и ограниченный режимы Москва, сентябрь 2008 Ловецкий К. П.

Компьютер ЭНИАК 2 Компьютер ЭНИАК 2

3 The Columbia Supercomputer, located at the NASA Ames Research Center. It was built 3 The Columbia Supercomputer, located at the NASA Ames Research Center. It was built by Silicon Graphics

Перфокарта: Z(1) = Y + W(1) 4 Перфокарта: Z(1) = Y + W(1) 4

Суперкомпьютерные технологии в науке, образовании и промышленности l 5 http: //hpc-russia. ru/book_ready. html Суперкомпьютерные технологии в науке, образовании и промышленности l 5 http: //hpc-russia. ru/book_ready. html

Мультизадачность Одновременное исполнение нескольких задач l l 6 Мультизадачность или режим мультипрограммирования − это Мультизадачность Одновременное исполнение нескольких задач l l 6 Мультизадачность или режим мультипрограммирования − это такой режим работы вычислительной системы, при котором несколько программ могут выполняться в системе одновременно. Две задачи, запущенные на одной вычислительной системе, называются выполняемыми одновременно, если периоды их выполнения (временной отрезок с момента запуска до момента завершения каждой из задач) полностью или частично перекрываются.

Мультизадачность Одновременное исполнение нескольких задач l Итак, если процессор, работая в каждый момент времени Мультизадачность Одновременное исполнение нескольких задач l Итак, если процессор, работая в каждый момент времени с одной задачей, при этом переключается между несколькими задачами, уделяя внимание то одной из них, то другой, эти задачи в соответствии с нашим определением будут считаться выполняемыми одновременно Задача 1 Задача 2 Задача 3 7 Одновременное выполнение задач на одном процессоре

Мультизадачность Пакетный режим l l В простейшем случае мультизадачность позволяет решить проблему простоя центрального Мультизадачность Пакетный режим l l В простейшем случае мультизадачность позволяет решить проблему простоя центрального процессора во время операций ввода-вывода. При этом, возможно, во входной очереди заданий имеются задачи, на решение которых можно было бы употребить время центрального процессора, впустую пропадающее в ожидании окончания операций ввода-вывода. работа ввод-вывод (простой процессора) работа Диск 8 Простой процессора в однозадачной системе

Мультизадачность Пакетный режим l В мультизадачных операционных системах как только активная задача затребует проведение Мультизадачность Пакетный режим l В мультизадачных операционных системах как только активная задача затребует проведение операции ввода-вывода, операционная система выполняет необходимые действия по запуску контроллеров устройств на исполнение запрошенной операции, после чего заменяет активную задачу на другую − новую или уже имеющуюся. Замененная задача в этом случае считается перешедшей в состояние ожидания результата ввода-вывода, или состояние блокировки. задача 1 блокировка готовность задача 2 9 Диск Пакетная операционная система задача 1

Мультизадачность Пакетный режим l l l 10 В простейшем случае новая активная задача остается Мультизадачность Пакетный режим l l l 10 В простейшем случае новая активная задача остается в режиме выполнения до тех пор, пока она не завершится либо не затребует, в свою очередь, проведение операции ввода-вывода. При этом блокированная задача по окончании операции ввода-вывода переходит из состояния блокировки в состояние готовности к выполнению, но переключения на нее не происходит; это обусловлено тем, что операция смены активной задачи, вообще говоря, отнимает много процессорного времени. Такой способ построения мультизадачности, при котором смена активной задачи происходит только в случае ее окончания или запроса на операцию ввода-вывода, называется пакетным режимом, а операционные системы, реализующие этот режим, − пакетными операционными системами. Режим пакетной мультизадачности является самым эффективным с точки зрения использования вычислительной мощности центрального процессора, поэтому именно пакетный режим используется для управления суперкомпьютерами и другими машинами, основное назначение которых − большие объемы численных расчетов.

Мультизадачность Режим разделения времени l l l 11 С появлением первых терминалов и диалогового Мультизадачность Режим разделения времени l l l 11 С появлением первых терминалов и диалогового (иначе говоря, интерактивного) режима работы с компьютерами возникла потребность в других стратегиях смены активных задач, или, как принято говорить, планирования времени центрального процессора. Организовать комфортную диалоговую работу позволяет режим разделения времени. В этом режиме каждой задаче отводится определенное время работы, называемое квантом времени. По окончании этого кванта, если в системе имеются другие готовые к исполнению задачи, активная задача принудительно приостанавливается и заменяется другой задачей. Приостановленная задача помещается в очередь задач, готовых к выполнению и находится там, пока остальные задачи не отработают свои кванты; затем она снова получает очередной квант времени для работы.

Мультизадачность Режим разделения времени l l 12 Некоторые операционные системы, включая ранние версии Windows, Мультизадачность Режим разделения времени l l 12 Некоторые операционные системы, включая ранние версии Windows, применяли стратегию, занимающую промежуточное положение между пакетным режимом и режимом разделения времени. В этих системах задачам выделялся квант времени, как и в системах разделения времени, но принудительной смены текущей задачи по истечении кванта времени не производилось; система проверяла, не истек ли квант времени у текущей задачи, только когда задача обращалась к операционной системе за какими-либо услугами (не обязательно за вводом-выводом). Таким образом, задача, не нуждающаяся в услугах операционной системы, могла занимать процессор сколь угодно долго, как и в пакетных операционных системах. Такой режим работы называется невытесняющим. В современных системах он не применяется, поскольку налагает слишком жесткие требования на исполняемые в системе программы; так, в ранних версиях Windows любая программа, занятая длительными вычислениями, блокировала работу всей системы.

Мультизадачность Режим реального времени l l 13 В некоторых специальных случаях режим разделения времени Мультизадачность Режим реального времени l l 13 В некоторых специальных случаях режим разделения времени также оказывается непригоден. Например, при управлении полетом самолета, ядерным реактором, автоматической линией производства и т. п. , некоторые задачи должны быть завершены строго до определенного момента времени. Так, если автопилот самолета, получив сигнал от датчиков тангажа и крена, потратит на вычисление необходимого корректирующего воздействия больше времени, чем допустимо, самолет может вовсе потерять управление. В случае, когда выполняемые задачи (как минимум некоторые из них) имеют жесткие рамки по необходимому времени завершения, применяются операционные системы реального времени. В отличие от систем разделения времени, задача планировщика реального времени не в том, чтобы дать всем программам отработать некоторое время, а в том, чтобы обеспечить гарантированное время реакции на определенные внешние события.

Мультизадачность Режим реального времени l 14 В некоторых случаях возможно при необходимости пропустить ту Мультизадачность Режим реального времени l 14 В некоторых случаях возможно при необходимости пропустить ту или иную операцию, если на нее не хватило времени. Так, при воспроизведении видеопотока можно в случае крайней необходимости попросту пропустить некоторые кадры, в то время как те кадры, которые показываются на экране, должны быть распакованы и обсчитаны к строго определенным моментам времени. В подобных случаях говорят о мягкой системе реального времени, в противоположность жесткой (автопилот самолета)

Мультизадачность Требования к аппаратуре для обеспечения мультизадачного режима l l l 15 Для построения Мультизадачность Требования к аппаратуре для обеспечения мультизадачного режима l l l 15 Для построения мультизадачного режима работы вычислительной системы аппаратура (прежде всего центральный процессор) должна обладать определенными свойствами. В однозадачной системе во время исполнения операции ввода-вывода центральный процессор может непрерывно опрашивать контроллер устройства на предмет его готовности (завершена ли требуемая операция), после чего возобновить работу активной задачи. В этом случае процессор непрерывно занят во время операции ввода-вывода, несмотря на то, что никаких полезных вычислений он при этом не производит. Такой способ взаимодействия называется активным ожиданием. Такой подход неэффективен, так как процессорное время можно использовать с большей пользой.

Мультизадачность Аппарат прерываний l l l 16 При мультизадачной обработке возникает определенная проблема. Ведь Мультизадачность Аппарат прерываний l l l 16 При мультизадачной обработке возникает определенная проблема. Ведь в момент завершения операции ввода-вывода контроллером процессор занят выполнением второй задачи, а как минимум необходимо перевести первую задачу из состояния блокировки в состояние готовности. Возникает необходимость посылки сообщения операционной системе о завершении операции ввода-вывода, в то время как процессор занят и непрерывного опроса контроллера не производит. Решить задачу позволяет аппарат прерываний. По завершении операции контроллер подает центральному процессору сигнал (электрический импульс), называемый запросом прерывания. Центральный процессор, получив этот сигнал, прерывает выполнение активной задачи и передает управление процедуре ОС, которая выполняет необходимые по окончании операции ввода-вывода действия. После этого управление возвращается активной задаче.

Мультизадачность Защита памяти l l 17 Если не предпринять специальных мер, одна из программ Мультизадачность Защита памяти l l 17 Если не предпринять специальных мер, одна из программ может модифицировать данные или код других программ или самой операционной системы. Даже если допустить отсутствие злого умысла у разработчиков всех запускаемых программ, от случайных ошибок в программах это допущение не спасет. Ясно, что необходимы средства ограничения возможностей работающей программы по доступу к областям памяти, занятым другими программами. Программная реализация такой защиты недопустима из соображений эффективности. Поэтому применяется аппаратная поддержка защиты памяти.

Мультизадачность Привилегированный и ограниченный режимы l l 18 Коль скоро существует защита памяти, процессор Мультизадачность Привилегированный и ограниченный режимы l l 18 Коль скоро существует защита памяти, процессор должен иметь набор команд для управления этой защитой. Если не предпринять специальных мер, то такие команды сможет исполнить любая из выполняющихся программ, сняв защиту памяти или модифицировав ее конфигурацию. Такая возможность делает саму защиту памяти практически бессмысленной. Проблема касается не только защиты памяти, но и работы с внешними устройствами. Чтобы обеспечить нормальное взаимодействие всех программ с устройствами вводавывода, операционная система должна взять непосредственную работу с устройствами на себя, а пользовательским программам предоставлять интерфейс для обращения к операционной системе за услугами по работе с устройствами.

Мультизадачность Привилегированный и ограниченный режимы l l 19 Проблема решается введением двух режимов работы Мультизадачность Привилегированный и ограниченный режимы l l 19 Проблема решается введением двух режимов работы центрального процессора: привилегированного и ограниченного. В привилегированном режиме процессор может выполнять любые существующие команды. В ограниченном режиме выполнение команд, влияющих на систему в целом, запрещено; разрешаются только команды, эффект которых ограничен модификацией данных в областях памяти, не закрытых защитой памяти. Сама операционная система (программа, называемая еще ядром операционной системы) выполняется в привилегированном режиме, пользовательские программы − в ограниченном.

Мультизадачность Таймер l l 20 Для реализации пакетного мультизадачного режима перечисленных аппаратных средств уже Мультизадачность Таймер l l 20 Для реализации пакетного мультизадачного режима перечисленных аппаратных средств уже достаточно. Если же необходимо реализовать систему разделения времени или реального времени, в аппаратуре вычислительной системы требуется наличие еще одного компонента − таймера. Планировщику операционной системы разделения времени нужна возможность отслеживания истечения квантов времени, выделенных пользовательским программам; в системе реального времени требования к ней даже более жесткие: не сняв вовремя с процессора активное на тот момент приложение, планировщик рискует попросту не успеть выделить более важным программам необходимое им процессорное время, в результате чего могут наступить неприятные последствия (пример с автопилотом самолета).

Мультизадачность Таймер l l 21 Таймер представляет собой сравнительно простое устройство, вся функциональность которого Мультизадачность Таймер l l 21 Таймер представляет собой сравнительно простое устройство, вся функциональность которого сводится в простейшем случае к генерации прерываний через равные промежутки времени. Эти прерывания дают возможность операционной системе получить управление, проанализировать текущее состояние имеющихся задач и при необходимости сменить активную задачу.

Мультизадачность Краткий итог l Для реализации мультизадачной операционной системы аппаратное обеспечение компьютера обязано поддерживать: Мультизадачность Краткий итог l Для реализации мультизадачной операционной системы аппаратное обеспечение компьютера обязано поддерживать: – – l 22 аппарат прерываний; защиту памяти; привилегированный и ограниченный режимы работы центрального процессора; таймер. Первые три свойства необходимы в любой мультизадачной системе, последнее может отсутствовать в случае пакетной планировки (хотя в реальных системах таймер присутствует всегда). Из перечисленных свойств только таймер является отдельным устройством, остальные три представляют собой функции центрального процессора.

Аппарат прерываний Внешние (аппаратные) прерывания l l 23 Устройства вычислительной системы могут осуществлять свои Аппарат прерываний Внешние (аппаратные) прерывания l l 23 Устройства вычислительной системы могут осуществлять свои функции независимо от центрального процессора. Однако время от времени им может требоваться внимание операционной системы. Центральный процессор может быть именно в такой момент занят обработкой пользовательской программы. Аппаратные (или внешние) прерывания были призваны решить эту проблему. Для поддержки аппаратных прерываний процессор обычно имеет специально предназначенные для этого контакты; электрический импульс, представляющий логическую единицу, поданный на такой контакт, воспринимается процессором как сигнал о том, что некоторому устройству требуется внимание операционной системы.

Аппарат прерываний Внешние (аппаратные) прерывания l 24 Прерывание является единственным (из известных нам на Аппарат прерываний Внешние (аппаратные) прерывания l 24 Прерывание является единственным (из известных нам на текущий момент) способом переключения процессора в привилегированный режим.

Аппарат прерываний Внутренние прерывания l l 25 Что следует делать центральному процессору, если активная Аппарат прерываний Внутренние прерывания l l 25 Что следует делать центральному процессору, если активная задача выполнила целочисленное деление на ноль? А в случае нарушения защиты памяти, попытки выполнить запрещенную или несуществующую инструкцию, попытки прочитать слово по нечетному адресу и т. п. ? Действия, которые должен выполнить процессор, оказываются очень похожими на рассмотренный ранее случай аппаратного прерывания. Основное отличие состоит в отсутствии обмена по шине (запроса и подтверждения прерывания): информация о перечисленных событиях возникает внутри процессора, а не вне его.

Аппарат прерываний Внутренние прерывания l 26 Поэтому обработку ситуаций, в которых дальнейшее выполнение активной Аппарат прерываний Внутренние прерывания l 26 Поэтому обработку ситуаций, в которых дальнейшее выполнение активной задачи оказывается невозможной по причине выполненных ею некорректных действий, называют так же, как и действия по запросу внешних устройств − прерываниями. Чтобы не путать разные по своей природе прерывания, их делят на внешние (аппаратные) и внутренние; такая терминология оправдана тем, что причина внешнего прерывания находится вне центрального процессора, тогда как причина внутреннего − у ЦП внутри.

Аппарат прерываний Программные прерывания. Системные вызовы. l l 27 Уже известны два случая, в Аппарат прерываний Программные прерывания. Системные вызовы. l l 27 Уже известны два случая, в которых такие действия выполняются − это аппаратные и внутренние прерывания. Изобретать дополнительный механизм для системного вызова ни к чему; для его реализации можно использовать частный случай внутреннего прерывания, инициируемый специально предназначенной для этого машинной инструкцией. Отличие этого вида прерывания (программного прерывания) от остальных состоит в том, что оно происходит по инициативе пользовательской задачи, тогда как другие прерывания случаются без ее ведома.

Привилегированный и ограниченный режимы. Ядро и процессы. l l 28 В основе операционной системы Привилегированный и ограниченный режимы. Ядро и процессы. l l 28 В основе операционной системы всегда находится программа, осуществляющая работу с аппаратурой, обрабатывающая прерывания и обслуживающая системные вызовы. Эта программа называется ядром операционной системы. В определенном смысле ядро и есть сама операционная система; в некоторых случаях, однако, под словосочетанием «операционная система» понимают большой набор программ, включающий, кроме ядра, еще разнообразные системные утилиты, программы для управления и настройки, иногда даже компиляторы и интерпретаторы языков программирования. В этом смысле термин «операционная система» может использоваться в разных значениях, тогда как использование термина «ядро» никакой неопределенности не оставляет.

Привилегированный и ограниченный режимы. Ядро и процессы. l l 29 Как уже говорилось, процессор Привилегированный и ограниченный режимы. Ядро и процессы. l l 29 Как уже говорилось, процессор в современных вычислительных системах имеет два режима выполнения команд: привилегированный и ограниченный. В привилегированном режиме можно выполнять любые команды, имеющиеся на данном процессоре, в ограниченном же выполнение любых команд, влияющих на что-либо за пределами ограниченной области памяти, заблокировано и вызывает внутреннее прерывание.

Привилегированный и ограниченный режимы. Ядро и процессы. l l Единственной программой, выполняющейся в привилегированном Привилегированный и ограниченный режимы. Ядро и процессы. l l Единственной программой, выполняющейся в привилегированном режиме во время работы операционной системы, является ядро операционной системы. Все остальные программы, вне зависимости от уровня их полномочий, выполняются в ограниченном режиме в виде процессов, а все действия, выходящие за рамки преобразования данных в отведенной им памяти, выполняют путем обращения к ядру с помощью системных вызовов. процессы Я Д Р О 30 ограниченный режим привилегированный режим

Привилегированный и ограниченный режимы. Эмуляция физического компьютера l l 31 Известно, что никакой код Привилегированный и ограниченный режимы. Эмуляция физического компьютера l l 31 Известно, что никакой код никакого пользовательского процесса ни при каких условиях не может быть исполнен в привилегированном режиме процессора. Но. . . Поскольку при попытке выполнения процессом некорректной инструкции (в том числе и инструкции, относящейся к привилегированным) возникает прерывание, в результате которого ядро операционной системы получает управление, оказывается возможным сымитировать действия физической машины таким образом, чтобы у программы, работающей в рамках пользовательского процесса, «создалось впечатление» , что эта программа работает в привилегированном режиме на машине, на которой никого кроме нет.

Привилегированный и ограниченный режимы. Эмуляция физического компьютера l l l 32 Действия, которые на Привилегированный и ограниченный режимы. Эмуляция физического компьютера l l l 32 Действия, которые на физической машине осуществлял бы процессор в ответ на привилегированную команду, в режиме эмуляции выполняют обработчики прерываний по некорректной инструкции и нарушению защиты памяти. В режиме такой эмуляции можно запустить в виде пользовательского процесса ядро другой операционной системы или даже второй экземпляр той же самой. Впервые такая эмуляция была реализована на IBM/360 операционной системой VM/360. Под VM/360 можно было запустить несколько операционных систем OS/360, причем каждая из них была уверена, что компьютер IBM/360 находится в ее полном распоряжении. Более того, под VM/360 можно было загрузить в режиме эмуляции ее саму.

Bugs l The actual first computer bug, a moth found trapped on a relay Bugs l The actual first computer bug, a moth found trapped on a relay of the Harvard Mark II computer Широко распространена легенда, что 9 сентября 1945 года учёные Гарвардского университета, тестировавшие вычислительную машину Mark II Aiken Relay Calculator, нашли мотылька, застрявшего между контактами электромеханического реле, и Грейс Хоппер произнесла этот термин. Извлечённое насекомое было вклеено скотчем в технический дневник, с сопроводительной надписью: «First actual case of bug being found» (англ. «первый реальный случай, когда жук был найден» ). Считается, что этот забавный факт положил начало использованию слова «debugging» в значении «отладка программы» , однако, скорее всего, фраза является каламбуром. 33

http: //www. devtopics. com/20 -famous-software-disasters/ l l l 34 1. Mariner Bugs Out (1962) http: //www. devtopics. com/20 -famous-software-disasters/ l l l 34 1. Mariner Bugs Out (1962) Cost: $18. 5 million Disaster: The Mariner 1 rocket with a space probe headed for Venus diverted from its intended flight path shortly after launch. Mission Control destroyed the rocket 293 seconds after liftoff. Cause: A programmer incorrectly transcribed a handwritten formula into computer code, missing a single superscript bar. Without the smoothing function indicated by the bar, the software treated normal variations of velocity as if they were serious, causing faulty corrections that sent the rocket off course. (more) 2. Hartford Coliseum Collapse (1978) Cost: $70 million, plus another $20 million damage to the local economy Disaster: Just hours after thousands of fans had left the Hartford Coliseum, the steel-latticed roof collapsed under the weight of wet snow. Cause: The programmer of the CAD software used to design the coliseum incorrectly assumed the steel roof supports would only face pure compression. But when one of the supports unexpectedly buckled from the snow, it set off a chain reaction that brought down the other roof sections like dominoes. (more) 3. CIA Gives the Soviets Gas (1982) Cost: Millions of dollars, significant damage to Soviet economy Disaster: Control software went haywire and produced intense pressure in the Trans-Siberian gas pipeline, resulting in the largest man-made non-nuclear explosion in Earth’s history. Cause: CIA operatives allegedly planted a bug in a Canadian computer system purchased by the Soviets to control their gas pipelines. The purchase was part of a strategic Soviet plan to steal or covertly obtain sensitive U. S. technology. When the CIA discovered the purchase, they sabotaged the software so that it would pass Soviet inspection but fail in operation. (more)

http: //www. devtopics. com/20 -famous-software-disasters/ l l l l 35 4. World War III… http: //www. devtopics. com/20 -famous-software-disasters/ l l l l 35 4. World War III… Almost (1983) Cost: Nearly all of humanity Disaster: The Soviet early warning system falsely indicated the United States had launched five ballistic missiles. Fortunately the Soviet duty officer had a “funny feeling in my gut” and reasoned if the U. S. was really attacking they would launch more than five missiles, so he reported the apparent attack as a false alarm. Cause: A bug in the Soviet software failed to filter out false missile detections caused by sunlight reflecting off cloud-tops. (more) 5. Medical Machine Kills (1985) Cost: Three people dead, three people critically injured Disaster: Canada’s Therac-25 radiation therapy machine malfunctioned and delivered lethal radiation doses to patients. Cause: Because of a subtle bug called a race condition, a technician could accidentally configure Therac-25 so the electron beam would fire in high-power mode without the proper patient shielding.

http: //www. devtopics. com/20 -famous-software-disasters/ l l l l 36 12. Mars Climate Crasher http: //www. devtopics. com/20 -famous-software-disasters/ l l l l 36 12. Mars Climate Crasher (1998) Cost: $125 million Disaster: After a 286 -day journey from Earth, the Mars Climate Orbiter fired its engines to push into orbit around Mars. The engines fired, but the spacecraft fell too far into the planet’s atmosphere, likely causing it to crash on Mars. Cause: The software that controlled the Orbiter thrusters used imperial units (pounds of force), rather than metric units (Newtons) as specified by NASA. (more) 15. Y 2 K (1999) Cost: $500 billion Disaster: One man’s disaster is another man’s fortune, as demonstrated by the infamous Y 2 K bug. Businesses spent billions on programmers to fix a glitch in legacy software. While no significant computer failures occurred, preparation for the Y 2 K bug had a significant cost and time impact on all industries that use computer technology. Cause: To save computer storage space, legacy software often stored the year for dates as two digit numbers, such as “ 99″ for 1999. The software also interpreted “ 00″ to mean 1900 rather than 2000, so when the year 2000 came along, bugs would result. (more)

http: //www. devtopics. com/20 -famous-software-disasters/ l l 37 17. Love Virus (2000) Cost: $8. http: //www. devtopics. com/20 -famous-software-disasters/ l l 37 17. Love Virus (2000) Cost: $8. 75 billion, millions of computers infected, significant data loss Disaster: The Love. Letter worm infected millions of computers and caused more damage than any other computer virus in history. The worm deleted files, changed home pages and messed with the Registry. Cause: Love. Letter infected users via e-mail, Internet chat and shared file systems. The email had an executable file attachment and subject line, “ILOVEYOU. ” When the user opened the attachment, the virus would infect the user’s computer and send itself to everyone in the address book. (more)

The end! 38 The end! 38