- atomic, атомарный, StraNNicK, 08:33 , 23-Авг-05 (1)
>Читал в литуратуре, но пока не догоняю смысл терминов "атомарный", "атомарность". Может >кто на пальцах изложить, либо если есть документ в интернете - >то с удовольствием почитаю. Я, конечно могу ошибаться, но по-моему это означает "минимально возможный, неделимый" (атом, собственно и переводится как "неделимый"). - atomic, атомарный, dev, 14:57 , 23-Авг-05 (2)
>Читал в литуратуре, но пока не догоняю смысл терминов "атомарный", "атомарность". Может кто на пальцах изложитьАтомарный - значит неделимый, т.е. атомарная операция или произойдет вся или совсем ничего не произойдет, она не может выполнится наполовину и никто не может влезть посреди выполнения. Два основных применения, на пальцах: 1. Транзакции. Это когда операция длинная, ее нельзя прервать, промежуточное состояние содержит неверные данные. Классических пример - перевод денег в банке: а) забрать 100 баксов с одного счета; б) положить 100 баксов на другой счет. Если после выполнения а) пропадет свет, то при включении сервера надо полностью отменить операцию, иначе деньги исчезнут. 2. Параллельное выполнение. Если тебе надо единолично воспользоваться, к примеру, неким файлов, то ты: а) проверяешь, свободен ли файл; б) забираешь его себе. Если одновременно с тобой еще кто-то хочет получить этот файл, то возможна ситуация: а-1) ты проверяешь, свободен ли файл - свободен, можно продолжать; тут система вдруг переключилась на второй процесс а-2) он проверяет, свободен ли файл - свободен, можно продолжать; б-2) он забираешь файл себе. тут система переключилась на твой процесс б-1) ты забираешь файл себе. В итоге файл разрушен - в него пишут два процесса. Что бы этого не случилось, система должна гарантировать атомарность операции "проверить-взять".
|