- •Перечень лекций по дисциплине
- •Лекция 1. Эволюция ос (4 часа)
- •Пакетные ос
- •Ос с разделением времени
- •Однозадачные ос для пэвм
- •Многозадачные ос для пк с графическим интерфейсом
- •Вопросы для самоконтроля
- •Лекция 2. Программное обеспечение. Виды программ ос (4 часа)
- •Утилиты
- •Вопросы для самоконтроля
- •Лекция 3. Сравнительные характеристики ос ( 2часа)
- •1) По назначению;
- •1. Мэйнфреймы
- •2. Серверные (сетевые) ос
- •3. Многопроцессорные ос
- •6. Встроенные ос
- •7. Ос для Smart-карт
- •2) По режиму обработки задач;
- •По способу взаимодействия с системой;
- •4) По способам построения (архитектурным особенностям систем).
- •Критерии оценки ос
- •Надежность
- •Эффективность
- •Удобство
- •Масштабируемость
- •Способность к развитию
- •Мобильность
- •Сравнительные характеристики ос реального времени и разделения времени
- •Вопросы для самоконтроля
- •Лекция 4. Основные сведения об ос (2 часа)
- •Вопросы для самоконтроля
- •Лекция 5. Назначение и основные функции операционных систем (4 часа)
- •Машинно-зависимые компоненты ос
- •Вопросы для самоконтроля
- •(4 Часа)
- •Преимущества и недостатки микроядерной архитектуры
- •Способы реализации прикладных программных сред
- •Вопросы для самоконтроля
- •Лекция 8. Принципы обработки прерываний (2часа)
- •Вопросы для самоконтроля
- •Лекция 9. Интерфейс пользователя. Разновидности интерфейсов (4 часа)
- •Вопросы для самоконтроля
- •Лекция 10. Разделение доступа к данным в ос (2 часа)
- •Вопросы для самоконтроля
- •Лекция 11. Вычислительный процесс и ресурсы пк (4 часа)
- •Вопросы для самоконтроля
- •Лекция 12. Управление процессами (4 часа)
- •Защита адресного пространства задач
- •Вопросы для самоконтроля
- •Лекция № 13. Планирование процессов (4 часа)
- •1. Планирование очереди процессов на начало обработки цп
- •2. Планирование распределения времени работы цп между процессами
- •3. Планирование очереди запросов на обмен
- •4. Планирование порядка обработки прерываний
- •Планирование процессора
- •Вопросы для самоконтроля
- •Лекция 14. Взаимодействие процессов (4 часа)
- •Вопросы для самоконтроля
- •Лекция 15. Стратегия планирования процессов (4 часа)
- •Вопросы для самоконтроля
- •Литература
Вопросы для самоконтроля
Классический способ построения операционной системы.
Сущность построения ОС на основе микроядерной архитектуры.
Преимущества и недостатки микроядерной архитектуры.
Назовите необходимое условие для реализации микроядерной архитектуры.
Способы реализации основных программных сред.
Назовите основной недостаток микроядерной архитектуры.
Лекция 8. Принципы обработки прерываний (2часа)
Большинство изменений в ОС происходит в результате прерываний, которые вызывают процессы в ОС. Можно сказать, что программы обработки прерываний представляют собой движущую силу, обеспечивающую функционирование всех систем. Иногда говорят, что ОС является управляемой по прерываниям.
Прерывания (аппаратные) – это сигналы, при поступлении которых нормальная последовательность выполнения программы может быть прервана, при этом система запоминает информацию, необходимую для возобновления работы прерванной программы, и передает управление подпрограмме обработки прерывания. По завершению обработки, как правило, управление возвращается прерванной программе.
Все прерывания можно разделить на три основных типа:
1) аппаратные прерывания от периферийных устройств;
2) внутренние аппаратные прерывания;
3) программные прерывания.
В подавляющем большинстве ОС обработку всех прерываний берет на себя сама система, способная повлиять на функционирование всех системных и прикладных программ.
Поскольку типы и разновидности прерываний весьма многообразны и каждый из них требует особой обработки, большинство процессоров поддерживает векторные прерывания. Это означает, что каждая разновидность прерывания имеет свой номер, и этот номер используется как индекс в массиве, хранящем адреса ISR для всех прерываний. При возникновении прерывания аппаратура компьютера по номеру прерывания определяет адрес подпрограммы обработки и вызывает ее.
Для того чтобы некоторые наиболее ответственные участки системных программ выполнялись без прерываний, система имеет возможность временно запретить прием большинства прерываний. Такой запрет должен устанавливаться лишь на короткие интервалы времени, не более нескольких миллисекунд.
Программные прерывания вызываются выполнением специальной команды, но обрабатываются так же, как остальные типы прерываний. По сути, команда программного прерывания представляет собой особый случай вызова подпрограммы, но при этом вместо адреса подпрограммы указывается номер прерывания, обработчик которого должен быть вызван. В большинстве современных ОС программные прерывания используются для перехода из режима пользователя в режим ядра при вызове системных функций из прикладной программы.
Одним из важнейших источников прерываний являются периферийные устройства. Как правило, устройство генерирует сигнал прерывания в одном из двух случаев:
- при переходе в состояние готовности;
- при возникновении ошибки выполнения операции.
Состояние готовности – это такое состояние устройства, в котором оно готово принять и выполнить команды от процессора.
Для устройства ввода готовность означает наличие в устройстве данных, которые могут быть переданы в процессор (например, клавиатура переходит в состояние «Готово» при нажатии клавиши и возвращается в состояние «Не готово», когда код нажатой клавиши считан в процессор).
Для устройства вывода готовность – это возможность принять от процессора данные, которые следует вывести. Например, матричный принтер принимает символы, которые нужно напечатать, в свой внутренний буфер. Если буфер полон, принтер переходит в состояние «Не готово» до тех пор, пока часть символов будет напечатана и в буфере освободится место. Дисковый накопитель при начале выполнения новой операции чтения или записи на диск переходит в состояние «Не готово», а после завершения операции возвращается в состояние «Готово». В любом из этих случаев переход в состояние «Готово» – это повод для устройства напомнить о себе процессору. Для этого и служит сигнал прерывания.
Ошибка операции также требует вмешательства системы или пользователя. Например, при ошибке отсутствия бумаги в лотке принтера система должна оповестить об этом пользователя; при ошибке чтения с диска либо система, либо пользователь должен решить, что делать: повторить операцию, завершить программу или продолжить выполнение.
Не каждое устройство генерирует прерывания. Например, монитор ПК не выдает прерываний: он «всегда готов», т.е. всегда может принять данные для отображения, и он «никогда не ошибается», точнее сказать, его неисправность обнаруживается «на глаз».
Механизмы обмена данными
Когда драйверу необходимо удовлетворить запрос, он начинает инициацию с подготовки устройства.
Существует три механизма перемещения данных из компьютера к периферийным устройствам. Это механизмы поллинга, прямого доступа в память и прерываний.
Первый из них (поллинг) основан на периодической проверке состояния регистров периферийных устройств на выполнение запросов, стоящих в очереди буфера. Если устройство готово выполнить запрос, то драйвер выполняет его и инициализирует следующий запрос из очереди. Поллинг является самым простым, но и самым медленным механизмом и предназначен для таких устройств, как гибкие диски и модемы.
Следующим механизмом является прямой доступ в память. В этом случае драйвером инициализируется прямой канал между физической памятью компьютера и периферийным устройством. Передача информации осуществляется без использования центрального процессора, который до окончания операции передачи данных в это время может выполнять другую задачу. Когда DMA передача закончена, на процессор посылается прерывание. Это прерывание переключает процессор на выполнение завершающих операций в режиме DМА.
Третьим механизмом для организации обмена устройств с ОС является механизм прерываний. Когда некоторому периферийному устройству необходимо обменяться данными или сообщить о6 изменении своего состояния (например, нажатие клавиши клавиатуры или кнопки мыши), это устройство посылает специальный сигнал, называемый прерыванием на центральный процессор. Сигнал прерывания должен вызвать приостановку выполнения текущего процесса и переключить процессор на выполнение операции обслуживания устройства, которое послало этот сигнал.
Если в процессоре разрешена обработка прерываний, то происходит запуск специальной программой обработки прерываний. По окончании работы этой программы управление передается прерванному процессу. Если в момент поступления прерывания обработка прерываний запрещена, то этот сигнал прерываний может быть потерян.
Вообще говоря, процессор имеет только один уровень прерывания. Для того, чтобы можно было обрабатывать прерывания от множества устройств, в компьютере имеется специальное устройство - контроллер прерываний, который имеет несколько входов и один выход, соединенный с входом прерываний процессора.
Существует два механизма работы контроллера прерываний: поллинговый и приоритетный. Поллинговый механизм аналогичен поллинговому механизму работы с устройствами. Устройство подает сигнал прерывания на контроллер, а контроллер циклически проверяет все свои входы на наличие поступивших сигналов прерываний. Прерывания обрабатываются по мере их поступлений. При приоритетном механизме обработки прерываний каждый вход контроллера прерываний имеет свой приоритет. Устройства, подключенные к входу контроллера с более высоким приоритетом, будут прерывать работу устройств с более низким приоритетом для выполнения своих функций.
Когда контроллер прерываний не может удовлетворить все запросы на прерывания в некоторый промежуток времени, он начинает строить свою собственную очередь. Эта очередь будет выполняться в согласовании с работой планировщика. Кроме того, выполнение этой очереди будет более приоритетно по сравнению с выполнением других процессов.
Суммируя, можно сказать, что драйверы скрывают детали управления периферийными устройствами и обеспечивают передачу данных. Буферный кэш помогает улучшить производительность системы путем размещения в нем фрагмента информации физической памяти.
Прерывания - процесс, выполняемый ЦП, для прерывания работы программы в связи с необходимостью срочного выполнения действий либо по обработке исключения, либо обработке запросов, поступающих от внешней аппаратуры.
Различают два вида прерываний: внутреннее и внешнее.
К внутренним относят особые случаи, возникающие в процессе выполнения программы, специальные команды прерывания. Внутренние прерывания не могут быть запрещены или замаскированы и поступают в ЦП по линии НМП (немаскируемые прерывания).
Внешние прерывания (аппаратные прерывания, маскируемые прерывания) поступают посредством контроллера прерываний по линии IN (interrupt).
Обработка внешних прерываний может быть запрещена. При возникновении внутреннего или внешнего прерывания процессор сохраняет в стеке прерываемого приложения адреса команды, которая должна была бы быть исполнена если бы не возникло прерывание, регистр флагов. После завершения выполнения процедуры из стека извлекаются адреса невыполненной команды и ЦП продолжает выполнение прерванной команды.
Любая операционная система должна быть построена так, чтобы разрешать таким устройствам, как диски, сетевые устройства, таймер асинхронно прерывать работу центрального процессора.
При получении сигнала прерывания ядро операционной системы сохраняет сове текущее состояние, образ выполняемого процесса, устанавливает причину прерывания и обрабатывает прерывание. После того, как прерывание будет обработано ядром, прерванный контекст восстановится и работа продолжится так, как будто ничего не случилось.
Устройствам обычно приписываются приоритеты в соответствии с очередностью обработки прерываний. В процессе обработки прерываний ядро учитывает их приоритеты и блокирует обслуживание прерывания с низким приоритетом во время обработки прерывания с более высоким приоритетом.
Особые ситуации (разновидности прерываний) связаны с возникновением незапланированных событий, вызванных процессом, таких как недопустимая адресация, использование привилегированных команд, деление на ноль. Они отличаются от прерываний тем что, вызываются событиями, внешними по отношению к процессу.
Особые ситуации возникают прямо "посредине" выполнения команды, и система, обработав особую ситуацию, пытается перезапустить команду. Считается, что прерывания возникают между выполнением двух команд, при этом система после обработки прерывания продолжает выполнение процесса, начиная со следующей команды.
Для обработки прерываний и особых ситуаций в системе Unix используется один и тот же механизм.
Обработка прерываний.
Вход в ядро ОС обычно осуществляется по прерываниям. Когда ядро реагирует на данное прерывание, оно запрещает другие прерывания. После определения причины данного прерывания ядро передает его обработку специальному системному процессу, предназначаемому для работы с прерываниями данного типа.
Схемы прерываний (типы):
Прерывания по вызову супервизора. Инициатор прерывания – работающий процессор.
Прерывания ввода/вывода. Инициируются аппаратурой ввода/вывода (завершается выполнение ввода/вывода, совершается ошибка, устройство переходит из одного состояния в другое).
Внешние. Причины: истечение кванта времени (от таймера), нажатие пользователем клавиши прерывания на пульте управления, прием сигнала прерывания от другого процессора в мультипроцессорной системе.
По рестартам. Когда на пульте управления нажимается кнопка рестарта или когда от другого процессора в мультипроцессорной системе поступает команда рестарта.
По ошибке программы.
По ошибке машины.
Аппаратные ошибки: по питанию, испорченные области на диске. Для обработки каждого из этих типов прерываний предусмотрены программы, называемые обработчиками прерываний. Когда происходит прерывание, ОС запоминает состояние прерванного процесса и передает управление соответствующему обработчику прерываний. Когда обработка прерывания завершается, ЦП начинает обслуживать либо тот процесс, который выполнялся во время прерывания, либо готовый процесс с наивысшим прерыванием.
Процессы называются параллельными, если они существуют одновременно. Параллельные процессы называются асинхронными, если они работают совершенно независимо друг от друга. Каждый процесс, обращающийся к общим ресурсам, исключает для всех других процессов возможность одновременного с ним обращения к этим ресурсам. Это называется взаимоисключением процессов.
