Условие за състезание
В този план, има и други приложения, вижте. Racing.
състояние Race (английски раса състояние.) - грешката на проектиране многонишковите система или приложение, в които работата на системата или приложението зависи от реда, по който се изпълняват части от кода. Името на грешката получена от подобни грешки електронен дизайн схема (вж. Сигнали Racing).
Състезание състояние - грешка (heisenbug) "плаващ", показан на случаен принцип пъти и "Прекъснат", когато се опитате да го намерите.
Вземем примера на кода (в Java). Нека х = 0. Да приемем, че програмата се извършва в следния ред: По-сложни, но и по-универсален метод за решаване - синхронизация резба, а именно: Там се случва преди семантика не се нуждае от дума летлив. Да предположим, че променливите - две (и летлив ключова дума не работи), а вторият поток вместо System.out.println струва по-сложна обработка. В този случай, и двата метода не са задоволителни: първата - така, че една променлива може да се промени, докато другата се копира; второ - защото синхронизирани твърде голям обем на код. Тези методи могат да се комбинират с копирането на "опасни" променливи синхронизирано блок. От една страна, това ще премахне един лимит инструкция машина, а от друга - ще се отървете от твърде много синхрон. Очевидните начина да установите и отстраните състоянието на раса не съществува. Най-добрият начин да се отървете от състезанията - правилното проектиране на система за многозадачна работа. Апаратура лъчетерапия Therac-25 е първият US медицинското изделие, в която въпросите на сигурността са възложени изключително на софтуера. Това устройство работи в три режима: Тези три режима бяха определени въртящ се диск, в който отвор е Отклоняващите магнити за цел електрон терапия и леща за рентгенова. Поради състояние състезание между програмата за контрол и манипулатор клавиатура понякога това се е случило, че в рентгенов режим терапия с кола е в позиция "E-терапия" и пациентът е пряко облъчва с електронен лъч от 25 MeV, което води до преекспониране. В този случай, терминалите сензорни "нулева доза", така че операторът да повторите процедурата, изостря ситуацията. В резултат на това, при което загинаха най-малко четирима пациенти. Някои код е взето от Therac-6 и Therac-20. В Therac-6 не са имали рентгенова терапия, както и в Therac-20 са хардуерно базирани мерки за сигурност, които не са разрешени за включване на светлината, когато дискът е в грешна позиция. Има една група от грешки (и използват своите атака видове), които позволяват не-привилегирована програма ще повлияе върху други програми чрез възможността за промяна на обществените ресурси (обикновено -. Временни файлове английски / ПТУ раса - състояние състезание във временната папка), в определен времеви прозорец, в който от програмист грешка файл е достъпна за писане от всички или част от потребителите на системата. Атакуването програма може да унищожи съдържанието на файла, което води до програмата, за да се срине жертва, или подмяна на данни, определени в програмата, за да извърши действие на равнището на техните привилегии. Именно поради тази причина, че софтуерът с тежки изисквания за сигурност, като например уеб браузър. Той използва случайни числа на криптографски качество, за да назоват временни файлове.
начини за решаване на
локално копие
синхронизация
комбиниран метод
с случай Therac-25
Влизане с взлом чрез използване на състояние на състезание
бележки