Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Билеты 2026.docx
Скачиваний:
0
Добавлен:
31.01.2026
Размер:
140.26 Кб
Скачать

8. Системные вызовы.

Системный вызов (SysCall) – это программный интерфейс, с помощью которого прикладная программа обращается к функциям ядра ОС для выполнения операций управления процессами, памятью, файлами и устройствами ввода-вывода. Системный вызов представляет собой переход из пользовательского режима (User Mode) в привилегированный режим ядра (Kernel Mode) и реализуется с помощью механизма программных прерываний.

Назначение системных вызовов – обеспечение контролируемого и безопасного доступа прикладных программ к ресурсам вычислительной системы и сервисам ОС, а также стандартизация взаимодействия приложений с ядром, что упрощает переносимость программ между разными аппаратными платформами.

Основные требования к реализации системных вызовов:

  • корректное переключение в привилегированный режим ядра;

  • высокая скорость вызова процедур ОС;

  • единообразие интерфейса для всех платформ, поддерживаемых ОС;

  • возможность расширения набора системных вызовов;

  • контроль со стороны ОС за использованием системных вызовов.

Классификация системных вызовов:

  • Синхронные – вызывают выполнение операции и ожидают её завершения до возврата в приложение;

  • Асинхронные – позволяют продолжить работу приложения без ожидания завершения операции.

Схемы обработки системных вызовов:

  • Централизованная – ядро контролирует и обрабатывает все обращения;

  • Децентрализованная – обработка распределена между различными компонентами системы.

9. Прерывания (понятие, классификация, обработка прерываний).

Прерывание – это сигнал, сообщающий процессору о наступлении события, при котором выполнение текущей программы временно приостанавливается для обработки события, требующего немедленного внимания.

Классификация прерываний по источнику:

  • Аппаратные (внешние) – формируются устройствами ввода-вывода или сигналами от пользователя; являются асинхронными по отношению к потоку инструкций и сигнализируют о завершении операций или внешних событиях.

  • Программные – инициируются выполнением специальных инструкций и используются для реализации системных вызовов; имитируют прерывание для передачи управления ОС.

  • Внутренние (исключения) – возникают при ошибках выполнения программы, например деление на ноль, нарушение защиты памяти или попытка выполнить привилегированную инструкцию.

Обработка прерываний осуществляется ОС и включает: сохранение контекста программы, переключение в привилегированный режим, выполнение обработчика прерывания (модулем ядра или драйвером устройства) и последующее восстановление контекста с продолжением или завершением прерванного выполнения. Для координации работы отдельных обработчиков может использоваться диспетчер прерываний.

10. Обработка аппаратных прерываний.

Аппаратное прерывание – это сигнал от внешнего устройства, сообщающий процессору о событии, требующем немедленного внимания, например завершении операции ввода-вывода или внешнем событии. Прерывания делятся на маскируемые, которые могут быть разрешены или запрещены системой, и немаскируемые (NMI, Non-Maskable Interrupt), которые всегда обрабатываются и имеют высший приоритет для критических ситуаций.

Обработка прерываний выполняется ОС и включает: завершение текущей инструкции, сохранение контекста программы, переход в привилегированный режим и выполнение соответствующего обработчика, который обслуживает устройство и управляет ресурсами. После завершения обработки контекст программы восстанавливается, и выполнение продолжается с места прерывания.

Если одновременно поступают несколько прерываний, первыми обрабатываются немаскируемые, а между маскируемыми приоритет определяет ОС. Такой порядок обеспечивает асинхронное взаимодействие процессора с устройствами, безопасное управление ресурсами и эффективное использование вычислительных мощностей.