Статус нашего сайта: |
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 |
Таненбаум Э.- Архитектура компьютера. стр.460Слабая состоятельность В модели слабой состоятельности не гарантируется, что операции записи, произведенные одним процессором, будут восприниматься другими в том же порядке [59]. Один процессор может увидеть сначала операцию 1А, а потом 1В, другой — сначала 1В, потом 1А. Чтобы внести порядок в этот хаос, должны иметься переменные синхронизации памяти или поддерживаться операция синхронизации памяти. При синхронизации все незаконченные операции записи завершаются, и ни одна новая операция не может начаться, пока не будут завершены все предыдущие записи и не завершится сама синхронизация. Синхронизация приводит память в устойчивое состояние, когда не остается никаких незавершенных операций. Сами операции синхронизации являются секвенциально состоятельными, то есть если они инициируются несколькими процессорами, выбирается определенный порядок их выполнения, причем все процессоры воспринимают один и тот же порядок. При слабой состоятельности время разделяется на строго последовательные периоды, разделенные операциями синхронизации (рис. 8.20). Никакого особого порядка для операций записи 1А и 1В не гарантируется, и разные процессоры могут воспринимать их по-разному, то есть с точки зрения одного процессора сначала может выполняться операция 1А, а затем 1В, а с точки зрения другого — сначала 1В, а затем 1А. Такая ситуация допустима. Однако для всех процессоров операция 1В выполнена раньше 1С, поскольку записи 1С, 2В, ЗА, ЗВ могли начаться только после того, как в ходе первой операции синхронизации завершились записи 1А, 1В и 2А. Таким образом, с помощью операций синхронизации программно можно вносить некий порядок в последовательность событий, хотя это занимает некоторое время, поскольку требует очистки конвейера памяти. Рис. 8.20. В слабо состоятельной памяти периодически выполняются операции синхронизации Свободная состоятельность Слабая состоятельность — не очень эффективная модель, поскольку требует завершения всех операций с памятью и задерживает выполнение новых операций до тех пор, пока не завершены предыдущие. В модели свободной состоятельности дела обстоят гораздо лучше, поскольку здесь используется нечто похожее на критические секции программы. Идея состоит в следующем. Если процесс выходит за пределы критической области, это не значит, что все записи должны немедленно завершиться. Требуется только, чтобы все записи были завершены до того, как какой-нибудь процесс снова войдет в эту критическую область. В этой модели операция синхронизации разделяется на две разные операции. Чтобы считать или записать совместно используемую переменную, процессор (то есть его программное обеспечение) сначала должен выполнить операцию acquire с переменной синхронизации, что позволит ему получить монопольный доступ к общим данным. Далее процессор может делать с этими данными все, что ему требуется (считывать или записывать), а по завершении он должен выполнить операцию release с переменной синхронизации, чтобы показать, что он завершил работу. Операция release не требует завершения незаконченных записей, но сама она не может завершиться, пока не закончатся все ранее начатые операции записи. Более того, новые операции с памятью могут начинаться сразу же. |