All information som behövs för att hålla reda på en process när växling hålls i ett datapaket som kallas ett processkontrollblock. Processkontrollblocket innehåller vanligtvis:
- ett ID-nummer som identifierar processen
- pekare till platserna i programmet och dess data där behandlingen senast inträffade
- registrera innehållet
- stater för olika flaggor och växlar
- pekare till de övre och nedre gränserna för det minne som krävs för processen
- en lista över filer som öppnas av processen
- prioriteten för processen
- status för alla/O-enheter som behövs av processen
varje process har en status associerad med den. Många processer förbrukar ingen CPU-tid tills de får någon form av inmatning. Till exempel kan en process vänta på en tangenttryckning från användaren. Medan den väntar på tangenttryckningen använder den ingen CPU-tid. Medan den väntar är den”avstängd”. När tangenttryckningen anländer ändrar operativsystemet sin status. När status för processen ändras, från väntande till aktiv, till exempel, eller från suspenderad till körning, måste informationen i processkontrollblocket användas som data i något annat program för att styra utförandet av uppgiftsomkopplingsdelen av operativsystemet.
annons
denna processbyte sker utan direkt användarinterferens, och varje process får tillräckligt med CPU-cykler för att utföra sin uppgift på rimlig tid. Problem kan börja om användaren försöker ha för många processer som fungerar samtidigt. Operativsystemet i sig kräver vissa CPU-cykler för att utföra sparande och byte av alla register, köer och staplar i applikationsprocesserna. Om tillräckligt många processer startas, och om operativsystemet inte har utformats noggrant, kan systemet börja använda de allra flesta av sina tillgängliga CPU-cykler för att byta mellan processer snarare än att köra processer. När detta händer kallas det thrashing, och det kräver vanligtvis någon form av direkt användarintervention för att stoppa processer och få ordning tillbaka till systemet.
det här innehållet är inte kompatibelt på den här enheten.
det här innehållet är inte kompatibelt på den här enheten.
ett sätt att operativsystemdesigners minskar risken för thrashing är att minska behovet av nya processer för att utföra olika uppgifter. Vissa operativsystem möjliggör en ”process-lite”, kallad en tråd, som kan hantera allt CPU-intensivt arbete i en normal process, men hanterar i allmänhet inte de olika typerna av I/O och etablerar inte strukturer som kräver det omfattande processkontrollblocket i en vanlig process. En process kan starta många trådar eller andra processer, men en tråd kan inte starta en process.
hittills har all schemaläggning vi diskuterat berört en enda CPU. I ett system med två eller flera processorer måste operativsystemet dela arbetsbelastningen mellan processorerna och försöka balansera kraven på de nödvändiga processerna med de tillgängliga cyklerna på de olika processorerna. Asymmetriska operativsystem använder en CPU för sina egna behov och delar applikationsprocesser mellan de återstående CPU: erna. Symmetriska operativsystem delar sig mellan de olika CPU: erna, balanserar efterfrågan kontra CPU-tillgänglighet även när operativsystemet själv är allt som körs.