Hvad er Concurrency eller Single Core?

I operativsystemer defineres concurrency som et systems evne til at køre to eller flere programmer i overlappende tidsfaser.

Sammenfaldende udførelse med tidsskæring

Som du kan se, er der til enhver tid kun én proces i udførelse. Derfor er samtidighed kun en generaliseret tilnærmelse af reel parallel udførelse. Denne slags situation kan findes i systemer, der har en single-core-processor.

I denne tutorial om Concurrency lærer du

  • Hvad er Concurrency eller Single Core?
  • Hvad er parallel eksekvering eller (Multi-Core)?
  • Hvad er tråd?
  • Hvad er Multithreading?
  • Hvordan fungerer multithreading?
  • Hvad er CPU Core?
  • Hvad er det vigtigste problem med Single Core?
  • Løsningen, der leveres af Multi-Core:
  • Fordele ved flerkerneprocessor
  • Forskellen mellem Core vs. Threads
  • Hvad er Hyper-Threading?

Hvad er parallel udførelse eller (Multi-Core)?

I parallel udførelse opdeles de opgaver, der skal udføres af en proces, i underdele, og flere CPU’er (eller flere kerner) behandler hver underopgave på nøjagtig samme tid.

Parallel eksekvering

Som du kan se, er alle processer til enhver tid i gang med at blive eksekveret. I virkeligheden er det underopgaverne i en proces, der udføres parallelt, men for en bedre forståelse kan du visualisere dem som processer.

Der er parallelisme derfor den reelle måde, hvorpå flere opgaver kan behandles på samme tid. Denne type situation kan findes i systemer med flerkerneprocessorer, hvilket omfatter næsten alle moderne, kommercielle processorer.

Nøgleforskellen

  • Kerner øger mængden af arbejde, der udføres på én gang, mens tråde forbedrer gennemstrømningen, beregningshastigheden.
  • Kerner er en egentlig hardwarekomponent, mens tråde er en virtuel komponent, der administrerer opgaverne.
  • Kerner anvender indholdsskift, mens tråde anvender flere CPU’er til drift af mange processer.
  • Kerner kræver kun en signalprocesenhed, mens tråde kræver flere behandlingsenheder.

Hvad er tråd?

En tråd er en enhed for udførelse ved samtidig programmering. Multithreading er en teknik, der gør det muligt for en CPU at udføre mange opgaver i en proces på samme tid. Disse tråde kan udføre individuelt, mens de deler deres ressourcer.

Hvad er multithreading?

Multithreading henviser til den fælles opgave, der kører flere udførelsestråde i et operativsystem. Det kan omfatte flere systemprocesser.

Hvordan fungerer multithreading?

De fleste moderne CPU’er understøtter f.eks. multithreading. En simpel app på din smartphone kan give dig en live-demo af det samme.

Når du åbner en app, der kræver, at der skal hentes nogle data fra internettet, erstattes appens indholdsområde af en spinner. Denne vil rotere, indtil dataene er hentet og vist.

I baggrunden er der to tråde:

  • En, der henter dataene fra et netværk, og
  • En, der renderer den GUI, der viser spinneren

Både disse tråde udføres efter hinanden for at give illusionen af samtidig udførelse.

Hvad er en CPU-kerne?

En CPU-kerne er den del af noget, der er central for dens eksistens eller karakter. På samme måde betegnes CPU’en i computersystemet også som kernen.

Der findes grundlæggende to typer processorkerner:

  1. Single-Core-processor
  2. Multi-Core-processor

Hvad er det vigtigste problem med Single Core?

Der er hovedsageligt to problemer med Single Core.

  • For at udføre opgaverne hurtigere er du nødt til at øge clocktiden.
  • Højere clocktid øger strømforbruget og varmeafgivelsen til et ekstremt højt niveau, hvilket gør processoren ineffektiv.

Løsningen, der leveres af Multi-Core:

  • Skabelse af to kerner eller flere på den samme die for at øge processorkraften, samtidig med at det også holder clockhastigheden på et effektivt niveau.
  • En processor med to kerner, der kører en effektiv hastighed, kan behandle instruktioner med samme hastighed som processoren med én kerne. Dens clockhastighed er dobbelt så høj, men den multikernede proces bruger mindre energi.

Fordele ved multikerneprocessor

Her er nogle fordele ved multikerneprocessoren:

  • Mere transistorer pr. valg
  • Kortere forbindelser
  • Lækkerere kapacitans
  • Et lille kredsløb kan arbejde med høj hastighed

Forskellen mellem core vs. Tråde

Parametre Core Tråde
Definition CPU-kerner betyder den faktiske hardwarekomponent. Threads henviser til den virtuelle komponent, som forvalter opgaverne.
Proces Cpu’en fodres med opgaver fra en tråd. Derfor får den kun adgang til den anden tråd, når de oplysninger, der sendes af den første tråd, ikke er pålidelige. Der findes mange forskellige variationer af, hvordan CPU’en kan interagere med flere tråde.
Implementering Gennemført ved interleaving-operation Udført ved at suge flere CPU’er
Fordel Forøgelse af den mængde arbejde, der udføres på én gang. Forbedre gennemstrømning, beregningsmæssig hastighedsforøgelse.
Gør brug af Kernen bruger content switching Anvender flere CPU’er til drift af mange processer.
Kræver procesenheder Kræver kun signalprocesenhed. Kræver flere procesenheder.
Eksempel Kører flere programmer på samme tid. Kører webcrawler på en klynge.

Hvad er Hyper-Threading?

Hyper-threading var Intels første forsøg på at bringe parallel beregning til slutbrugerens pc’er. Det blev første gang anvendt på desktop-CPU’er med Pentium 4 i 2002.

Pentium 4’erne havde på daværende tidspunkt kun en enkelt CPU-kerne. Derfor udfører den kun en enkelt opgave og kan ikke udføre nogen form for flere operationer.

En enkelt CPU med hyperthreading fremstår som to logiske CPU’er for et styresystem. I dette tilfælde er CPU’en enkelt, men OS’et betragter to CPU’er for hver kerne, og CPU-hardwaren har et enkelt sæt eksekveringsressourcer for hver CPU-kerne.

Derfor antager CPU’en, som om den har flere kerner, end den har, og operativsystemet antager to CPU’er for hver enkelt CPU-kerne.

Resumé:

  • En tråd er en eksekveringsenhed ved samtidig programmering
  • Multithreading henviser til den fælles opgave, der kører flere eksekveringstråde i et operativsystem
  • I dag understøtter mange moderne CPU’er multithreading
  • Hyperthreading var Intels første forsøg på at bringe parallel beregning til slutbrugerens pc’er.
  • En CPU-kerne er den del af noget, der er central for dens eksistens eller karakter
  • I, Operativsystem er samtidighed defineret som et systems evne til at køre to eller flere programmer i overlappende tidsfaser.
  • I parallel udførelse opdeles de opgaver, der skal udføres af en proces, i underdele.
  • Det vigtigste problem ved single-core-processorer er, at for at udføre opgaverne hurtigere skal man øge clocktiden.
  • Multicore løser dette problem ved at oprette to kerner eller flere på den samme matrice for at øge processorkraften, og det holder også clockhastigheden på et effektivt niveau.
  • Den største fordel ved multicore-systemet er, at det hjælper dig med at skabe flere transistorer pr. valg
  • CTP-kerner betyder den faktiske hardwarekomponent, mens tråde henviser til den virtuelle komponent, som administrerer opgaverne.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.