Processer/tråde Per P. Madsen1 Et stykke software der håndtere skiftet af CPU’en.  Dispatcher. Et antal selvstændige programmer.  Processer. Plus det.

Slides:



Advertisements
Lignende præsentationer
SPBG.  Test driven development  Unit test frameworks  MOSS TDD  Mocking  Design patterns.
Advertisements

Indsæt nyt billede: Format: B 254 x 190,5 mm Efter indsættelse, højreklik på billedet og placér det bagerst. Delete det gamle foto Legal aid in Denmark.
Dagens program  Emne: Tim Berners-Lees WWW koncept og deraf følgende innovationer Forbered hver for sig Præsenter og diskutér i grupper Fremlæggelse med.
ITera HA - High Availability and real-time Disaster Recovery Nye anvendelsesområder for en High Availability løsning Soft Design seminar, Gl. Avernæs,
Camptema 2013 Hvordan kan Henne-området udvikles og kvalitetsudvikles med fokus på børnefamilier ?
Head Project Management-gruppe. Stakeholder contracting & Gode rapporteringsformer.
Per P. MadsenStyresystemer og tjenester1 Indhold: 1.Introduktion til styresystemer. 2.Processer og tråde. 3.Synkroniseringsmetoder og InterProcesCommunikation.
Efteruddannelse Embedded C Modul 4 (Torsdag den 14/1-2010)
FNI marts Dupline introduction. FNI marts Sensors, Switches, Relays, Valves, Motors Counters, Timers, Drives Dupline PLC's PC's, SCADA Prod.
Claus Tøndering Arkitektur MCU CIOC DIOC SIOC Memory MCU: Main Computing Unit med Motorola (senere og 68030) DIOC: Disk.
Styresystemer og tjenester1 Indhold: 1.Introduktion til styresystemer. 2.Processer og tråde. 3.Synkroniseringsmetoder og InterProcesCommunikation. 4.Memory.
Overskrift her Navn på oplægsholder Navn på KU- enhed For at ændre ”Enhedens navn” og ”Sted og dato”: Klik i menulinjen, vælg ”Indsæt” > ”Sidehoved / Sidefod”.
Efteruddannelse Embedded C Modul 4 (Torsdag den 22/4-2010)
Tekst starter uden punktopstilling For at få punkt- opstilling på teksten, brug forøg indrykning For at få venstre- stillet tekst uden punktopstilling,
Design definition  Den proces, som med forskellige teknik- ker definerer en enhed, en proces, eller et system i tilstrækkelige detaljer, således at det.
Unit 1 English Summative Assessment, Poem
1 Pentium IA-32 Maskinarkitekturen Kort resume – uge 5.
Arne Winther Et værdifuldt samarbejde mellem hospital og produktudvikler.
Overskrift her Navn på oplægsholder Navn på KU- enhed For at ændre ”Enhedens navn” og ”Sted og dato”: Klik i menulinjen, vælg ”Indsæt” > ”Sidehoved / Sidefod”.
View Procedures Trigger og Function Jesper Tørresø DAB1 E07 1. november 2007.
Flerbrugermaskine Fælles maskine Root: webserver Peter: uploader filer Pia: programudvikling 1 langvarig proces, evt. med børneprocesser skiftende behov.
Algoritmer og Datastrukturer 1 Greylisting Gerth Stølting Brodal.
Centre of Research in Childhood Health Syddansk Universitet1 Is sports participation protective of back pain in childhood? An interim analysis from a prospective.
Database Normalization without Mathmatics
Overskrift her Navn på oplægsholder Navn på KU- enhed For at ændre ”Enhedens navn” og ”Sted og dato”: Klik i menulinjen, vælg ”Indsæt” > ”Sidehoved / Sidefod”.
Microsoft Solutions for Management Peter Colsted Direktør Enterprise & Partner Group Microsoft Danmark.
02/09/2014 Sygefravær v/Jesper Johansen Director People & Organisation Europe Title slide Edit: Add presentation title and speaker(s). Editing slides in.
Objekter og klasser Applikationsdesign Code Namespace Value og reference typer Reference type Rasmus D. Lehrmann1.
”Men hvis aftalen mellem EU og USA kommer i stand, bliver sådan en handel billigere for de danske forbrugere, siger handelsminister Pia Olsen Dyhr. - Jeg.
Tråde og synkronisering. Tråde To typer tråde Dedikerede tråde -programmør opretter og tilknytter metode -”kører tråd-metoden (job) én gang” Tråd pulje.
Overskrift her Navn på oplægsholder Navn på KU- enhed For at ændre ”Enhedens navn” og ”Sted og dato”: Klik i menulinjen, vælg ”Indsæt” > ”Sidehoved / Sidefod”.
CUSTOMER JOURNEYS 12/9.
Ændr 2. linje i overskriften til AU Passata Light 30 SEPTEMBER 2014 DEIC CONFERENCE 2014 PHD STUDENT MATTEO PILATI AARHUS UNIVERSITY DEPARTMENT OF CULTURE.
Presentation 27: Comparison of technologies Objektorienteret Middleware.
Overskrift her Tilføj presentations titel i Sidehoved / sidefod. Vis > Sidehoved / sidefod Tekst her 1 9. marts 2011 Chairman Vagn Sørensen Presentation.
Agenda 1.Informationer 1.Excel i fb.m. projekt 2 2.Reserver tid til projekt 2 3.Øvelse: a / b = c 2.Opsamling fra sidst 3.Estimation (konfidensintervaller)
Begreber og Redskaber 9. Plan for idag I dag: Datastrukturer Tabeller Lister, mængder, maps, grafer Hægtede lister.
KLAR TIL NYE MULIGHEDER
For at ændre ”Enhedens navn” og ”Sted og dato”: Klik i menulinjen, vælg ”Indsæt” > ”Sidehoved / Sidefod”. Indføj ”Sted og dato” i feltet for dato og ”Enhedens.
Nyt tværfagligt innovations tilvalgskursus på DTU Diplom Vil du bruge din faglighed i tværdisciplinært samarbejde med ingeniørstuderende fra andre retninger?
Business case - Gevinstoverblik Forsikring eksempel
Begreber og Redskaber 5. Plan for idag Overblik over klasser,objekter,nedarvning –Repetition fra Dat A/Indledende programmering –Centrale begreber om.
Per P. MadsenStyresystemer og tjenester1 Indhold: 1.Introduktion til styresystemer. 2.Processer og tråde. 3.Synkroniseringsmetoder og InterProcesCommunikation.
Tekstslide i punktform Rubrik, helst 1 linje Brug ”Forøg/Formindsk indryk” for at få de forskellige niveauer frem Danish Standards  Signe Annette Boegh.
1 Tråde 2 Plan Trådbegrebet Synkronisering Koordinering Eksempel: et flertrådet spil.
Per P. MadsenStyresystemer og tjenester1 Indhold: 1.Introduktion til styresystemer. 2.Processer og tråde. 3.Synkroniseringsmetoder. 4.InterProcesCommunikation.
Procestræ under afvikling af cp init login shell cp cp src dest.
Per P. MadsenStyresystemer og tjenester1 Indhold: 1.Introduktion til styresystemer. 2.Processer og tråde. 3.Synkroniseringsmetoder og InterProcesCommunikation.
Per P. MadsenStyresystemer og tjenester1 Indhold: 1.Introduktion til styresystemer. 2.Processer og tråde. 3.Synkroniseringsmetoder og InterProcesCommunikation.
Per Printz Madsen Linux proces og tråd programmering Per Printz Madsen Aalborg Universitet Institut for.
Process Control Hardware baggrund Process begrebet i et OS Process tilstande Context switching.
Per Printz Madsen 1 Linux kernen Monolithic kernel Support for dynamiske moduler Få kerne tråde Preemptive.
Per P. MadsenStyresystemer og tjenester1 Indhold: 1.Introduktion til styresystemer. 2.Processer og tråde. 3.Synkroniseringsmetoder og InterProcesCommunikation.
Interview service in Statistics Denmark Structure and Surveys.
Per P. MadsenStyresystemer og tjenester1 Threads.
1 Processer. 2 fork int fork(); Danner en ny proces med samme indhold som forældre processen. I begge processer er programtælleren placeret lige efter.
Et Audio/ Video Framework Et framework for en audio/video applikation baseret på lokale og kilder tilgængelige på 1394 via AV/C protokollen.
Multiple processer på web-site Web- server filer Kunde 1 Kunde 2 Kunde p1p2p internet.
Mikkel deMib Svendsen Duplicate Content & Multiple Site Issue Mikkel deMib Svendsen
Drug/Device Combination Products IFF erfagruppemøde
Completing secondary education
Introduction to synopsis writing
Dansk HL7 CDA profil til deling af aftaler Data i en aftale
Interrupts. Indtil nu har hastigheden på dine blinkende LEDs været styret af et loop. Som du muligvis også har bemærket afhænger det meget af hvor travlt.
Compositional Design Principles “SemiCiv”
Software Testing Software testing.
Teltstangsfoldning, øvre og nedre grænser log_2 n
”Show me your tools” session: Slurm kø-system tools
LionSpaceFIS Reports Space Manager Running Reports in Space Manager
CS 3800 Switch/Router Lab Project Introduction
Præsentationens transcript:

