- •Алгоритмические основы программной инженерии
- •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 Вопрос. Механизмы диспетчеризации (планирования) задач.
15 Вопрос. Свойства задач.
——————————————————————————
Свойства задач:
1. Приоритет — целое число, которое присваивается задаче и характеризует её важность по отношению к другим задачам. Используется для определения того, какая из готовых к выполнению задач должна (начинать) выполняться в данный момент. Самый низкий приоритет — 0. Обычно резервируется за «пустой» задачей («задачей холостого хода»), которая запускается при отсутствии готовых к выполнению задач.
2. Дескриптор (Handle). В дескрипторе прямо или косвенно (через указатели на связанные структуры) содержится информация о состоянии задачи, расположении образа задачи в оперативной памяти и на диске, о приоритете, идентификаторе пользователя, создавшего процесс, о родственных процессах (например, дочерних), о событии осуществления которых ожидает данный процесс и т. д. Дескриптор отдельных задач объединяется в стек (stack), образующий очередь задач. Каждый дескриптор содержит как минимум один указатель на другой дескриптор, соседний с ним в очереди. Такая организация очереди позволяет переупорядочивать, исключать и включать задачи, переводить задачи из одного состояния в другое, т. е. выполнять их диспетчеризацию.
3. Контекст. Содержит информацию о задаче, которая необходима для возобновления её выполнения с прерванного места: 1) Содержимое регистров процессора; 2) Коды ошибок выполняемых процессором системных вызовов. 3) Информацию о всех файлах, открытых в ходе выполнения данной задачи. 4) Информацию о завершенных операциях ввода-вывода и других данных, описывающих состояние вычислительной среды в момент прерывания.
Контекст, как и дескриптор, доступен только программам ядра, т. е. находится в ВАП (виртуальном адресном пространстве) ОС, но хранится не в области ядра, а непосредственно примыкает к образу задачи и перемещается вместе с ним (если необходимо) из оперативной памяти на диск.
Обычно контекст хранится в управляющем блоке TSB [Translation Storage Buffer — буфер хранения перевода].
Диспетчер задач (механизм ядра) в случае необходимости сохраняет контекст текущей активной (выполняемой) задачи и восстанавливает его при назначении прерванной задачи к выполнению. Такое переключение контекста является основным механизмом ОС при переходе от выполнения одной задачи к выполнению другой.
4. Состояния:
— Активная задача (исполнение). Выполняется в текущий момент времени.
— Готовая задача. Готова к выполнению и ожидает своей очереди.
— Блокированная задача (ожидание). Выполнение задачи приостановлено до возникновения определенного события.
a) Освобождение необходимого ресурса (например, получение доступа к файлу).
б) Поступление ожидаемого сообщения (например, поступили результаты сортировки).
в) Завершение интервала ожидания.
5. Возможность многократного запуска. Возможность запуска нескольких копий одной задачи на одной платформе. При этом для каждой такой копии создается управляющий блок.
В целях экономии памяти может быть предусмотрено совместное использование одного и того же исполняемого кода для всех запущенных копий. Для этого программа должна корректно осуществлять доступ к глобальным ресурсам и поддерживать реентерабельность, т. е. возможность без негативных последствий временно прервать выполнение задачи, а затем возобновить её выполнение.
Каждая задача в течение своего жизненного цикла проходит 4 фазы:
1. Создание.
2. Загрузка.
3. Выполнение.
4. Завершение.
Под созданием понимается формирование информационных структур, описывающих данную задачу, а именно информационных структур дескриптора и контекста, и включение дескриптора новой задачи в очередь задач. Эти информационные структуры составляют образ задачи.
Под загрузкой понимается загрузка образа задачи.
Систем. прогр. ––––––> ВА (виртуальный адрес) –––MMU–––> ФА (физический адрес) MMU — memory management unit (блок управления памятью или устройство управления памятью).
——————————————————————————