Читайте также:
|
|
Наиболее расропстраненные:
7. Механизм прерываний реализуется аппаратно-программными средствами. Структуры систем прерывания (в зависимости от аппаратной архитектуры) могут быть самыми разными, но все они имеют одну общую особенность — прерывание непременно влечет за собой изменение порядка выполнения команд процессором.
Механизм обработки прерываний независимо от архитектуры вычислительной системы включает следующие элементы:
1. Установление факта прерывания (прием сигнала на прерывание) и идентификация прерывания (в операционных системах иногда осуществляется повторно, на шаге 4).
2. Запоминание состояния прерванного процесса. Состояние процесса определяется прежде всего значением счетчика команд (адресом следующей команды, который, например, в i80x86 определяется регистрами CS и IP — указателем команды), содержимым регистров процессора и может включать также спецификацию режима (например, режим пользовательский или привилегированный) и другую информацию.
3. Управление аппаратно передается подпрограмме обработки прерывания. В простейшем случае в счетчик команд заносится начальный адрес подпрограммы обработки прерываний, а в соответствующие регистры — информация из слова состояния. В более развитых процессорах, например в том же i80286 и последующих 32-битовых микропроцессорах, начиная с i80386, осуществляется достаточно сложная процедура определения начального адреса соответствующей подпрограммы обработки прерывания и не менее сложная процедура инициализации рабочих регистров процессора.
4. Сохранение информации о прерванной программе, которую не удалось спасти на шаге 2 с помощью действий аппаратуры. В некоторых вычислительных системах предусматривается запоминание довольно большого объема информации о состоянии прерванного процесса.
5. Обработка прерывания. Эта работа может быть выполнена той же подпрограммой, которой было передано управление на шаге 3, но в ОС чаще всего она реализуется путем последующего вызова соответствующей подпрограммы.
6. Восстановление информации, относящейся к прерванному процессу (этап, обратный шагу 4).
7. Возврат в прерванную программу.
Шаги 1-3 реализуются аппаратно, а шаги 4-7 — программно.
На рис. 1.4 показано, что при возникновении запроса на прерывание естественный ход вычислений нарушается и управление передается программе обработки возникшего прерывания. При этом средствами аппаратуры сохраняется (как правило, с помощью механизмов стековой памяти) адрес той команды, с которой следует продолжить выполнение прерванной программы. После выполнения программы обработки прерывания управление возвращается прерванной ранее программе посредством занесения в указатель команд сохраненного адреса команды. Однако такая схема используется только в самых простых программных средах.
Итак, главные функции механизма прерывании:
Переход от прерываемой программы к обработчику и обратно должен выполняться как можно быстрей. Одним из быстрых методов является использование таблицы, содержащей перечень всех допустимых для компьютера прерываний и адреса соответствующих обработчиков. Для корректного возвращения к прерванной программе перед передачей управления обработчику прерываний содержимое регистров процессора запоминается либо в памяти с прямым доступом, либо в системном стеке — system stack.
Механизм прерывания
Он обеспечивается соответствующими аппаратно-программными средствами компьютера.
Любая особая ситуация, вызывающая прерывание, сопровождается сигналом, называемым запросом прерывания (ЗП). Запросы прерываний от внешних устройств поступают в процессор по специальным линиям, а запросы, возникающие в процессе выполнения программы, поступают непосредственно изнутри микропроцессора.
После появления сигнала запроса прерывания ЭВМ переходит к выполнению программы - обработчика прерывания. Обработчик выполняет те действия, которые необходимы в связи с возникшей особой ситуацией. По окончании работы обработчика по специальной команде iret (interrupt return) управление передается прерванной программе.
Каждому запросу прерывания в компьютере присваивается свой номер (тип прерывания), используемый для определения адреса обработчика прерывания.
Вектор прерывания - четырехбайтовая область, в которой хранится адрес обработчика прерывания. Векторы прерываний объединяются в таблицу векторов прерывания. Таблица содержит до 256 элементов.
8. Виртуальное адресное пространство
Виртуальное адресное пространство - это системе адресации, используемая в современных операционных системах - в частности - при работе операционной системы с процессами (/потоками). ]
Такая система удобна по различным причинам - в том числе и потому, что позволяет изолировать "рабочие пространства" процессов друг от друга.
Очередной адрес, создаваемый процессом для идентификации области памяти, а которой процесс хранит некоторые данные называется логическим (виртуальным) адресом и относится именно к виртуальному адресному пространству.
Каждый раз, когда программа запускается внутри операционной системы - операционная система (ОС) создаёт хотя бы один новый процесс и новое виртуальное адресное пространство (ВАП) для него.
Виртуальное адресное пространство зависит от:
· архитектуры процессора;
· операционной системы (которая может накладывать дополнительные ограничения)
Виртуальное адресное пространство не зависит от:
· - объема реальной физической(оперативной) памяти, установленной в компьютере.
· - объема жёсткого диска
Адреса команд и переменных в готовой машинной программе, подготовленной к выполнению системой программирования, как раз и являются виртуальными адресами.
Прилагательное «виртуальное» применительно к адресному пространству означает, что это общее число доступных приложению уникально адресуемых ячеек памяти, но не общий объём памяти, установленной в компьютере, или выделенной в конкретный момент времени данному приложению -
в том числе - адреса в виртуальном пространстве не обязательно постоянно соответствуют одним и тем же адресам реальной физической памяти. Например - когда физической (оперативной) памяти не хватает, диспетчер памяти выгружает часть содержимого памяти на диск. При обращении потока по виртуальному адресу, соответствующему переписанным на диск данным, диспетчер памяти снова загружает эти данные с диска в память.
Дата добавления: 2015-10-02; просмотров: 81 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Функции сетевых ОС | | | Виртуальное адресное пространство процесса. |