Processer/tråde Per P. Madsen1 Et stykke software der håndtere skiftet af CPU’en.  Dispatcher. Et antal selvstændige programmer.  Processer. Plus det løse til: Oprettelse af processer. Synkronisering af processer. Kommunikation mellem processer.

Per P. MadsenStyresystemer og tjenester2 Proces. Et program der eksekveres. En ressource enhed. Egen memory. Egen status for filer. Egen protection ID. Administrative data fx. Start tid, Forbrugt CPU-tid osv. Samt alle alm ting som egen stak, programstatus, CPU’registre, Prioritet

Per P. MadsenStyresystemer og tjenester3 Processer/tråde Dispatcher: Et lille progran der skifter til den næste tråd, gør evt. brug af schedulerings algoritmen.

Per P. MadsenStyresystemer og tjenester4 Processer/tråde

Per P. MadsenStyresystemer og tjenester5

Per P. MadsenStyresystemer og tjenester6 Processer/tråde

Per P. MadsenStyresystemer og tjenester7 Proces control blok

Per P. MadsenStyresystemer og tjenester8 Proces hieraki UNIX/LINUX: En proces er barn af den proces der opretter den. Processen init fødes ved boot. Alle andre er derfor efterkommere efter init. Prøv evt. Kommandoen pstree. Windows: Ingen hieraki dog får forældre processen en handle til barnet.

