- •Термины и определения (5.09.2006)
- •Архитектурная платформа
- •Стековая
- •Операционная платформа
- •Структура ос
- •Языки программирования
- •Основные характеристики языков программирования
- •Классификация языков программирования
- •Инструментальные средства
- •Методологии программирования
- •Методология императивного программирования.
- •Методология функционального программирования.
- •Методология структурного императивного программирования.
- •Методология программирования, управляемого потоками данных.
- •Методология доступ-ориентированного программирования.
- •Методология нейронно-сетевого программирования.
- •Технологии программирования (3.10.2006)
- •Объектный подход.
- •Компонентный подход и развитие case-технологий.
- •Основные технологические подходы
- •Каскадные (водопадные)
- •Каскадный подход с перекрывающимися процессами.
- •Генетические технологические подходы.
- •Конкретизирующее программирование.
- •Подходы на основе формальных преобразований.
- •Подходы быстрой разработки (прототипирование).
- •Подходы исследовательского программирования.
- •Общинная разработка
- •Жизненный цикл по
- •Классические процессы жизненного цикла
- •Стадии разработки, регламентированные гост 19.102 «Стадии разработки»
- •Модели жизненного цикла
- •Классические и технологические процессы.
- •1. Возникновение и исследование идеи.
- •2. Управление идеей
- •3. Формирование требований к программному продукту.
- •4. Определение требований к пс.
- •Спецификация качества пс
- •Функциональная спецификация
- •Проектирование (разработка архитектуры пс)
- •Основные классы архитектур.
- •Методы разработки структуры программы
- •I. Метод восходящей разработки:
- •II. Метод нисходящей разработки:
- •III. Конструктивный подход
- •IV. Архитектурный подход
- •Программный инструментарий, применяемый в процессах анализа требований проектирования.
- •Тестирование и отладка.
- •Отладка.
- •Виды ошибок.
- •Методы и виды тестирования.
- •Комплексное тестирование.
- •Ручное тестирование.
- •Структурное тестирование (тестирование по маршрутам).
- •Особенности потокового графа
- •Функциональное тестирование (тестирование черного ящика).
- •Тестирование, применяемое для локализации ошибок.
- •Критерии завершения тестирования и отладки.
- •Оценочное тестирование
- •Инструментарий, применяемый для тестирования и отладки.
- •Ввод программы в действие
- •Эксплуатация и сопровождение.
- •Завершение эксплуатации
- •Разработка интерфейсов
Структура ос
Структуру ОС можно определить как состоящую из ядра и вспомогательных модулей. Ядро выполняет основные функции: управление процессами, памятью, устройствами ввода/вывода. Код ядра выполняется в привилегированном режиме. Вспомогательные модули расширяют возможности ОС (это приложения, оболочки, утилиты и др.)
По типу архитектуры ядра ОС делятся на:
ОС с монолитным ядром. Ядро – одна программа, работающая в привилегированном режиме.
ОС со слоистым ядром. Компоненты ОС образуют уровни с хорошо продуманной функциональностью и интерфейсом. Также работает в привилегированном режиме.
ОС с микроядром. Микроядро выполняет минимум функций по управлению аппаратурой (обычно реализуется на ассемблере, т.е. они являются машинно-зависимыми). Выполняет некоторые функции управления процессами и обработкой прерываний. Система клиент-сервер.
ОС с экзоядром. Позволяет собрать ОС с использованием большой библиотеки функций. В ядре реализованы лишь минимально необходимые функции для реализации этой сборки и взаимодействия программ.
По количеству и качеству реализуемых функций ОС делятся на:
Дисковые ОС. Обычно являются однозадачными, представляют собой набор резидентных программ. После загрузки приложения в память DOS передает ей управление. ОС – DOS.
ОС общего назначения. Максимум функций, рассчитаны на интерактивную работу одного или нескольких пользователей в режиме разделения времени. Требования ко времени реакции системы не предъявлены (минимальны). Защита пользовательских данных.
ОС – UNIX, Windows 2000+.
Системы виртуальных машин. Допускают одновременную работу нескольких программ. Характерен режим разделения времени.
ОС – Window и др.
Системы реального времени. Для обеспечения разработки приложений реального времени – программ, управляющих некомпьютерным оборудованием. Многопоточность, гарантированное время реакции, простой доступ к таймеру и внешним устройствам.
Системы кросс-разработки. Для разработки программ двухмашинной конфигурации.
Системы промежуточных типов. Все остальные.
По родственным связям ОС делятся на:
Семейство ОС для больших компьютеров. ОС: OS/390, IBM VM;
Семейство Unix;
CP/M.
В настоящее время доминируют 2 класс ОС:
Windows. На персональных компьютерах, в сетях, на клиентских компьютерах. Удобный графический интерфейс. Пользователи – от новичков до профессионалов. (-) – ненадежны;
UNIX. На мощных серверах и рабочих станциях. Используются в качестве серверной ОС. Предназначены в основном для профессионалов. Основная цель – создание окружения, удобного для развития программ.
(+) – достаточно надежны. Томпсон и Ритчи.
Выбор ОС зависит от предъявляемых требований и часто является нетривиальной задачей. Пример:
Задача управления промышленным или исследовательским оборудованием заставляют делать выбор между специализированными ОС реального времени и некоторыми ОС общего назначения, которые тоже позволяют выполнить эти работы.
Задача автоматизации конторской работы не предъявляется особых требований к надежности, производительности и времени реакции системы.
Одной из проблем ряда ОС является их закрытость. Альтернативным решением по отношению к закрытым платформам (фирменный интерфейс) является концепция открытых систем. Эту задачу предлагают решить с помощью открытых стандартов:
Стандартные сетевые протоколы (TCP/IP);
Стандартные форматы данных (пока единого формата нет);
Стандартные интерфейсы (один из первых – стандарт ANSI).