Системное программирование Состояние и тенденции Директор ИСП РАН академик Иванников В.П. ivan@ispras.ru.

Презентация:



Advertisements
Похожие презентации
Системное программирование Состояние и тенденции Директор ИСП РАН академик Иванников В.П. Software Engineering Conference (Russia) 2008.
Advertisements

Администрирование информационных систем Лекция 4. Система управления базами данных.
Корректность и надежность программного обеспечения Состояние и тенденции Директор ИСП РАН академик Иванников В.П.
Практический опыт реализации требований по защите персональных данных МУ Информационно-методический центр Ходячих Андрей Викторович.
Компьютерная безопасность: современные технологии и математические методы защиты информации.
Магистрант кафедры телекоммуникаций и информационных технологий Комиссар Дмитрий Семёнович Руководители: Доцент Резников Геннадий Константинович.
СИСТЕМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ. Системное программное обеспечение - это комплекс программ, которые обеспечивают эффективное управление компонентами.
Разработка ПО. 1 Базовые компетенции На стороне сервера: JBoss 4.X-7.X application server Microsoft IIS Apache Tomcat 7 web server Java: J2EE 1.6, EJB.
Опыт реализации отказоустойчивого сервера приложений и хранилища данных на базе СУБД ЛИНТЕР Михаил Ермаков, Дмитрий Мухоедов, РЕЛЭКС.
Проблемы обеспечения безопасности приложений Тема 20.
Направление «Информатика и вычислительная техника» Бакалавр по направлению подготовки Информатика и вычислительная техника науки должен решать следующие.
Операционная система MS-DOS Не управляя оборудованием, программа остается всего лишь литературным произведением, написанным на особом формальном языке.
Требования к доверенной третьей стороне в интегрированной информационной системе Евразийского экономического союза.
Приготовил: Емельянов Александр. Введение С конца 80-ых начала 90-ых годов проблемы связанные с защитой информации беспокоят как специалистов в области.
Презентация на тему "Программное обеспечение информационных технологий"
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ.
ИНФОРМАЦИОННАЯ БЕЗОПАСНОСТЬ ОФИСА ИНФОРМАЦИОННАЯ БЕЗОПАСНОСТЬ ОФИСА Антивирусные РЕШЕНИЯ Антивирусные РЕШЕНИЯ План обеспечения соответствия как механизм.
Информационно-аналитическая система информационной безопасности в системах массовых услуг (электронное правительство) И.А.Трифаленков Директор по технологиям.
Модель угроз безопасности персональных данных при их обработке в информационных системах АПЭК Выполнил студент Группы 11 инф 112: Сотников П.В. Проверил.
Технологии разработки программного обеспечения Исследования Института системного программирования РАН к.ф.-м.н В.В.Кулямин.
Транксрипт:

Системное программирование Состояние и тенденции Директор ИСП РАН академик Иванников В.П.

Технологии разработки ПО(1) Рост размеров кода ОС СистемаГодРазмер (10 6 LOC)Размер команды Windows Windows NT Windows NT Windows Windows XP Linux Kernel ,7 Open Solaris20059,7 Mac OS X Windows Vista2007> 50

Технологии разработки ПО(2) Другие показатели развития Эскалация размеров и сложности Увеличение функциональных возможностей Рост объемов перерабатываемых данных Расширение использования параллелизма и распределенности Рост требований к переносимости и совместимости

Технологии разработки ПО(3) Текущие достижения Объектно-ориентированные методы анализа и проектирования, языки программирования Компонентные технологии Стандартизация и уточнение семантики языков программирования и библиотечных интерфейсов Широкое использование итеративных процессов разработки Расширение области применения формальных методов (model checking и др.)

Технологии разработки ПО(4) Проблемы Количество ошибок на 1000 строк неоттестированного кода остается неизменным Программные системыЧисло ошибок на 1000 строк кода Среднее по индустрии (McConnell)15-50 Microsoft (до тестирования)10-20 NASA JPL (до тестирования)6-9 Linux~7 Microsoft (продукты)0.5 NASA JPL (продукты)0.003 Формальные методы разработки и анализа применимы лишь к небольшим системам

Технологии разработки ПО(5) Новые вызовы Распределенные адаптивные и динамически перестраивающиеся системы Масштабируемые технологии разработки и анализа свойств ПО на базе формальных методов –Интеграция различных методов верификации: дедуктивный анализ, проверка моделей, тестирование на основе формальных моделей, статический анализ Технологии разработки распределенных систем с заданными характеристиками по многим показателям качества –Выполнение разнородных требований: корректность, надежность, защищенность, производительность, удобство использования и развития Формализация стандартов на программные интерфейсы разных уровней

