Главная
Случайная страница
Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Понятие прерывания
Прерывание – это временное прекращение работы программы, вызванное внешними, по отношению к этой программе причинами. Внешние причины – это значит, что в коде программы нет явной команды на ее приостановку. Прерывание всегда неожиданно для программы, и она не может подготовиться к нему и не может сама обеспечить восстановление своей работы после прерывания. Но с другой стороны, прерывание – это все же временное прекращение работы программы, и после завершения прерывания выполнение программы должно быть восстановлено. При этом с точки зрения программы такое восстановление происходит автоматически, более того, программа даже не знает, что она прерывалась. Физически, прерывания реализуются совместными действиями процессора и операционной системы. Процессор фиксирует прерывание и автоматически переходит от выполнения текущей программы к выполнению новой программы – обработчика прерывания. При этом в процессоре обычно определено несколько типов прерываний, и с каждым порыванием всегда связан свой собственный обработчик. Операционная система предоставляет обработчики прерывания для каждого типа прерываний и обеспечивает восстановление исполнения прерванной программы. Обработка прерываний в операционной системе будут более подробно рассмотрены в рамках нашего курса. Пока только отметим, что механизм прерываний лежит в основе самых фундаментальных механизмов операционной системы, таких как ввод-вывод, многозадачность или интерфейс прикладных программ. Пользовательский и привилегированный режимы процессора Одной из основных задач операционной системы является защита пользовательских программ и данных, а также самой себя, от вредоносных действий других программ. Проблема защиты актуальна даже в наиболее простой однозадачной операционной системе, когда необходимо защищать программы и данные операционной системы от случайных или намеренных повреждений со стороны пользовательских программ. Но еще более остро такая проблема стоит в многозадачных системах, когда необходимо еще защищать различные пользовательские программы друг от друга. В современных операционных системах необходимый уровень защиты программного кода и данных достигается благодаря использованию виртуальной памяти, которая полностью изолирует исполняющиеся программы друг от друга. Следовательно, для обеспечения защиты данных, достаточно запретить прикладным программам прямой доступ к аппаратуре компьютера, как минимум, к средствам управления виртуальной памятью, чтобы программы не могли бы действовать в обход средств операционной системы. Но системные программы по-прежнему должны иметь доступ к аппаратуре, и непосредственно управлять этой аппаратурой. Очевидно, что разрешить указанное противоречие чисто программными методами, без использования поддержки со стороны аппаратных средств невозможно, и такая поддержка предоставляется непосредственно процессором. В современных процессорах предусмотрено как минимум два уровня выполнения программ, которые различаются доступным для программ набором команд. Команды, обеспечивающие прямой доступ к аппаратуре, запрещение и разрешение прерываний, установку обработчиков прерываний или управление регистрами виртуальной памяти, являются привилегированными командами, и доступны программам только в специальном, привилегированном режиме работы процессора. Привилегированный режим работы процессора называют еще режимом ядра или режимом супервизора. В режиме ядра исполняются только некоторые программы операционной системы, те, которым действительно необходим прямой доступ к аппаратным средствам машины. А все прикладные программы исполняются в обычном, не привилегированном режиме, который называют пользовательский режим или режим задачи. Очевидно, что переход в режим ядра должен осуществляться таким образом, чтобы программы пользовательского режима не могли бы самостоятельно переключиться в режим ядра, иначе весь смысл выделения привилегированного режима пропадает. В современных процессорах механизм переключения в режим ядра из режима задачи чаще всего реализован через механизм прерываний. Фактически, при возникновении любого пребывания процессор автоматически переходит в режим ядра и только затем начинает выполнять код программы обработчика прерывания. Заметим теперь, что все обработчики прерываний установлены операционной системой, обычно еще на этапе ее загрузки и не могут быть бесконтрольно изменены никакими прикладными программами, т.к. команда смены обработчика является привилегированной. Таким образом, гарантируется, что только программы операционной системы смогут выполняться в привилегированном режиме работы процессора. Если же программа пользовательского режима вдруг попытается выполнить привилегированную команду, например, сменить обработчик прерывания, то процессор зарегистрирует ошибку, т.н. исключительную ситуацию, или просто исключение, и сразу же передаст управление специальной программе в составе операционной системы – обработчику исключений. Благодаря разграничению уровня привилегий между режимом ядра и режимом задачи, программная система, которая первой получит процессор в свое распоряжение, может установить полный контроль над всей вычислительной системой, и препятствовать несанкционированным действиям со стороны любых других программ. Заметим, что в реальной ситуации, операционная система получает управление на этапе начальной загрузки компьютера, раньше любой пользовательской программы, следовательно, она получает потенциальную возможность для полного контроля над компьютером.
Date: 2015-07-01; view: 488; Нарушение авторских прав Понравилась страница? Лайкни для друзей: |
|
|