Статус нашего сайта: |
ICQ Information Center |
ICQ SHOP 5-значные 6-значные 7-значные 8-значные 9-значные Rippers List ОПЛАТА СТАТЬИ СЕКРЕТЫ HELP CENTER OWNED LIST РОЗЫСК!New! ICQ РЕЛИЗЫ Протоколы ICQ LOL ;-) Настройка компьютера Аватарки Смайлики СОФТ Mail Checkers Bruteforces ICQTeam Soft 8thWonder Soft Other Progs ICQ Patches Miranda ICQ ФорумАрхив! ВАШ АККАУНТ ICQ LiveJournal
РекламаНаш канал:irc.icqinfo.ru |
Таненбаум Э.- Архитектура компьютера. стр.459Память, построенная в соответствии с моделью секвенциальной состоятельности, никогда не позволит процессору 3 получить значения 100 и 200, если процессор 4 получает значения 200 и 100. Если бы это произошло, с точки зрения процессора 3 это бы означало, что запись значения 100 процессором 1 завершилась раньше записи значения 200, которую осуществляет процессор 2. Это вполне возможно. Но с точки зрения процессора 4 это также значит, что запись процессором 2 числа 200 завершилась до записи процессором 1 числа 100. Сам по себе такой результат тоже возможен, но он противоречит первому результату. Секвенциальная состоятельность гарантирует единую глобальную (воспринимаемую всеми процессорами) последовательность операций записи. Если с точки зрения процессора 3 первым записывается значение 100, процессор 4 должен «видеть» тот же самое. Хотя правила секвенциальной состоятельности не выглядят столь «жестокими», как правила строгой, эта модель тоже очень полезна. Даже если несколько событий совершаются одновременно, считается, что на самом деле они происходят в определенном порядке (который может выбираться произвольно), и все процессоры воспринимают именно этот порядок. Хотя такое положение дел и кажется очевидным, далее мы рассмотрим некоторые модели состоятельности, которые не гарантируют подобного порядка. Процессорная состоятельность Процессорная состоятельность — не слишком строгая модель, но зато ее легче реализовать на больших мультипроцессорах [78]. Она имеет два свойства: 1. Все процессоры видят операции записи любого процессора в том порядке, в котором эти операции выполняются. 2. Все процессоры видят все операции записи в любое слово памяти в одном и том же порядке. Оба этих пункта очень важны. В первом пункте говорится, что если процессор 1 начинает запись значений 1А, 1Ви1Св какое-либо место в памяти именно в таком порядке, то все другие процессоры увидят эти записи в том же порядке. Иными словами, никогда не произойдет такого, чтобы какой-либо процессор сначала увидел значение 1В, а затем значение 1А. Второй пункт нужен, чтобы каждое слово в памяти имело определенное и недвусмысленное значение после того, как процессор совершил несколько записей в это слово, а затем остановился. Все должны видеть одно и то же последнее значение. Даже при таких ограничениях у разработчика есть много возможностей. Посмотрим, что произойдет, если процессор 2 начинает три операции записи значений 2А, 2В и 2С одновременно с тремя операциями записи процессора 1. Другие процессоры, которые заняты считыванием слов из памяти, увидят какую-либо последовательность из шести операций записи, например, 1А, 1В, 2А, 2В, 1С, 2С или 2А, 1А, 2В,2С, 1В, 1С; и т. п. При процессорной состоятельности не гарантируется, что каждый процессор видит один и тот же порядок (в отличие от секвенциальной состоятельности). Вполне может быть так, что одни процессоры воспринимают порядок 1А, 1В, 2А, 2В, 1С, 2С, другие — 2А, 1А, 2В, 2С, 1В, 1С, третьи — еще какой-нибудь вариант. Единственное, что гарантируется абсолютно точно, — ни один процессор не увидит последовательность, в которой сначала выполняется операция 1В, а затем — 1А. Порядок, в котором выполняются обращения одного и того же процессора, остается одинаковым для всех наблюдателей. |