Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kap 3 & 4: Processer & trådar.

Slides:



Advertisements
Liknande presentationer
Talföljder formler och summor
Advertisements

Sammandrag i bildspelsform Du kan ta dig igenom hela bildspelet med piltangenterna eller med musen. Du kan även välja avsnitt genom att klicka på de olika.
Avlusning Debugger (”avlusare”) Breakpoints Watch.
Relationsdatabasdesign
Frågor Allmän IT-kunskap avsnitt 1 kapitel 1 Repetition 4
Mjukvara och nätverk Vad är det?.
Anders Sjögren Lagringsklasser •en variabel i C har två attribut –type( int, float, char..... ) –lagringsklass( auto, extern, register, static ) •lagringsklassens.
Klasser och objekt.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 5: CPU-schemaläggning.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 3 ( ) Innehåll: -Namngivna rörledningar -Signaler -Signalhantering.
Översikt av operativsystem (kap 1 & 2)
Leif Håkansson’s Square Dancer Rotation
William Sandqvist System Management functions S Burd, Systems Architecture ISBN Figure 11-2 CPU Management Memory Management.
Metoder i java Det finns två typer av metoder i java
Objektorienterad tänkande
Programmeringsteknik K och Media
Föreläsning 2 Datalogi för E1 2D1343
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 13: I/O-system.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 7: Deadlocks.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 11: Implementation av filsystem.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 9: Virtuellt minne.
Programmering B PHP Lektion 2
Pointers. int a=5; int f(int b) { a--; b++; return b; } int main() { int a=3; printf("%d,",f(a)); printf("%d",a); return 0; }
Programmering B PHP Lektion 3
Välkommen till Del 1.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 8 ( ) Innehåll: Trådprogrammering i Java - Avbrott (”interrupts”) - Metoden join() -
UTVECKLING MED RAMVERKET.NET Marcus Medina. Dagens visdomsord ” Ingen vet vad han klarar innan han har försökt. ” - Publilius Syrus (85 f.Kr.-43 f.Kr.).
Styrteknik: Programmering med MELSEC IL PLC2A:1
William Sandqvist C:s minnesmodell.
PROCESSPROGRAMMERING Föreläsning ‏ Innehåll: Högnivå objekt för trådprogrammering: - Trådgrupper (”Thread pools”)‏ - Exekverare (Executor.
Funktioner, styrstrukturer, manipulering av matriser
1 Föreläsning 3 programmeringsteknik och Matlab 2D1312/ 2D1305 Matlab fortsättning Funkioner, styrstrukturer, manipulering av matriser.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public ITE PC v4.0 Chapter 1 1 Operating Systems Networking for Home and Small Businesses – Chapter.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Metoder -Lokala variabler -Mera om klasser: -Nyckelorden.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 6: Process- synkronisering.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
1 Föreläsning 5 Programmeringsteknik och Matlab 2D1312/2D1305 Repetition Metoder Array API och klassen ArrayList.
Föreläsning 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
OpCon/xps - A case study. Club2200Page 1 OpCon/xps – A case study Club2200 Magnus Nyman & Hans Forslind.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 2 ( ) Innehåll: -Processtruktur -Processklyvning och kodbyte -Avslutning av processer.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 3 ( ) Innehåll: -Processtruktur -Processklyvning och kodbyte -Avslutning av processer.
Lågnivåprogrammering Översikt av I/O-mekanismer i hårdvara Olika språkkrav och modeller för komponent- hantering(device driving) Modeller för komponent-hantering.
INTRODUKTION TILL PROGRAMMERING
Prioritets Köer (Priority Queues ), Graph Data Structures & Problem Solving using Java --Kap 21,14.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 5 ( ) INNEHÅLL: -Metoder.
Ingenjörsmetodik IT & ME 2008
1 Windows Azure Mikael ÖstbergTorkel Ödegaard. 2 Äshur Ashore Azzuure.
Schemaläggning Mål –Att förstå den roll som schemaläggning och schemaläggnings-analys spelar för att förutsäga hur realtids-tillämpningar uppfyller sina.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 8 ( )‏ Innehåll:  Introduktion till Java EE (Enterprise Edition)  Enterprise Java Beans.
Pipelining Föreläsning 4. T exe — CPU-exekveringstid I — Antalet exekverade instruktioner CPI — Genomsnittligt antal klockcykler per instruktion T c —
Emulatorkonstruktion Schema Inledning Andra metoder Mina metoder Demonstration av min C64-emulator Sammanfattning och frågor.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 2: Variabler och datatyper Variabler Bindning Typkontroll Några viktiga datatyper.
BVForum - en genomgång för revisorer Sören Thuresson.
PROCESSPROGRAMMERING Föreläsning 1 ( )‏ Innehåll: Introduktion till paralellprogrammering (“concurrent programming”)‏ Introduktion till parallellprogrammering.
1 Mönstermatchning och rekursion Nr 4. 2 Förenklad notation val fnname = fn name => expression Förenklas till fun fnname name = expression Exempel fun.
1 Mjukvaru-utveckling av interaktiva system God utveckling av interaktiva system kräver abstrakt funktionell beskrivning noggrann utvecklingsmetod Slutanvändare.
1 Jan Lundström OV’s Hemsida Utbildning Ledare. 2 Jan Lundström OV’s Hemsida Standard Lagrum.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 15: Parallella subrutiner Parallellitet Processer och trådar Semaforer, monitorer.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 15: Parallella subrutiner Parallellitet Processer och trådar Semaforer, monitorer och synkroniseringsmeddelanden.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 2 ( )‏ Innehåll:Trådar: - Avbrott (”interrupts”)‏ - Metoden join()‏ Högnivå objekt för.
OOP F5:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 5 Klasser och objekt Skapa objekt - new Referenser Konstruktorer Inkapsling.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 6 ( )‏ Innehåll:  Att designa parallella program - manuell vs. automatisk parallellisering.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 8 ( ) Innehåll: -Exekveringstrådar.
14.1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Repetition.
Get-id.c main( ) { printf( "My PID is %d\n", getpid( ) ); printf( "My parent's PID is %d\n", getppid( ) ); printf( "My User ID (UID) is %d\n", getuid(
IT och medier1 Utgående från boken Computer Science av: J. Glenn Brookshear Grundläggande datavetenskap, 4p Kapitel 3 Operativsystem.
Jimmy Hedman South Pole AB Linuxkonsult sedan -00
Grundläggande datavetenskap, 4p
Digitalteknik 3p - Kombinatoriska Byggblock
Digitalteknik 3p - Kombinatoriska Byggblock
Presentationens avskrift:

Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kap 3 & 4: Processer & trådar

3.2 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Processkonceptet Ett operativsystem exekverar oftast flera olika program samtidigt Ett program som exekverar kallas för en process En process består av: Programkoden (text section) Programräknare Innehållet i CPU-registren En stack En datasektion En heap (ibland)

3.3 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition En process i minnet

3.4 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Processens tillstånd En process kan befinna sig i olika tillstånd: new: processen skapas running: instruktioner exekveras waiting: processen väntar på att något ska inträffa ready: processen väntar på att få börja exekvera terminated: processen har exekverat klart

3.5 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Process Control Block (PCB) OS har information om varje process i ett PCB Vilket tillstånd den befinner sig i Processnummer för identifikation Programräknare – adress till nästa instruktion Värden i CPU-registren Schemaläggningsinformation Minneshanteringsinformation I/O-status (öppna filer, allokerade I/O- enheter)

3.6 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Process-schemaläggning Många processer i systemet – vem ska få exekvera när? Beslutas av process-schemaläggaren En process flyttar mellan olika köer: Job queue – här ligger alla processer i systemet Ready queue – processer som ligger i primärminnet och är klara för att börja exekvera Device queues – processer som väntar på en I/O- enhet

3.7 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Ready Queue And Various I/O Device Queues

3.8 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Representation of Process Scheduling

3.9 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Schemaläggare Long-term scheduler (or job scheduler) – väljer vilka processer som skall flyttas till ready queue Anropas sällan (sekunder, minuter) Short-term scheduler (or CPU scheduler) – väljer vilken process som skall exekvera härnäst Anropas ofta (millisekunder) Processer beskrivs som antingen CPU-bound eller I/O-bound Vissa system har också en medium-term scheduler

3.10 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Addition of Medium Term Scheduling

3.11 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Context Switch När CPUn växlar till en annan process måste systemet spara tillståndet hos den gamla processen och ladda in det sparade tillståndet för den nya processen. Detta kallas för en context switch Tillståndet sparas i processens PCB Tiden för en context switch är overhead; systemet gör inget nyttigt under denna tid

3.12 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Skapa processer Föräldraprocesser skapar barnprocesser som i sin tur kan skapa andra processer, vilket gör att ett processträd skapas Resursdelning Förälder och barn delar alla resurser Barnen delar en delmängd av förälderns resurser Förälder och barn delar inga resurser Exekvering Förälder och barn exekverar parallellt Föräldern väntar tills barnet exekverat klart Adressutrymme Barnet är ett duplikat av föräldern Barnet har ett nytt program inladdat i det

3.13 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Skapa en ny process i C (UNIX) int main() { pid_t pid; /* fork another process */ pid = fork(); if (pid < 0) { /* error occurred */ fprintf(stderr, "Fork Failed"); exit(-1); } else if (pid == 0) { /* child process */ execlp("/bin/ls", "ls", NULL); } else { /* parent process */ /* parent will wait for the child to complete */ wait (NULL); printf ("Child Complete"); exit(0); }

3.14 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Avsluta en process En process avslutas genom systemanropet exit() Kan returnera ett värde till föräldern (via wait()) Processens resurser avallokeras En förälder kan avsluta en barnprocess genom abort() Barnet har överutnyttjat sina resurser Barnets tjänster behövs inte längre

3.15 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Kommunikation mellan processer Processer är antingen oberoende eller samarbetande En samarbetande process kan dela data med andra processer Anledningar till samarbete: Dela information Snabba upp beräkningar Modularitet Underlätta för användaren En mekanism för interprocess communication (IPC) behövs Två modeller: Delat minne Meddelande-utbyte

3.16 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Communications Models

3.17 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Trådar Processer kan vara antingen enkel- eller flertrådiga Enkeltrådig process – gör en sak i taget Flertrådig process – gör flera saker parallellt En tråd har en egen programräknare, en egen stack och egna register Tråden delar kod, data, öppna filer mm med andra trådar i processen Exempel Webbläsare: en tråd för att visa bilder/text och en för att hämta data från nätverket.

3.18 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Single and Multithreaded Processes

3.19 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Fördelar med trådar Minskade svarstider – en tråd kan ta emot indata från användaren när en annan tråd laddar en bild Resursdelning – trådar delar minne & andra resurser “by default” Ekonomi – det kostar mycket mer att skapa och hantera processer än trådar Skalbarhet – en flertrådad process kan köras på flera processorer samtidigt

3.20 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Multicore-programmering Flertrådade program innebär att flerkärniga processorer kan användas mer effektivt Flerkärniga system innebär utmaningar för programmerare, bl a: Dela upp aktiviteter – hitta programdelar som går att köra parallellt Balans – programdelarna ska utföra lika mycket arbete Data splitting – data måste delas upp på de olika kärnorna Databeroenden – finns det beroenden mellan olika programdelar? Testning och debugging – blir mycket svårare Behövs ett helt nytt sätt att designa mjukvara i framtiden?

3.21 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Trådbibliotek Ett trådbibliotek är ett API för att skapa och hantera trådar Biblioteket kan antingen ligga i user space eller i kernel space Huvudsakligen tre bibliotek används: POSIX Pthreads (user/kernel) Win32 (kernel) Java (använder trådbiblioteket i värd-OS:et)

3.22 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Pthreads Finns både som user-level och kernel-level POSIX standard (IEEE c) definierar ett API för att skapa och synkronisera trådar Standarden är bara en specifikation, implementationen är upp till utvecklaren Vanlig i UNIX-operativsystem (Solaris, Linux, Mac OS X)

3.23 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Java Threads Det grundläggande sättet att köra program på i Java Många funktioner finns Javatrådar hanteras av JVM Javatrådar kan skapas på två sätt: Skapa en klass som ärver Thread-klassen & överlagra run-metoden Skapa en klass som implementerar interfacet Runnable

3.24 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Linux Threads Linux kallar dem tasks istället för threads Trådar skapas genom systemanropet clone() clone() tillåter ett barn att dela adressutrymme med föräldern