 
        
        - •Термины и определения (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). 
