- •Список вопросов для подготовки к экзамену по сппо (2013-2014 уч. Год)
- •Понятие программного обеспечения (по). Классификация программного обеспечения по выполняемым функциям, структура системного по. Основные свойства системного программного обеспечения.
- •1)Управление процессами (программ во время выполнения);
- •Классификация ос (по структуре и архитектурным принципам построения, по режимам работы). Примеры.
- •Программные методы реализации взаимного исключения: примеры на псевдокоде, анализ и сравнение вариантов. Примеры.
- •Понятие семафора, семафорные примитивы, бинарные и считающие семафоры. Примеры объектов диспетчеризации в ms Windows, которые могут использоваться как «семафоры».
- •Применение бинарных семафоров для реализации взаимного исключения и синхронизации процессов. Примеры.
- •Общие семафоры, решение задачи «писателей и читателей» при работе с циклическим буфером. Сравнить варианты решения.
- •Проблема тупика и задачи, связанные с решением проблемы тупика: формулировки задач и подходы к решению. Примеры.
- •Задача предотвращения тупика, подходы к решению, анализ Примеры.
- •Модель системы с повторно используемыми ресурсами (граф повторно используемых ресурсов). Примеры.
- •Модель системы с потребляемыми ресурсами (граф потребляемых ресурсов). Примеры.
- •Система с повторно используемыми и потребляемыми ресурсами (граф обобщённых ресурсов). Примеры.
- •Решение задачи распознавания тупика для систем с повторно используемыми ресурсами: основная теорема о тупике. Алгоритм редукции. Примеры редукции.
- •Распознавание тупиков в системах с повторно используемыми ресурсами с ограничениями на выполнение операций. Примеры.
- •Распознавание тупиков в системах с потребляемыми ресурсами и в системах с обобщёнными ресурсами: алгоритм редукции. Примеры.
- •Распознавание тупиков в системах с потребляемыми ресурсами и в системах с обобщёнными ресурсами: системы с ограничениями на выполнение операций. Примеры.
- •Вывод системы из тупика. Общий подход к решению задачи и частный случай.
- •Обходы тупиков. Алгоритм банкира. Примеры.
- •Иерархия запоминающих устройств вс, характеристики устройств и связь, механизмы создания иерархии. Примеры.
- •Способы распределения памяти: статическое и динамическое распределение, связные и несвязные распределения. Сравнение.
- •Сегментная организация памяти. Страничная организация памяти. Сегментно-страничная организация памяти. Аппаратная поддержка в процессорах Intel.
- •Общие принципы организации виртуальной памяти. Управление виртуальной памятью: стратегии загрузки, стратегии размещения, стратегии замещения. Пример реализации в Intel.
- •Средства защиты памяти: изоляция адресных пространств. Поддержка в Intel.
- •Средства защиты памяти: защита по уровням привилегий, привилегированные команды и команды, чувствительные к уровням привилегий). Поддержка в Intel.
- •Статическая и динамическая компоновка программ: определение, сравнение и примеры.
- •Упрощённая структура объектного модуля и принцип работы связывающего загрузчика, редактора связей (одно- и двухпроходовые). Упрощённая структура исполнимого файла.
- •Понятие прерывания, классификация прерываний. Примеры (Intel).
- •Общая схема обработки прерываний, программно-аппаратная реализация, аппаратная поддержка механизма прерываний в Intel.
- •Структурная схема обработки исключений в Windows (seh): обработка завершения и локальная раскрутка.
- •Структурная схема обработки исключений в Windows (seh): обработка исключений и глобальная раскрутка.
- •Определение файла, атрибуты файлов и именование файлов, понятие каталога (справочника, директории, папки). Примеры.
- •Понятие и функции файловой системы как подсистемы ос.
- •Логическая и физическая организация файлов. Буферизация ввода/вывода. Примеры.
- •Логическая организация файлов: файлы с последовательной организацией и индексированные файлы. Поиск на внешних устройствах, b-деревья: определение и построение, выполнение операций. Примеры.
- •Управление внешней памятью: карты памяти и списки. Примеры (fat, ntfs).
- •Управление вводом/выводом, понятие драйвера внешнего устройства, драйверы виртуальных устройств.
- •Понятие драйвера файловой системы. Иерархическая организация файловых систем. Примеры.
- •Понятие защищённой вс. Классификация угроз и вторжений. Структура системы защиты.
- •Контроль прав доступа и матрица прав доступа как математическая модель защиты объектов. Примеры: одноранговое разделение ресурсов и защита на уровне пользователей.
- •Криптографическая защита. Понятие ключа. Симметричное и асимметричное шифрование. Понятие криптографического протокола. Понятие цифровой подписи.
- •Примеры задач по обработке исключений
- •Задания по разработке командных файлов и изучение команд пакетной обработки
- •Задачи на использование программных методов решения проблемы взаимного исключения
- •Задачи на работу с семафорами
- •Решение:
- •Решение:
- •Задачи на понимание алгоритмов решения задач, связанных с тупиками
- •Задачи на анализ состояний системы для выявления тупиков
- •Задачи по теме «Хранение и поиск информации на взу»
- •Файлы для подготовки
Классификация ос (по структуре и архитектурным принципам построения, по режимам работы). Примеры.
По структуре ОС: а) монолитная ОС. (Примеры: Традиционные ядра UNIX (такие как BSD), Linux; ядро MS-DOS, ядро KolibriOS). Недостатки: сложность модификации и сложность работы с ней программиста, т.к. нужно знать весь набор программ; б) иерархическая структура(Пример: Windows NT) – самая распространенная. Все системные компоненты разбиваются на уровни. Каждый компонент каждого слоя обеспечивает свой набор функций, четко определен межуровневый интерфейс.Программисту в такой системе проще работать, т.к. не нужно знать весь набор компонентов ОС и связи между ними, достаточно знать интерфейс того уровня, на котором он работает. в) ОС виртуальных машин. В ОС виртуальных машин обеспечивается возможность параллельного выполнения ОС. Для каждой ОС создается виртуальная машина. Для этого создается еще один слой в иерархической организации ОС – монитор виртуальных машин. г) ОС с микроядерной архитектурой.(Примеры: Symbian OS; Windows CE; OpenVMS). Микроядро - это минимальная функционально полная часть ОС, которой служит основой для разработки модульных, распределенных, переносимых ОС. Основное принципиальное отличие микроядерной ОС от иерархической состоит в реализации механизмов взаимодействия компонентов ОС, а также ПП и ОС. В традиционной системе взаимодействие основывается на вызове процедур (функций) и передаче параметров. В микроядерной системе используется единый механизм взаимодействия через передачу сообщений.
По режимам выполнения программ: а) пакетный режим (все задания (программы) объединяются в пакет, то есть пакет определяет порядок и условия их выполнения); б) интерактивный режим (режим диалога с пользователем); в) режим реального времени – выполняются программы, в которых есть самые жесткие ограничения на время выполнения. Современные системы являются мультирежимными. Для таких программ считается, что если ответ не получен к некоторому моменту времени, то он не будет получен никогда => ошибка, сбой системы. Стандартное применение: в качестве подсистем в более сложных инженерных технических системах, в качестве систем управления техническими процессами.
Вычислительные сети. Определение и классификация сетей. Понятия топологии сетей и методов доступа, примеры. Понятие протокола и эталонная семиуровневая модель OSI взаимодействия открытых систем (в сети). Методы коммутации. Понятие маршрутизации.
Общие принципы построения ОС. Основные характеристики современных ОС. Примеры реализации общих принципов и особенности организации и функционирования ОС. (Обзорный вопрос. Каждый принцип нужно пояснить примером из конкретной ОС, который вы знаете из практики, из дополнительной литературы, справочников, руководств…)
Основные принципы:
1. Принцип модульности. Модуль – это функциональная единица (от процедур до процессов), которая может разрабатываться независимо от других таких же функциональных модулей. Для каждого модуля реализуется стандартный интерфейс для организации взаимодействия с другими модулями при обращении к его функциям. Дает возможность гибкого конфигурирования ОС, обеспечивает легкость ее настройки, модернизации.
2. Принцип функциональной избирательности. Выделяются базовые модули, выполняющие основные функции ОС. Их работа организуется так, чтобы они всегда были под рукой у системы. Кроме того они являются самыми защищенными в системе.
3. Принцип частотной избирательности. Выделяются модули, к которым обращаются чаще всего. 2,3 – ядро системы. Ядро – это компоненты ОС, реализующие наиболее важные, часто используемые функции ОС. Ядро резид-но располагается в памяти.
4. Принцип настраиваемости. Настройка осуществляется на конкретную конфигурацию оборудования, на потребности конкретного пользователя. Настройка осуществляется при инсталляции системы и при загрузке.
5. Использование умолчаний. Если пользователь не задал какие-то параметры при загрузке или установке, система сама должна их определять.
6. Принцип функциональной избыточности. Имеется возможность выполнения одних и тех же функций различными способами.
Дополнительные принципы для современных ОС:
1)Открытость. Раньше – ОС должна быть открыта для анализа ошибок. Сегодня под открытостью ОС понимается возможность расширения функциональности, наращивание ОС.
2) Масштабируемость – система должна настраиваться на различные конфигурации, различают вычислительные мощности (9х не дает поставить несколько процессоров, NT позволяет, рассчитана на архитектуру SMP).
3)Возможность интеграции с чужими приложениями, реализация множественных прикладных сред. Существует два основных подхода: а) эмуляция, т е моделирование для ПП ее родной прикладнойсреды. Проблемы: трудоемко, ресурсоемко (громоздкая система получается . б)Механизм трансляции. Все ОС обеспечивают примерно одинаковые возможности для выполнения ПП и опираются при этом на одинаковую аппаратную часть => Можно системе вызовы родных ОС при обращении к ним приложений перехватывать базовой ОС, установленной на компьютере, и транслировать в систему вызовы этой ОС. При этом некоторые параметры могут потеряться. То есть создается не модель ОС, а некоторые транслятор вызовов (небольшая прослойка). Наиб эффективно можно организовать на микроядерной ОС.
4) Многоплатформенность (переносимость). ОС должна выполняться на нескольких аппаратных платформах и возможность перехода с одной платформы на другую. NT поддерживает четыре аппаратные платформы, в том числе Intel, alpha...
Пример: MS-DOS
Операционная система MS-DOS является одной из наиболее распространенных операционных систем для ПК. MS-DOS имеет средства для поддержки сетей, использования графических пользовательских интерфейсов, реализации расширений
СТРУКТУРА И ФУНКЦИОНИРОВАНИЕ MS-DOS
Знакомство со структурой MS-DOS полезно для понимания поведения вычислительной системы (ВС) в целом, порядка выполнения на ней прикладных программ. Операционная система MS-DOS структурно разбита на несколько уровней, соответствующих основным ее компонентам:
- BIOS (базовая система ввода/вывода);
- ядро системы;
- командный процессор (оболочка).
Базовая система ввода-вывода
Базовая система ввода/вывода находится в постоянном запоминающем устройстве каждого IBM-совместимого компьютера. Она, являясь неотъемлемой частью ПК, может считаться и компонентом MS-DOS работающем на самом низком уровне, хотя BIOS и не входит в поставку MS-DOS. В процессе функционирования ВС BIOS выполняет наиболее простые и универсальные функции по управлению стандартными (основными) периферийными устройствами (ПУ) по организации ввода/вывода. Таким образом, BIOS освобождает обращающиеся к ней программы от учета особенностей управления тем или иным ПУ. Выделение BIOS в отдельный компонент позволяет "скрыть" архитектурные особенности конкретной модели ПК от прикладных программ и других программ операционной системы и обеспечить независимость программного обеспечения от ПУ.
Модуль BIOS (Basic Input/Output System) индивидуален для каждой вычислительной системы и поставляется ее изготовителями. В этом модуле резидентно содержатся
Структура MS-DOS
Кроме перечисленных функций MS-DOS может включать и дополнительные инструментальные cредства и утилиты. Структура MS-DOS:
1 - пользовательский интерфейс MS-DOS;
2 - программный интерфейс MS-DOS верхнего уровня;
3 - программный интерфейс MS-DOS нижнего уровня;
4 - программный интерфейс MS-DOS;
5 - интерфейс ПК
Данная операционная система имеет модульную структуру, причем взаимодействующие непосредственно модули на рисунке являются смежными. Модульная структура MS-DOS облегчает ее модификацию, делает открытой для наращивания или замены отдельных компонентов.
Определение и классификация ресурсов. Примеры. Для каждого класса ресурсов нужно указать, какими свойствами он обладает, какие задачи по управлению им решает ОС, какие проблемы могут быть (пояснить на примерах).
Ресурс – объект в ВС, обладающий свойством полезности. Любой процесс требует ресурса для своего выполнения. Процессы – потребители ресурсов.
Критерии классификации :
Реальность существования – ресурсы могут быть физические и виртуальные. Физические обладают реальными физическими свойствами. Виртуальный ресурс – модель, которая строится на базовом ресурсе. Если характеристики, виртуального ресурса удовлетворяют процесс, то ему безразлично что это виртуальный ресурс
Возможность расширения свойств – способность ресурса стать базой для построения виртуального ресурса
Структурный признак – ресурс имеющий структуру может быть разделен на единицы, процесс может использовать часть такого ресурса
Возможность повторного использования – после своего использования процесс либо возвращается в систему (ОЗУ), либо уничтожается (сообщения)
Время существования – временные, постоянные.
По степени активности – активные, пассивные . Активные способны выполнять действия по отношению к другим ресурсам ЦП . Пассивные - ОЗУ
По степени важности
По форме реализации – Твердые (аппаратные компоненты ВС), Мягкие (программные, информационные)
Определение и классификация процессов. Примеры. Для каждого класса процессов нужно указать, какими свойствами он обладает, в какие отношения может вступать с другими процессами, какие задачи по управлению им решает ОС, какие проблемы могут быть (пояснить на примерах). Процессы и потоки (показать, какими свойствами они обладают, какова связь соответствующих объектов ОС).
Процесс - совокупность действий , связанных с исполнением программы процессором. Программа в стадии выполнения.
Процессор – устройство в составе ВС, способное автоматически выполнять действия в соответствии с программой.
Многозадачная ОС моделирует работу нескольких процессов, предоставляя каждому процессору виртуальный процессор.
Процесс обладает адресным пространством и определенным состоянием.
Классификация :
По временным характеристикам – Последовательные процессы – интервалы существования не пересекаются по времени. Процессы реального времени – гарантируют завершение процесса к конкретному времени. Интерактивные процессы (время существования < времени допустимой реакции на запрос пользователя). Пакетные процессы (время существования не ограничено)
По принадлежности ЦП - внутренние(развиваются на ЦП), внешние - развитие происходит под контролем ОС, но на устройствах отличных от ЦП (ввода/вывода)).
По принадлежности ОС – системные – соответствующие программам ОС. Пользовательские – соответствующие ППО
По связности – взаимосвязанные(между процессами существует тип связи: функциональная - выполнение второго зависит от реализации 1; по управлению : порождающий – порождаемый; связь по данным; пространственно – временная связь). Изолированные.
Процессы и потоки.
Многозадачность – это возможность выполнять отдельные части одной и той же программы одновременно. То есть поток представляет собой часть кода процесса (программы) и ресурсы, необходимые для решения отдельной задачи.
Каналы (pipe) Используют как средство обмена информации между процессами, не зависимо от того, где эти процессы выполняются, на одном компьютере, или на разных, объединенных в сеть. Один процесс является сервером, а другой клиентом. Создав канал можно выполнять синхронные и асинхронные операции. Для обслуживания нескольких клиентов, сервер может создать несколько реализаций одного и того же канала.
Каналы могут быть: - именованные: подключение происходит по имени, если оно известно процессу клиенту; - неименованные: передача данных между дочерними/родительскими процессами, и в похожих случаях.
Mailslot Каналы Mailslot (почтовые ячейки) используются для односторонней передачи данных, при том можно передавать информацию как от одного клиента нескольким серверам (рассылка), так и от нескольких клиентов на один сервер.
Отображение файлов на память Данный способ передачи данных отличается быстродействием, т.к. данные передаются между процессами непосредственно через память. Этот механизм работает с файлами любой длинны одного компьютера (не применим для удаленного пользования), это достигается за счет того, что приложение выбирает только фрагмент файла, для отображения его в память. Установив такое отображение, то для операций записи и чтения ОС считает тождественными фрагмент файла и содержимое отображения.
Состояния процессов и функция ОС по управлению процессами. Задачи, решаемые ОС при реализации функций управления процессами, проблемы для различных классов процессов. Примеры решения задач управления, механизмов разрешения проблем (средства реализации).
За время своего существования процесс проходит ряд дискретных состояний.
Порождение Готовность Активность Ожидание
Окончание
Когда производится подготовка программы к исполнению – происходит порождение. ОС определяет, какие ресурсы нужны программе, если ресурсы не могут быть выделены -> состояние завершения. Если ресурсы существуют и свободны -> процесс у выделяется виртуальный процессор, и он переходит в состояние готовности.
В состоянии готовности у процесса есть все необходимые ресурсы, кроме реального центрального процессора. Выделение времени на ЦП -> активное состояние
Активное состояние - это состояние выполнения последовательности команд программы процесса на процессоре. В этом состоянии процесс имеет все ресурсы и занимает центральный процессор. Процесс может выйти из состояние активности, если : 1) процесс завершается( заканчивается последовательность команд, принудительное завершение, ошибка); 2)процесс блокирует себя (сделал запрос на выделение ресурса или на выполнение действия, который сам не может выполнить); 3) процесс прерывается (запускается более приоритетная программа, по истечении времени) и при этом переходит в состояние готовности.
Состояние окончания - завершающее состояние в развитии процесса в ВС. После перевода в это состояние процесс исчезает, его виртуальный процессор уничтожается
Процессы, находящиеся в состояниях готовности и ожидания, ждут предоставления им ресурсов – создаются очереди – все процессы в очереди претендуют на использование ресурсов. Программист может изменять порядок очереди ( запускать процессы и останавливать). После окончания процесса, он возвращается в очередь, на то же место.
Некоторые ОС допускают возможность – приостановки процесса (гибкость системы, можно вывести из конфликтной ситуации, регулировать нагрузки системы, позволяет обнаружить ошибки).
Функция управления процессами - выполняется как в отношении каждого отдельного процесса, так и в отношении всей их совокупности. Данная функция расшифровывается как функция обеспечения реализации каждого из возможных состояний процесса и допустимых переходов из состояния в состояние в ответ на события, которые могут быть причиной изменения состояния процесса.
Операции, изменяющие состояние системы :
создание/ уничтожение
блокирование / разблокирование процесса
активизация / прерывание
приостановки /возобновления задержанного процесса.
В системах, поддерживающих многопоточность ,операции также реализуются не только для процессов, но и для потоков.
Для организации выполнения процессов необходимо реализовать схему определения порядка распределения ресурсов между существующими в ВС процессами, то есть спланировать доступ процессов к запрашиваемым ими ресурсам. Планировщик - это программа в составе операционной системы, определяющая порядок предоставления общих ресурсов ВС процессам, запрашивающим эти ресурсы.
планирование верхнего уровня (планирование допуска в систему),
планирование среднего уровня (конкуренция за выделение им времени центрального процессора),
планирование на нижнем уровне (кому предоставить освободившийся центральный процессор).
Планирование по принципу “первый пришедший обслуживается первым”. В данном случае центральный процессор предоставляется в распоряжение процессов в порядке их поступления в очередь процессов, находящихся в состоянии готовности
Простейшей дисциплиной, предусматривающей возможность переключения - циклическое или круговое планирование. При реализации этой дисциплины процессы встают в очередь в порядке их попадания в состояние готовности, но очередному процессу из очереди процессор предоставляется в распоряжение на ограниченное время. По истечении выделенного процессу времени процессор у него забирается и передается очередному готовому процессу, оказавшемуся в очереди первым.
Планирование и диспетчеризация процессов: понятия, их связь. Уровни планирования. Дисциплины планирования. Примеры.
Понятие мультизадачности, кооперативная и вытесняющая мультизадачность. Мультипрограммирование и мультизадачность – связь двух понятий. Примеры.
Структуры данных, используемые для реализации основных функций ОС. Обобщённые дескрипторы. Объекты ядра ОС Windows NT, используемые для реализации функций управления, диспетчеризации и синхронизации процессов.
Проблема взаимного исключения. Понятие критической секции, её свойства, условия реализации. Примеры.
Взаимное исключение необходимо в том случае, когда несколько процессов работают параллельно с разделяемыми (общими) данными, совместное использование которых может привести к их разрушению или к конфликтной ситуации.
Критическая секция (интервал, участок) - это последовательность команд программы, операции которой связаны с обращением к разделяемым данным, причем параллельное выполнение несколькими процессами действий, заданных в критических секциях, может привести к разрушению этих данных.
Требования к КС:
в любой момент времени только один процесс может находиться в своей критической секции по данному ресурсу (это главное требование - взаимное исключение);
ни один процесс не должен ждать бесконечно долго входа в критическую секцию (реализация взаимного исключения не должна приводить к ошибкам или невозможности выполнения процессами своих функций - взаимное исключение только устанавливает порядок доступа к общим ресурсам, исключающий их разрушение);
ни один процесс не может находиться в своей критической секции бесконечно долго (это следствие предыдущего требования - все процессы в течение приемлемого времени должны получить доступ к разделяемым данным для выполнения своих функций);
никакой процесс, находящийся вне своей критической секции, не должен задерживать выполнение других процессов, ожидающих входа в свои критические секции.
Относительно режима работы в КС справедливы утверждения:
относительные скорости процессов неизвестны;
программа может останавливаться только вне ее критической секции;
операции считывания и записи разделяемых данных неделимы;
процессы не имеют приоритетов, связанных с доступом к общим данным, то есть нет приоритетов на вход в критические секции;
одновременные обращения к одним и тем же данным для выполнения операции чтения или записи более чем одного процессора приведут к последовательным обращениям в неустановленном порядке.
