НИС Распределенные системы (осень 2016) — различия между версиями
Материал из Wiki - Факультет компьютерных наук
Sandello (обсуждение | вклад) |
Sandello (обсуждение | вклад) |
||
Строка 56: | Строка 56: | ||
* Опишите протокол синхронизации часов NTP. | * Опишите протокол синхронизации часов NTP. | ||
* Какие трудности возникают на практике при синхронизации часов? | * Какие трудности возникают на практике при синхронизации часов? | ||
− | |||
− | |||
==== 30 сентября ==== | ==== 30 сентября ==== | ||
− | + | Синхронизация событий (продолжение). Когерентность памяти. | |
+ | |||
+ | Материалы: | ||
+ | * ''Li, Hudak'' -- Memory coherency in shared virtual memory systems ((https://yadi.sk/i/gXssi_hRvjUY6 pdf)) | ||
+ | |||
+ | Вопросы для самопроверки: | ||
+ | * Опишите плюсы и минусы использования общей виртуальной памяти в распределенных системах. | ||
+ | * Что такое когерентность? | ||
+ | * Опишите предлагаемые в статье протоколы обеспечения когерентности виртуальной памяти и их различия. |
Версия 15:34, 26 сентября 2016
Содержание
Информация про семинар
В рамках научно-исследовательского семинара по распределенным системам изучаются основные понятия, принципы и результаты предметной области.
[TBD: Оценка за НИС, отчетность, курсовые работы]
Занятия
2 сентября
Вводное занятие.
Материалы:
- Mockapetris, Dunlap -- Development of the domain name system (pdf)
9 сентября
Отмена занятия.
16 сентября
Сетевое взаимодействие в распределенных системах.
Материалы:
- Google Code University -- Introduction to Distributed Systems Design (pdf)
- Birrell, Nelson -- Implementing remote procedure calls (pdf)
- Eriksen -- Your server as a function (pdf)
- (по желанию) Liskov -- Promises: linguistic support for efficient asynchronous procedure calls in distributed systems (pdf)
- (по желанию) Futures/Promises в C++: интерфейс (1, 2, 3), рабочая имплементация (1).
Вопросы для самопроверки:
- Какие классы сетевых ошибок встречаются в распределенных системах?
- Что такое удаленный вызов (Remote Procedure Call)?
- Опишите основные фазы исполнения удаленного вызова согласно оригинальной статье.
- Как осуществляется связывание вызывающей и вызываемой стороны?
- Как осуществляется передача аргументов и результата между вызывающей и вызываемой сторонами?
- Каким механизмом обеспечивается гарантия однократного исполнения вызова?
- Можно ли передавать указатели в удаленные вызовы?
- Какие новые классы ошибок появляются при удаленных вызовах и отсутствуют при локальных вызовах?
- Какие предпосылки в оригинальном дизайне RPC стоит пересмотреть с учетом прогресса за последние 30 лет?
- Зачем нужна концепция futures/promises? Чем отличается удаленный вызов с использованием future/promise и без?
- Как использование futures/promises влияет на структуру асинхронной программы?
- Какую роль играют сервисы, фильтры в Finagle? Перечислите аргументы "за" и "против" использования данных абстракций.
- Какие другие паттерны сетевого взаимодействия вы можете представить помимо RPC?
23 сентября
Время, часы, синхронизация событий.
Материалы:
- Lamport -- Time, clocks and the ordering of events in a distributed system (pdf)
- Fidge -- Timestamps in message-passing systems that preserve the partial ordering (pdf)
- Mills -- Internet time synchronization: the network time protocol (pdf)
Вопросы для самопроверки:
- Почему физические часы не используются для синхронизации в распределенной системе?
- Какие события называются конкурентными (одновременными)?
- Приведите пример исполнения распределенной системы и несколько различных логических часов, определяющих непротиворечивый порядок событий.
- Опишите распределенный алгоритм mutual exclusion и докажите его корректность.
- Опишите механизм точных часов, сохраняющих частичный порядок на событиях (векторные часы).
- Опишите протокол синхронизации часов NTP.
- Какие трудности возникают на практике при синхронизации часов?
30 сентября
Синхронизация событий (продолжение). Когерентность памяти.
Материалы:
- Li, Hudak -- Memory coherency in shared virtual memory systems ((https://yadi.sk/i/gXssi_hRvjUY6 pdf))
Вопросы для самопроверки:
- Опишите плюсы и минусы использования общей виртуальной памяти в распределенных системах.
- Что такое когерентность?
- Опишите предлагаемые в статье протоколы обеспечения когерентности виртуальной памяти и их различия.