- •Конспект лекций по курсу «Операционные системы», (1 семестр , часть 1)
- •Занятие 1.Введение
- •Занятие 2.Прерывания, многозадачность
- •Занятие 3.Работа с памятью
- •Занятие 4.Процессы
- •Занятие 5.Потоки. Многопроцессорные системы
- •Занятие 6.Микроядро.
- •Занятие 7.Устройства ввода-вывода. Dma.
- •Занятие 8.Буферизация операций ввода-вывода
- •Циклическая буферизация
- •Занятие 9.Структура hdd.
- •Занятие 10.Файловая система
- •Смешанный – состоят из записей разной длины с разным количеством полей:
- •Последовательный – состоит из записей одинаковой длины с одинаковым количеством и размеров полей.
- •Непрерывный
- •Цепочечный
- •Индексированный
- •Битовые таблицы ( маска)
- •Список свободных блоков
- •Цепочки свободных блоков
- •Индексирование
- •Занятие 11. Инсталяция windows
- •Запуск инсталляции
- •Занятие 12.Загрузка windows
- •Занятие 13.Загрузочный файл boot.Ini
- •Загрузочные файлы
- •Файл Boot.Ini
- •Занятие 14.Диск аварийного восстановления
- •Занятие 15.Консоль восстановления
- •Консоль восстановления
- •Занятие 16.Адресация и доступ к разным типам памяти
- •Основная и верхняя память.
- •Менеджеры памяти
Занятие 2.Прерывания, многозадачность
Прерывания
Прерывания можно разбить на 4 типа:
Программные прерывания Прерывание вызванное исполняемой программой по ошибке( деление на 0, ссылка на недоступную память, ...)
Прерывания таймера Генерируются таймером процессора и позволяют системе выполнять свои задачи через заданные промежутки времени
Прерывания ввода-вывода генерируются контроллером ввода-вывода. Сигналы о завершении операции или ошибке.
Аппаратные прерывания генерируются аппаратурой: клавиатурой, мышью, принтером ...или при возникновении аварийных ситуаций: падение напряжения, ошибка памяти ...
Пример использования прерываний для повышения эффективности работы системы:
Допустим, программа состоит из 3 частей, между которыми выполняются команды ввода-вывода:
---1часть---|команда печати| ---2 часть---|команда ввода|---3часть---|команада сохранения|
1 вариант) исполнение такой программы без прерываний:
при получении команды печати происходит передача управления системной подпрограмме ввода-вывода, которая выполняет 3 шага: - подготовку к печати ( запись в буфер, подготовка параметров для управления печатью...) - вывод на печать ( выполняется контроллером печати и устройством). В это время программа ждет завершения, периодически проверяя закончилась ли печать. - завершение печати ( установка флагов завершения: успешно прошла печать или нет)
аналогичные шаги выполняются для всех трех процедур ввода-вывода и при выполнении каждой из них программа ждет завершения операции ввода-вывода и только затем выполняется следующая часть
ВЫВОД: при таком способе образуется много простоев процессора во время операций ввода-вывода, хотя в это время процессор мог бы выполнять следующий действия программы – ведь он не используется при выполнении самой печати или вывода на диск ….
2 вариант ) исполнение программы с прерываниями:
перед печатью выполняется подготовка к печати ( в этом процессе еще используется процессор) и затем управление сразу передается обратно исполняемой программе ( ее выполняет процессор), параллельно с которой выполняется печать контроллером принтера без использования процессора..
После завершения печати, устройство печати генерирует прерывание , по которому процессор: - останавливает работу исполняемой программы, - посылает устройству печати уведомление о получении сигнала прерывания - сохраняет состояние своих регистров для остановленной программы в оперативной памяти ( в стек управления) и -- изменяет программный счетчик на адрес, определяемый прерыванием - обрабатывает прерывание ( т.е выполняет действия по завершению печати), - восстанавливает прежнее состояние регистров ( для продолжения исполняемой программы) - после чего снова продолжает выполнение программы.
для всех остальных команд ввода-вывода выполняются аналогичные шаги
ИТОГ:
- за счет прерываний, позволяющих параллельно исполнять операции ввода-вывода и программного кода, ускоряется выполнение программ.
- обработчики прерываний входят в состав операционной системы. Они определяют устройство, генерирующее прерывание и передают управление программе, выполняющей ввод-вывод для данного устройства.
- дополнительное время использует обработчик, но это время не соизмеримо с временем ввода-вывода
- после получения сигнала прерывания от устройства, процессор посылает сигнал уведомления этому устройству.
- при передаче управления обработчику прерываний запоминается в памяти все текущее состояние программы ( регистры процессора), а при возврате управления программе обратно восстанавливается из памяти.
Множественные прерывания.
При нескольких прерываниях одновременно возможны два подхода:
запрет прерываний: если во время одного прерывания происходит другое, то второе ждет, пока не закончится обработка первого. При этом может возникнуть ситуация, когда для второго прерывания время критично и не может ждать (например, коммуникационная программа. которая получает через линию связи данные и, если своевременно не обработать прерывание, то буфер данных переполнится и потеряются данные).
приоритет прерываний: выполняются прерывания в порядке их приоритетов т.е. если коммуникационная программа пошлет прерывание во время прерывания принтера, то обработка прерывания принтера будет приостановлена и запущена обработка прерывания коммуникационной программы. После завершения обработки прерывания коммуникационной программы, продолжится обработка прерывания принтера.
Многозадачность
Для эффективного использования процессора одних прерываний не достаточно. Например, если во время ввода-вывода выполняющаяся часть программы (до следующего ввода-вывода) закончилась выполняться раньше, чем закончился ввод-вывод, то процессор простаивает. Если бы в это время можно было выполнять другую задачу ( программу), то эффективность была бы выше. На этом построена многозадачность.
Для многозадачности в оперативной памяти одновременно должны находиться несколько программ (задач). При этом возникает задача управления памятью между задачами, безопасности ее использования разными задачами.
Многозадачные ОС есть 2 типов:
Пакетная многозадачность – выполняется 1 программа и, если появляется простой процессора( например, если выполняются операции ввода-вывода), то он используется для выполнения 2 программы .... Например :
программа 1: | работа |________________________| работа |_______________ ...
программа 2: |_______| работа|________________________| работа |_________ ...
программа 3: |______________| работа|________________________| работа|____ ...
все программы: | работа | работа | работа |__________| работа | работа | работа |___ ...
В этом примере: пропуски – это операции ввода-вывода или просто ожидание своей очереди.
Как только начинается операция ввода-вывода одной программы, управление передается на выполнение другой программе (которая ожидала). Если ожидают несколько программ, то существуют механизмы выбора – кому передать управление в первую очередь. Обычно для этого используется приоритет задач.
Преимущества: максимально эффективное использование времени процессора
Недостатки: нет возможности быстрого отклика на действия пользователя в интерактивных задачах
Разделение времени - операционная система чередует выполнение программ через малые промежутки времени.
-
Программа1
Программа2
Программа3
Программа1
Программа2
Программа3
∙∙∙
Необходимость создания таких систем продиктована интерактивной средой работы системы, когда в каждый промежуток времени пользователь хочет непосредственно взаимодействовать с системой ( нажимая клавиши и работая мышью, пользователь ждет мгновенной реакции от системы, он не хочет ждать завершения каких-то других задач).
Если одновременно выполняется К задач, то каждой из них выделяется 1/К доля процессорного времени, при этом скорость процессора для каждой задачи как бы уменьшается в К раз, но создается эффект одновременной работы и возможности мгновенной реакции на запросы пользователя.
Преимущества: возможность быстрого отклика на действия пользователя в интерактивных задачах
Недостатки: затраты на сохранение состояния задачи при многих переключениях между задачами и системой, что замедляет работу задач и требует все более скоростных аппаратных средств.
Вопросы на повторение:
Что такое прерывание, какие дополнительные действия должна выполнять система для каждого прерывания. Назовите основные типы прерываний. Чем отличается приоритет прерываний от запрета прерываний
Принцип работы пакетной многозадачности.Принцип работы многозадачности с разделением времени Какие недостатки и преимущества каждого типа многозадачности перед другим
