Главная » Просмотр файлов » Вопросы ГЭК 2009new

Вопросы ГЭК 2009new (1094840), страница 36

Файл №1094840 Вопросы ГЭК 2009new (Разработка программы диагностики ошибок при передаче сообщений по технологии клиент-сервер) 36 страницаВопросы ГЭК 2009new (1094840) страница 362018-02-16СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 36)

Программа-обработчик прерывания (ПОП), как правило, является программой операционной системы, резидентной в оперативной памяти. Некоторые операционные системы (например, MS/DOS), позволяют заменить системный обработчик на пользовательский, либо соединить системный и пользовательский обработчики. Вся ответственность за неверные действия в этом случае лежит на пользователе. Неправильная работа обработчика прерываний приводит к разрушению вычислительного процесса, порче информации и «зависанию» системы. Поэтому в развитых операционных системах имеются средства контроля и восстановления информации при сбоях.

Система прерываний появилась в ЭВМ 2-го поколения, и явилась альтернативой обработке событий с помощью опроса: ожидая события, процессор может заниматься какой-либо другой полезной работой, а когда событие произойдет, процессор может заниматься какой-либо другой полезной работой, не дожидаясь полного завершения этой работы. Однако обработка прерывания сопряжена с достаточно большими накладными расходами, связанными с сохранением состояния прерываемой задачи (несколько регистров) и относительно сложным диалогом с вызвавшим прерывание устройством. Интервал между установкой сигнала прерывания и исполнением первой команды его обработчика называется задержкой прерывания и составляет десятки тактов.

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

Разновидностью прерываний являются исключения – реакция на внутренние события в самом процессоре, такие, как неизвестный код операции, недействительный адрес памяти, деление на ноль, ошибка доступа в процессорах с виртуальной памятью и т.д. Исключения обрабатываются аналогично внешним прерываниям, с той лишь разницей, что исключение приводит к прекращению выполнения текущей команды, и сохранённый СчАК указывает на прерванную инструкцию. Во время обработки исключения ПОП может исправить неверную инструкцию, или изменить внешнюю ситуацию (например, подкачать с диска требуемую виртуальную страницу). Возврат из обработчика исключения приводит к попытке повторного исполнения команды.

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

Принято различать следующие типы прерываний:

  • Внутренние (т.е. исключения);

  • Внешние (сигнал от таймера, клавиатуры, мыши, диска, линии связи);

  • От ввода-вывода (сигнал об окончании операции на внешнем устройстве (ВУ));

  • Программные;

  • От схем контроля.

Программные прерывания вызываются специальной командой (в МП 80х86 это команда INT) и являются специфической формой вызова подпрограммы. В данном случае программа операционной системы вызывается по её номеру, заданному в виде операнда команды, а параметры передаются через регистры. Это позволяет любой программе обращаться к системным функциям, не зная адреса исполняющей их программы. Кроме того, пользовательская программа не требует модификации при изменении системного объекта-исполнителя.

Наличие системы прерываний позволяет организовать потоковый и интерактивный мультипрограммный режим работы, виртуальную память, обработку ошибок без останова вычислительного процесса, сетевые технологии и является неотъемлимой программно-аппаратной составляющей современных вычислительных комплексов и ОС.

Контроллер прерываний от внешних устройств в архитектуре ЭВМ семейства INTEL. Программно-аппаратное взаимодействие контроллера прерываний и микропроцессора.

Сигналы внешних аппаратных прерываний поступают в микропроцессор не непосредственно, а через контроллер прерываний. В качестве него используется микросхема Intel8259a, которая имеет 8 входных линий, называемых линиями запроса прерывания (Interrupt Request, IRQ). Обычно в системе бывает 2 таких микросхемы, одна из которых (ведущая) подключается непосредственно к микропроцессору, а вторая (ведомая) – к входу IRQ2 ведущей микросхемы. Таким образом, всего рассматривается 15 входных линий запросов прерываний от внешних устройств. Иногда этого не хватает, и на одной линии запроса «висят» несколько устройств, вследствие чего операционной системе приходится прилагать дополнительные усилия, чтобы разобраться, откуда пришёл сигнал.

Выходами микросхемы контроллера являются сигнал INT, идущий на вход микропроцессора (CPU), и номер вектора прерывания. Обратная связь микропроцессора с контроллером осуществляется с помощью сигнала INTA. Схема сопряжения контроллера (CIED, Controller Interrupts of External Units, назовём его так) и CPU (Central Processing Unit, центрального процессора) приводится на следующей схеме функционирования (рис.1)


Сигнал прерывания, поступая в контроллер, доходит до микропроцессора не сразу.

Во-первых, в схеме контроллера присутствует регистр маски, биты которого могут быть установлены программно через порт 21h (A1h для ведомого контроллера). Наличие 1 в соответствующем бите этого 8-битного регистра запрещает прохождение сигнала от соответствующего устройства, 0 – разрешает.

Во-вторых, поступивший в контроллер запрос на обработку прерывания блокирует в нём прохождение сигналов от устройств текущего и более низкого приоритета до тех пор, пока микропроцессор не разблокирует их сигналом INTA, возникающим при подаче команды EOI (END OF INTERRUPT). Эта команда реализуется засылкой специального кода (20h) в порты 20h ведущего и A0h ведомого контроллера. Сигналы, поступившие на неразблокированные линии контроллера некоторое время могут ожидать обслуживания на входе, но до процессора не дойдут.