Per P. MadsenStyresystemer og tjenester9 Proces oprettelse 1.Boot time: Init opretter alle de nødvendige processer for at operativsystemet kommer op at køre. 2.Brug af fork() (UNIX/LINUX) eller CreateProcess(...) (Windows) systemkaldene. En shell afvikler et program. Et program/proces oprette en ny proces. 3.Batch job: Jobs der står i kø som operativsystemet afvikler efter en bestemt politik.

Per P. MadsenStyresystemer og tjenester10 Simpel shell #include int main (int argc, char *argv[]) { int status, pid; char kommando[80]; while (1) { printf("ppmshell>"); scanf("%s",kommando); pid = fork(); if (pid != 0) while(wait(&status) != pid); else execlp(kommando, (char *)NULL); }

Per P. MadsenStyresystemer og tjenester11 EXEC #include int execlp( const char *file, /* program name */ const char *arg0, /* first arg (file name) */ const char *arg1, /* second arg (if needed) */..., /* remaining args (if needed) */ NULL /* arg list terminator */ ); /* Returns -1 on error (sets errno) */ execlp("echo", "echo", "haj", "du.", NULL);

Per P. MadsenStyresystemer og tjenester12 EXEC int execl(const char *path, const char *arg0, const char *arg1,..., NULL); int execlp(const char *file, const char *arg0, const char *arg1,..., NULL); int execle(const char *path, const char *arg0, const char *arg1,..., NULL, char *const envv[]); int execv(const char *path, char *const argv[]); int execvp(const char *file, char *const argv[]); int execve(const char *path, char *const argv[], char *const envv[]);

Per P. MadsenStyresystemer og tjenester13 Software interrupts: Signals

Per P. MadsenStyresystemer og tjenester14 Simpel shell #include void slut () {printf(" -- Så er det slut\n"); exit(0);} int main (int argc, char *argv[]) { int status, pid; char kommando[80]; signal (SIGINT, slut); while (1) { printf("ppmshell>"); scanf("%s",kommando); pid = fork(); if (pid != 0) while(wait(&status) != pid); else execlp(kommando, (char *)NULL); }

