Обсуждение:Линеаризуемость

Атомность и линеаризуемость

На странице в настоящее время указано:

  • В параллельном программировании атомарность эквивалентна линеаризуемости, которая имеет дополнительное свойство, что ни один из ее эффектов не виден до тех пор, пока она не завершится. То есть, нет промежуточных состояний, видимых другим потокам. (В системах баз данных это свойство классифицируется отдельно как «изоляция».)
  • В операционных системах «атомарная» операция — это операция, которая не прерывается (или не может быть) после начала. Например, базовые машинные инструкции, такие как add или store, обычно гарантируются оборудованием как атомарные, а некоторые платформы предоставляют пару операций (load-link/store-conditional), которые имеют эффект только в том случае, если они происходят атомарно. Это свойство можно использовать для реализации блокировок, жизненно важного механизма для многопоточного программирования.

Однако последнее является лишь частным случаем первого и его трудно определить строго. «Атомарность = линеаризуемость» имеет гораздо больше смысла даже в операционных системах. Я предлагаю объединить эти два понятия и перейти от «атомарность включает изоляцию» к «атомарность означает, что операция, по-видимому, вступает в силу мгновенно в какой-то момент», в интересах упрощения и ясности. Крис Перселл 09:30, 7 февраля 2006 (UTC) [ ответить ]

Пересмотры

Я отменил редактирование Ewlyahoocom , поскольку оно смешивает идеи базы данных об изоляции и атомарности, до такой степени, что статья теперь фактически неточна. Возможно, мы могли бы обсудить и уточнить изменения здесь, прежде чем снова выкладывать их в сеть? -- Крис Перселл 23:44, 10 апреля 2006 (UTC) [ ответить ]

Перемещено из User talk:Ewlyahoocom

Я отменил вашу правку атомарности, потому что я не считаю, что она точно описывает преобладающее значение термина в базах данных: а именно, она, по-видимому, смешивает атомарность с изоляцией . Извините за резкость. Хотя я готов обсудить более конструктивный прогресс! -- Крис Перселл 23:50, 10 апреля 2006 (UTC) [ ответить ]

Это объясняет мое замешательство! Хорошо, я разбил части компьютерной науки на атомарные операции и изменил Атомильность (компьютерная наука), чтобы сделать более понятным, что эта страница о базах данных -- надеюсь, это позволит ей развиваться в русле других страниц ACID . Может быть, эти страницы даже следует переместить в "(управление данными)" вместо "(компьютерная наука)"? Ewlyahoocom 05:51 , 11 апреля 2006 (UTC) [ ответить ]

Хорошо, теперь я думаю, что вы смешиваете атомарность в смысле базы данных с атомарностью в смысле параллельного алгоритма. Атомарность в смысле параллельного алгоритма на самом деле не имеет ничего общего с "операция либо выполняется полностью, либо не выполняется вообще": если бы это было правдой, это было бы частью последовательного определения операции, а не ее атомарности. Атомарность в смысле параллельного алгоритма означает линеаризуемость , не больше и не меньше.

Может быть, нам следует снова объединить различные страницы разрешения неоднозначности атомарности и использовать атомарную транзакцию и линеаризуемость в качестве страниц разрешения неоднозначности для баз данных и параллельных алгоритмов соответственно? -- Крис Перселл 07:56, 11 апреля 2006 (UTC) [ ответить ]

Да, я понимаю вашу точку зрения. Когда я читал о линеаризуемости , у меня возникло искушение добавить несколько тегов слияния, но на самом деле это, похоже, решает проблему с точки зрения параллелизма, возможно, мне стоит перечитать это. (Кстати, спасибо за удаление вашего «запутанного» абзаца об ACID из той статьи, но, возможно, такой абзац следует добавить в Atomicity .) Теперь сравните эту страницу с Atomic transaction , где теги слияния явно уместны.
Но это все еще оставляет открытым вопрос об атомарных операциях на самых низких уровнях (которые могут существовать даже в среде с одним процессором/одним процессом): например, чтение/запись 64-битного значения, которое на самом деле является двумя 32-битными операциями чтения/записи, с дополнительным условием, что неудачная запись никогда не оставит значение в промежуточном или неопределенном состоянии, и любое чтение получит либо старое значение, либо новое значение и никогда не будет промежуточным или неопределенным значением? (Раздел «Инвариант» в нижней части старой страницы атомарности .) Куда, по-вашему, следует направить эту информацию?
Наконец, возможно ли, что остальная часть компьютерной науки не «объединяет атомарность», а наука о базах данных проводит педантичные различия там, где в них нет необходимости? Ewlyahoocom 08:40, 11 апреля 2006 (UTC) [ ответить ]

