- •Алгоритмические основы программной инженерии: конспекты лекций глава 1. Основы.
- •1945 Г. — Джон фон Нейман сформулировал основные принципы построения и функционирования эвм. Методологии разработки программного обеспечения
- •Проектирование и алгоритмизация программ
- •Алгоритмы и свойства алгоритмов
- •Сложность алгоритма
- •Тестирование. Отладки
- •Справка chm
- •Комментирование
- •Доработка и сопровождение программы в процессе эксплуатации
- •Пример сложной разработки программного продукта "copras"
- •Экстремальная разработка программного обеспечения по концепции xp
- •Стратегия rup Rational Unified Process
- •Ниже представлена самостоятельная работа — пример реализации диаграммы компонентов
- •Ниже представлена самостоятельная работа — пример реализации диаграммы развертывания
- •Системное программное обеспечение эвм
- •Домашнее задание: ответить на вопрос: «Чем отличаются кластеры от секторов?»
- •Домашнее задание: ответить на вопрос: «Какого размера кластер может быть?»
- •Домашнее задание: ответить на вопрос: «Чем стек отличается от индексированного массива?»
- •Интерфейсная оболочка для взаимодействия пользователя с ос и операционными средами
- •Система программирования (ide — Integrated Development Environment).
- •Определение ядра операционной системы
- •Классификация ос по функциональности
- •Что рекомендуется знать?
- •Домашнее задание: прочитать. Pipe
Классификация ос по функциональности
По количеству пользователей, одновременно обслуживаемых системой, ОС подразделяются на: — Однопользовательские. — Многопользовательские [существует некая поддержка учетных записей].
По числу задач, одновременно выполняемых под управлением ОС, системы подразделяются на: — Однозадачные. — Многозадачные.
Наиболее характерными критериями эффективности являются: 1. Пропускная способность (количество задач, выполняемых в (за) единицу времени). 2. Удобство работы пользователей с возможностью интерактивной работой одновременно с несколькими приложениями на одной машине. 3. Реактивность системы, т. е. её способность выполнять задачи в рамках заранее заданных интервалов времени — между запуском программы и получением результата.
По критериям эффективности ОС подразделяются на: 1. Системы пакетной обработки. Пример. ОС ЕС ЭВМ (операционная система единой системы электронных вычислительных машин; применялся язык JCL — Job Control Language; разрабатывалась в 1980-х годах). Достоинства: максимальная пропускная способность. Недостатки: низкая эффективность работы пользователя (по сравнению с системами разделения времени). 2. Системы разделения времени. Пример. UNIX (семейство переносимых, многозадачных и многопользовательских операционных систем, которые основаны на идеях оригинального проекта AT&T Unix, разработанного в 1970-х годах в исследовательском центре Bell Labs Кеном Томпсоном, Деннисом Ритчи и другими), OpenVMS (серверная операционная система, разработанная во второй половине 1970-х годов компанией Digital Equipment Corporation для серии компьютеров VAX; применяется для построения отказоустойчивых систем высокой готовности; среди заказчиков OpenVMS преобладают оборонные структуры и банки, телекоммуникационные компании, предприятия непрерывного цикла (АЭС)). Достоинства: удобство и эффективность работы пользователя. Недостатки: (1) обладает меньшей пропускной способностью, чем системы пакетной обработки, (2) имеются накладные расходы вычислительной мощности на более частое переключение процессора с задачи на задачу. 3. Системы реального времени. Пример. QNX (разработка осуществлялась в 1980-х; платная; разработчик Blackberry). Достоинства: высокий уровень реактивности системы. Недостатки: приходится решать проблемы привязки внутрисистемных событий к моментам времени, своевременного захвата и освобождения системных ресурсов, синхронизации вычислительных процессов, буферизации потоков данных и т. п.
Системы пакетной обработки предназначены для обеспечения максимальной пропускной способности. Решение максимального количества задач в единицу времени. Вначале формируется пакет заданий [который затем выполняется]. Каждое задание содержит требования к системным ресурсам. Из этого пакета заданий формируется pool одновременно выполняемых задач. Для одновременного выполнения выбираются задачи с требованиями к разным ресурсам, чтобы обеспечивалась сбалансированная загрузка всех системных ресурсов. Пока одна задача ожидает какого-либо события (например, разблокирования файла или ввод данных с клавиатуры), процессор не простаивает, а выполняет другую задачу. В системах пакетной обработки переключение процессора с одной задачи на другую происходит по инициативе самой активной (выполняемой) задачи. Например, при блокировке в ожидании какого-либо события. В связи с этим одна задача может надолго занимать процессор и интерактивный режим взаимодействия с ЭВМ станет невозможным. Взаимодействие пользователя с вычислительной машиной, на которой установлена пакетная ОС, сводится к тому, что пользователь передает задание оператору, а после выполнения всего пакета заданий получает результат. Достоинство: позволяет эффективно занимать аппаратное обеспечение. Недостаток: невозможно гарантировать выполнения того или иного задания в течение определенного периода времени.
Системы разделения времени.
Каждому приложению попеременно выделяется квант (~100 мс) процессорного времени, по истечении которого ОС принудительно приостанавливает [пауза, но не остановка!] выполнение приложения, не дожидаясь добровольного освобождения им процессора.
Система разделения времени обладает меньшей пропускной способностью по сравнению с пакетными ОС, так как на выполнение принимается каждая запущенная пользователем задача, а не та, которая выгодна системе. Кроме того, производительность снижается из-за возрастающих накладных расходов вычислительной мощности на более частое переключение процессора с задачи на задачу.
Системы реального времени для управления аппаратно-программными комплексами, для которых должны быть выполнены требования по их реактивности.
Критерием эффективности таких систем является способность выполнения критически важных задач в течение заранее заданных временных интервалов.
Для разработки приложений реального времени используются средства профилирования (т. е. точного измерения времени выполнения конкретных методов).
— FIFO («первым пришел – первым ушел»). — Round Robin ("круговая диспетчеризация").
Если задержка реакции системы на события недопустима, то ОС называется системой жесткого реального времени (hard real-time system). В противном случае — системой мягкого реального времени (soft real-time system).
ДОМАШНЕЕ ЗАДАНИЕ: прочитать, понять разницу, привести примеры. Системы жесткого и мягкого реального времени.
============================ ОТВЕТ НА ВОПРОС ============================
Основное требование к системе реального времени – своевременность обработки событий. Реакция на событие должна уложиться в пределы заранее определенного лимита времени, а превышение этого лимита или опоздание считается программным сбоем.
Система называется жесткой, если "система не должна опаздывать никогда", и мягкой, если "система не должна опаздывать, как правило".
В жесткой системе:
-
опоздания не допускаются ни при каких обстоятельствах;
-
в случае опоздания результаты обработки уже никому не нужны;
-
опоздание считается катастрофическим сбоем;
-
стоимость опоздания бесконечно велика.
Пример. система управления движением воздушных судов. Очевидно, что бессмысленно посылать команду на изменение курса самолета или космической станции после столкновения.
В мягкой системе:
-
повышается стоимость опоздания;
-
допускается низкая производительность в случае опоздания.
Пример. подсистема сетевого интерфейса. Если подтверждение о приеме посланного пакета не поступило после истечения определенного времени, то пакет считается потерянным. В этом случае можно просто повторить посылку пакета и примириться со значительным снижением производительности системы.
======================================================================
Задача — набор операций, предназначенных для выполнения логически-законченной функции системы.
Два типа задач: — процессы (Process). — потоки (Thread).
Процесс — это отдельно загружаемый программный модуль, который во время исполнения имеет в памяти отдельное адресное пространство для данных.