9 Fordele og ulemper ved kooperativ multitasking

Kooperativ multitasking giver en teknik, hvor mere end 2 softwareprogrammer kan dele ressourcer og tid for en fælles værtsprocessor. Inden for denne teknik skal køen ligeligt kunne allokere processorressourcer inden for programmer. Det betyder, at opgaverne skal frigøre CPU’en, så den næste opgave kan køre.

Det kaldes undertiden “ikke-forebyggende multitasking.”

Når denne struktur bruges, starter operativsystemet ikke en kontekstskift fra at køre en proces til at køre en anden proces. I stedet vil processer frivilligt opgive kontrollen med processoren til tider, når de er inaktive, eller hvis de hænger for at tillade andre applikationer at køre.

De fleste systemer har bevæget sig væk fra kooperativ multitasking i dag. Populære operativsystemer tidligere, da de brugte 16-bit applikationer, brugte denne proces. I dag findes det typisk i integrerede systemer med hukommelsesbegrænsninger og i specifikke applikationer eller undersystemer.

Liste over fordelene ved kooperativ multitasking

1. Det er meget let at implementere.

Kooperativ multitasking er den bedste mulighed for individuelle brugere, der har nogle opgaver, der skal udføres. Du behøver ikke bekymre dig om tilstedeværelsen af ​​suspenderingskode, fordi hver tråd er ansvarlig for, når den opgiver sin kodningstid. Det gør kodningsprocesserne meget lettere for den enkelte programmør, selvom encoderens dygtighed vil bestemme systemets effektivitet.

2. letter dataudveksling.

Med denne type operativsystem kan forskellige mennesker dele den samme opfattelse, selvom de ikke er i det samme projekt på samme tid. De involverede processer er forudsigelige, hvilket giver mulighed for individualiseret test og profilering, selvom hændelser opstår på forskellige tidspunkter. Dette giver mulighed for bedre effektivitet inden for processer, samtidig med at der opretholdes en enkelt CPU.

3. Tilbyd en bestemt tidsramme for din overvejelse.

Kodningen kan omfatte timere, der konfigurerer hændelser og sløjfer, der leder efter kooperative tråde, efterhånden som processerne implementeres. Det betyder, at du bliver nødt til at sikre, at hver tråd får adgang til processoren for at maksimere dens fordele uden at tage for lang tid at få adgang til ressourcen. Hvis en tråd eller et program tager for lang tid, går du glip af muligheder for fremgang.

For at være retfærdig er denne nøjagtige proces mindre en multitasking kooperativ mikrokernel og mere en cyklus / timer -implementering, selvom den stadig er klassificeret som en proces inden for denne type struktur.

4. Maksimer, hvad CPU’en kan levere.

Fordi kooperativ multitasking kræver individuelle processer eller tråde på bestemte tidspunkter, kan CPU’en dedikere sine ressourcer til det specifikke element, der kører i øjeblikket. I andre former for multitasking kan der være flere tråde eller programmer, der kører samtidigt, hvilket reducerer virkningerne af den processorkraft, der er tilgængelig for hver. Når man koder effektivt, maksimerer kooperativ multitasking processorkraft, fordi den har stort fokus på individualitet.

5. Giver færre re-entry problemer.

Når kooperativ multitasking implementeres med en enkelt CPU -kerne, stødes der generelt færre genindtastningsproblemer. Dette skyldes, at de tråde, programmer eller opgaver, der kører, ikke kan afbrydes vilkårligt af andre opgaver. De eneste afbrydelser, der forekommer i denne type system, er på positioner, der er i kernekaldene, som er tilladt af encoderen.

Denne fordel gælder ikke for multiprocessorkerner. Gælder kun med en enkelt processorkerne.

6. Giver dig mulighed for fuldt ud at bevare svarene i realtid.

Selvom kooperativ multitasking forhindrer svar på opgaveniveau, bevarer det disse svar fuldt ud i en afbrudshåndterer. Disse drivere fortsætter med at bruge postkasser og semaforer i multitaskingssystemet, så moduler kan køre uanset de algoritmer, der aktuelt er aktive.

Liste over ulemper ved kooperativ multitasking

1. Det er svært at stoppe en opgave, når den først er startet.

Der er ingen måde at suspendere den tråd, der kører i øjeblikket, når du bruger kooperativ multitasking. Det betyder, at tråden, der tager CPU -ressourcerne, fortsat vil kræve opmærksomhed, indtil tråden er fuldført. Hvis der opstår en fejl i tråden eller programmet, eller der ikke sker nogen udførelse, kan CPU’en muligvis blive tvunget til en position, hvor brugeren manuelt skal stoppe driften for at gendanne sine muligheder.

2. Det garanterer ikke, at alle opgaver kan få adgang til processoren.

Fordi tråde fungerer uafhængigt af hinanden, er der ingen garanti for, at hver tråd eller program kan få den tid med den CPU, det kræver. Hvis planlægningsprocesserne ikke er beregnet korrekt, er det meget muligt, at nogle ressourcer aldrig får adgang til processoren uden manuel indgriben. I en sådan situation tager projekter længere tid at gennemføre, fordi samarbejdsudførelsen af ​​flere opgaver løbende skal revideres.

3. Det fungerer ikke godt i visse svartider.

Kooperativ multitasking bruges bedst, når programmer ikke kræver en svartid i størrelsesordenen millisekunder eller mikrosekunder på opgaveniveau. Hvis disse tidslinjer er nødvendige, anbefales en anden struktur stærkt.

Fordelene og ulemperne ved kooperativ multitasking bruges typisk, når en enkelt bruger med en håndfuld tråde eller programmer skal maksimere lokale ressourcer. På grund af deres naturlige begrænsninger drager gruppesituationer normalt ikke fordel af denne type proces. Der er naturligvis altid undtagelser fra reglen, så sørg for at undersøge alle dine muligheder, før du beslutter dig for hvilken type multitasking du skal bruge.