CPU: Prosesser Flashcards
Hva gjør system kallet fork?
pid_t fork(void)
Lager en duplikat av den kallende prosessen inkludert en kopi av det virtuelle adresse spacet, åpne fildeskriptorer, og lignende.
Hva gjør system kallet execve?
int execve(char *filename, char *params[], char *envp[])
Eksekverer programmet som bli pekt på av filname og bruker parameterene gitt i params og environment gitt av envp.
Hva gjør systemkallet wait?
pid_t wait(int *status)
Venter til any av barneprosessene terminerer (om det er en kjørende barneprosess).
Hvilken måter kan en prosess terminere?
Ingen flere instruksjoner å eksekvere i programmet, ukjent status verdi.
En funksjon i programmet blir ferdig med en return. Parameter to return the status value.
Et systemkall til void exit(int status). Terminerer en prosess og returns status value.
Et systemkall til int kill(pid_t pid, int sig). Sender et signal til en prosess for å terminere den.
Usually, a status value of 0 indicates success, other values indicate errors.
Hvilken prosess tilstander har vi?
Running, Blocked og Ready
Hva er en context switch?
Prosessen av å bytte en kjørende prosess med en annen.
Hvilken hoved steg krever en context switch fra prosess 1 til prosess 2?
- Stop kjørende prosess 1
- Lage tilstanden (registere, instruksjons pekere) til prosess 1, vanligvis på stacken eller PCB.
- Gjennopprette tilstanden for prosess 2.
- Fortsette operasjon på program counter for prosess 2.
Hva er tråder og hvordan er de forskjellige fra prosesser?
Tråder kan ses på som light-weight prosesser.
- Gir mer effektivt sammarbeid mellom eksekverings units.
- Deler mange prosess ressurser (f.eks. address space).
- Har egen state, stack, prosessor registere og program counter.
- Ingen minne addresse switch.
- Billigere å switche ut tråder (enn prosesser/context switch).
- Parallel eksekvering av samtidige oppgaver innen en prosess.
(Som illustrasjon så kan en tenke tå tråder kjører innen for en prosess, og deler addresse space og globale prosess data, men har sin egen state, register, program counter, stack)