Per P. MadsenStyresystemer og tjenester15 Software interrupts: Realtime Clock #include struct timeval tv; struct itimerval sample_time; struct sigaction sa; void sampel_pc () { // gør noget } sample_time.it_interval.tv_sec = 0; sample_time.it_interval.tv_usec = ; sample_time.it_value.tv_sec = 0; sample_time.it_value.tv_usec = ; /* Install timer_handler as the signal handler for SIGVTALRM. */ memset (&sa, 0, sizeof (sa)); sa.sa_handler = &sampel_pc; sigaction (SIGALRM, &sa, NULL); setitimer (ITIMER_REAL, &sample_time, ((struct itimerval *) 0)); while (1) sigpause (0);

Short-Term Schedulering/dispatching Dispatcheren startes af: Hardware: –Clock interrupts –I/O interrupts Kørende proces/tråd. –Operating system kald –Signals (e.g., semaphores) Per P. MadsenStyresystemer og tjenester16

Preemptive/Nonpreemptive Nonpreemptive: Når en proces køre fåe den lov at køre til den selv giver afkald på CPU’en. Preemptive: En proces kan blive afbrugt på et vilkårligd tidspunkt, som følge af et HW-interrupt. Per P. MadsenStyresystemer og tjenester17

Per P. MadsenStyresystemer og tjenester18  w = Ventetid  e = Eksekveringstid  s = Total eksekveringstid tid for proces,

Per P. MadsenStyresystemer og tjenester19

Simplest scheduling policy Also known as first-in-first- out (FIFO) or a strict queuing scheme When the current process ceases to execute, the longest process in the Ready queue is selected Performs much better for long processes than short ones Tends to favor processor-bound processes over I/O-bound processes

Uses preemption based on a clock Also known as time slicing because each process is given a slice of time before being preempted Principal design issue is the length of the time quantum, or slice, to be used Particularly effective in a general-purpose time-sharing system or transaction processing system One drawback is its relative treatment of processor-bound and I/O-bound processes

Effect of Size of Preemption Time Quantum

Virtual Round Robin (VRR)

Nonpreemptive policy in which the process with the shortest expected processing time is selected next A short process will jump to the head of the queue Possibility of starvation for longer processes One difficulty is the need to know, or at least estimate, the required processing time of each process If the programmer’s estimate is substantially under the actual running time, the system may abort the job

Preemptive version of SPN Scheduler always chooses the process that has the shortest expected remaining processing time Risk of starvation of longer processes Should give superior turnaround time performance to SPN because a short job is given immediate preference to a running longer job

Chooses next process with the greatest ratio Attractive because it accounts for the age of the process While shorter jobs are favored, aging without service increases the ratio so that a longer process will eventually get past competing shorter jobs

Feedback Scheduling

Feedback Performance

Per P. MadsenStyresystemer og tjenester29 Schedulering. Linux 1.Real-time FIFO. 2.Real-time Round Robin. 3.Alm. Threads og processer. Real-Time prioriteter 0 – 99. Kun SuperUser Alm. prioriteter 100 – 139. Default 120 ( nice ) nice(0) ~ 120 (Default). nice(1) – nice(19) : Nedprioritering fx baggrunds job. nice(-1) – nice(-20) : Kun SuperUser.

Per P. MadsenStyresystemer og tjenester30 Schedulering af alm. threads og processer Tidskvant tilskrevet en proces/tråd, når den forrige er opbrugt: Tidskvant = (140 – Statisk prioritet) * 20 for Statisk prioritet < 120 (140 – Statisk prioritet) * 5 for Statisk prioritet >= 120 Dvs: nice(-20) ~ 800 mS, nice(0) ~ 100 mS nice(19) ~ 5 mS Dynamisk prioritet: Hvem skal til først ? Dyn. prioritet = max(100, min(sta. prioritet – bonus + 5, 139))

Per P. MadsenStyresystemer og tjenester31 Schedulering. Windows

Per P. MadsenStyresystemer og tjenester32 Schedulering. Windows

Per P. MadsenStyresystemer og tjenester33