- •Список вопросов для подготовки к экзамену по сппо (2013-2014 уч. Год)
- •Понятие программного обеспечения (по). Классификация программного обеспечения по выполняемым функциям, структура системного по. Основные свойства системного программного обеспечения.
- •1)Управление процессами (программ во время выполнения);
- •Классификация ос (по структуре и архитектурным принципам построения, по режимам работы). Примеры.
- •Программные методы реализации взаимного исключения: примеры на псевдокоде, анализ и сравнение вариантов. Примеры.
- •Понятие семафора, семафорные примитивы, бинарные и считающие семафоры. Примеры объектов диспетчеризации в ms Windows, которые могут использоваться как «семафоры».
- •Применение бинарных семафоров для реализации взаимного исключения и синхронизации процессов. Примеры.
- •Общие семафоры, решение задачи «писателей и читателей» при работе с циклическим буфером. Сравнить варианты решения.
- •Проблема тупика и задачи, связанные с решением проблемы тупика: формулировки задач и подходы к решению. Примеры.
- •Задача предотвращения тупика, подходы к решению, анализ Примеры.
- •Модель системы с повторно используемыми ресурсами (граф повторно используемых ресурсов). Примеры.
- •Модель системы с потребляемыми ресурсами (граф потребляемых ресурсов). Примеры.
- •Система с повторно используемыми и потребляемыми ресурсами (граф обобщённых ресурсов). Примеры.
- •Решение задачи распознавания тупика для систем с повторно используемыми ресурсами: основная теорема о тупике. Алгоритм редукции. Примеры редукции.
- •Распознавание тупиков в системах с повторно используемыми ресурсами с ограничениями на выполнение операций. Примеры.
- •Распознавание тупиков в системах с потребляемыми ресурсами и в системах с обобщёнными ресурсами: алгоритм редукции. Примеры.
- •Распознавание тупиков в системах с потребляемыми ресурсами и в системах с обобщёнными ресурсами: системы с ограничениями на выполнение операций. Примеры.
- •Вывод системы из тупика. Общий подход к решению задачи и частный случай.
- •Обходы тупиков. Алгоритм банкира. Примеры.
- •Иерархия запоминающих устройств вс, характеристики устройств и связь, механизмы создания иерархии. Примеры.
- •Способы распределения памяти: статическое и динамическое распределение, связные и несвязные распределения. Сравнение.
- •Сегментная организация памяти. Страничная организация памяти. Сегментно-страничная организация памяти. Аппаратная поддержка в процессорах Intel.
- •Общие принципы организации виртуальной памяти. Управление виртуальной памятью: стратегии загрузки, стратегии размещения, стратегии замещения. Пример реализации в Intel.
- •Средства защиты памяти: изоляция адресных пространств. Поддержка в Intel.
- •Средства защиты памяти: защита по уровням привилегий, привилегированные команды и команды, чувствительные к уровням привилегий). Поддержка в Intel.
- •Статическая и динамическая компоновка программ: определение, сравнение и примеры.
- •Упрощённая структура объектного модуля и принцип работы связывающего загрузчика, редактора связей (одно- и двухпроходовые). Упрощённая структура исполнимого файла.
- •Понятие прерывания, классификация прерываний. Примеры (Intel).
- •Общая схема обработки прерываний, программно-аппаратная реализация, аппаратная поддержка механизма прерываний в Intel.
- •Структурная схема обработки исключений в Windows (seh): обработка завершения и локальная раскрутка.
- •Структурная схема обработки исключений в Windows (seh): обработка исключений и глобальная раскрутка.
- •Определение файла, атрибуты файлов и именование файлов, понятие каталога (справочника, директории, папки). Примеры.
- •Понятие и функции файловой системы как подсистемы ос.
- •Логическая и физическая организация файлов. Буферизация ввода/вывода. Примеры.
- •Логическая организация файлов: файлы с последовательной организацией и индексированные файлы. Поиск на внешних устройствах, b-деревья: определение и построение, выполнение операций. Примеры.
- •Управление внешней памятью: карты памяти и списки. Примеры (fat, ntfs).
- •Управление вводом/выводом, понятие драйвера внешнего устройства, драйверы виртуальных устройств.
- •Понятие драйвера файловой системы. Иерархическая организация файловых систем. Примеры.
- •Понятие защищённой вс. Классификация угроз и вторжений. Структура системы защиты.
- •Контроль прав доступа и матрица прав доступа как математическая модель защиты объектов. Примеры: одноранговое разделение ресурсов и защита на уровне пользователей.
- •Криптографическая защита. Понятие ключа. Симметричное и асимметричное шифрование. Понятие криптографического протокола. Понятие цифровой подписи.
- •Примеры задач по обработке исключений
- •Задания по разработке командных файлов и изучение команд пакетной обработки
- •Задачи на использование программных методов решения проблемы взаимного исключения
- •Задачи на работу с семафорами
- •Решение:
- •Решение:
- •Задачи на понимание алгоритмов решения задач, связанных с тупиками
- •Задачи на анализ состояний системы для выявления тупиков
- •Задачи по теме «Хранение и поиск информации на взу»
- •Файлы для подготовки
Общие принципы организации виртуальной памяти. Управление виртуальной памятью: стратегии загрузки, стратегии размещения, стратегии замещения. Пример реализации в Intel.
Организация виртуальной памяти. Суть концепции: адреса, к которым обращается выполняющаяся программа (процесс), отделяются от адресов, реальной памяти, существующей в ВС. Для выполнения программы необходимо реализовать отображение адресов, используемых в
программе, на адреса реальной физической памяти, связать их. При написании программ программист работает с именами. Те адреса, на которые делает ссылки процесс во время выполнения, являются виртуальными адресами, а диапазон всех виртуальных адресов, к которым может обратиться процесс, называется пространством виртуальных адресов этого процесса. Адрес физической памяти - номер ее реально существующей ячейки – называется реальным или физическим адресом. Диапазон физических адресов компьютера называется пространством реальных адресов. То есть, для выполнения программы необходимо отобразить пространство имен на физическую память. Это выполняется в два этапа: 1) перевод логических имен в виртуальные (логические) адреса, используемые программой: отвечают системе программирования (перевод осуществляется на этапе транслятора). Транслятор в качестве виртуального адреса вырабатывает относительный адрес (смещение) и информацию для настройки базового адреса. 2) отображение виртуальных адресов на физические адреса реальной памяти: выполняет обычно ОС через программы управления памятью при аппаратной поддержке. Настройка базовых адресов осуществляется при загрузке программы на выполнение, а собственно отображение - при каждом обращении к памяти с помощью специальных таблиц. Если содержимое таблиц может изменяться динамически, то этот механизм может быть использован для построения виртуальной памяти. То есть в основе виртуальной памяти лежат средства: 1) относительная адресация памяти (обеспечивает возможность создания перемещаемого кода (программа во время выполнения настраивается на произвольные адреса распределяемых ей блоков памяти)). 2) разрывное распределение памяти (возможность разбиения всего пространства памяти, отведенного программе, на несколько несмежных разделов.) 3). возможность динамической настройки адресов (обеспечивает преобразование виртуальных адресов в реальные во время выполнения процесса, причем общим свойством таких механизмов является то, что смежные адреса виртуального адресного пространства не обязательно будут смежными в реальной памяти).
Управление виртуальной памятью. При организации виртуальной памяти ОС решает несколько задач: 1) Выполнять начальную загрузку информации в ОС (подкачку) определяет, когда следует “втолкнуть” очередной блок кода или данных в основную память (то есть в какой момент времени выполнения программы страница или сегмент должны быть переписаны из вспомогательной памяти в первичную).
- стратегия по максимуму загружает все, что можно, в ОП. Возникает проблема, какие блоки должны быть загружены (нужно спрогнозировать). В первую очередь загружается фрагмент
кода, содержащий точку входа в программу. Система может основываться на принципе локальности ссылок: следующими загружаются соседние сегменты. Такая стратегия возникает при страничной организации.
- Не использовать опережающую загрузку (вообще ничего не загружать в память. Это загрузка по требованию. Обращение-прерывание - обработчик прерывания (загрузка)).
2) Стратегии размещения ставят целью определить, в какое место оперативной памяти следует поместить при подкачке из вторичной памяти выбранный блок.
В системах со страничной организацией памяти (память распределяется блоками фиксированных размеров) задача размещения (выбора свободной страницы) решается тривиально. В системах с сегментной организацией памяти, в которых память распределяется блоками переменных размеров, могут быть использованы различные стратегии (выбор первого подходящего блока, выбор наиболее подходящего блока или выбор наименее подходящего блока), они рассматриваются в разделе, в котором описывается организация памяти в виде кучи.
3) Стратегии замещения ставят целью определить, какой блок следует вытолкнуть во вспомогательную память из основной, чтобы освободить место для загрузки следующего выбранного блока, если свободной памяти оказалось недостаточно.
При выталкивании случайной страницы (блока) все страницы могут использоваться для замещения с равной вероятностью. Эта стратегия не требует никаких дополнительных расходов для своей реализации, но в реальных системах она применяется редко, так как не может обеспечить эффективное управление памятью. Дисциплина выталкивания FIFO (First In First Out) также не может обеспечить эффективное использование памяти, так как долгое присутствие блока (страницы) в памяти может означать его постоянное использование, следовательно, замещенную страницу снова придется загрузить в память, затратив время на ее выгрузку и повторную подкачку. Стратегии LRU (Least Recently Used), LFU (Least Frequently Used), NUR (Non Used Recently) приближаются к оптимальной стратегии. Для их реализации также нужны дополнительные средства: для каждого блока необходимо хранить информацию или о времени последнего обращения к нему, или о количестве обращений, выполненных за единицу времени, или о длительности промежутка времени, в течение которого к блоку не было обращений со стороны процесса. Эта информация может находиться в строке таблицы, описывающей блок. Кроме того, при прочих равных условиях первыми кандидатами на замещение в памяти являются блоки, информация в которых не модифицировалась при обращении к ним, так как в этом случае нет необходимости их сохранения во внешней памяти (при последующем обращении к такому блоку можно использовать существующую копию из вспомогательной памяти). Следовательно, каждая строка таблицы, описывающая блок, должна содержать признак модификации соответствующего блока.
