- •Алгоритмические основы программной инженерии
- •1 Семестр вопросы и ответы
- •1 Вопрос. Кризисная история развития программного обеспечения: необходимость повторного использования кода, рост сложности по, модификация по.
- •Необходимость повторного использования кода
- •Функциональное программирование. Достоинства и недостатки
- •2 Вопрос. Этапы разработки программного обеспечения. Состав технического задания.
- •Модели процесса разработки программного обеспечения
- •Каскадная модель
- •Итеративная модель rup
- •Гибкий цикл agile
- •Итеративная модель xp
- •Спиральная модель
- •3 Вопрос. Проектирование и алгоритмизация программы. Свойства алгоритма.
- •4 Вопрос. Понятие и определение сложности алгоритма.
- •5 Вопрос. Кодирование, тестирование и отладка программы.
- •Концепция xp: программирование в паре.
- •Тестирование и отладка.
- •6 Вопрос. Доработка и сопровождение программного продукта.
- •7 Вопрос. Модели жизненного цикла по. Экстремальное программирование (xp).
- •Концепция xp
- •11. Взаимодействие с заказчиком.
- •Если требования проекта могут быть сформулированы достаточно исчерпывающим образом, то имеет смысл прибегать к более надежной стратегии разработки.
- •8 Вопрос. Унифицированная концепция (rup) разработки по: фазы, операции. Определение требований в uml-формате.
- •9 Вопрос. Унифицированная концепция (rup) разработки по: анализ и проектирование. Понятие класса, типы и примеры классов, uml-диаграммы.
- •Стратегия rup Rational Unified Process
- •1. Определение требований.
- •3. Реализация.
- •Ниже представлена самостоятельная работа — пример реализации диаграммы компонентов
- •4. Внедрение.
- •Ниже представлена самостоятельная работа — пример реализации диаграммы развертывания
- •10 Вопрос. Состав и функционал системного программного обеспечения.
- •Операционная система (ос)
- •Система управления файлами (суф)
- •Интерфейсная оболочка для взаимодействия пользователя с ос и операционными средами
- •Системы программирования
- •Трансляторы
- •Утилиты
- •11 Вопрос. Классификация языков программирования.
- •Не существует общепринятой систематичной таксономии языков программирования. Поколения языков
- •Функциональная классификация языков программирования
- •12 Вопрос. Определение ядра операционной системы.
- •13 Вопрос. Классификация операционных систем по функциональности.
- •Системы пакетной обработки
- •Системы разделения времени
- •Системы реального времени
- •14 Вопрос. Определение задачи. Преимущества и недостатки процессов и потоков.
- •15 Вопрос. Свойства задач.
- •16 Вопрос. Механизмы диспетчеризации (планирования) задач.
12 Вопрос. Определение ядра операционной системы.
——————————————————————————
Все модули ОС делятся на 2 группы:
1. Модуль ядра, который выполняет основные функции ОС и включает в себя планировщик задач (диспетчер), драйверы устройств ввода-вывода, систему управления файлами и сетевую систему.
2. Модули, выполняющие вспомогательные функции ОС (т. е. утилиты).
Ядро содержит:
1. Дескрипторы. Дескриптор — относительная структура, содержащая информацию о системных данных задачи.
2. Приоритеты задач. Приоритет — целочисленный показатель важности (приоритета) одной задачи по отношению к другой.
3. Указатель на следующую задачу в списке дескрипторов.
Модуль ядра выполняет следующие базовые функции:
— Управление задачами (процессами, потоками).
— Управление памятью, устройствами и т. д.
Такого рода внутрисистемные функции недоступны для приложений. Исключениями являются системы реального времени, в которых можно на пользовательском уровне переопределять дисциплины диспетчеризации.
Приложения могут обращаться к ядру с запросами (системными вызовами) для выполнения определенных действий. Например, для открытия файла на чтение, вывода графической информации на дисплей и т. д.
Функции ядра, которые могут вызываться приложениями, образуют прикладной программный интерфейс API.
Обычно ядро оформляется в виде программного модуля специального формата, отличного от формата пользовательских приложений.
Привилегированный режим означает защиту кодов и данных ОС от пользовательских приложений, а также контроль доступа приложений к ресурсам ЭВМ в многозадачном режиме.
Работа пользовательского и привилегированного режимов обеспечивается благодаря специальным средствам аппаратной поддержки.
Так как ядро выполняет все основные функции ОС, то чаще всего именно оно становится той частью ОС, которая работает в привилегированном режиме. Это свойство (feature) — работа в привилегированном режиме — является одним из признаков ядра.
——————————————————————————
13 Вопрос. Классификация операционных систем по функциональности.
——————————————————————————
По количеству пользователей, одновременно обслуживаемых системой, ОС подразделяются на:
— Однопользовательские.
— Многопользовательские.
По числу задач, одновременно выполняемых под управлением ОС, системы подразделяются на:
— Однозадачные.
— Многозадачные.
Наиболее характерными критериями эффективности являются:
1. Пропускная способность (количество задач, выполняемых в (за) единицу времени).
2. Удобство работы пользователей с одновременно выполняющимися приложениями на одной машине.
3. Реактивность системы, т. е. её способность выполнять задачи в рамках заранее заданных интервалов времени — между запуском программы и получением результата.
По критериям эффективности ОС подразделяются на:
1. Системы пакетной обработки. Пример. ОС ЕС ЭВМ (операционная система единой системы электронных вычислительных машин; применялся язык JCL — Job Control Language; разрабатывалась в 1980-х годах).
Достоинства: максимальная пропускная способность.
Недостатки: низкая эффективность работы пользователя (по сравнению с системами разделения времени).
2. Системы разделения времени. Пример. UNIX (семейство переносимых, многозадачных и многопользовательских операционных систем, которые основаны на идеях оригинального проекта AT&T Unix, разработанного в 1970-х годах в исследовательском центре Bell Labs Кеном Томпсоном, Деннисом Ритчи и другими), OpenVMS (серверная операционная система, разработанная во второй половине 1970-х годов компанией Digital Equipment Corporation; применяется для построения отказоустойчивых систем высокой готовности; среди заказчиков OpenVMS преобладают оборонные структуры и банки, телекоммуникационные компании, предприятия непрерывного цикла (АЭС)).
Достоинства: удобство и эффективность работы пользователя.
Недостатки: (1) обладает меньшей пропускной способностью, чем системы пакетной обработки, (2) имеются накладные расходы вычислительной мощности на более частое переключение процессора с задачи на задачу.
3. Системы реального времени. Пример. QNX (разработка начиналась с 1980-х; платная).
Достоинства: высокий уровень реактивности системы.
Недостатки: приходится решать проблемы привязки внутрисистемных событий к моментам времени, своевременного захвата и освобождения системных ресурсов, синхронизации вычислительных процессов, буферизации потоков данных и т. п.
Далее представлено подробное описание.