Глобальная и межпроцедурная оптимизация, межпроцедурный анализ указателей Исследование гнезд циклов на распараллеливаемость: Омега-тест, изменение порядка циклов в гнезде Машинно-ориентированная оптимизация: распределение регистров, планирование кода Языки нового поколения (Java, C#) Совмещение интерпретации и динамической компиляции (JIT), адаптивная оптимизация. LLVM и его интерпретатор (Apple): адаптивная оптимизация для C и C++ Методы анализа успешно применяются для решения проблем в смежных областях: обратная инженерия, поиск уязвимостей безопасности Анализ программ (1) Текущие достижения

Разрыв между возможностями аппаратуры (параллелизм на всех уровнях) и возможностями анализа Расширение области применения специализированных платформ: Cell, GPU, FPGA Низкая «продуктивность» разработки приложений для параллельных систем: отсутствие языков высокого уровня и соответствующих технологий (HPF, Cilk (MIT), UPC (Berkeley) не привели к успеху) программирование с использованием MPI (распределенная память) и OpenMP (общая память) Отсутствие стандартов и устоявшихся технологий для специализированных платформ Анализ программ (2) Проблемы

Исследование и моделирование различных классов приложений (dwarf - Berkeley) и аппаратных платформ с целью разработки адекватных средств (языки, инструменты), обеспечивающих эффективное отображение приложения на конкретную аппаратную платформу Новые языки параллельного программирования: X10 (IBM), Chapel (Cray), Fortress (Sun) Технологии и соответствующие среды поддерживающие разработку на уровне MPI/OpenMP Технологии программирования для специализированных платформ: низкоуровневые: CUDA (NVidia), CAL (AMD) языки высокого уровня: Brook+ (AMD), Ct (Intel) Анализ программ (3) Тенденции решения проблем

Управление данными (1) Текущие достижения СУБД (Oracle, IBM, Microsoft и т.д.) –эффективная и масштабируемая обработка баз данных объемом в сотни терабайт и даже петабайт; –развитые средства оптимизации запросов на основе оценочных методов; –встроенные в серверы средства OLAP и data mining; –полнотекстовый поиск и поддержка XML; –параллельные серверы Управление данными в Internet –развитые средства полнотекстового поиска по ключевым словам; –собственные средства управления данными, хорошо распараллеливающиеся на основе механизма map-reduce (Google, Yahoo!)

Управление данными (2) Проблемы Сложность администрирования, настройки и использования СУБД –возрастающий дефицит специалистов; –невозможность полноценного использования SQL Сложность разработки приложений баз данных –impedance mismatch Недостаточность методов поиска в Internet по ключевым словам –невозможность использования семантического поиска; –незрелость средств управления данными Неполное использование новых возможностей аппаратуры –многоядерные и многопотоковые архитектуры, основная память большого объема, флэш-память и т.д.

Управление данными (3) Тенденции решения проблем Переход от универсальных к специализированным системам управления данными –XML-СУБД, системы с хранением данных «по столбцам» и т.д. Разработка новых языков программирования, освобождающих разработчиков от проблемы «impedance mismatch» –Ruby-on-Rails, LINQ Повышение уровня семантики поиска в Internet –использование массивных структурированных корпусов текстов для автоматического построения онтологий

Управление данными (4) Clouds Computing Публично доступные службы для запуска программ Позволяют пользоваться параллельной аппаратурой для решения, в частности, задач, связанных с обработкой больших объемов данных Имеющиеся параллельные СУБД не могут масштабироваться до тысяч параллельных узлов Необходимо понять, как и для чего разумно использовать «облачные вычисления» при управлении данными и разработать соответствующие программные системы

Проблемы компьютерной безопасности (1) Обеспечение компьютерной безопасности – одна из наиболее актуальных задач системного программирования. Рынок ПО для обеспечения защиты информации в последние годы растет гораздо быстрее, чем весь рынок ИТ. Причины: 1.Глобализация информационного пространства (широкое распространение сетевых технологий, интенсивное развитие средств телекоммуникации); 2. Внедрение электронных средств хранения и обработки информации во все сферы экономической, политической и военной деятельности (документооборот, связь, базы данных, системы поддержки принятия решений и др.); 3. Ускорение и удешевление разработки ПО в ущерб его качеству в условиях острой конкуренции на рынке ИТ; 4. Бытовая компьютеризация (средства мобильной связи, беспроводные сети и пр.)

Проблемы компьютерной безопасности (2) Угрозы 1.Выведение из строя ПО (распространение вредоносных программ, компьютерных «вирусов», троянских программ, подмена мобильного кода). 2.Выведение из строя компьютерных сетей (создание перегрузок в сети, сетевые вторжения) 3.Создание и распространение ПО со скрытыми дефектами (внедрение в ПО закладок, встроенных уязвимостей и пр.). 4.Нарушение конфиденциальности и целостности информации (несанкционированный доступ к базам данных и электронным архивам, распространение программ-шпионов, взлом криптосистем). 5.Компьютерное пиратство и нарушение авторских прав на ПО (нелегальное копирование и распространение ПО).

Проблемы компьютерной безопасности (3) Средства обеспечения 1.Антивирусные программы, интеллектуальные системы мониторинга, системы защиты от утечки данных 2.Системы обнаружения и предотвращения сетевых вторжений (сетевой мониторинг, межсетевые экраны, шлюзы, брандмауэры). 3.Использование ПО с открытым кодом (Linux vs Microsoft). 4.Сертификация и аудит ПО, системы верификации и поиска уязвимостей в программах. 5.Политики безопасности в информационных системах (разграничение доступа, аутентификация и авторизация). 6.Криптографические средства защиты информации (системы шифрования, электронной подписи, криптографические протоколы, обфускация программ и пр.). 7.Отслеживание распространения ПО (водяные знаки, отпечатки пальцев).

Проблемы компьютерной безопасности (4) Направления исследований Теоретические исследования: новые математические модели информационных систем, формализующие ключевые понятия компьютерной безопасности (вторжение, аномальное поведение, стойкая защита и др.), методы и алгоритмы информационной защиты ПО, оценки их эффективности и стойкости. Прикладные разработки: инструментальные средства проверки безопасности ПО, открытые ОС со встроенным механизмом обеспечения информационной безопасности, компьютерные сети, ориентированные на обеспечение коллективной безопасности абонентов.

Примеры спецификаций specification double sqrt (double x) { pre { return x >= 0;} post { return sqrt*sqrt == x;} } invariant Triangle() { return x + y >= z && x + z >= y && y + z >= x; }