Горячая заменаГорячая замена (англ. Hot Swap — горячая замена и англ. HotPlug — горячее подключение) — термины, означающие отключение или подключение электронного оборудования в/к (компьютерной) системе во время её работы без выключения питания и остановки (системы) (HotPlug), а также замену (переподключение) блока в целом (Hot Swap). Также существует термин, обозначающий противоположность горячей замене — Холодная замена, то есть все (пере)подключения производятся после остановки системы и снятия напряжения (остаточного потенциала). Оборудование делится по этому принципу на допускающее горячую замену и не допускающее. ИсторияРанее оборудование, предназначенное для подключения во время работы, связанного с заменой, использовалось только в дорогих системах и считалось сложным в проектировании. В последнее время подобные системы стали распространенными даже на недорогих компьютерах.
Конструкция системыКомпьютеры, рассчитанные на замену оборудования «на ходу», должны тем или иным способом определять, что устройство отсоединено, а также содержать электрические цепи, нечувствительные к скачкам напряжения при подключении и отключении. Кроме того, программная часть должна быть рассчитана на внезапную потерю связи с устройством. Некоторые схемы горячей замены требуют предварительно выполнения команды на отсоединение, что упрощает их конструкцию, однако угрожает целостности данных, если устройство не будет отсоединено правильным способом или в нём возникнет ошибка. Более сложные схемы обладают запасом избыточности и легко восстанавливают данные при внезапном отключении устройства. Термин «горячая замена» используется в двух значениях. С одной стороны, он обозначает возможность отсоединить или присоединить устройство без отключения питания. С другой стороны, он также может подразумевать еще и автоматическое определение устройства при подсоединении. Первое значение термина распространяется на интерфейсы RS-232, FireWire и простейшие реализации SCSI, второе значение — на USB, FireWire, PCI Express и сложные варианты SCSI. Конструкция гнездаВ большинстве современных устройств, допускающих горячую замену, используются подвижные контакты. Один из них делается длиннее других, чтобы первым входить в контакт с присоединяемой частью, через него подключается заземляющий провод. Остальные контакты делаются короче, всего может быть до 3 различных длин. Задержка между подключением первого контакта и последующих составляет от 25 до 250 миллисекунд. Цепи питания подключаются в две стадии: в первой с помощью более длинных контактов подключается цепь, ограниченная по току, а затем более короткими — питание полной мощности. Все цепи, участвующие в соединении, содержат защиту от статического электричества. Вот пример типичной последовательности подключения:
Особую трудность представляет соединение нескольких устройств, так как подсоединение второго, третьего устройства может нарушать работу уже подключенного. Для борьбы с этим явлением используют фильтры в выходных цепях или временное логическое отключение передачи данных. Горячее подключение в программном обеспеченииТермин «горячее подключение» также используется применительно к программному обеспечению и означает возможность изменять программу без остановки её выполнения. Такую возможность поддерживают лишь несколько языков программирования, включая Lisp, Erlang и Smalltalk. Язык Java поддерживает эту возможность только в процессе работы отладчика (Java Platform Debugger Architecture, JPDA). При использовании интерпретируемых языков программирования (с сохранением текстов программ внутри модулей) «горячее подключение» реализуется просто заменой текстов. К примеру, предметно-ориентированный язык программирования 1С v8 предоставляет возможность изменять код при работающей программе (https://web.archive.org/web/20110427193804/http://v8.1c.ru/overview/release_8_1_5/administration.htm раздел «Обновление частей конфигурации»). Так как компиляция отдельных модулей происходит в момент исполнения программы, и при изменении модуля он компилируется в сеансе заново — это не совсем «горячее подключение». Нужно заново создать сеанс, чтобы изменения вступили в силу, и только для этого пользователя (другим надо перезапустить новый сеанс). В версии v7 эта возможность также присутствовала при использовании дополнительных программных средств[2] и штатной командой #ЗагрузитьИзФайла….(требуется только заново открыть форму или отчёт). Примечания
Ссылки
|