Я пришел к мысли, что изоляция (база данных) равна атомарности (параллельные алгоритмы). Атомарность (база данных) — это свойство *последовательной* спецификации транзакции, а именно, что она либо будет успешной, либо потерпит неудачу; изоляция (база данных) определяет, как все будет работать при *параллелизме*. Напротив, атомарность (параллельные алгоритмы) означает "линеаризуемую изоляцию" (если хотите), и success-or-fail на самом деле не имеет подходящего места, поскольку из всех атомарных примитивов только load-linked/store-conditional может потерпеть неудачу.

Таким образом, наука о базах данных не делает педантичного различия; она определяет последовательное свойство «транзакции» и использует всеобъемлющий термин «атомарный», чтобы охватить его. Тот факт, что другие разделы компьютерной науки используют то же самое слово для обозначения исключительно свойств изоляции, не имеет значения.

Я не считаю, что атомарную транзакцию следует объединять с атомарной операцией , поскольку это совершенно разные вещи!

Я попробую переписать все так, как мне бы хотелось, а затем мы сможем встретиться здесь. -- Крис Перселл 12:40, 11 апреля 2006 (UTC) [ ответить ]

Да! Конечно! Атомарный в информатике больше всего похож на изоляцию в науке о базах данных! На самом простом уровне он просто подразумевает исключительную блокировку, не указывая, как обрабатываются ошибки: например, я бы нисколько не удивился, прочитав в руководстве, что «в случае исключения содержимое регистра не определено». Следующий уровень будет включать возможность отмены изменений при исключении.
Я заметил предложенное слияние Atomic operation в Linearizability . Если это так, то название действительно следует изменить. Кто-нибудь когда-нибудь называл атомарную инструкцию Compare-and-swap "линеаризуемой"?
Когда вы пишете " Я не считаю, что атомарная транзакция должна быть объединена с атомарной операцией ... ", вы имеете в виду, что считаете, что низкоуровневые детали на этой странице (например, open, semop, flock, Test-and-set машинные инструкции) больше подходят для страницы о базах данных, чем для страницы о программировании и процессорах? Я не уверен, что согласен -- но с нетерпением жду, что вы придумаете. Ewlyahoocom 16:35, 11 апреля 2006 (UTC) [ ответить ]

Рад, что вам понравилось :)

Да, люди называют атомарную инструкцию Compare-and-swap линеаризуемой, во всей литературе по параллельным алгоритмам. Первоначальное определение игнорирует проблему барьеров памяти, но ее можно вернуть, правильно изменив базовую установку вызова-ответа Herlihy et al . Это определенно правильный термин.

Я думаю, что "низкоуровневые детали" на странице атомарных транзакций являются фальшивыми и должны быть удалены. Они являются пережитком предыдущей версии. Однако я не хотел вырезать их сразу, не посоветовавшись, так как они кажутся, по крайней мере, смутно связанными с заголовком страницы, в отличие от того, что я вырезал. Они больше подходят для страницы линеаризуемости , но в целом кажутся довольно сваленными в кучу и не поучительными (для меня). Что вы думаете? Удалить их? Переместить и переписать? -- Крис Перселл 23:03, 11 апреля 2006 (UTC) [ ответить ]

Продолжение обсуждения

Подожди, ты имеешь в виду, что ты закончил ? Когда я сказал "С нетерпением жду, что ты придумаешь", у меня было впечатление, что ты все еще работаешь над этими страницами. Посмотрим, правильно ли я понял:

  • Атомарность — это страница разрешения неоднозначности?
    • Если это так, то он должен соответствовать стилю, изложенному в Руководстве по стилю , а ссылки на него должны указывать на соответствующие страницы;
    • Если нет, то это следует оформить в виде статьи.
  • Атомарные транзакции — это про базы данных. Есть ли lede, и он запускает примеры. Он когда-нибудь действительно определяет этот термин? Опять же, я думаю, что низкоуровневые детали не должны быть на этой странице. Если только вы не включаете вызовы ОС и инструкции машинного уровня в какое-то новое определение «транзакции базы данных».
  • Линеаризуемость — это модель согласованности? Я не совсем уверен, что это значит, и не думаю, что многие другие тоже поймут. Есть ли причина, по которой вы избегаете использования более широко используемого и общепринятого термина атомарный ? Помните, это должно быть в достаточно доступных энциклопедических статьях, а не в вашей докторской диссертации.

Наконец, я хотел бы напомнить вам старую поговорку: «Если вы не можете объяснить это просто, вы не понимаете это достаточно хорошо». Вы уверены, что понимаете это достаточно хорошо? Ewlyahoocom 09:58, 12 апреля 2006 (UTC) [ ответить ]

