
- •Системное программное обеспечение
- •Основные понятия теории операционных систем
- •Прерывания
- •Классификация операционных систем
- •Архитектура аппаратных и программных средств персонального компьютера
- •Регистры микропроцессоров Intel 8086/88
- •Формирование физического адреса
- •Прерывания
- •Особенности архитектуры микропроцессоров i80x86
- •Реальный и защищенный режимы работы процессора
- •Новые системные регистры микропроцессоров i80х86
- •Адресация в 32-разрядных микропроцессорах i80х86 при работе в защищенном режиме
- •Система прерываний 32-разрядных микропроцессоров i80х86
- •Управление задачами в операционных системах
- •Планирование процессов и диспетчеризация задач
- •Стратегии планирования (диспетчеризации)
- •Дисциплины диспетчеризации
- •Диспетчеризация задач с использованием динамических приоритетов
- •Управление памятью в операционных системах
- •Память и отображение, виртуальное адресное пространство
- •Простое непрерывное распределение и распределение с перекрытием
- •Распределение статическими и динамическими разделами
- •Разрывные методы распределения памяти
- •Распределение оперативной памяти в современных ос для пк
- •Управление вводом/выводом в операционных системах
- •Основные системные таблицы ввода-вывода
- •Файловая система
- •Структура магнитного диска
- •Файловая система fat
- •Файловая система ntfs
- •Структура тома с файловой системой ntfs
- •Основные отличия fat от ntfs
- •Управление параллельными взаимодействующими вычислительными процессами
- •Использование блокировки памяти при синхронизации параллельных процессов.
- •Синхронизация процессов посредством операции «проверка и установка»
- •Семафорные примитивы Дейкстры
- •Мониторы Хоара
- •Почтовые ящики
- •Конвейеры (программные каналы)
- •Очереди сообщений
- •Проблема тупиков и методы борьбы с ними
- •Предотвращение тупиков
- •Обход тупиков
- •Распознавание тупика
- •Современные операционные системы
- •Семейство операционных систем unix
- •Основные понятия системы unix
- •Функционирование системы unix
- •Файловая система
- •Межпроцессорные коммуникации
Прерывания
Прерывания – это механизм, позволяющий координировать параллельное функционирование отдельных устройств вычислительной системы и реагировать на особые состояния, возникающие при работе процессора. Прерывание обеспечивает принудительную передачу управления от выполняемой программы к соответствующей программе обработки прерывания (ISR – Interrupt Service Routine) при возникновении определенного события. Основная цель введения прерываний – реализация асинхронного режима работы и распараллеливания работы отдельных устройств вычислительной системы.
Механизм прерываний реализуется аппаратно-программными средствами и включает следующие элементы:
-
Прием сигнала на прерывание и его идентификация.
-
Запоминание состояния прерванного процесса.
-
Управление аппаратно передается подпрограмме обработки прерывания.
-
Обработка прерывания с помощью ISR.
-
Восстановление информации, относящейся к прерванному процессу.
-
Возврат в прерванную программу.
Рис.3. иллюстрирует, что происходит при возникновении запроса на прерывание.
Рис.3. Обработка прерывания
Прерывания, возникающие при работе вычислительной системы, можно разделить на два основных класса: внешние и внутренние.
Внешние прерывания вызываются асинхронными событиями, которые происходят вне прерываемого процесса, например:
-
прерывания от таймера;
-
прерывания по вводу/выводу;
-
прерывания по нарушению питания.
Внутренние прерывания вызываются событиями, которые связаны с работой процессора и являются синхронными с его операциями, например:
-
при нарушении адресации;
-
при делении на нуль;
-
при наличии в поле кода операции незадействованной двоичной комбинации.
Существуют, наконец, собственно программные прерывания, происходящие по соответствующей команде прерывания: INT(«номер прерывания»).
Сигналы, вызывающие прерывания, формируются вне процессора или в самом процессоре; они могут возникать одновременно. Выбор одного из них для обработки осуществляется на основе приоритетов (рис.4).
Рис.4. Распределение прерываний по уровням приоритета
Процессор может обладать средствами защиты от прерываний: отключение системы прерываний, маскирование (запрет) отдельных прерываний. Программное управление специальными регистрами маски (маскируемые прерывания) позволяет реализовать различные дисциплины обслуживания.
Для полного понимания принципов создания и механизмов реализации современных ОС необходимо знать архитектуру 32-разрядных микропроцессоров i80×86, применяемых в персональных компьютерах.
Классификация операционных систем
Для ОС давно сформировалось небольшое количество классификаций:
-
по назначению;
-
по режиму обработки задач;
-
по способу взаимодействия с системой;
-
по способам построения.
Различают ОС общего и специального назначения. Последние подразделяются: для переносных микрокомпьютеров и различных встроенных систем, организации и веления баз данных, решения задач реального времени.
По режиму обработки задач различают ОС, обеспечивающие однопрограммный и мультипрограммный режимы (создают видимость одновременного выполнения нескольких программ).
При организации работы с вычислительной системой в диалоговом режиме можно говорить об однопользовательских (однотерминальных) и мультитерминальных ОС. Например, мультитерминальной ОС для ПК является Linux. Очевидно, что для организации мультитерминального доступа необходимо обеспечить мультипрограммный режим работы. Однопрограммной и однопользовательской является OS MS-DOS.
Основной особенностью операционных систем реального времени (ОСРВ) является обеспечение обработки поступающих заданий в течении заданных интервалов времени, которые нельзя превышать. Одной из наиболее известных ОСРВ для ПК является OS QNX.
Для организации совместного использования информационного пространства и общих ресурсов используются сетевые ОС. В качестве примера можно назвать UNIX, Windows NT.
По основному архитектурному принципу ОС разделяются на микроядерные и монолитные. Микроядерной является OS QNX, а монолитной – Windows 95/98. Ядро OS Windows мы не можем изменить, исходные коды нам не доступны и нет программы для сборки ядра. В OS Linux мы можем сами собрать ядро, включив в него необходимые нам программные модули и драйверы.