1 / 13

Системное программирование Состояние и тенденции

Системное программирование Состояние и тенденции. Директор ИСП РАН академик Иванников В.П . ivan@ispras.ru. Software Engineering Conference (Russia) 2008 Москва, 23 октября. Технологии разработки ПО(1) Рост размеров кода ОС. Технологии разработки ПО(2) Другие показатели развития.

leo-larson
Download Presentation

Системное программирование Состояние и тенденции

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Системное программированиеСостояние и тенденции Директор ИСП РАН академик Иванников В.П. ivan@ispras.ru Software Engineering Conference (Russia) 2008 Москва, 23 октября

  2. Технологии разработки ПО(1)Рост размеров кода ОС

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

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

  5. Технологии разработки ПО(4)Проблемы • Количество ошибок на 1000 строк неоттестированного кода остается неизменным • Формальные методы разработки и анализа применимы лишь к небольшим системам

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

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

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

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

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

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

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

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

More Related