Konkurrentzia (informatika)

Informatikan, konkurrentzia ataza ezberdinak aldi berean exekutatzen ari diren sistemek betetzen duten propietate bat da. Ataza hauek txip berean dauden kore ezberdinetan exekuta daitezke, fisikoki banatuta dauden prozesadore ezberdinetan edota prozesadore bakar baten barnean ere bai.

"Filosofoen afaria", konkurrentzia eta partekatutako baliabideak erabiltzen dituen problema klasikoa

Baldintza aldatu

Bi prozesu konkurrenteki exekutatzen ari direla esateko, hauetako baten lehenengo agindua egikaritu behar da bestearen lehenengo aginduaren ondoren eta azkenekoaren aurretik.

Sistema konkurrenteen ezaugarriak aldatu

  • Aginduen egikaritze-ordena: Prozesu ezberdinetako aginduak exekutatzeko ordena erlatiboa arbitrarioa da, baina prozesu bakoitzeko aginduak exekutatzeko

ordena mantentzen da

  • Indeterminismoa: Sarrerako datu multzo berdinaren gainean egikaritzean, emaitza ezberdinak eman ditzake exekuzio diferenteetan
  • Exekuzio-denbora: Abiadura arbitrarioa (denboraz ahaztu egiten gara)

Programa sekuentzialekiko ezberdintasunak aldatu

Programa sekuentzial bat exekutatzerakoan, agindu multzo bat egikaritzen da bata bestearen atzetik, kontrol hari bakar bat erabiliz. Konkurrenteki egitean, aldiz, agindu sekuentzialez osatutako hainbat multzo, aldi berean exekutatzen dira, prozesu anitz sortuz, eta ondorioz, kontrol hari gehiago.

Konkurrentziaren alde onak aldatu

  • Prozesadore anitzekin paralelismoa lortzeko
  • Aplikazioaren errendimendua handitzeko, adibidez, sarrera irteera deietan, hari bakarra blokeatzen dutenez, gainerakoek lanean jarrai dezakete.
  • Aplikazioaren erantzun-gaitasuna handitzeko, erabiltzaileen eskaerentzat lehentasun handiko hari bat erabiliz, adibidez.
  • Ingurunearekin elkarreragiten duten, ekintza anitz kontrolatzen dituzten eta gertaera anitz erabiltzen dituzten programetarako
  • Kontrol-sistemak, web-teknologiak erabiltzaile-interfazeetan oinarritutako aplikazioak, simulazioa, DBKS,…

Kanpo estekak aldatu