Приоритеты устройств стандартно расположены в порядке «сверху вниз» на рис1. (IRQ0 имеет наивысший приоритет, IRQ7 – наинизший, приоритеты IRQ8 – IRQ15 расположены между приоритетами IRQ1 и IRQ3. Однако контроллер прерываний ­– программируемое устройство, и все его регистры (маски, приоритеты, номера векторов прерываний от внешних устройств) могут быть изменены при загрузке операционной системы, и даже во время работы.

В третьих, сигнал прерывания на выходе из контроллера возбуждает линию INT, и одновременно формирует на другой линии номер вектора прерывания. Этот номер формируется из номера IRQ и так называемого «базового вектора», который равен 8 для ведущей и 70h для ведомой микросхемы (в реальном режиме; в защищённом режиме WINDOWS перепрограммирует эти номера.) По номеру прерывания CPU определяет вектор прерывания из таблицы векторов прерываний (ТВП, или IDT – Interrupt Data Table), расположенной в первом килобайте основной памяти (реальный режим). Структура ТВП следующая:

Табл. 1

IP255

CS255

. . .

IP1

CS1

IP0

CS0

Каждая строка таблицы содержит два слова (4 байта) – новое содержимое регистров IP и CS при входе в программу – обработчик, то есть её косвенный адрес. Эти значения автоматически загружаются в названные регистры при поступлении запроса на обработку прерывания. Старое содержимое регистров FLAGS, CS и IP сохраняется в стеке. В новом регистре FLAGS аппаратно обнуляется бит IF, что вызывает запрет на поступление прерываний от любых внешних устройств. Программа-обработчик прерывания (ПОП), допускающая обработку вложенных прерываний (т.е. если её можно прервать для выполнения обработки более приоритетного события) должна сама установить флаг IF в 1 в той точке своего исполнения, начиная с которой её можно прерывать.

В конце своего исполнения обработчик события должен разблокировать контроллер для данного и более низких приоритетов, послав в него сигнал EOI, и вернуть управление в прерванную программу командой IRET, восстанавливающей из стека регистры FLAGS, CS и IP.

Для защищённого режима принцип обработки остаётся тем же самым, но существуют следующие отличия:

  1. ТВП может быть расположена в любом месте ОП. Указателем на неё является регистр IDTR;

  2. Строками ТВП являются 8-байтные записи, содержащие более подробную информацию (вместо нового IP там задается EIP, а также ряд индикаторов);

  3. Сами события делятся на сбои (ошибки), ловушки и аварии;

  4. В некоторых случаях в вершине стека сохраняется код ошибки.

  5. При входе в обработчик учитываются так называемые «уровни привилегий» прерванной задачи и обработчика события.

Детально работу в расширенном режиме мы не рассматриваем.

Пользовательская или системная программа может создать свой собственный обработчик события, или дополнить системный обработчик своими функциями. Для этого необходимо переопределить в ТВП адрес входа в обработчик на свою программу, и при необходимости вызвать из неё системный обработчик.

Виртуальная память и ее реализация. Сегментно-страничная организация памяти и динамическое преобразование адресов. Механизм замещения страниц.

В мультипрограммных системах размещение всех исполняе­мых программ полностью в ОП во многих случаях невыполнимо: программы часто имеют большую длину, а емкости существую­щих ОП ограниченны. Однако нет принципиальной необходимо­сти в том, чтобы вся программа находилась в ОП, так как в лю­бой момент времени работа программы концентрируется на определенных сравнительно небольших участках. Таким обра­зом, в ОП следует хранить только используемые в данный пери­од части программ, а неиспользуемые части могут располагаться в ВЗУ. Программируя свою программу, пользователь не знает, в комбинации с какими программами будет выполняться его программа, какое место в памяти отведет ей операционная система.

При подготовке программ используются условные адреса. Позднее в процессе выполнения программы операционная систе­ма выделяет активным частям программы место в памяти, и ус­ловные адреса переводятся в исполнительные. Эта процедура получила название динамического распределения памяти.

Осуществление динамического распределения чисто программным путем привело бы к значительным потерям машинно­го времени. Целесообразнее пользоваться для этой цели аппара­турными средствами.

Один из способов динамического распределения памяти ос­нован на использовании базовых регистров. Операционная система каждой пользовательской программе ставит в соответ­ствие свой базовый адрес. Базовые адреса обрабатываемых программ находятся в общих регистрах. При выполнении про­граммы реальный или физический адрес образуется суммирова­нием базового и относительного адресов. При динамическом распределении памяти с помощью базовых регистров программа (или, по крайней мере, та часть ее, адрес которой преобразуется с помощью одного и того же базового адреса) должна распола­гаться в последовательных ячейках и вводиться в ОП целиком, хотя в ближайшем цикле активности может потребоваться лишь небольшой фрагмент программы.

При рассматриваемом способе динамического распределения памяти свободная память может состоять из несвязанных об­ластей (фрагментация памяти) и для ввода нужной программы может понадобиться сдвиг содержимого памяти. На рис. 14.7, а показано распределение памяти между программами А, В, С, D, из которых две (А и D) являются в данный момент наименее активными и следовательно, могут рассматриваться как канди­даты на удаление во внешнюю память. Если вновь вводимая программа Е (рис. 14.7, б) больше любой из программ А и D, то для ее размещения в памяти необходимо, как показано на рис. 14.7, а, сдвигать программы В и С. Это перемещение связа­но с потерей времени. Более того, в ряде систем подобное пере­мещение требует выполнения заново операции редактирования связей в программе и новой загрузки программы.

Отмеченные недостатки в распределении памяти отсутствуют в виртуальной памяти со страничной, организацией.

В иртуальная память есть способ организации памяти муль­типрограммной вычислительной системы, при котором достига­ется гибкое динамическое распределение памяти, устраняется ее фрагментация и создаются значительные удобства для работы программистов. Это удается достигнуть без заметного снижения операционной системы и процессов их функционирования.

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

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

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

Характеристики

Список файлов ВКР

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6451
Авторов
на СтудИзбе
305
Средний доход
с одного платного файла
Обучение Подробнее