Нет, я не закончил. Но тебе придется мне помочь, поэтому я и остановился.

  • Да, Atomicity — это страница, устраняющая неоднозначность.
    • Вам придется помочь мне сделать его соответствующим Руководству по стилю, потому что у меня недостаточно опыта, чтобы сделать это. Я так понимаю, вы собирались внести эти изменения в любом случае, в почти идентичную Атомарность (неоднозначность) ?
    • Я не исправил обратные ссылки, потому что это было упреждающее изменение, и я не хотел испортить десятки страниц, чтобы потом вернуть их обратно через день. Ваш ответ также не вселяет в меня уверенности, что вы согласны с решением :)
  • Пожалуйста, объясните, почему "Атомарная транзакция — это транзакция базы данных, которая либо полностью выполняется (фиксируется), либо не имеет последствий (откатывается)" не определяет термин. Может быть, это просто недостаточно заметно во втором предложении на странице? Я знаю, что в большинстве статей определение есть в самом первом предложении.
  • Помогите мне и здесь. Я прекрасно понимаю концепцию. Проблема с "Если вы не можете объяснить это просто, вы недостаточно хорошо это понимаете" заключается в том, что она предполагает, что у вас есть чья-то (конструктивная) обратная связь во время первоначального уточнения объяснения. А как насчет "последовательность операций над общим объектом линеаризуема (или атомарна), если каждая операция, по-видимому, происходит мгновенно в какой-то момент во время ее выполнения"? Или это тот факт, что определение затем продолжается так: "Общий объект линеаризуем, если каждая возможная последовательность его операций может быть линеаризована"? Это слишком близко к исходному (крайне строгому) определению? Стоит ли упростить его до одного предложения, а материал о точках линеаризации переместить?

Если вы считаете, что нам следует переместить Атомарность в Атомарность (разрешение неоднозначности) и переместить и перенаправить Линеаризуемость в Атомарность , это может сработать. -- Крис Перселл 10:33, 12 апреля 2006 (UTC) [ ответить ]

Я переписал страницу Линеаризуемости . Что вы думаете? -- Крис Перселл 11:45, 12 апреля 2006 (UTC) [ ответить ]

Вот что я имел в виду:
  • Атомарность должна быть свойственна только базам данных и должна быть расширена с точки зрения исключительно базы данных, подобно изоляции (компьютерная наука) (я также считаю, что эти и другие 2 следует переименовать в «(управление данными)» вместо «(компьютерная наука)»);
  • Атомарность (разрешение неоднозначности) может быть страницей разрешения неоднозначности, она, вероятно, будет довольно минимальной, поскольку из всех записей только S-выражение упоминает этот термин (мимоходом, без определения);
  • и какая-нибудь другая страница, например, Атомарные операции , может быть посвящена аспекту компьютерной науки (я просто не верю, что за пределами баз данных слово «Атомарность» часто используется).
Может быть, вы также могли бы изложить свой план для этих страниц? (Кстати, я не сторонник того, чтобы названия этих страниц были существительными-прилагательными; например, «Автоматическая трансмиссия» переименована в «Автоматичность (транспортные средства)», но если так их обычно называют в этой области, то трудно спорить.) Я еще не читал пересмотренную версию «Линеаризуемости» . Ewlyahoocom 10:27, 13 апреля 2006 г. (UTC) [ ответить ]

Атомарность как концепция широко используется за пределами баз данных. Я не думаю, что окончание "ity" часто используется. Это вы имели в виду?

Мой план для названий страниц был таким, как я их изложил: атомарность — короткая страница устранения неоднозначности, линеаризуемость используется для свойства изоляции. Мне нравится Atomic transaction в качестве заголовка страницы базы данных, но нельзя отрицать, что «атомарность» — излюбленный термин. Тем не менее, становится неуклюжим использование «атомарности (базы данных)» или «атомарности (управление данными)»: вы могли бы также сказать «атомарность (транзакции)», и тогда вы по сути вернетесь к Atomic transaction . Атомарность была бы лучше всего.

В конечном счете, я не слишком беспокоюсь о том, как мы организуем страницы, пока содержание правильное. Мои благословения на любую альтернативу, которую вы предпочитаете. -- Крис Перселл 14:17, 13 апреля 2006 (UTC) [ ответить ]

Я не понимаю, почему у нас так много проблем с общением. Знаете что? Делайте с этими страницами что хотите — мне уже все равно. Ewlyahoocom 06:48, 14 апреля 2006 (UTC) [ ответить ]

