Bedste svar
På grund af den formulering, du bruger, forekommer det mig, at du taler om software, der kommer til at køre på nogle slags indlejret system i modsætning til software, der vil blive implementeret som en desktop-applikation eller en anden variant.
Før du kan køre et program på et bestemt stykke hardware, er der flere trin, der skal følges for at konvertere kildekoden, du skrev, til noget, der rent faktisk kan fortolkes af en maskine.
Din kildekode er skrevet på et sprog, der har en vis syntaks og semantik, og som kan læses for dig, mens en processor kun forventer og forstår 1s og 0s.
Når du arbejder med kompilerede sprog, er der en række værktøjer, der når de bruges i en bestemt rækkefølge og føder med de rigtige input vil producere det, der almindeligvis er kendt som et softwarebillede. Dette softwarebillede er, hvad du i sidste ende vil indlæse i målet.
Afhængigt af din hardware og hvordan du opbygger din værktøjskæde, vil værktøjerne til at producere softwarebilledet variere, men du får helt sikkert brug for en forprocessor, en compiler og en linker.
Kildekoden sendes til forprocessoren, som løser nogle ting (makroer, inkluderer, forprocessordirektiver og andre). På dette tidspunkt har du en mellemfil, der stadig kan læses for dig. Derefter sendes den forbehandlede fil til compileren, som genererer en objektfil. Du skal fortælle kompilatoren, hvordan og hvilke filer der skal tages for at producere de korrekte objektfiler.
Endelig vil linkeren kombinere de forskellige objektfiler fra det foregående trin på den måde, du fortæller det til, og vil frembringe det binære billede som et resultat (linkeren håndterer sammenkædning af biblioteker og andre ting, der ikke kunne løses i kompileringsfasen).
Installation eller test af et softwarebillede betyder at indlæse det binære billede, du producerede i det sidste trin, i målhardwaren. Indlæsningen udføres normalt ved at kopiere billedet til en ikke-flygtig hukommelseslager.
Dette er en bred beskrivelse af processen og er ikke beregnet til at være udtømmende.
Svar
At læse de to svar foran mig og indrømme, at jeg ikke er sikkert hvad du faktisk spørger, det er de ting, du måske henviser til.
I mange flerbruger-systemer, da der kun er et sæt hardware-registre på maskinen, der skal deles, de normalt Giv hver bruger et stykke tid (for eksempel 10 ms), og gå derefter til den næste og den næste. Tilstanden for hver brugerdata ændres ikke, fordi de er gemt på disken eller i ubrugt hukommelse. Registersættets tilstand skal gemmes som et øjebliksbillede af, hvad der sker i dette øjeblik, så de kan gendannes, næste gang brugeren vælges.
En anden anvendelse af udtrykket er matematik og hukommelsesstyring, der kræves for at holde et billede i hukommelsen i modsætning til bare at scanne et sæt linjer med forskellige værdier.
I de gamle dage med hovedrammecomputere blev kildekoden samlet eller samlet i Core image -biblioteker, maskine sprog som en blok, der skal indlæses i hukommelsen og derefter køre som den er. De fleste DLLer bruger lignende teori, hvis ikke praksis.
Undskyld, hvis alt, hvad jeg gjorde, var mudret vandet.