- •Список вопросов для подготовки к экзамену по сппо (2013-2014 уч. Год)
- •Понятие программного обеспечения (по). Классификация программного обеспечения по выполняемым функциям, структура системного по. Основные свойства системного программного обеспечения.
- •1)Управление процессами (программ во время выполнения);
- •Классификация ос (по структуре и архитектурным принципам построения, по режимам работы). Примеры.
- •Программные методы реализации взаимного исключения: примеры на псевдокоде, анализ и сравнение вариантов. Примеры.
- •Понятие семафора, семафорные примитивы, бинарные и считающие семафоры. Примеры объектов диспетчеризации в ms Windows, которые могут использоваться как «семафоры».
- •Применение бинарных семафоров для реализации взаимного исключения и синхронизации процессов. Примеры.
- •Общие семафоры, решение задачи «писателей и читателей» при работе с циклическим буфером. Сравнить варианты решения.
- •Проблема тупика и задачи, связанные с решением проблемы тупика: формулировки задач и подходы к решению. Примеры.
- •Задача предотвращения тупика, подходы к решению, анализ Примеры.
- •Модель системы с повторно используемыми ресурсами (граф повторно используемых ресурсов). Примеры.
- •Модель системы с потребляемыми ресурсами (граф потребляемых ресурсов). Примеры.
- •Система с повторно используемыми и потребляемыми ресурсами (граф обобщённых ресурсов). Примеры.
- •Решение задачи распознавания тупика для систем с повторно используемыми ресурсами: основная теорема о тупике. Алгоритм редукции. Примеры редукции.
- •Распознавание тупиков в системах с повторно используемыми ресурсами с ограничениями на выполнение операций. Примеры.
- •Распознавание тупиков в системах с потребляемыми ресурсами и в системах с обобщёнными ресурсами: алгоритм редукции. Примеры.
- •Распознавание тупиков в системах с потребляемыми ресурсами и в системах с обобщёнными ресурсами: системы с ограничениями на выполнение операций. Примеры.
- •Вывод системы из тупика. Общий подход к решению задачи и частный случай.
- •Обходы тупиков. Алгоритм банкира. Примеры.
- •Иерархия запоминающих устройств вс, характеристики устройств и связь, механизмы создания иерархии. Примеры.
- •Способы распределения памяти: статическое и динамическое распределение, связные и несвязные распределения. Сравнение.
- •Сегментная организация памяти. Страничная организация памяти. Сегментно-страничная организация памяти. Аппаратная поддержка в процессорах Intel.
- •Общие принципы организации виртуальной памяти. Управление виртуальной памятью: стратегии загрузки, стратегии размещения, стратегии замещения. Пример реализации в Intel.
- •Средства защиты памяти: изоляция адресных пространств. Поддержка в Intel.
- •Средства защиты памяти: защита по уровням привилегий, привилегированные команды и команды, чувствительные к уровням привилегий). Поддержка в Intel.
- •Статическая и динамическая компоновка программ: определение, сравнение и примеры.
- •Упрощённая структура объектного модуля и принцип работы связывающего загрузчика, редактора связей (одно- и двухпроходовые). Упрощённая структура исполнимого файла.
- •Понятие прерывания, классификация прерываний. Примеры (Intel).
- •Общая схема обработки прерываний, программно-аппаратная реализация, аппаратная поддержка механизма прерываний в Intel.
- •Структурная схема обработки исключений в Windows (seh): обработка завершения и локальная раскрутка.
- •Структурная схема обработки исключений в Windows (seh): обработка исключений и глобальная раскрутка.
- •Определение файла, атрибуты файлов и именование файлов, понятие каталога (справочника, директории, папки). Примеры.
- •Понятие и функции файловой системы как подсистемы ос.
- •Логическая и физическая организация файлов. Буферизация ввода/вывода. Примеры.
- •Логическая организация файлов: файлы с последовательной организацией и индексированные файлы. Поиск на внешних устройствах, b-деревья: определение и построение, выполнение операций. Примеры.
- •Управление внешней памятью: карты памяти и списки. Примеры (fat, ntfs).
- •Управление вводом/выводом, понятие драйвера внешнего устройства, драйверы виртуальных устройств.
- •Понятие драйвера файловой системы. Иерархическая организация файловых систем. Примеры.
- •Понятие защищённой вс. Классификация угроз и вторжений. Структура системы защиты.
- •Контроль прав доступа и матрица прав доступа как математическая модель защиты объектов. Примеры: одноранговое разделение ресурсов и защита на уровне пользователей.
- •Криптографическая защита. Понятие ключа. Симметричное и асимметричное шифрование. Понятие криптографического протокола. Понятие цифровой подписи.
- •Примеры задач по обработке исключений
- •Задания по разработке командных файлов и изучение команд пакетной обработки
- •Задачи на использование программных методов решения проблемы взаимного исключения
- •Задачи на работу с семафорами
- •Решение:
- •Решение:
- •Задачи на понимание алгоритмов решения задач, связанных с тупиками
- •Задачи на анализ состояний системы для выявления тупиков
- •Задачи по теме «Хранение и поиск информации на взу»
- •Файлы для подготовки
Логическая и физическая организация файлов. Буферизация ввода/вывода. Примеры.
Логическая организация файлов. Логическая организация файлов – это организация данных, размещенных на внешних устройствах, с точки зрения прикладной программы, работающей с этими данными, выполняющей операции над ними. Простейший способ организации – файл представляет собой неструктурированную последовательность байтов. В этом случае программу при выполнении операций над файлами «не интересует» содержимое файла. Такой подход в ОС UNIX и Windows. Плюсы: обеспечивает максимальную простоту файловой системы и файловая система может обеспечить считывание данных «побайтно» или блоками заданного размера. «Смысл» байтам «присваивается» конкретными программами, создающими файлы и обрабатывающими размещенную в них информацию. Существует несколько способов организации файлов: файлы с последовательной организацией, файлы с прямой организацией, файлы с индексной организацией (прямой доступ по ключу) и библиотечные файлы. Еще один способ организации файлов – древовидная организация, при которой файл представляет собой дерево записей, упорядоченных по ключу, записанному в определенной фиксированной позиции каждой записи. Такой способ организации файлов обеспечивает быстрый поиск данных по заданному ключу.
При работе на мэйнфреймах способ доступа к файлу указывается при его создании в описании файла, что позволяет ОС применять различные методы хранения на внешних устройствах файлов разных классов (Принципиальное отличие от UNIX и Windows).
Последовательная организация. При последовательной организации файл представляет собой «массив», в котором в каждый момент содержится определенное число записей (от 0 и более): R0 R1 ... R(i-1) Ri R(i+1) ... Rn. Для того чтобы прочитать запись Ri необходимо прочитать все предшествующие ей записи, т.е. запись Ri может быть прочитана только после записи Ri–1. Записи в файле могут иметь переменный размер. Тогда каждой записи должно предшествовать поле, содержащее ее длину: L0 R0 L1 R1 ... L(i-1) R(i-1) Li Ri L(i+1) R(i+1) ... Ln Rn. Поле длины может располагаться и после записи, тогда допустимо считывание записей и при «обратном» – с конца – просмотре файла. Файлы с такой организацией могут размещаться на любых внешних устройствах. Эта организация удобна, когда обрабатывается весь массив записей. Если необходимо обработать только определенные записи, то этот способ неудобен, т.к. в худшем случае для поиска нужной записи необходимо выполнить n сравнений.
Файлы с прямой и индексной организацией. Многие системы допускают возможность прямого доступа к записи в файле по ее номеру. Минус в том, что программист должен сам «помнить» номера записей, содержащих нужную информацию. Для этого он должен построить специальный файл, содержащий эту информацию, причем записи в этом файле могут быть упорядочены для ускорения поиска нужной информации. Обычно ускорение происходит еще и за счет того, что записи вспомогательного значительно короче, чем записи основного файла, содержащего полную информацию. Если система сама берет на себя задачу организации таких вспомогательных файлов (таблиц), то говорят об индексной организации файлов. Файлы с индексной организацией имеют более сложную организацию: кроме основного файла, представляющего собой массив записей, строится вспомогательная таблица (индекс), содержащая ключевую информацию для поиска, а также данные о местоположении записи в основном файле (смещение начала файла); кроме того, если записи могут иметь переменную длину, в каждой строке (элементе, записи) индекса содержится и размер записи. Записи в основном файле не упорядочиваются, хранятся в нем в том порядке, в каком были созданы. Записи в индексе обычно упорядочиваются для ускорения поиска. Ключи могут быть составными, например, могут состоять из фамилии, имени и отчества. Ключи могут быть и внешними по отношению к соответствующей записи. Индексы могут быть многоуровневыми. Строится «индекс для индекса»: индекс второго уровня. Для его создания таблица индексов первого уровня разбивается на блоки, содержащие определенное количество элементов. Каждый блок идентифицируется ключом (обычно это ключ последнего элемента в блоке). Тогда индексная организация файла с индексами двух уровней может выглядеть следующим образом.
Управление внешней памятью и физическая организация файлов. Для реализации своих функций файловая система ОС должна реализовать управление внешней памятью: выделять дисковое пространство для размещения на нем файлов, организовывать быстрый поиск файлов и доступ к хранящимся в них данным, обеспечить надежность и отказоустойчивость работы внешних устройств.
Физическая организация файлов (на примере FAT и NTFS). FAT (File Allocation Table - таблицы распределения данных; таблица FAT в MS-DOS [FAT12, FAT16, FAT-16] и Windows 95/98/ME [FAT32, FAT-32]). FAT - таблица для динамического распределения дискового пространства под файлы. Число в аббревиатуре указывает размер элемента таблицы в битах. Единицей распределяемой памяти является кластер. В FAT записывается номер кластера или служебная информация о его состоянии. Переход с FAT16 на FAT32 вызван тем, что при использовании FAT16 размер дискового раздела не может быть больше 2 Гбайт. Таблица обеспечивает связи одного распределяемого блока (одного или нескольких кластеров) с другим. В FAT находятся списки кластеров, распределённых файлам. Все свободные кластеры отмечены нулями. Таким образом, если файл занимает несколько кластеров, то эти кластеры связаны в список. При этом элементы таблицы FAT содержат номера следующих используемых данным файлом кластеров. Конец списка отмечен в таблице специальным значением. Номер первого кластера, распределённого файлу, хранится в элементе каталога, описывающего данный файл. Если размер диска таков, что для представления всех секторов недостаточно 12-ти разрядов, можно увеличить размер кластера, например, до восьми секторов. Однако большой размер кластера приводит к неэффективному использованию дискового пространства. FAT имеет древовидную структуру. В корневом каталоге располагаются 32-байтовые элементы, которые содержат информацию о файлах и других каталогах. Корневой каталог занимает непрерывную область фиксированного размера. Размер корневого каталога задаётся при форматировании и определяет максимальное количество файлов и каталогов, которые могут быть в нём описаны. Вслед за корневым каталогом на логическом диске находится область файлов и подкаталогов корневого каталога.
NTFS (New Technology File System). NTFS обеспечивает комбинацию эффективности и надёжности, отсутствующую в FAT. Она разработана для быстрого выполнения стандартных файловых операций типа чтения, записи и поиска, а так же операций типа восстановления файловой системы после сбоев на больших дисках. NTFS так же имеет возможности безопасности, необходимые для файловых серверов и высокопроизводительных рабочих станций в корпоративной среде. Эта файловая система поддерживает управление доступом к данным и привилегии владельца, что является важным для защиты данных. NTFS файловая система Windows NT и Windows 2000, поддерживающая объектно-ориентированные приложения, рассматривая файлы как объекты с атрибутами, определенными пользователями или системой. Подразумевает также метод логической разметки диска, управления дисковой памятью и организации доступа к файлам. NTFS обеспечивает все возможности файловых систем FAT и HPFS без их ограничений. Поддерживается также Windows 95. Каждый файл на разделе NTFS представлен записью в специальном файле, называемом главной файловой таблицей (Master File Table) . NTFS резервирует первые 16 записей таблицы для системной информации. Первая запись этой таблицы описывает саму MFT; за ней следует зеркальная запись MFT. Если первая запись MFT окажется разрушенной, то ОС использует вторую запись для отыскания зеркального файла MFT, первая запись которого идентична первой записи MFT. Расположение сегментов данных MFT и её копии записаны в секторе начальной загрузки. Дубликат сектора начальной загрузки находится в логическом центре диска. Третья запись MFT — файл регистрации, используется для восстановления целостности файловой системы при сбоях. Семнадцатая и последующие записи главной файловой таблицы используются собственно файлами и каталогами (которые так же рассматриваются как файлы). Главная файловая таблица отводит определённое количество пространства для каждой записи файла. Атрибуты файла записываются
(Продолжение 14 вопроса)
в распределённое пространство MFT. Небольшие файлы и каталоги могут полностью содержаться внутри записи главной файловой таблицы. Подобный подход обеспечивает очень быстрый доступ к файлам. Записи каталога помещены внутри главной файловой таблицы так же, как и записи файла. Вместо данных каталоги содержат индексную информацию. Небольшие каталоги находятся полностью внутри структуры MFT. Большие каталоги организованы в B-Tree, имея записи с указателями на внешние кластеры, содержащие элементы каталога, которые не могут быть записаны внутри MFT.
Буферизация (кэширование) ввода/вывода. Запросы к блок-ориентированным ВУ с прямым доступом перехватываются подсистемой буферизации, называемой также дисковым кэшем. Буфер – это область памяти, используемая для промежуточного хранения данных при выполнении операций ввода/вывода. Буфер инициализируется при открытии файла. При поступлении запроса на чтение некоторого блока диспетчер дискового кэша просматривает свой буферный пул, находящийся ОП, и если требуемый блок имеется в кэше, копирует его в буфер запрашивающего процесса. Подготовка следующих данных для чтения может осуществляться ОС параллельно с работой программы (то есть операции ввода/вывода выполняются асинхронно). При записи данные также сначала попадают в буфер. На диск они переписываются при заполнении или же по требованию программы. Операция вывода считается выполненной при завершении обмена с кэшем, то есть реализуется механизм отложенной записи на диск.
Управление вводом/выводом и внешними устройствами. Понятие драйвера. Еще одна функция ОС, обеспечивающая работу с данными. ОС организует по запросам программ обмен информацией между ОЗУ и внешними устройствами (то есть обеспечивает ввод/вывод), следит за состоянием устройств, организует бесконфликтную работу с ВУ всех выполняющихся программ, устанавливая порядок доступа к ним. Для управления внешними устройствами на компьютерах устанавливаются специальные программы – драйверы. Драйверы образуют «прослойку» между ядром ОС и внешними устройствами, скрывая их особенности от работающих с этими устройствами программ. При изменении конфигурации ВС нет необходимости в переустановке всей системы, достаточно установить новый драйвер внешнего устройства.