Ах, как приятно пытаться вести конструктивный разговор в Интернете. Спасибо за попытки, которые вы делали так долго. -- Крис Перселл 10:31, 14 апреля 2006 (UTC) [ ответить ]

Слишком абстрактно

--24.251.211.127 01:34, 28 июля 2006 (UTC)Это описание слишком абстрактно. Было бы уместно сохранить абстрактные детали, но должны быть примеры из реального мира и здесь, и в атомарности, а не в этом A vs. B. Я работаю разработчиком ПО уже десять лет, но я не обязательно нахожу эти вещи самоочевидными или полезными без чего-то, с чем можно связать абстрактные концепции. [ ответить ]

  • Я согласен.-- al95521 09:34, 28 января 2007 (UTC) [ ответить ]

Есть предложения? Мы просто хотим улучшить "A" и "B" более выразительными примерами? Например: "Основной поток (A) пытается заблокировать структуру данных о ходе выполнения, чтобы иметь возможность обновить GUI. Тем временем рабочий поток (B) также пытается заблокировать структуру, чтобы отметить свой последний ход выполнения". -- Крис Перселл 09:23, 29 января 2007 (UTC) [ ответить ]

Я переписал страницу после того, как были сделаны эти комментарии. Надеюсь, я учел опасения. -- Крис Перселл ( обсуждение ) 16:07, 30 октября 2008 (UTC) [ ответить ]

линеаризуемость и атомарная операция

Многие страницы, ссылающиеся на эту статью о «линеаризуемости»[1], используют этот шаблон: [[Linearizability|atomic operations]].

Я нахожу это странным, поскольку есть статья об атомарных операциях , и в ней даже не упоминается «линеаризуемость» (за исключением не прокомментированного пункта в последнем разделе «См. также»).

Если «линеаризуемый» и «атомарная операция» действительно означают одно и то же (как следует из первого предложения статьи о линеаризуемости , а также из страницы разрешения неоднозначности атомарности ), разве не следует нам объединить эти две статьи?

Если они означают разные вещи, разве не должна статья об «атомарных операциях» сказать несколько слов об этом различии, и разве не должны другие статьи, которые действительно говорят о линеаризуемости, использовать ссылку [[linearizability]], а другие статьи, которые действительно говорят об атомарных операциях, использовать [[atomic operations]]ссылку? -- 68.0.124.33 ( обсуждение ) 06:31, 3 декабря 2008 (UTC) [ ответ ]

Я вижу, что на Talk:Read-copy-update идет долгая дискуссия о том, является ли "атомарный = линеаризуемый". Можем ли мы суммировать выводы в этой статье о линеаризуемости и статье об атомарной операции ? -- 68.0.124.33 ( обсуждение ) 07:14, 3 декабря 2008 (UTC) [ ответ ]
В обсуждении или в статье Read-copy-update нет ссылок . Это обсуждение, похоже, является оригинальным исследованием и не может быть включено сюда. -- Kvng ( talk ) 16:52, 17 сентября 2010 (UTC) [ ответить ]

В то время, когда я делал эти ссылки, Atomic operation и Linearizibility были отмечены для слияния. Конечным результатом множества обсуждений стало то, что это действительно одно и то же, после чего пришел администратор и удалил запрос на слияние по причине «отсутствия консенсуса». (По-видимому, он не потрудился прочитать обсуждение.) После того, как это произошло во второй раз, я сдался. Пожалуйста, откройте снова и завершите запрос на слияние. -- Крис Перселл ( обсуждение ) 12:08, 21 декабря 2008 (UTC) [ ответить ]

Оставив в стороне, очевидно, сложные вопросы слияния, я хотел бы знать, почему эта статья называется Linearizability , а не Atomicity (programming) или что-то в этом роде. Комментарии в верхней части этого раздела указывают, что термин Atomicity чаще всего используется при ссылке на эту статью. Я лично был сбит с толку, когда попал сюда по одной из этих ссылок. Atomicity появляется на Goole в 20 раз чаще, чем Linearizability. -- Kvng ( talk ) 16:52, 17 сентября 2010 (UTC) [ ответить ]
(1) Цифры, которые я вижу, составляют ~240 тыс. попаданий для поиска "атомарности", ~32,7 тыс. для "линеаризуемости" (около 7x). Однако подавляющее большинство (по крайней мере, первые несколько страниц) попаданий атомарности не имеют никакого отношения к рассматриваемому предмету, в то время как каждое попадание линеаризуемости имеет, так что сравнение бессмысленно. (2) "Линеаризуемость" — общепринятый термин в технической литературе. -- Крис Перселл ( обсуждение ) 15:49, 18 сентября 2010 (UTC) [ ответ ]
Не знаю, что мы делаем по-другому, но я получаю 747 тыс. результатов поиска в Google по атомарности . Я не знаю, как справедливо оценить, к чему относятся все эти результаты, поэтому вместо этого позвольте мне навалить немного больше доказательств для пущей убедительности. В поиске в Википедии линеаризуемость появляется 9 раз, а атомарность16 134 ! Я не знаю, есть ли у вас цитата, подтверждающая ваше заявление о технической литературе. Я сделал пару поисков с помощью Google scholar, и атомарность (78 200 результатов) там также уверенно превосходит линеаризуемость (11 600 результатов). Патентный поиск выдает 30 результатов поиска линеаризуемости и 408 результатов поиска атомарности . — Kvng ( обсуждение ) 18:53, 18 сентября 2010 (UTC) [ ответить ]
Атомарность (системы баз данных) является одной из основных частей ACID в базах данных. Конечно, есть много попаданий. Что касается "линеаризуемости", на странице есть исходная цитата использования, плюс 11 тысяч других, которые вы упомянули, поскольку, насколько мне известно, это слово не используется ни для какой другой цели. Я не против переименования страницы, но по моему опыту, это "атомарный" и "линеаризуемость" в параллелизме, а не "атомарность", и "количество попаданий" не является действительным доказательством обратного (по указанным причинам). -- Крис Перселл ( обсуждение ) 19:59, 18 сентября 2010 (UTC) [ ответить ]
Я хотел бы подать заявку на WP:RM и посмотреть, что из этого получится. Но сначала я хотел бы попробовать выбрать нового кандидата на имя. Вот текущие перенаправления на эту страницу: Atomic (computer science), Atomic action, Atomic actions, Atomic operation, Atomic operations, Atomic primitive, Atomicity (programming), Indivisibility (programming), Indivisible operation, Strict consist, Uninterruptibility (programming). Что-нибудь из этого кому-нибудь нравится? Atomic operation — самая популярная цель ссылок, но это, вероятно, потому, что до июля это была отдельная статья. Лично я предпочитаю Atomicity (programming) или Atomicity (computer science) . -- Kvng ( talk ) 21:55, 18 сентября 2010 (UTC) [ ответить ]
Опять же, "linearizable" является общепринятым термином в академической литературе, поэтому я не вижу необходимости в переименовании страницы. Однако "atomic" было бы предпочтительнее, чем "atomicity", поскольку я считаю, что последний в основном используется в отношении ACID (т.е. операций "все или ничего"), а не параллелизма, и в результате его легче спутать. -- Крис Перселл ( обсуждение ) 16:28, 20 сентября 2010 (UTC) [ ответить ]
Я не хочу испытывать ваше терпение. Я понимаю ваше утверждение о «линеаризуемом», но я не видел никаких подтверждений этому. Признаю, что я не подхожу к этому с академической точки зрения, так что вы вполне можете быть правы (хотя я все равно хотел бы увидеть некоторые доказательства). Я пытаюсь улучшить терминологическую согласованность в Википедии. По-моему, попадание в статью под названием «линеаризуемый» после нажатия на ссылку «атомарность» — это проблема. Вы понимаете мое утверждение? -- Kvng ( обсуждение ) 17:25, 20 сентября 2010 (UTC) [ ответить ]
Очевидно, что ваше мнение обосновано. Если вам нужны доказательства о "линеаризуемости", прочтите некоторые академические статьи, которые вы нашли с помощью простого поиска, или цитату Херлихи на странице. В остальном, "атомарная операция" было бы приемлемым названием для страницы. -- Крис Перселл ( обсуждение ) 07:47, 21 сентября 2010 (UTC) [ ответить ]
FWIW. Технически, есть тонкое различие между линеаризуемым и атомарным , см. [2]. Разница в том, что линеаризуемость требует атомарности плюс сохранения порядка неконкурентных операций. Поэтому, вероятно, текущую статью следует разделить на две отдельные статьи в этом направлении. Для меня это не выглядит как два разных термина для одной и той же сущности, так как в академической литературе и атомарные операции , и линеаризация обычно используются в похожем, хотя и не идентичном смысле (см., например, фундаментальные работы в области сравнения и обмена [3] и [4], часто формулировки идут в русле линеаризуемости , что подразумевает, что операции являются атомарными ). Ipsign ( обсуждение ) 06:15, 4 декабря 2010 (UTC) [ ответ ]
Комментарий: Я пришел сюда по ссылке на обсуждение Wikipedia:WikiProject Computing . Какое конкретное предложение находится на столе? -- Pnm ( обсуждение ) 01:07, 7 декабря 2010 (UTC) [ ответ ]
Предложение до вклада Ipsign состояло в том, чтобы переименовать статью в Atomic operation -- Kvng ( обсуждение ) 03:13, 7 декабря 2010 (UTC) [ ответ ]
Я бы предложил разделить статью на две части: Линеаризуемость и Атомарные операции , и объяснить разницу между ними в Линеаризуемости (которая опирается на Атомарные операции ). Ipsign ( обсуждение ) 15:40, 7 декабря 2010 (UTC) [ ответ ]
Я поддерживаю разделение. Существующее руководство, кажется, более точно суммирует атомарную операцию , поэтому для механики я предлагаю сначала переместить эту статью в новую атомарную операцию , а затем снова разделить на Линеаризуемость "под" перенаправлением. Я назвал заголовки тем явно, чтобы подготовиться к перемещению. -- Pnm ( обсуждение ) 23:48, 7 декабря 2010 (UTC) [ ответ ]

