Состояние гонки: различия между версиями

[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
м r2.7.1) (робот изменил: fa:وضعیت رقابتی
викификация
Строка 128:
=== Практические решения ===
 
Сотрудником московского офиса Google, Константином Серебряным, было создано направление тестирования  — поиск состояний гонок в коде. Константин создал инструмент, который позволял полуавтоматически находить data races. Такие ошибки очень сложно поймать обычными средствами тестирования и отладки. При огромных объемах кода, разрабатываемого в Google, позитивный эффект от нового инструмента был ощутим для всей глобальной инженерной организации.
 
== Случай с Therac-25 ==
Строка 140:
Эти три режима задавались вращающимся диском, в котором было отверстие с отклоняющими [[магнит (физика)|магнитами]] для электронной терапии, и мишень с рассеивателем для рентгеновской. Из-за состояния гонки между управляющей программой и обработчиком [[клавиатура|клавиатуры]] иногда случалось, что в режиме рентгеновской терапии диск оказывался в положении «Электронная терапия», и пациент напрямую облучался пучком электронов в 25 МэВ, что вело к переоблучению. При этом датчики выводили «Нулевая доза», поэтому оператор мог повторить процедуру, усугубляя ситуацию. В результате погибли как минимум четыре пациента.
 
Часть кода была взята из Therac-6 и Therac-20. При этом в Therac-6 не было электроннойрентгеновской терапии, а в Therac-20 были аппаратные меры безопасности, которые не давали включить излучение, когда диск был в неправильном положении.
 
== Взломы путём эксплуатирования состояния гонки ==