Procesmodellen
Process state
Hvad for en state processen er i.
State transition ifm. proces-tilstande
New, Ready, Running, Terminated, Waiting
Tilstandsændringer
→ New
- 0: Program loaded New → Ready
- 1: Process initialized Ready → Run
- 2: Gets CPU time Run → Wait
- 3: Needs something Wait → Ready
- 4: Got what it needed Run → ready
- 5: Interrupted Run → Exit
- 6: Finished or aborted Exit →
- 7: Exits system
Wait-mode og Ready-mode
- Wait-mode: waiting (for some event to occur)
- Ready-mode: ready to run (if other processes currently are using all of the CPUs)
5 – Interrupted og 3 – Needs something
6: Interrupted
- Når en proces bliver bedt om at vente af en ud udefra kommende entity. 3: Needs something
- Når en proces selv stopper op fordi den venter på noget.
4 – Got what it needed
Når OS har allokeret det processen venter på til den eller dens IO request. A process remains in the wait state until the resource it needs is allocated to it or its I/O request is completed, at which point state transition 4 occurs to move the process from the wait state back to the ready state.
2 – Gets CPU time
OS skal give processen kontrol over CPU’en Even after a process is in the ready state, it does not start executing until the OS gives it control of the CPU. This is state transition 2 in Figure 2.2 . The process is now executing, and is in the running state. If there is more than one process in the ready state, the part of the OS that chooses one of those to execute is called the CPU scheduler or process scheduler. We discuss process scheduling in detail in Chapter 9.
Process Control Block (PCB)
Program name:
- Word
Process ID, a number assigned by the OS to identify the process:
- Windows’ ID for den specifikke Word-instans
Parent process ID or a pointer to the parent process PCB:
- Kun relevant, hvis der er en parent process
Pointer to a list of child PCBs
- kun relevant hvis process har underprocesser
Pointer to the “next” PCB, probably in a queue
- Pejer på den næste process i køen
Accounting information
- holder øje med ressourcer
Pointer to a table of open files
- Peger ned på åbne filer
CPU state information
CPU state
Instruction counter
Stack pointer(s)
System status register
Other system registers
Event descriptor, valid if the process is waiting for something
Process state information (see next section)
Process owner (user)
Memory management information
Pointer to a message queue
Pointer to an event queue
FCFS, herunder ”cooperative multitasking”
First come, first served. Cooperative multitasking er, når en kørende proces giver næste proces i køen kontrollen.
“Priority scheduling algorithm”, herunder ”starvation”
- En algoritme som prioriterer de vigtigste processer
- Starvation er, når en lav prioritet proces aldrig bliver kørt grundet den lave prioritet.
“preemption”
**Fjerne ressourcer fra processer.
“CPU bound” og “I/O bound”
- Hvis en proces er CPU bound er det CPUen der bestemmer, hvor lang tid den tager at gennemføre
- Hvis den er I/O-bound er det I/O-responstid, der afgører, hvor lang tid den tager at genemføre
“multilevel queuing”
Der er flere køer. Og køen med den højeste prioritet bliver udført først
“feedback” ifm. multilevel queues
Kigger på de processer som kører, og hvis de ikke er ‘interactive’ vil de næste gang blive sat ned i en kø med lavere prioritet. Nye processer vil få en høj prioritet til at starte med og så vil feedback mekanismen sætte dem i en mere passende kø efter de er blevet kørt en gang.