
- •1. Понятие ос. История создания и развития ос. Основные функции ос
- •2. Основные понятия концепции ос. Виды архитектур ос.
- •3. Ос общего назначения. Генерация операционной системы
- •4. Классификация ос. Разновидности современных ос.
- •5.Операционная система как виртуальная машина и как система управления ресурсами. Задачи операционной системы
- •6. Ос специального назначения. Ос, основанные на графическом интерфейсе.
- •7.Архитектуры операционных систем: монолитное ядро, многоуровневые системы, микроядро.
- •8. Характеристики ос
- •9. Вычислительные системы. Виды.
- •10. Режимы работы вычислительных систем.
- •11. Пакетные и командные файлы.
- •12. Механизм работы api-функций.
- •14. Windows
- •15. Семейство ос Unix. Преимущества Unix-подобных систем.
- •17. Файловые системы. Структура fat, ntfs. Их сравнение.
- •18. Логическая организация файловых систем.
- •19.Физическая организация файловой системы
- •20. Файловая система dos
- •21. Командный процессор command.Com
- •22. Управление оперативной памятью для dos. Виртуальная память.
- •23. Проблема настройки адресов. Концепция виртуальной памяти.
- •24 Страничная модель управления памятью: механизм преобразования адресов. Структура элемента таблицы страниц.
- •25. Страничная модель управления памятью: многоуровневые таблицы страниц, буферы быстрого преобразования адресов, инвертированные таблицы страниц.
- •26. Понятие процесса. Контекст процесса. Переключение процессов. Состояния процессов и возможные переходы между ними
- •27. Планирование процессов. Требования к алгоритмам планирования, необходимые свойства алгоритмов планирования. Вытесняющее и не вытесняющее планирование.
- •28. Процессы. Состояние процессов. Жц процесса.
- •29. Операции над процессами
- •30. Блоки управления процессами и дескрипторы процессов.
- •32. Прерывания. Синхронные и асинхронные прерывания. Обработка прерываний.
- •33. Прерывания. Системные вызовы.
- •34. Понятие потока. Реализация потоков в пространстве пользователя и в ядре.
- •35. Синхронные и асинхронные функции. Методы уведомления о завершении работы асинхронной функции. Основные операции с потоками в .Net Framework: создание потоков, функции Sleep, Join, Abort.
- •36. Выгружаемые и невыгружаемые ресурсы. Понятие взаимоблокировки. Условия взаимоблокировки.
- •37. Классификация компьютерных вирусов
- •38. Резидентные программы
- •39. Архиваторы. Форматы архиваторов.
32. Прерывания. Синхронные и асинхронные прерывания. Обработка прерываний.
Прерывание — сигнал, сообщающий процессору о наступлении какого-либо события. При этом выполнение текущей последовательности команд приостанавливается и управление передаётся обработчику прерывания, который реагирует на событие и обслуживает его, после чего возвращает управление в прерванный код.
В зависимости от источника возникновения сигнала прерывания делятся на:
• асинхронные или внешние (аппаратные) — события, которые исходят от внешних источников (например, периферийных устройств) и могут произойти в любой произвольный момент: сигнал от таймера, сетевой карты или дискового накопителя, нажатие клавиш клавиатуры, движение мыши;
• внутренние — события в самом процессоре как результат нарушения каких-то условий при исполнении машинного кода: деление на ноль или переполнение, обращение к недопустимым адресам или недопустимый код операции;
• программные (частный случай внутреннего прерывания) — инициируются исполнением специальной инструкции в коде программы. Программные прерывания как правило используются для обращения к функциям встроенного программного обеспечения, драйверов и операционной системы.
Термин «ловушка» иногда используется как синоним термина «прерывание» или «внутреннее прерывание». Как правило, словоупотребление устанавливается в документации производителя конкретной архитектуры процессора.
Маскирование
В зависимости от возможности запрета внешние прерывания делятся на:
• маскируемые — прерывания, которые можно запрещать установкой соответствующих битов в регистре маскирования прерываний (в x86-процессорах — сбросом флага IF в регистре флагов);
• немаскируемые (Non maskable interrupt, NMI) — обрабатываются всегда, независимо от запретов на другие прерывания. К примеру, такое прерывание может вызвать сбой в микросхеме памяти.
Обработчики прерываний обычно пишутся таким образом, чтобы время их обработки было как можно меньшим, поскольку на время их работы могут не обрабатываться другие прерывания, а если их будет много (особенно от одного источника), то они могут теряться.
33. Прерывания. Системные вызовы.
Прерывание — сигнал, сообщающий процессору о наступлении какого-либо события. При этом выполнение текущей последовательности команд приостанавливается и управление передаётся обработчику прерывания, который реагирует на событие и обслуживает его, после чего возвращает управление в прерванный код.
В зависимости от источника возникновения сигнала прерывания делятся на:
асинхронные или внешние (аппаратные) — события, которые исходят от внешних источников (например, периферийных устройств) и могут произойти в любой произвольный момент: сигнал от таймера, сетевой карты или дискового накопителя, нажатие клавиш клавиатуры, движение мыши;
внутренние — события в самом процессоре как результат нарушения каких-то условий при исполнении машинного кода: деление на ноль или переполнение, обращение к недопустимым адресам или недопустимый код операции;
программные (частный случай внутреннего прерывания) — инициируются исполнением специальной инструкции в коде программы. Программные прерывания как правило используются для обращения к функциям встроенного программного обеспечения, драйверов и операционной системы.
Термин «ловушка» иногда используется как синоним термина «прерывание» или «внутреннее прерывание». Как правило, словоупотребление устанавливается в документации производителя конкретной архитектуры процессора.
Маскирование
В зависимости от возможности запрета внешние прерывания делятся на:
маскируемые — прерывания, которые можно запрещать установкой соответствующих битов в регистре маскирования прерываний (в x86-процессорах — сбросом флага IF в регистре флагов);
немаскируемые (Non maskable interrupt, NMI) — обрабатываются всегда, независимо от запретов на другие прерывания. К примеру, такое прерывание может вызвать сбой в микросхеме памяти.
Обработчики прерываний обычно пишутся таким образом, чтобы время их обработки было как можно меньшим, поскольку на время их работы могут не обрабатываться другие прерывания, а если их будет много (особенно от одного источника), то они могут теряться.
Приоритезация
До окончания обработки прерывания обычно устанавливается запрет на обработку этого типа прерывания, чтобы процессор не входил в цикл обработки одного прерывания. Приоритезация означает, что все источники прерываний делятся на классы и каждому классу назначается свой уровень приоритета запроса на прерывание. Приоритеты могут обслуживаться как относительные и абсолютные. Относительное обслуживание прерываний означает, что если во время обработки прерывания поступает более приоритетное прерывание, то это прерывание будет обработано только после завершения текущей процедуры обработки прерывания. Абсолютное обслуживание прерываний означает, что если во время обработки прерывания поступает более приоритетное прерывание, то текущая процедура обработки прерывания вытесняется, и процессор начинает выполнять обработку вновь поступившего более приоритетного прерывания. После завершения этой процедуры процессор возвращается к выполнению вытесненной процедуры обработки прерывания.
Перехват прерывания — изменение обработчика прерывания на свой собственный.
Таблица прерываний
Вектор прерывания — закреплённый за устройством номер, который идентифицирует соответствующий обработчик прерываний. Векторы прерываний объединяются в таблицу векторов прерываний. Местоположение таблицы зависит от типа и режима работы процессора.
Программное прерывание
Программное прерывание — синхронное прерывание, которое может осуществить программа с помощью специальной инструкции.
Системный вызов в программировании и вычислительной технике — обращение прикладной программы к ядру операционной системы для выполнения какой-либо операции.
Современные операционные системы (ОС) предусматривают разделение времени между выполняющимися вычислительными процессами (многозадачность) и разделение полномочий, препятствующее исполняемым программам обращаться к данным других программ и оборудованию. Ядро ОС исполняется в привилегированном режиме работы процессора. Для выполнения межпроцессной операции или операции, требующей доступа к оборудованию, программа обращается к ядру, которое, в зависимости от полномочий вызывающего процесса, исполняет либо отказывает в исполнении такого вызова.
С точки зрения программиста системный вызов обычно выглядит как вызов подпрограммы или функции из системной библиотеки. Однако системный вызов как частный случай вызова такой функции или подпрограммы следует отличать от более общего обращения к системной библиотеке, поскольку последнее может и не требовать выполнения привилегированных операций.