Курынин Р.В., Машечкин И.В., Терехин А.Н. - Конспект лекций по ОС (1114685), страница 12
Текст из файла (страница 12)
При возникновении промаха происходит обновление содержимого КЭШа. Для этоговыбирается блок-претендент на вытеснение, т.е. блок, содержимое которого будет заменено.Стратегия этого выбора зависит от конкретной организации процессора. Существуют КЭШи,вытеснение блоков которых осуществляется случайным образом, т.е.
номер блока, которыйдолжен быть вытеснен, определяется с использованием встроенного генератора случайныхчисел. Альтернативой случайного вытеснения является вытеснение наименее «популярного»40блока, т.е. блока, к содержимому которого происходило наименьшее число обращений(LRU — Least-Recently Used).4.
Отдельно следует обратить внимание на организацию вытеснения блока в КЭШе данных, т.к.содержимое блоков КЭШа может не соответствовать содержимому памяти: это возникает приобработке команд записи данных в память. В этом случае также возможно использованиенескольких стратегий.
Первая — сквозное кэширование (write-through caching): привыполнении команды записи данных обновление происходит как в КЭШе, так и в оперативнойпамяти. Таким образом, при вытеснении блока из КЭШа происходит только загрузкасодержимого нового блока. Данная стратегия оправдана, т.к. статистические исследованияпоказывают, что частота чтения данных превосходит частоту их записи на порядок. Другойстратегией является кэширование с обратной связью (write-back caching), суть которойзаключается в использовании специального тега модификации (dirty bit).
При выполнениикоманды записи по адресу, содержимое которого кэшируется в одном из блоков, происходитобновление соответствующей этому адресу информации в блоке КЭШа, а также установка вблоке тега модификации. Соответственно, при вытеснении блока осуществляется контроль засодержимым тега. Если тег модификации установлен, то содержимое блока передвытеснением «сбрасывается» в память. Тем самым минимизируется частота выполненияоперации записи в память.Кэширование памяти в современных вычислительных системах применяется не только дляоптимизации взаимодействия центрального процессора и оперативной памяти.
В настоящемпункте мы рассмотрели модельный аппарат КЭШ как компонент процессора — это т.н. КЭШпервого уровня. Современные компьютеры могут включать в свой состав иерархию устройств,кэширующих более медленные устройства хранения данных. Рассмотрению этого вопроса будетпосвящен отдельный раздел.Организация и использование КЭШ-памяти в процессоре развивает рабочий циклмодельного компьютера, рассмотренный выше: при выборке очередных команд, полученииоперандов команд и записи результатов выполнения команд в ОЗУ добавляются схемыорганизации использования КЭШ-памяти.1.2.3.4Аппарат прерыванийЕсли мы обратим внимание на представленный выше рабочий цикл процессора, то увидим,что такая схема не предусматривает возможности обработки ошибочной ситуации, которая можетвозникнуть в системе в ходе выполнения программы.
Что будет с компьютером, если в программе,которую он выполняет, встретится команда с кодом операции, обработка которого непредусмотрена аппаратурой? Что будет, если выполняется корректная команда, но значенияоперандов приводят к невозможности выполнения соответствующей команде операции, например,деление на ноль? Что будет, если при программном обращении к внешнему устройству оносломалось? В первых компьютерах происходила остановка работы всего компьютера, обработкаситуации, вызвавшей аварийную остановку (АВОСТ).
Современные вычислительные системы немогут позволить себе остановку работы всей системы из-за возникновения тех или иных проблемв программе или в компонентах компьютера. Для решения проблем автоматизации обработкисобытий, возникающих в вычислительной системе, в современных компьютерах предусмотренаппарат прерываний.Прерыванием называется событие в компьютере, при возникновении которого впроцессоре происходит предопределенная последовательность действий.
Состав прерываний —множество разновидностей событий, на возникновение которых предусмотрена стандартнаяреакция центрального процессора, — фиксирован и определяется конструктивно при разработкекомпьютера. Аппарат прерываний компьютера позволяет организовывать стандартнуюобработку всех прерываний, возникающих при функционировании вычислительной системы.Традиционно прерывания разделяются на две группы: внутренние прерывания и внешниепрерывания.41Внутренние прерывания инициируются схемами контроля работы процессора. К примеру,внутреннее прерывание может возникнуть в процессоре при попытке выполнения командыделения, операнд-делитель которой равен нулю.
Также внутреннее прерывание возникнет вситуации, когда при обработке очередной команды адрес одного из операндов выходит за пределыадресного пространства оперативной памяти.Внешние прерывания — события, возникающие в компьютере в результатевзаимодействия центрального процессора с внешними устройствами. Примером внешнегопрерывания может служить событие, связанное с вводом символа с клавиатуры персональногокомпьютера.Обработка прерывания предполагает две стадии: аппаратную, которая включает реакциюпроцессора на возникновение прерывания, и программную, которая предполагает выполнениеспециальной программы обработки прерывания, являющейся частью операционной системы.прерываниеЗавершение текущей командыСохранение регистров (режимблокировки прерывания)Этапы аппаратнойобработки прерывания«Что», «как» и «куда»зависит от конкретнойархитектурыПрограммный этап обработки прерыванияРис. 29.Схема обработки прерывания.Рассмотрим обобщенную модель последовательности действий, происходящих в ВС привозникновении прерывания (1.2.3.4).
Сначала рассмотрим этап аппаратной обработкипрерывания.1. Завершается выполнение текущей команды (за исключением случаев, когда прерываниевозникает по причине некорректного выполнения команды).2. Обработка прерывания предполагает остановку выполнения текущей программы, запускспециальной программы обработки прерывания, а затем, возможно, продолжение выполненияпрерванной программы. Поэтому аппаратный этап обработки прерываний регламентируетперечень регистров, которые автоматически будут сохранены процессором.
Это специальныерегистры, содержимое которых описывает состояние процессора в точке прерываниявыполнения программы (счетчик команд, регистр результатов, регистры, содержащие режимыработы процессора), а также несколько регистров общего назначения, которые могут бытьиспользованы программой обработки прерываний в начальный момент времени. Процедурааппаратного сохранения регистров в различных компьютерах может происходить по-разному.Простейшая модель следующая. Включается режим блокировки прерываний. При этомрежиме в системе запрещается инициализация новых прерываний: возникающие в это времяпрерывания могут либо игнорироваться, либо откладываться (зависит от конкретнойаппаратуры компьютера и типа прерывания).3.
Аппаратное копирование содержимого сохраняемых регистров. Включенный режимблокировки прерывания гарантирует сохранность этих данных до момента завершенияпредварительной обработки прерывания и выключения блокировки прерываний.424. Переход на программный этап обработки прерываний. Для перехода на программный этапобработки прерываний необходимо решить вопрос, как аппаратура передаст операционнойсистеме информацию о том, какое прерывание произошло. Существует несколько моделейаппаратного решения этого вопроса.− Первая модель — использование специального регистра прерываний, каждый разрядкоторого соответствует конкретному прерыванию, т.е.
если, к примеру, в разряде,соответствующем прерыванию от клавиатуры появляется единица, это означает, чтопроизошло соответствующее прерывание. Для расширения числа обрабатываемыхпрерываний возможно использование иерархической модели регистров прерывания(1.2.3.4). Она предполагает, что имеется главный регистр прерывания ипериферийные. В главном регистре прерывания выделяются разряды, индицирующиене только появление конкретных прерываний, но и разряды, индицирующие появлениепрерываний в периферийных регистрах.
В данной модели управление передается воперационную систему на адрес входа в программу.№ Прерывания0 1 2 3 4 5 ..0 1 0 0 1 0Периферийныерегистры0 0 0 0Главный регистрпрерываний0 1 0 0Произошло прерывание №1 ⇒ОС передается адрес входа всоответствующую программуОбработка прерыванияпериферийного устройстваРис. 30.Использование иерархической модели регистров прерывания.− Вторая модель — использование регистра слова состояния процессора.
В этом случае вданном регистре резервируется часть разрядов, в которых отображается номервозникшего прерывания. Управление также передается на фиксированный адрес входа впрограмму обработки прерываний.− Третья модель — использование вектора прерываний. Предполагается, что поколичеству возможных прерываний в ОЗУ выделена группа машинных слов — векторпрерываний. Каждое слово вектора прерываний содержит адрес программы,обрабатывающей данное прерывание (31). При возникновении прерывания послесохранениярегистровосуществляетсяпередачапрерыванияпоадресу,соответствующему номеру прерывания.43ВекторпрерыванийЗапуск программыобработчикапрерывания №2ОЗУПрерывание_№ 2Адрес программыобработки прерывания № 1Адрес программыобработки прерывания № 2Адрес программыобработки прерывания № 3.........Рис.