Аноним

Регистры: различия между версиями

Материал из WEGA
 
(не показано 5 промежуточных версий 1 участника)
Строка 27: Строка 27:
'''Система временных меток'''
'''Система временных меток'''


Для мультирайтерной общей переменной необходимо только, чтобы каждый процесс отслеживал, какой процесс последним произвел в нее запись. В связи с этим возникает общий вопрос: может ли каждый процесс отслеживать порядок последних записей всех процессов? Израэли и Ли начали исследование этой темы в работе [14], после чего в важной статье [5] они подняли и решили вопрос о более общем и универсально применимом понятии ограниченной системы временных меток для отслеживания порядка событий в параллельной системе. В системе временных меток каждый процесс владеет ''объектом'' – абстракцией набора общих переменных. Одним из требований к системе является определение временного порядка, в котором записываются объекты. Для этого каждому объекту присваивается ''метка'' (также называемая ''временной меткой''), в которой записывается последнее (относительное) время, когда в него процессом-владельцем производилась запись. Процессы присваивают метки своим соответствующим объектам таким образом, чтобы эти метки отражали порядок операций записи в реальном времени. Такие системы должны поддерживать две операции, а именно ''маркировку'' (присваивание меток) и ''сканирование''. Выполнение операции маркировки (Labeling) присваивает объекту новую метку, а выполнение операции сканирования (Scan) позволяет процессу определить порядок, в котором записаны все объекты, то есть возвращает набор помеченных объектов, упорядоченных по времени. Проблемы возникают в системах, в которых операции могут выполняться ''параллельно'', перекрываясь друг с другом. Более того, выполнение операций должно производиться ''без ожидания'', то есть каждая операция будет выполнять ограниченное количество своих шагов (количество обращений к общему пространству), независимо от наличия других операций и их относительных скоростей. Израэли и Ли [5] построили битово-оптимальную систему ограниченных временных меток для ''последовательного'' выполнения операций. Предложенная ими система последовательных временных меток была опубликована в упомянутом журнале, однако предварительное представление системы параллельных временных меток в материалах конференции, более подробная версия которой была распространена в виде рукописи, не было опубликовано в окончательном виде. Первое общепризнанное решение ''параллельного'' случая системы ограниченных временных меток было получено в работе Долева и Шавита [3]. Их построение относится к типу, представленному в [5], и использует общие переменные размера O(n), где n – количество процессов в системе. Каждая маркировка требует O(n) шагов, каждое сканирование – <math>O(n^2 \; log \; n)</math> шагов. (Под «шагом» понимается обращение к битовой переменной размером O(n)). В работе [4] неограниченное построение из [14] было исправлено и расширено для получения эффективной версии более общего понятия ограниченной параллельной системы временных меток.
Для мультирайтерной общей переменной необходимо только, чтобы каждый процесс отслеживал, какой процесс последним произвел в нее запись. В связи с этим возникает общий вопрос: может ли каждый процесс отслеживать порядок последних записей всех процессов? Израэли и Ли начали исследование этой темы в работе [14], после чего в важной статье [5] они подняли и решили вопрос о более общем и универсально применимом понятии ограниченной системы временных меток для отслеживания порядка событий в параллельной системе. В системе временных меток каждый процесс владеет ''объектом'' – абстракцией набора общих переменных. Одним из требований к системе является определение временного порядка, в котором записываются объекты. Для этого каждому объекту присваивается ''метка'' (также называемая ''временной меткой''), в которой записывается последнее (относительное) время, когда в него процессом-владельцем производилась запись. Процессы присваивают метки своим соответствующим объектам таким образом, чтобы эти метки отражали порядок операций записи в реальном времени. Такие системы должны поддерживать две операции, а именно ''маркировку'' (присваивание меток) и ''сканирование''. Выполнение операции маркировки присваивает объекту новую метку, а выполнение операции сканирования позволяет процессу определить порядок, в котором записаны все объекты, то есть возвращает набор помеченных объектов, упорядоченных по времени. Проблемы возникают в системах, в которых операции могут выполняться ''параллельно'', перекрываясь друг с другом. Более того, выполнение операций должно производиться ''без ожидания'', то есть каждая операция будет выполнять ограниченное количество своих шагов (количество обращений к общему пространству), независимо от наличия других операций и их относительных скоростей. Израэли и Ли [5] построили битово-оптимальную систему ограниченных временных меток для ''последовательного'' выполнения операций. Предложенная ими система последовательных временных меток была опубликована в упомянутом журнале, однако предварительное представление системы параллельных временных меток в материалах конференции, более подробная версия которой была распространена в виде рукописи, не было опубликовано в окончательном виде. Первое общепризнанное решение для ''параллельного'' случая системы ограниченных временных меток было получено в работе Долева и Шавита [3]. Их построение относится к типу, представленному в [5], и использует общие переменные размера O(n), где n – количество процессов в системе. Каждая маркировка требует O(n) шагов, каждое сканирование – <math>O(n^2 \; log \; n)</math> шагов. (Под «шагом» понимается обращение к битовой переменной размером O(n)). В работе [4] неограниченное построение из [14] было исправлено и расширено для получения эффективной версии более общего понятия ограниченной системы параллельных временных меток.


