Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Понятие прерывания





Прерывание – это временное прекращение работы программы, вызванное внешними, по отношению к этой программе причинами. Внешние причины – это значит, что в коде программы нет явной команды на ее приостановку.
Прерывание всегда неожиданно для программы, и она не может подготовиться к нему и не может сама обеспечить восстановление своей работы после прерывания. Но с другой стороны, прерывание – это все же временное прекращение работы программы, и после завершения прерывания выполнение программы должно быть восстановлено. При этом с точки зрения программы такое восстановление происходит автоматически, более того, программа даже не знает, что она прерывалась.
Физически, прерывания реализуются совместными действиями процессора и операционной системы. Процессор фиксирует прерывание и автоматически переходит от выполнения текущей программы к выполнению новой программы – обработчика прерывания. При этом в процессоре обычно определено несколько типов прерываний, и с каждым порыванием всегда связан свой собственный обработчик. Операционная система предоставляет обработчики прерывания для каждого типа прерываний и обеспечивает восстановление исполнения прерванной программы.
Обработка прерываний в операционной системе будут более подробно рассмотрены в рамках нашего курса. Пока только отметим, что механизм прерываний лежит в основе самых фундаментальных механизмов операционной системы, таких как ввод-вывод, многозадачность или интерфейс прикладных программ.
Пользовательский и привилегированный режимы процессора
Одной из основных задач операционной системы является защита пользовательских программ и данных, а также самой себя, от вредоносных действий других программ.
Проблема защиты актуальна даже в наиболее простой однозадачной операционной системе, когда необходимо защищать программы и данные операционной системы от случайных или намеренных повреждений со стороны пользовательских программ. Но еще более остро такая проблема стоит в многозадачных системах, когда необходимо еще защищать различные пользовательские программы друг от друга.
В современных операционных системах необходимый уровень защиты программного кода и данных достигается благодаря использованию виртуальной памяти, которая полностью изолирует исполняющиеся программы друг от друга. Следовательно, для обеспечения защиты данных, достаточно запретить прикладным программам прямой доступ к аппаратуре компьютера, как минимум, к средствам управления виртуальной памятью, чтобы программы не могли бы действовать в обход средств операционной системы. Но системные программы по-прежнему должны иметь доступ к аппаратуре, и непосредственно управлять этой аппаратурой.
Очевидно, что разрешить указанное противоречие чисто программными методами, без использования поддержки со стороны аппаратных средств невозможно, и такая поддержка предоставляется непосредственно процессором.
В современных процессорах предусмотрено как минимум два уровня выполнения программ, которые различаются доступным для программ набором команд. Команды, обеспечивающие прямой доступ к аппаратуре, запрещение и разрешение прерываний, установку обработчиков прерываний или управление регистрами виртуальной памяти, являются привилегированными командами, и доступны программам только в специальном, привилегированном режиме работы процессора. Привилегированный режим работы процессора называют еще режимом ядра или режимом супервизора.
В режиме ядра исполняются только некоторые программы операционной системы, те, которым действительно необходим прямой доступ к аппаратным средствам машины. А все прикладные программы исполняются в обычном, не привилегированном режиме, который называют пользовательский режим или режим задачи.
Очевидно, что переход в режим ядра должен осуществляться таким образом, чтобы программы пользовательского режима не могли бы самостоятельно переключиться в режим ядра, иначе весь смысл выделения привилегированного режима пропадает.
В современных процессорах механизм переключения в режим ядра из режима задачи чаще всего реализован через механизм прерываний. Фактически, при возникновении любого пребывания процессор автоматически переходит в режим ядра и только затем начинает выполнять код программы обработчика прерывания. Заметим теперь, что все обработчики прерываний установлены операционной системой, обычно еще на этапе ее загрузки и не могут быть бесконтрольно изменены никакими прикладными программами, т.к. команда смены обработчика является привилегированной.
Таким образом, гарантируется, что только программы операционной системы смогут выполняться в привилегированном режиме работы процессора. Если же программа пользовательского режима вдруг попытается выполнить привилегированную команду, например, сменить обработчик прерывания, то процессор зарегистрирует ошибку, т.н. исключительную ситуацию, или просто исключение, и сразу же передаст управление специальной программе в составе операционной системы – обработчику исключений.
Благодаря разграничению уровня привилегий между режимом ядра и режимом задачи, программная система, которая первой получит процессор в свое распоряжение, может установить полный контроль над всей вычислительной системой, и препятствовать несанкционированным действиям со стороны любых других программ. Заметим, что в реальной ситуации, операционная система получает управление на этапе начальной загрузки компьютера, раньше любой пользовательской программы, следовательно, она получает потенциальную возможность для полного контроля над компьютером.

Date: 2015-07-01; view: 456; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.007 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию