- •Лекция 2. Управление процессами
- •Прерывания. Обработка прерываний.
- •Лекция 3.
- •Асинхронные и параллельные процессы
- •Управляющая конструкция для указания параллелизма.
- •Семафоры
- •Лекция 5.
- •4 Необходимых условия возникновения тупика (и и):
- •Лекция 6.
- •Организация управления памятью. Управление памятью. Раздел – физическая память.
- •Организация виртуальной памяти
Прерывания. Обработка прерываний.
В вычислительной машине прерывания – это событие, при котором меняется нормальная последовательность команд, выполняемых процессором. Если произошло прерывание, то управление передается ОС, ОС запоминает состояние прерванного процесса. Во многих машинах эта информация запинается в блоке управления процессом. ОС анализирует тип прерывания и передает управление соответствующей программе обработки этого прерывания.
Типы прерываний
Есть два крупных типа прерываний: программные и аппаратные. Аппаратные: внутренние, внешние, аппаратные ошибки, истечение кванта времени. Программные: деление на 0, выполнение неправильного кода.
Пример, SVC – по вызову супервизора. Инициатором этих прерываний является работающий процесс, который хочет выполнить привилегированную команду (тема 2, конец). Привилегированные команды выполняются в режиме супервизора и не могут быть выполнены в пользовательском режиме. Защита работы программ, работы самой ОС. Механизм SVC помогает защитить ОС от пользователей. Пользователю (запущенным программам) не разрешается самому произвольно входить в ОС. Он должен запросить требуемую услугу при помощи команды SVC. Благодаря этому ОС всегда знает обо всех попытках пользователя пересечь ее границы и может отказать от выполнения определенных запросов, если данный пользователь не имеет соответствующих полномочий.
Прерывания ввода-вывода
Эти прерывания инициируются аппаратурой ввода-вывода. Они сигнализируют ЦПу о том, что произошло изменение состояния канала или устройства ввода-вывода. Прерывание ввода-вывода происходит, например, тогда, когда завершается выполнение операции ввода-вывода, возникает ошибка или устройство переходит в состояние готовности.
Внешние прерывания – причинами могут быть различные события, в том числе истечение кванта времени, заданного на таймере прерываний, нажатие оператором клавиши прерывания или прием сигналов прерывания от другого процесса в мультипроцессорной системе – аппаратная.
Прерывания по рестарту – эти прерывания происходят, когда оператор нажимает кнопку рестарта или когда от другого процессора в мультипроцессорной системе поступает команда рестарта (и аппаратный, и программный).
Прерывания по контролю (ошибки программы) – эти прерывания вызываются различными видами ошибок, обнаруженных в выполняющемся процессе таких, как попытка деления на 0, попытка процесса пользователя выполнить привилегированную команду, попытка выполнить операцию с неправильным кодом.
Прерывания по контролю (ошибки машины) – эти прерывания вызываются аппаратными ошибками – сбой, нехватка памяти (потому что неправильно используют). Неправильно используется аппаратура. Неправильная настройка оборудования.
Переключение контекста
Для обработки каждого из различных видов прерываний в составе ОС предусмотрены программы, называемые обработчиками прерываний. Когда происходит прерывание, ОС запоминает состояние прерванного процесса (в оперативной памяти с помощью БУП) и передает управление соответствующего обработчику прерывания. Это делается способом, получившим название переключение контекста. Переключение контекста – это способ передачи управления соответствующего обработчика прерывания при сохранении прерванного процесса. Реализация переключения контекста происходит с использованием слов состояния программы, которые управляют порядком выполнения программ и содержат различную информацию относительно состояния процесса. Существует три типа слов: текущая, новая и старая. Адрес следующей команды, подлежащей выполнению, содержится в текущем слове, в котором указываются так же виды прерываний, разрешенных и запрещенных в данный момент. ЦП реагирует только на разрешенные прерывания. Обработка запрещенных прерываний либо задерживается, либо игнорируется. Процессору нельзя запретить реагировать на прерывания: по вызову супервизора, прерывания по рестарту, и некоторые другие ошибки.
В однопроцессорной машине имеется одно текущее слово. Столько текущих, сколько процессоров.
Ядро ОС
Все операции, связанные с процессами, выполняются под управлением той части ОС, которая называется ее ядром. Ядро – часть ОС, под управление которой выполняется обработка всех операций. Ядро представляет собой лишь небольшую часть кода ОС, однако оно относится к числу наиболее интенсивно используемых компонент системы. По этой причине ядро обычно резидентно (постоянно) размещается в основной памяти. В то время как другие части ОС перемещаются во внешнюю память и обратно по мере необходимости. В ядре содержатся самые главные части. В unix ядро занимает 10% и написано на языке низкого уровня – assembler, все остальное на Си.
Переносимая часть ОС всегда остается неизменной, а меняется ее ядро: картинка у Оли.
Одной из самых важных функций, реализованных в ядре, является обработка данных. Когда ядро обрабатывает текущее прерывание, оно запрещает другие прерывания и разрешает их снова только после завершения обработки текущего прерывания. При постоянном потоке прерываний может сложиться ситуация, что ядро будет блокировать прерывания в течение значительной части времени. Поэтому ядро обычно разрабатывается таким образом, чтобы оно осуществляло лишь минимально возможную предварительную обработку каждого прерывания, а затем передавала это прерывание на дальнейшую обработку соответствующему системному процессу, после начала работы которого, ядро могло бы разрешить последующие прерывания.
Функции ядра:
-
Обработка прерываний
-
Создание и уничтожение процессов
-
Выбор выполняющего процесса
-
Переключение процессов из состояния в состояние
-
Приостановка и активизация процессов
-
Синхронизация процессов
-
Переключение контекста
-
Поддержка операции ввода-вывода
-
Поддержка работы файловой системы
-
Распределение и перераспределение памяти
ОС, код которых открыт: linux, unix, посмотреть еще. Коммерческие цели – закрытые ОС.
Привилегированный режим ядра – режим работы супервизора и происходит в режиме ядра. Предусматривает повышение устойчивости работы ОС, безопасность, корректная работа.
Многослойная структура ОС
5 кружочков в кружочке. Слои изменять можно при сохранении работы межслойных интерфейсов!!!! Нижележащий слой выполняет задания выгележащих
