CPU växlar mellan processer med en processplan, som är en del av operativsystemet. Växeln innebär att du sparar tillståndet för den aktuella processen och laddar tillståndet för nästa process. Detta kallas ofta en
context switch .
Här är en förenklad illustration:
`` `
+-----------------++-----------------++-----------------+
| Process A | <--> | Process Scheduler | <--> | Process B |
+-----------------++-----------------++-----------------+
^ |
| V
+-----------------------------------------+
Kontextbrytare
`` `
Förklaring:
1. Process A körs: CPU kör instruktioner för process A. CPU -register, programräknare (PC - som indikerar nästa instruktion) och information om minneshantering (som sidtabeller) återspeglar alla process A:s tillstånd.
2. Kontextomkopplare Initierad: Ett avbrott (t.ex. timeravbrott, I/O -slutförande) eller ett schemaläggningsbeslut får operativsystemets schemaläggare att ingripa.
3. Process A:s tillstånd sparat: Schemaläggaren sparar hela processen A (CPU -register, PC, Memory Management Info) till ett processkontrollblock (PCB), en datastruktur i minnet. Tänk på PCB som en ögonblicksbild av processen.
4. Process B Valt: Schemaläggaren väljer nästa process som ska köras, säger process B, baserat på olika schemaläggningsalgoritmer (t.ex. Round-Robin, prioriterad baserad).
5. Process B:s tillstånd Laddad: Schemaläggaren laddar det sparade tillståndet för process B (från dess PCB) till CPU -register, PC och minneshanteringsenheter.
6. Process B Kör: CPU kör nu instruktioner för process B.
Denna process upprepas kontinuerligt, vilket gör att flera processer kan dela CPU:s tid, vilket skapar illusionen av parallell exekvering (samtidighet). Ju snabbare sammanhangsomkopplaren, desto jämnare multitaskingupplevelsen. Emellertid har sammanhangsomkoppling en viss omkostnad.