известните модели за конкурентно и паралелно програмиране • Да предоставя практически-ориентиран сравнителен анализ • Да създам и разгледам реализации на представителни задачи, използващи тези модели
известните модели за конкурентно и паралелно програмиране • Да предоставя практически-ориентиран сравнителен анализ • Да създам и разгледам реализации на представителни задачи, използващи тези модели • Да дефинирам метод за избор на такъв модел
• Обзор, който не предполага предварително знание за моделите • Разглежда моделите както на високо (теоретично) ниво, така и конкретни техни реализации
• Обзор, който не предполага предварително знание за моделите • Разглежда моделите както на високо (теоретично) ниво, така и конкретни техни реализации • Анализ в контекста на типични проекти от софтуерната индустрия
• Обзор, който не предполага предварително знание за моделите • Разглежда моделите както на високо (теоретично) ниво, така и конкретни техни реализации • Анализ в контекста на типични проекти от софтуерната индустрия • Критерии за сравнение, които са важни в практиката
• Малко от тях разглеждат няколко модела • Още по-малко съпоставят и сравняват няколко модела • Повечето от тях се фокусират върху определени аспекти на моделите
• Малко от тях разглеждат няколко модела • Още по-малко съпоставят и сравняват няколко модела • Повечето от тях се фокусират върху определени аспекти на моделите • Практически липсват разработки, предоставящи метод за избор
въведение във всеки от тях • Избор на представителни задачи • Разглеждане на практически реализации за всеки модел • Анализ на базата на реализациите и допълнителни източници
въведение във всеки от тях • Избор на представителни задачи • Разглеждане на практически реализации за всеки модел • Анализ на базата на реализациите и допълнителни източници • Определяне на метод за избор на модел
върху повече от един ключ (например getAndUpdate и mergeAndSet) • Представителна за сървърни приложения, обработващи заявки • Променящо се състояние • Проблеми и решения, свързани с координация на достъп до общи структури от данни
данни за географски обекти • Големина - 41GiB за планетата, 19GiB за Европа и 86MiB за България • Поточна обработка • Представителна за проекти, обработващи големи масиви от данни ОТ OPENSTREETMAP
• База от данни чрез Софтуерна транзакционна памет в Clojure • Обработка на географски данни чрез нишки в Java • Обработка на географски данни чрез потоци в Java НА ПРЕДСТАВИТЕЛНИТЕ ЗАДАЧИ
• База от данни чрез Софтуерна транзакционна памет в Clojure • Обработка на географски данни чрез нишки в Java • Обработка на географски данни чрез потоци в Java • Обработка на географски данни чрез Комуникиращи последователни процеси в Go НА ПРЕДСТАВИТЕЛНИТЕ ЗАДАЧИ
грешки (safety) • Естественост за употреба • Производителност • Ниво на абстракция • Композируемост • Леснота за поддръжка • Възможност за разпределена работа ИЗБРАНИ ХАРАКТЕРИСТИКИ
грешки (safety) • Естественост за употреба • Производителност • Ниво на абстракция • Композируемост • Леснота за поддръжка • Възможност за разпределена работа • Възможност за употреба заедно с други модели ИЗБРАНИ ХАРАКТЕРИСТИКИ
Разделяне на подсистеми (при необходимост) 3. Определяне на подходящи модели за всяка подсистема, базирайки се на направения анализ НА МОДЕЛ ЗА КОНКУРЕНТНО И ПАРАЛЕЛНО ПРОГРАМИРАНЕ
Разделяне на подсистеми (при необходимост) 3. Определяне на подходящи модели за всяка подсистема, базирайки се на направения анализ 4. Избор на модел измежду подходящите за този вид система НА МОДЕЛ ЗА КОНКУРЕНТНО И ПАРАЛЕЛНО ПРОГРАМИРАНЕ