Hva er Signal programmering?

February 9  by Eliza

"Signal programmering" er et uttrykk som ofte brukes for å referere til et dataprogram som fungerer primært som reaksjon på signaler eller hendelser som genereres av en viss forandring i tilstand, eller ved at brukeren. Nesten hvilken som helst del av et datasystem, fra en ekstern enhet til selve operativsystemet, kan generere et signal som kan fanges opp av et program og deretter behandlet. I mange former, ligner signalet programmering hendelsesdrevet programmering. Noen av de vanligste bruksområdene for signal programmering er med grafiske brukergrensesnitt som reagerer på brukerundersøkelser, nettverkskommunikasjon og lav-nivå programmer som fanger opp og håndtere spesifikke systemsignaler.

Et signal i programmering kan defineres som en melding, en hendelse eller et avbrudd, avhengig av dens opprinnelse, systemarkitektur eller preferanse for programmereren. I videste betydning, er det en indikator på at noen stat eller del av data har forandret seg, og det noen ganger er ledsaget av tilleggsinformasjon om den endringen som har skjedd. Signalet kan være generert av brukeren når en tast blir trykket, fra maskinvare for eksempel en skjerm når en vertikal retrace oppstår, eller fra operativsystemet når noe slikt som en sidefeil skjer under minnetildeling.

I en applikasjon, signal programmering kan ta på seg flere typer arkitekturer, men en av de mest vanlige er en lytter eller observatør modell. I denne metoden, kan en del av brukerdefinert kode sendes på noen måte til et signal handler, vanligvis i operativsystemet, som deretter kaller det stykke kode for å behandle noen signaler som passer til det funksjonen søker. Den type signal en funksjon kan håndtere ofte bestemmes av en variabel kalt et signal maske, slik at enkelte signaler ikke er gått over til rutinene ikke utformet for å håndtere dem.

En andre type av signal programmering innebærer å ha et program som implementerer en kø som aksepterer innkommende signaler. Denne kø avspørres i hovedutførelse sløyfe i programmet, og programmet reagerer når et signal kommer inn i køen. Hvert signal kan da være logisk sorteres, håndteres, ignoreres, eller føres til en annen prosess.

Noen problemer kan oppstå i signal programmering når samtidige prosesser eller flertrådede programmer brukes. Komplikasjoner kan oppstå hvis, for eksempel, er to separate tråder lytter etter signaler generert av to separate bruker inndataenheter, eller fra to nettverkskontakter. Hvis to brukere samtidig forsøke å gjøre en endring i noen data, deretter programdata kan falle ut av synkronisering og se annerledes ut til hver bruker. Ved hjelp av en lineær kø eller gjennomføring tråd synkroniseringsmetoder kan bidra til å unngå denne situasjonen.