Переименовать в Atomic?

Термин «атомарный» более четко определяет концептуально-легкую форму этой концепции. Возможно, нам следует переименовать страницу в Атомарные операции ? -- Yoderj ( обсуждение ) 17:22, 6 марта 2015 (UTC) [ ответить ]

В базах данных «атомарный» означает нечто иное (все или ничего). Я голосую за то, чтобы оставить все как есть. -- Крис Перселл ( обсуждение ) 12:00, 13 марта 2015 (UTC) [ ответить ]
Есть ли какие-нибудь статьи об определении "все или ничего", кроме этой? В первом абзаце этой статьи говорится: "Кроме того, атомарные операции обычно имеют определение "успешно или неудачно". "Появляется видимым из других потоков" — это интересно, но гораздо более тонко. Я бы хотел увидеть статью, которая рассматривает концепцию "все или ничего" "атомарного" как в базах данных, так и в параллельном программировании — Yoderj ( обсуждение ) 15:07, 25 мая 2015 (UTC) [ ответить ]

Гонка за атомарность

пожалуйста, прокомментируйте фразу «гонка атомности» — Предыдущий неподписанный комментарий добавлен Skysong263 ( обсуждениевклад ) 18:45, 21 декабря 2009 (UTC) [ ответить ]

Очень низкое качество

Он смешивает все концепции и противоречит сам себе. Атомарность означает различные вещи на разных уровнях абстракции, начиная с упоминания баз данных в отношении этого, крайне предосудительно... -- 81.84.152.156 (обсуждение) 21:16, 29 июня 2010 (UTC) [ ответить ]

Не могли бы вы пояснить, какие различные вещи атомарность означает на разных уровнях абстракции? Также, о каких противоречиях вы говорите? -- Крис Перселл ( обсуждение ) 17:58, 9 июля 2010 (UTC) [ ответить ]
Я тоже считаю, что статья бесполезна (если говорить грубо). Я ожидал найти определение линеаризуемости в резюме, но там просто упоминается, что некоторая операция может быть одной из четырех вещей. Затем статья продолжается более или менее без упоминания линеаризуемости вообще до раздела «История линеаризуемости», где дается какое-то объяснение. Я предлагаю людям, которые знают о предмете больше, чем я, изменить статью так, чтобы определение темы было вверху, или полностью изменить тему (и большую часть содержания) статьи.

АПР

На странице говорится: «Библиотека Apache Portable Runtime предоставляет выбор макросов функций атомарных операций для использования в программном обеспечении, лицензированном по MPL [Mozilla Public License?]. Это действительно так? Программное обеспечение Apache Foundation (почти?) всегда находится под лицензией Apache. И производные работы не обязаны использовать эту лицензию. Superm401 - Talk 04:28, 10 января 2009 (UTC) [ ответить ]

Пример

Пример описывает ситуацию, но не объясняет, какое отношение она имеет к атомарным операциям. -- Snaxe/fow ( обсуждение ) 02:10, 10 апреля 2009 (UTC). [ ответить ]

Надеюсь, теперь это немного яснее — Крис Перселл ( обсуждение ) 11:12, 10 июля 2010 (UTC) [ ответить ]

Объединить сАтомное действие

Я рекомендую перенаправить заглушку атомарного действия на эту страницу. Атомарные действия попадают под зонтик линеаризуемости; заглушка в основном описывает некоторые возможные детали реализации, которые могут или не могут улучшить эту страницу. -- Крис Перселл ( обсуждение ) 09:35, 5 августа 2010 (UTC) [ ответить ]

