The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
atomic, атомарный, !*! grib, 23-Авг-05, 05:37  [смотреть все]
Приветствую.

Читал в литуратуре, но пока не догоняю смысл терминов "атомарный", "атомарность". Может кто на пальцах изложить, либо если есть документ в интернете - то с удовольствием почитаю.

Спасибо.

  • atomic, атомарный, !*! StraNNicK, 08:33 , 23-Авг-05 (1)
    >Читал в литуратуре, но пока не догоняю смысл терминов "атомарный", "атомарность". Может
    >кто на пальцах изложить, либо если есть документ в интернете -
    >то с удовольствием почитаю.
    Я, конечно могу ошибаться, но по-моему это означает "минимально возможный, неделимый" (атом, собственно и переводится как "неделимый").

  • atomic, атомарный, !*! dev, 14:57 , 23-Авг-05 (2)
    >Читал в литуратуре, но пока не догоняю смысл терминов "атомарный", "атомарность". Может кто на пальцах изложить

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

    1. Транзакции. Это когда операция длинная, ее нельзя прервать, промежуточное состояние содержит неверные данные. Классических пример - перевод денег в банке:
      а) забрать 100 баксов с одного счета;
      б) положить 100 баксов на другой счет.
    Если после выполнения а) пропадет свет, то при включении сервера надо полностью отменить операцию, иначе деньги исчезнут.

    2. Параллельное выполнение. Если тебе надо единолично воспользоваться, к примеру, неким файлов, то ты:
      а) проверяешь, свободен ли файл;
      б) забираешь его себе.
    Если одновременно с тобой еще кто-то хочет получить этот файл, то возможна ситуация:
      а-1) ты проверяешь, свободен ли файл - свободен, можно продолжать;
      тут система вдруг переключилась на второй процесс
      а-2) он проверяет, свободен ли файл - свободен, можно продолжать;
      б-2) он забираешь файл себе.
      тут система переключилась на твой процесс
      б-1) ты забираешь файл себе.
    В итоге файл разрушен - в него пишут два процесса.
    Что бы этого не случилось, система должна гарантировать атомарность операции "проверить-взять".




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру