Вход

Программный проект на тему: Разработка фреймворка для практических заданий по распределенным системам

Рекомендуемая категория для самостоятельной подготовки:
Курсовая работа*
Код 591357
Дата создания 2022
Страниц 20
Мы сможем обработать ваш заказ (!) 23 сентября в 12:00 [мск]
Файлы будут доступны для скачивания только после обработки заказа.
1 240руб.
КУПИТЬ

Содержание

Содержание
1 Аннотация3
1.1Аннотация3
1.2 Annotation3
1.3Ключевые слова3
2 Введение3
2.1Актуальность3
2.2Постановка задачи4
3 Обзор существующих решений5
3.1DSLabs: model checking для тестирования решений студентов5
3.2IronFleet: Floyd-Hoare тестирование6
3.3 Verdi: набор инструментов для написания и проверки распределенных алгоритмов7
3.4Оценка рассматриваемых работ7
3.5Описание существующей тестирующей системы9
4 Описание предлагаемого алгоритма10
4.1Тестирование с помощью Model Checking10
4.2Необходимые данные для реализации Model Checking10
4.3Подмена состояний процессов11
4.4Обход состояний системы11
4.5Ускорение работы алгоритма тестирования11
4.6Проверка состояний системы12
4.7Отладка решения12
5 Результаты13
5.1Обход графа состояний13
5.2Время работы алгоритма тестирования13
5.3Тесты14

5.3.1 Тесты на алгоритм Broadcast14

5.3.2 Тесты на алгоритм Membership16

5.3.3 Тесты на алгоритм kv-sharding17
6 Заключение18
Список литературы20

Введение

2 Введение


2.1 Актуальность

Современные приложения должны выдерживать большие нагрузки и быть постоянно доступными для пользователей. Для удовлетворения этих потребностей приходится разделять выполнение запросов на несколько компьютеров, ведь в текущих реалиях мощности одного хоста может быть недостаточно, также он может отключаться или сеть может стать недоступной. При таком разделении возникает распределенная система, это множество компьютеров, которые работают одновременно и выглядят как один для пользователя.

Для правильной работы распределенных систем необходимо научиться координировать компьютеры при выполнении запросов, для этого придуманы специальные алгоритмы, которые будут помогать поддерживать консистентность данных и отказоустойчивость хостов. Примерами таких алгоритмов являются: алгоритмы выбора лидера, алгоритмы консенсуса, алгоритмы репликации и тому подобные.

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

Фрагмент работы для ознакомления

Добрый день! Уважаемые студенты, Вашему вниманию представляется курсовая работа на тему: «Программный проект на тему Разработка фреймворка для практических заданий по распределенным системам.»

Оригинальность работы 73%

1 Аннотация


1.1 Аннотация

Распределенные системы широко используются в современных приложениях. Чтобы написать правильный алгоритм для распределенных систем, разработчикам нужны специальные методы их тестирования. То же самое касается студентов, обучающихся по специальностям, связанным с программированием распределенных систем. В данной работе модифицируется фреймворк dslib, предназначенный для тестирования алгоритмов студентов. Основная суть фреймворка заключается в возможности моделировать поведение сети и проверять состояние каждого процесса на соответствие определенному набору инвариантов. Результатом работы является модификация фреймворка dslib, реализованная в системе тестирования работ студентов.

1.2 Annotation

Distributed systems are widely used in modern applications. To write the correct algorithm for distributed systems developers need special methods to test them. Same thing for students who study in specialities related to the programming of distributed systems. In this paper, we modify the dslib framework designed for testing student algorithms. The main essence of the framework is the ability to model the behavior of the network and check the state of each process for compliance with a certain set of invariants. The result of the work is a modification of the dslib framework implemented in the system of testing students ' works.

1.3 Ключевые слова

Распределенные системы; Тестирование; Распределенные алгоритмы; model checking; distributed systems;

Список литературы

Список литературы

[1] E. Michael, D. Woos, T. Anderson, M. D. Ernst, and Z. Tatlock. 2019. Teaching Rigorous Distributed Systems With Efficient Model Checking. In EuroSys.

(https://homes.cs.washington.edu/~mernst/pubs/dslabs-eurosys2019.pdf)

[2] Chris Hawblitzel, Jon Howell, Manos Kapritsos, Jacob R. Lorch, Bryan Parno, Michael L. Roberts, Srinath T. V. Setty, and Brian Zill. 2015. IronFleet: proving practical distributed systems correct. In SOSP. ACM, 1–17 (https://www.microsoft.com/en-us/research/wp-content/uploads/2015/10/ironfle et.pdf)

[3] J. R. Wilcox, D. Woos, P. Panchekha, Z. Tatlock, X. Wang, M. D. Ernst, and T. E. Anderson. Verdi: a framework for implementing and formally verifying distributed systems. In Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 357– 368, 2015. (https://www.researchgate.net/publication/282484874_Verdi_A_Framework_for _Implementing_and_Formally_Verifying_Distributed_Systems)

Очень похожие работы
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.00453
© Рефератбанк, 2002 - 2024