Объединение выполнено. -- Крис Перселл ( обсуждение ) 16:28, 28 августа 2010 (UTC) [ ответить ]
Но теперь проблема в том, что атомарное действие ссылки в части «См. также» перенаправляется на саму статью. 134.91.76.129 (обсуждение) 12:59, 2 декабря 2010 (UTC) [ ответить ]
Удален см. также. -- Pnm ( обсуждение ) 23:31, 3 декабря 2010 (UTC) [ ответить ]

Строгая последовательность

Что делает здесь раздел о строгой согласованности? Может ли кто-нибудь расширить связь линеаризуемости со строгой согласованностью? Или, может быть, мы можем удалить этот бесполезный раздел -- Jetru ( обсуждение ) 12:40, 8 апреля 2011 (UTC) [ ответить ]

Это кажется в значительной степени избыточным и даже неверным (например, «самый строгий»). Предлагаю удалить это. Возможно, автор запутался в отношении «строгой сериализуемости», которая действительно является одной из самых строгих моделей (линеаризуемость плюс сериализуемость), но все еще не «самая строгая» (а именно потому, что «самый строгий» не является четко определенным; можно упорядочить силу моделей, но нет одной самой сильной модели — например, «никогда не возвращать 0», «никогда не возвращать 1» и т. д.). Питер Бейлис ( обсуждение ) 00:12, 19 июня 2013 (UTC) [ ответ ]

«Примитивные атомарные инструкции» в отношении мэйнфреймов Burroughs

В разделе «Примитивные атомарные инструкции» есть утверждение, которое гласит: «Атомарный обмен, используемый в некоторых мэйнфреймах Burroughs, также называемый XCHG».

Оператор XCHG выдается компилятором для реализации своих потребностей в манипулировании стеком, но недоступен пользователю напрямую. [Он был в ESPOL, но ESPOL больше не используется.] Он вызывает обмен двумя значениями вершины стека; то есть он влияет только на стек.

Инструкция, доступная пользователю, которая используется для реализации блокировок, — это RDLK (ReadLock). Она обменивает значение вершины стека с адресом в памяти в одном непрерываемом swell foop.

EXCH и RDLK оба атомарны, то есть не прерываемы. Другие «атомарные» операторы — RSUP и RSDN, которые манипулируют тремя верхними ячейками стека. Но только RDLK доступен программистам (в Algol и NEWP) и, таким образом, используется с реализацией блокировок.

Таким образом, я считаю, что строка должна быть такой: «Атомарный своп, используемый в некоторых мэйнфреймах Burroughs, также называемый RDLK». Или это должно быть указано по-другому, но включать использование RDLK, а не EXCH. — Предыдущий неподписанный комментарий добавлен 70.181.124.207 (обсуждение) 06:54, 28 февраля 2013 (UTC) [ ответить ]

 Готово . Я согласен, что эта строка неверно подразумевает, что XCHG использовался программистами мэйнфреймов Burroughs. -- DavidCary ( обсуждение ) 18:03, 4 июня 2014 (UTC) [ ответить ]

Предложение о слиянии

Следующее обсуждение закрыто. Пожалуйста, не изменяйте его. Последующие комментарии должны быть сделаны в новом разделе. Ниже приводится резюме сделанных выводов.
Результатом этого обсуждения стало удаление Непосредственной согласованности и перенаправление на Линеаризуемость Питер Бейлис ( обсуждение ) 22:27, 18 июля 2013 (UTC) [ ответить ]

Я предлагаю объединить Непосредственную согласованность с Линеаризуемостью (или, в качестве альтернативы, Непосредственную согласованность следует удалить). Это те же модели, и первая является нестандартной терминологией для второй. Pbailis ( talk ) 23:49, 18 июня 2013 (UTC) [ ответить ]

Второе удаление. -- Крис Перселл ( обсуждение ) 23:19, 17 июля 2013 (UTC) [ ответить ]
Обсуждение выше закрыто. Пожалуйста, не изменяйте его. Последующие комментарии должны быть сделаны на соответствующей странице обсуждения. Дальнейшие правки в это обсуждение не должны вноситься.

Отделите атомарность от линеаризуемости

Линеаризуемость должна быть отдельной статьей от атомарности. Текущее определение атомарности просто неверно. Я не буду комментировать определение линеаризуемости, потому что не могу его понять, но, вероятно, ее следует определить в терминах общих порядков.

Вот что я предлагаю для атомарности:

В информатике операция (скажем, X) является атомарной по отношению к какой-либо другой операции (скажем, Y), если Y кажется, что X либо происходит сразу, либо не происходит вообще. Атомарность позволяет корректности Y зависеть от истинности свойства, даже если свойство может не быть истинным во время выполнения X, поскольку Y не может наблюдать период, в течение которого выполняется X. Если X является атомарной по отношению к Y, то достаточно (для корректности Y), чтобы свойство было истинным до и после выполнения X.

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

