Programarea evenimentelor

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Programarea bazată pe evenimente , în informatică , este o paradigmă de programare . În timp ce într-un program tradițional executarea instrucțiunilor urmează căi fixe, care se ramifică doar în puncte bine determinate predefinite de programator , în programele scrise folosind tehnica evenimentului fluxul programului este în mare măsură determinat de apariția evenimentelor externe.

Generalitate

În loc să aștepte o instrucțiune care să ofere programului comanda de a procesa anumite informații , sistemul este configurat pentru a executa la nesfârșit o buclă de instrucțiuni în interiorul căreia există instrucțiuni care verifică continuu aspectul informațiilor care urmează să fie procesate (ar putea fi crearea unui fișier într-un anumit folder sau presiunea unei taste de mouse sau tastatură ), apoi lansați execuția părții de program scrise special pentru a gestiona evenimentul în cauză. Programarea „prin evenimente” înseamnă, prin urmare, redefinirea personalizată a acțiunilor „implicite” cu care sistemul răspunde la apariția unui anumit eveniment.

Evenimentele externe la care programul trebuie să reacționeze pot fi detectate prin interogare ( interogare ) efectuată în cadrul unei bucle de program sau ca răspuns la o întrerupere . În multe aplicații se utilizează o combinație a celor două tehnici.

Programele care folosesc programarea bazată pe evenimente (denumite adesea „programe bazate pe evenimente”) sunt compuși de obicei din mai multe subprograme scurte, numite gestionare de evenimente (gestionare de evenimente) care sunt executate ca răspuns la evenimente externe și un dispecer , care fizic efectuează apelul, folosind adesea o coadă de evenimente care conține lista evenimentelor care au avut loc deja, dar care nu sunt încă „procesate”. În multe cazuri, gestionarii de evenimente pot „declanșa” alte evenimente din interiorul lor, producând o cascadă de evenimente .

Domenii de aplicare

Programarea bazată pe evenimente încurajează utilizarea unor tehnici de programare flexibile și asincrone și se bazează pe principiul impunerii programatorului cât mai puține constrângeri ( „modeless” ). Programele echipate cu o interfață grafică sunt realizate de obicei în funcție de abordarea bazată pe evenimente . Sistemele de operare sunt un alt exemplu clasic de programe bazate pe evenimente pe cel puțin două niveluri. La cel mai scăzut nivel , gestionarii de întreruperi gestionează evenimentele declanșate de hardware , procesorul principal acționând ca dispecer . La un nivel superior, sistemele de operare acționează ca dispecerate pentru procesele active, trecând date și eventual alte întreruperi către alte procese, care, la rândul lor, pot gestiona aceleași evenimente la un nivel superior.

Un sistem, sau program, controlat prin comenzi poate fi considerat un caz particular al unui sistem sau program bazat pe evenimente , în care sistemul, în mod normal inactiv, așteaptă să se producă un eveniment foarte special, adică trimiterea unei comenzi de către utilizator .

Exemplu

Acest exemplu, scris în pseudocod , oferă un exemplu de citire a datelor dintr-un socket efectuat cu o tehnică bazată pe evenimente :

 funcție read_next_data (fd)
   date = read_async (fd)
   dacă len (data) = 0
       => Nimic de citit, înscrieți-vă la următoarea lectură
       event_polling_register (fd, read_next_data)
       => Întoarce-te pentru a face altceva
   altceva
       => Date disponibile, cantitatea de date primită egală cu: len (data)
       add_data_to_buffer (tampon, date)
   endif

Elemente conexe

Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT