Realtidsprogramvara är programvara som måste reagera på ingångar inom en specifik, begränsad tid. Denna begränsning är avgörande för dess funktion, och underlåtenhet att uppfylla tidsfristerna kan få allvarliga konsekvenser. Dessa konsekvenser sträcker sig från mindre besvär (en liten stam i ett videospel) till katastrofala misslyckanden (ett felaktigt flygplanskontrollsystem).
Här är en uppdelning av dess viktigaste egenskaper:
* Tidskritiskhet: Den definierande funktionen. Programvaran måste svara på händelser inom en förutbestämd tidsram. Denna tidsram är ofta mycket kort, mätt i millisekunder eller till och med mikrosekunder.
* deterministiskt beteende: Responstiden bör vara förutsägbar och konsekvent. Programvaran bör inte visa oförutsägbara förseningar eller fördröjningar.
* Pålitlighet: Hög tillförlitlighet är väsentlig. Misslyckanden kan ha allvarliga återverkningar, så programvaran måste vara robust och feltolerant.
* Resurshantering: Effektiv resurshantering (CPU, minne etc.) är avgörande för att säkerställa snabba svar.
Realtidsprogramvara kategoriseras i två huvudtyper:
* Hård realtid: Dessa system har strikta tidsfrister som * måste * uppfyllas. Att sakna en tidsfrist betraktas som ett misslyckande, ofta med kritiska konsekvenser. Exempel inkluderar flygkontrollsystem, medicintekniska produkter och industriella processkontrollsystem.
* Mjuk realtid: Dessa system har tidsfrister som * ska * uppfyllas, men att sakna en tidsfrist leder inte till katastrofalt misslyckande. Istället försämras systemets prestanda (t.ex. minskad servicekvalitet). Exempel inkluderar videospel, multimediaapplikationer och vissa industrirobotar.
Det är viktigt att notera att även "mjuka" realtidssystem ofta har stränga tidsbehov. Medan en liten fördröjning kan vara acceptabel, gör betydande förseningar systemet oanvändbart.
Utvecklingen av realtidsprogramvara involverar specialiserade tekniker och verktyg för att säkerställa dess aktualitet och tillförlitlighet, ofta inklusive tekniker för schemaläggning, avbrottshantering och samtidighetskontroll.