Атомарность похожа на взаимное исключение — взаимное исключение предотвращает перекрытие вхождений X и Y — но эти две концепции не идентичны. Атомарность может быть реализована посредством взаимного исключения или другими методами, такими как оптимистическое управление параллелизмом . Взаимное исключение часто реализуется с использованием атомарности, но не требует ее. [1]

Ссылки

  1. Новое решение проблемы параллельного программирования Дейкстры, Communications of the ACM, т. 17, № 8 (август 1974 г.), стр. 453-455.


Тим Леонард (обсуждение) 19:05, 29 июня 2015 (UTC) [ ответить ]

Согласен. Понятия не имею, почему атомарность перенаправляет к линеаризуемости, и думаю, что она заслуживает собственной страницы 98.116.215.118 ( обсуждение ) 01:43, 27 февраля 2019 (UTC) [ ответить ]

Предложение переписать раздел _Определение линеаризуемости_

В основном определение, указанное на странице, недействительно.

Во втором случае он очень плохо смешивает формальный и неформальный стили. Не только во вступительной части, но и в самом определении.

> Если операция op1 завершается (получает ответ) до начала (вызова) op2, то op1 предшествует op2 в σ.

Это не часть определения. И оно в основном ничего не утверждает, если правильно понимать. Оно сформулировано очень неясно.

> если ответ предшествовал вызову в исходной истории, он все равно должен предшествовать ему в последовательном переупорядочении.

Можно подумать, что оно утверждает порядок в σ, но все равно не очень понятно. Оба условия, и исходное, и переформулированное, едва ли отражают то, о чем оно утверждает. Что достаточно, а что необходимо. Также оно утверждает свое из [2], но в любом случае определение в [2] другое.

> Для каждой завершенной операции в σ операция возвращает тот же результат выполнения, который бы вернула операция, если бы каждая операция была завершена одна за другой в порядке σ.

Он частично формальный, и в основном переписан в этой форме для какой-то неизвестной цели. Оригинальное определение гораздо яснее.

Там также есть примеры, которые можно выделить в самостоятельный раздел.

Я предлагаю:

  1. Точное определение можно найти в одной из работ Херлихи, Мориса П.
  2. Возьмите из этой работы как неформальные, так и формальные определения — они хороши и понятны.
  3. Добавьте примеры из Линеаризуемость: Условие корректности для параллельных объектов

John.koepi ( обсуждение ) 21:21, 1 июля 2017 (UTC) [ ответ ]

Неправильное смешение терминологии баз данных с распределенными вычислениями

DB и DC имеют некоторые из одинаковых слов, которые означают совершенно разные вещи. «Атомарный» — простой пример. Смешивание сериализуемости с линеаризуемостью проблематично, потому что первый — термин DB, а второй — DC. Операционные модели несовместимы. DB говорит о транзакциях, состоящих из нескольких операций, где DC фокусируется на одной операции и на том, что происходит в присутствии других операций. http://www.bailis.org/blog/linearizability-versus-serializability/ содержит действительно хорошее описание проблемы.

Bcr33d (обсуждение) 15:34, 23 сентября 2019 (UTC) [ ответить ]

Проблема с примером «Счетчик»?

Я не понимаю, почему "атомарная" реализация Counter линеаризуема. Я понимаю, что отдельные операции чтения/записи линеаризуемы (потому что каждый регистр записывается только одним процессом). Операция "инкремента" имеет точку линеаризации на шаге 3 (запись в Ri), но не похоже, что операция Read должна иметь точку линеаризации. В частности, рассмотрим следующее выполнение с 3 процессами, начинающееся с момента времени 0 (со всеми регистрами, инициализированными в 0):

- Процесс 1 увеличивается в моменты времени 1 и 2 (т.е. это точки линеаризации)

- Обработать 2 приращения в момент времени 3

- Процесс 3 вызывает инкремент в момент времени 1: он считывает 1 из R1 в момент времени 1,5 и считывает 1 из R2 в момент времени 3,5. Таким образом, он возвращает значение 2.

Похоже, что это выполнение невозможно линеаризировать, поскольку не существует момента времени, в который R1 имеет значение 1, а R2 имеет значение 1. Такая точка линеаризации должна быть после 1 и до 2 (потому что процесс 3 считывает 1 из R1), но после момента времени 3 (потому что процесс 3 считывает 1 из R2).

Я что-то упустил?

Will.rosenbaum (обсуждение) 16:55, 23 марта 2021 (UTC) [ ответить ]

Retrieved from "https://en.wikipedia.org/w/index.php?title=Talk:Linearizability&oldid=1203606818"