Какво е състезателно състояние?

Състезателно условие или расова опасност е сценарий в система за електронна обработка, където резултатът от изчислението може да бъде засегнат от непредвидена или неконтролирана последователност от събития. Основната концепция е, че резултатите от един процес никога не трябва да бъдат повлияни от една от операциите "спечелване на раса" (завършване на първо място).

  • Пример.
  • Състезателни условия на процесора.
  • Условия на състезанието на софтуера.

Помислете за следния набор от операции:

  1. променлива a = 1
  2. променлива a = a * 5
  3. променлива b = a - 1

Ако тези операции се обработват в правилната последователност, променливата b трябва да бъде равна на 4. Но ако операция 3 се изпълни, преди операцията 2 да приключи, b ще бъде равно на 0.

Състезателни условия в процесори

Състезателните условия са важен проблем при проектирането на процесора, които използват както паралелни, така и конкурентни техники за обработка, за да изпълняват множество инструкции в припокриваща се времева рамка. За да се гарантира, че изчисленията не са повредени, условията на състезанието трябва винаги да се очакват и избягват.

Състезателни условия в Софтуера

Това също е важен проблем за разработчиците на софтуер, които трябва да се справят с всички условия на състезанието, които могат да възникнат, когато техният код се използва в реални ситуации. Известно е, че неправилно обработеното състояние на състезанието в софтуера на NASA's Spirit изследователския роув почти доведе до загуба на ровера малко след като се приземи на Марс.

Проектиране, паралелна обработка, програмни термини