- •Алгоритмические основы программной инженерии
- •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 Вопрос. Механизмы диспетчеризации (планирования) задач.
16 Вопрос. Механизмы диспетчеризации (планирования) задач.
——————————————————————————
Диспетчеризация.
Диспетчер задач выполняет три функции:
1. Определение момента времени для смены выполняемой задачи (программный уровень).
2. Выбор задачи для выполнения из очереди готовых задач (программный и аппаратный уровни).
3. Переключение контекста задачи (аппаратный уровень).
Дисциплины диспетчеризации.
— FIFO ("first in, first out" — «первым пришёл — первым ушёл»). Первой выполняется задача, которая первой вошла в очередь и при этом она выполняется до тех пор, пока не завершится или не будет заблокирована (в ожидании определенного ресурса или события). После этого, управление передается следующей в очереди задачи.
— Round Robin (циклическая или круговая многозадачность).
В системе задается квант времени (100 мс), в течение которого процессор может быть занят непрерывным выполнением одной задачи. Если в течение этого времени выполнение задачи не заканчивается и не останавливается в ожидании ресурса или события, то выполнение прерывается с переключением процессора на следующую в очереди готовую задачу.
— Приоритетная многозадачность. Как только в очереди появляется готовая задача с более высоким приоритетом по сравнению с активной, выполнение активной задачи прерывается и процессор переключается на задачу с более высоким приоритетом.
— Адаптивная (равнодоступная) многозадачность. 1) Приоритет задачи, которая слишком долго не запускается на выполнение, повышается на единицу. 2) Приоритет задачи, которая слишком долго выполняется, уменьшается на единицу.
POSIX — стандарт, поддерживающий FIFO и Round Robin.