Mikä on kilpailutilanne?

Kilpailuolosuhteet liittyvät järjestelmän tai yksittäisen laitteen yrityksiin osallistua moniajoon. Yleensä kilpa -ehto on olemassa, kun järjestelmä yrittää käsitellä kahta tai useampaa eri toimintoa samanaikaisesti, mutta ei pysty tekemään sitä. Virheen syy on se, että toimintoja ei ole järjestetty oikeaan järjestykseen, mikä voi johtaa järjestelmän sammumiseen.

Vaikka monet eri laitteet on määritetty sallimaan moniajo, on silti olemassa sisäinen prosessi, joka luo toimintojen hierarkian. Tiettyjen toimintojen suorittamiseksi muiden toimintojen on oltava etukäteen. Vaikka loppukäyttäjä havaitsee, että kaikki toiminnot voivat näyttää tapahtuvan samanaikaisesti, näin ei välttämättä ole.

Kilpailuehto luodaan, kun kaksi tai useampia operaatioita kilpailee keskenään saadakseen päätökseen ennen muita toimintoja. Kun kaikki yksittäiset toiminnot on järjestetty oikein, tämä johtaa kaikkien toimintojen onnistuneeseen suorittamiseen ajoissa. Kuitenkin, jos toimintojen järjestys heitetään pois tasapainosta, tämä luo pullonkaulan. Pahimmassa tapauksessa kilpailutilanne tekee järjestelmän mahdottomaksi jatkaa sen pyrkimystä käsitellä kaikkia toimintoja parhaillaan käytössä olevassa järjestyksessä. Koska järjestelmän on ehkä käsiteltävä merkkijonon viides funktio ennen kuin ensimmäinen ja toinen toiminto voidaan suorittaa loppuun, koko merkkijono on keskeytettävä ja muodostettava uudelleen oikeassa järjestyksessä.

Yksi yleinen esimerkki kilpailuolosuhteista liittyy tietojen käsittelyyn. Jos järjestelmä vastaanottaa komentoja lukea olemassa olevia tietoja kirjoittaessaan uusia tietoja, tämä voi johtaa ristiriitaan, joka saa järjestelmän sammumaan jollakin tavalla. Järjestelmä saattaa näyttää jonkin tyyppisen virheilmoituksen, jos käsiteltävän datan määrä rasittaa kohtuuttomasti käytettävissä olevia resursseja tai järjestelmä voi yksinkertaisesti sammua. Kun näin tapahtuu, on yleensä hyvä idea käynnistää järjestelmä uudelleen ja aloittaa jakso uudelleen. Jos käsiteltävien tietojen määrä on huomattava, saattaa olla parempi sallia uusien tietojen omaksuminen loppuun ennen kuin yritetään lukea mitään parhaillaan tallennetuista tiedoista.

Monet järjestelmät välttävät kilpailutilanteen mahdollisuudet asettamalla prioriteetit toimintaprotokolliin. Prioriteetit on määritelty toimimaan hyvin järjestelmän kyvyissä ja rajoittamaan siten kilpailuolosuhteiden kehittymiskykyä.