- •Список вопросов для подготовки к экзамену по сппо (2013-2014 уч. Год)
- •Понятие программного обеспечения (по). Классификация программного обеспечения по выполняемым функциям, структура системного по. Основные свойства системного программного обеспечения.
- •1)Управление процессами (программ во время выполнения);
- •Классификация ос (по структуре и архитектурным принципам построения, по режимам работы). Примеры.
- •Программные методы реализации взаимного исключения: примеры на псевдокоде, анализ и сравнение вариантов. Примеры.
- •Понятие семафора, семафорные примитивы, бинарные и считающие семафоры. Примеры объектов диспетчеризации в ms Windows, которые могут использоваться как «семафоры».
- •Применение бинарных семафоров для реализации взаимного исключения и синхронизации процессов. Примеры.
- •Общие семафоры, решение задачи «писателей и читателей» при работе с циклическим буфером. Сравнить варианты решения.
- •Проблема тупика и задачи, связанные с решением проблемы тупика: формулировки задач и подходы к решению. Примеры.
- •Задача предотвращения тупика, подходы к решению, анализ Примеры.
- •Модель системы с повторно используемыми ресурсами (граф повторно используемых ресурсов). Примеры.
- •Модель системы с потребляемыми ресурсами (граф потребляемых ресурсов). Примеры.
- •Система с повторно используемыми и потребляемыми ресурсами (граф обобщённых ресурсов). Примеры.
- •Решение задачи распознавания тупика для систем с повторно используемыми ресурсами: основная теорема о тупике. Алгоритм редукции. Примеры редукции.
- •Распознавание тупиков в системах с повторно используемыми ресурсами с ограничениями на выполнение операций. Примеры.
- •Распознавание тупиков в системах с потребляемыми ресурсами и в системах с обобщёнными ресурсами: алгоритм редукции. Примеры.
- •Распознавание тупиков в системах с потребляемыми ресурсами и в системах с обобщёнными ресурсами: системы с ограничениями на выполнение операций. Примеры.
- •Вывод системы из тупика. Общий подход к решению задачи и частный случай.
- •Обходы тупиков. Алгоритм банкира. Примеры.
- •Иерархия запоминающих устройств вс, характеристики устройств и связь, механизмы создания иерархии. Примеры.
- •Способы распределения памяти: статическое и динамическое распределение, связные и несвязные распределения. Сравнение.
- •Сегментная организация памяти. Страничная организация памяти. Сегментно-страничная организация памяти. Аппаратная поддержка в процессорах Intel.
- •Общие принципы организации виртуальной памяти. Управление виртуальной памятью: стратегии загрузки, стратегии размещения, стратегии замещения. Пример реализации в Intel.
- •Средства защиты памяти: изоляция адресных пространств. Поддержка в Intel.
- •Средства защиты памяти: защита по уровням привилегий, привилегированные команды и команды, чувствительные к уровням привилегий). Поддержка в Intel.
- •Статическая и динамическая компоновка программ: определение, сравнение и примеры.
- •Упрощённая структура объектного модуля и принцип работы связывающего загрузчика, редактора связей (одно- и двухпроходовые). Упрощённая структура исполнимого файла.
- •Понятие прерывания, классификация прерываний. Примеры (Intel).
- •Общая схема обработки прерываний, программно-аппаратная реализация, аппаратная поддержка механизма прерываний в Intel.
- •Структурная схема обработки исключений в Windows (seh): обработка завершения и локальная раскрутка.
- •Структурная схема обработки исключений в Windows (seh): обработка исключений и глобальная раскрутка.
- •Определение файла, атрибуты файлов и именование файлов, понятие каталога (справочника, директории, папки). Примеры.
- •Понятие и функции файловой системы как подсистемы ос.
- •Логическая и физическая организация файлов. Буферизация ввода/вывода. Примеры.
- •Логическая организация файлов: файлы с последовательной организацией и индексированные файлы. Поиск на внешних устройствах, b-деревья: определение и построение, выполнение операций. Примеры.
- •Управление внешней памятью: карты памяти и списки. Примеры (fat, ntfs).
- •Управление вводом/выводом, понятие драйвера внешнего устройства, драйверы виртуальных устройств.
- •Понятие драйвера файловой системы. Иерархическая организация файловых систем. Примеры.
- •Понятие защищённой вс. Классификация угроз и вторжений. Структура системы защиты.
- •Контроль прав доступа и матрица прав доступа как математическая модель защиты объектов. Примеры: одноранговое разделение ресурсов и защита на уровне пользователей.
- •Криптографическая защита. Понятие ключа. Симметричное и асимметричное шифрование. Понятие криптографического протокола. Понятие цифровой подписи.
- •Примеры задач по обработке исключений
- •Задания по разработке командных файлов и изучение команд пакетной обработки
- •Задачи на использование программных методов решения проблемы взаимного исключения
- •Задачи на работу с семафорами
- •Решение:
- •Решение:
- •Задачи на понимание алгоритмов решения задач, связанных с тупиками
- •Задачи на анализ состояний системы для выявления тупиков
- •Задачи по теме «Хранение и поиск информации на взу»
- •Файлы для подготовки
Понятие прерывания, классификация прерываний. Примеры (Intel).
Понятие прерывания. Прерывание – это прекращение выполнения текущей последовательности команд (то есть последовательности команд активной программы) вследствие некоторого события.
Классификация Прерываний. В зависимости от причин Прерываний: внешние (асинхронные) по отношению к активной программе, внутренние - связаны с выполнением активной программы: делятся на несколько групп 1. Добровольное Прерывание программы (обращение к системным функциям, к ОС за ресурсами, специальная команда INT [interrupt]); 2. Прерывания, связанные с невозможностью выполнения ЦП выбранной команды (например, деление на ноль, передано управление на данные, изменение кода программы вследствие переполнения массива, обращение по несуществующему адресу). Такие Прерывания называются исключениями, или исключительными ситуациями (ИС). ИС: а) Нарушение, отказ – исключение, которые распознается до начала выполнения команды, вызвавшей это исключение, например, обращение к незагруженной странице, выход за установленный предел сегмента, нарушение правил проверки привилегий. При этом возможен рестарт выполнения команды, вызвавшей исключение; б) Ловушка – распознается в ходе выполнения команды. Выполнение команды начато, но процессор не может получить нормальный результат. Например, деление на 0 – в некоторых процессорах а), в некоторых б); переполнение при умножении – результат не вмещается в разрядную сетку. Рестарт команды не выполняется, можно возобновить выполнение со следующей команды; в) Авария, сбой - серьезная ошибка, выход из программы, прекращение выполнения программы.
Программа не может продолжить выполнение (процессор не успевает запомнить условия возникновения ошибки, восстановить контекст нельзя). Например, аппаратные ошибки (технические неисправности), несовместимые или недопустимые значения в системных таблицах, т.е. причины, неизбежно ведущие к прекращению процесса (программы); используются для фиксации фатальных ошибок. Классификация Прерываний может быть более сложной. Это определяется характеристиками аппаратуры и СПО.
Общая схема обработки прерываний, программно-аппаратная реализация, аппаратная поддержка механизма прерываний в Intel.
Общая схема обработки прерываний и аппаратная поддержка механизма прерываний в Intel: В любой современной ВС обработка Прерываний является программно-аппаратной. Шаги: 1) Генерация Прерывания, его распознавание, фиксация. Сначала процессор идентифицирует источник Прерывания. Всем потенциальным источникам Прерываний назначается номера (коды, векторы) от 0 до 255. Полученный процессором вектор позволяет ему выбрать соответствующий обработчик. Для внешних Прерываний запрос на Прерывание генерирует внешняя по отношению к процессору схема – это прерывание от внешнего устройства. Внешние источники Прерываний выдают свои запросы на Прерывания не напрямую процессору, а через специальную схему, которых называется контроллером Прерываний (КП). Функция этой схемы – разгрузить процессор. КП при нескольких одновременных запросах на Прерывания от нескольких источников определяет самый приоритетный, то есть самое важное Прерывание. Он идентифицирует прерывание, определяет его вектор (в Intel 8 бит). Часть кодов резервируется за самим процессором для его внутренних прерываний. Также фирма Intel зарезервировала часть векторов для возможных расширений, остальные находятся в распоряжении программиста. В механизме обработки прерываний допускается каскадное соединение нескольких КП. Прерывания распознаются, фиксируются процессором всегда на границе выполнения команд (до начала или после завершения). Перед выполнением команды процессор проверяет вход на наличие прерываний. Можно запретить процедуру реагировать на прерывания, которые запрашивается через вход inter. Для этого используется специальный флажок IF [interrupt flag]. Если флажок установлен, процессор может разрешить КП передать код прерывания по шине данных. Можно запретить не все прерывания, а выборочно – замаскировать некоторые виды прерываний. КП являются программируемыми, их можно настраивать, в частности, можно задать маску, которые запретит прерывания от одного или нескольких внешних источников. Внутренние прерывания процессора запретить нельзя, они не маскируются. Есть внешние прерывания, запросы на которые передаются на вход специальных немаскируемых прерываний процессора NMI (not mask interrupt). Прерывания могут быть вложенными, т.е. могут возникать при выполнении программы обработки прерывания. Получится цепочка, в которые реализуется дисциплина LIFO.Некоторые обработчики прерываний могут мешать друг другу. Программисты обработчиков должны это учитывать. Самое простое – разработчик может запретить мешающие этому обработчику прерывания; 2) Запоминание контекста на момент прерывания. Минимальный контекст запоминается процессором автоматически – точка возврата из прерывания и регистр флагов. В реальном режиме Intel к какой команде возврат зависит от типа ИС. В защищенном режиме контекст может быть более содержательным. Может запоминаться информация об ошибке (код). Содержание контекста зависит от типа прерывания (например, для страничной ошибки – адрес, при обращении по которым ошибка возникла). В защищенном режиме обработка прерывания может быть реализована отдельными задачами. Аппаратно сохраняется в TSS (task status segment); 3) Поиск обработчика прерываний. Информация об обработчиках прерываний хранится в специальных таблицах. В реальном режиме таблицы векторов прерываний хранятся по нулевому адресу. Каждый элемент таблицы – точка входа в процедуру обработки прерывания. В таблице 256 элементов. Каждая строка 4 байта: сегмент и смещение. С шины данных процедур снимает код прерывания – это номер элемента в таблице. В защищенном режиме для подключения обработчиков прерываний используется таблица IDT (interrupt descriptor table). Таблица IDT содержит системные дескрипторы – шлюзы 3-х типов: шлюзы прерываний (автоматически сбрасывается IF), шлюзы ловушек (это другие ловушки), шлюзы задач (не нужно заботиться о сохранении контекста). {шаги 1, 2, 3 – аппаратно}; 4) Обработка (программная часть); 5) Возобновление выполнения программы (IRET – восстанавливает еще и регистр флагов в отличие от RET). {В некоторых системах 3 – программно}