== Применение ==
== Применение ==
Регистры без ожидания, наряду с системами передачи сообщений, являются основным механизмом взаимодействия между процессами в теории распределенных вычислений. Они лежат в основе всех построений и протоколов, как можно увидеть в учебниках. Не требующие ожидания построения параллельных систем временных меток (сокращенно CTS) оказались мощным инструментом для решения задач управления параллелизмом, таких как различные типы взаимного исключения, мультирайтерные и мультиридерные общим переменные [14] и вероятностный консенсус, в результате синтеза «часов без ожидания» для определения последовательности действий в параллельной системе. Более подробное изложение см. в работе [4].
Регистры без ожидания, наряду с системами передачи сообщений, являются основным механизмом взаимодействия между процессами в теории распределенных вычислений. Они лежат в основе всех построений и протоколов, что можно увидеть в учебниках. Не требующие ожидания построения параллельных систем временных меток оказались мощным инструментом для решения задач управления параллелизмом, таких как различные типы взаимного исключения, мультирайтерные и мультиридерные общим переменные [14] и вероятностный консенсус, основанным на синтезе «часов без ожидания» для определения последовательности действий в параллельной системе. Более подробное изложение см. в работе [4].


== Открытые вопросы ==
== Открытые вопросы ==
Ведется большая работа в направлении создания регистровых построений, использующих меньшее количество составных частей, или более простых частей, или частей, способных выносить более сложные сбои, чем описанные выше предыдущие построения. Разумеется, только в том случае, если более поздние построения еще не были оптимальными по соответствующему параметру. В дальнейшем предполагается работа над объектами без ожидания более высоких типов, как упоминалось выше, равно как иерархиями таких объектов и вероятностными построениями. Таким исследованиям посвящено множество статей и публикаций.
Ведется большая работа в направлении создания регистровых построений, использующих меньшее количество составных частей, или более простых частей, или частей, способных выносить более сложные сбои, чем описанные выше предыдущие построения. Разумеется, только в том случае, если более поздние построения еще не были оптимальными по соответствующему параметру. В дальнейшем предполагается работа над объектами без ожидания более высоких типов, как упоминалось выше, а также над иерархиями таких объектов и вероятностными построениями. Таким исследованиям посвящено множество статей и публикаций.
 
== Экспериментальные результаты ==
== Экспериментальные результаты ==
Регистровые построения или родственные им построения для асинхронного межпроцессного взаимодействия активно используются в современном аппаратном и программном обеспечении.
Регистровые построения или родственные им построения для асинхронного межпроцессного взаимодействия активно используются в современном аппаратном и программном обеспечении.
Строка 40: Строка 40:
== См. также ==
== См. также ==
* [[Невозможность асинхронного консенсуса]]
* [[Невозможность асинхронного консенсуса]]
* [[Атомарная широковещательная передача]]
* [[Атомарная широковещательная рассылка]]
* [[Причинно-следственное упорядочение, логические часы, репликация конечного автомата]]
* [[Причинно-следственное упорядочение, логические часы, репликация конечного автомата]]
* [[Параллельное программирование, взаимное исключение]]
* [[Параллельное программирование, взаимное исключение]]
Строка 79: Строка 79:
14. Vitanyi, P.M.B., Awerbuch, B.: Atomic shared register access by
14. Vitanyi, P.M.B., Awerbuch, B.: Atomic shared register access by
asynchronous hardware. In: Proc. 27th IEEE Symp. Found. Comput. Sci. pp. 233-243. Los Angeles, 27-29 October 1987. Errata, Proc. 28th IEEE Symp. Found. Comput. Sci., pp. 487-487. Los Angeles, 27-29 October 1987
asynchronous hardware. In: Proc. 27th IEEE Symp. Found. Comput. Sci. pp. 233-243. Los Angeles, 27-29 October 1987. Errata, Proc. 28th IEEE Symp. Found. Comput. Sci., pp. 487-487. Los Angeles, 27-29 October 1987
[[Категория: Совместное определение связанных терминов]]