Lars Vidar Magnusson. October 11, Lars Vidar Magnusson () Forelesning i Operativsystemer October 11, / 28

Like dokumenter
Oversikt. Historie Struktur Moderne UNIX systemer Moderne UNIX kernel struktur 1 UNIX. 2 Linux. 3 Process. 4 Process models

Tråder og concurrency i Linux

Definisjon av prosess

oppgavesett 4 INF1060 H15 Øystein Dale Hans Petter Taugbøl Kragset September 22, 2015 Institutt for informatikk, UiO

Introduksjon til kurset og dets innhold

Deadlocks og mer om concurrencymekanismer

Concurrency. Lars Vidar Magnusson. September 20, Lars Vidar Magnusson () Forelesning i Operativsystemer September 20, / 17

Samtidige prosesser. Prosessor modus. Hvordan kan OS effektivt kontrollere brukerprosesser? Hvordan kan OS. kontrollere brukerprosesser?

Repetisjon - Modul 1

Scheduling og prosesshåndtering

oppgavesett 4 INF1060 H16 Hans Petter Taugbøl Kragset Øystein Dale Christian Resell 27. september 2016 Institutt for informatikk, UiO

Singletasking OS. Device minne Skjerm minne. Brukerprogram. Brukerdata/heap. Stack. Basis for flerprosess-systemer.

Eksempler på ikke-blokkerende systemkall:

Minnehåndtering. Lars Vidar Magnusson. October 4, Lars Vidar Magnusson () Forelesning i Operativsystemer October 4, / 20

Generelt om operativsystemer

P1 P2 P3 P1 P2 P3 P1 P2. OS gjør Contex Switch fra P1 til P2

Oversikt. Beskrivelse Bash. 1 UNIX shell. 2 Kommandolinje som brukergrensesnitt. 3 Input og output. 4 Bash builtins. 5 Linux utilities.

Mer om C programmering og cuncurrency

TDT4258 Eksamen vår 2013

Operativsystemer og grensesnitt

DAT kandidatnummer: 142

Threads Threads (tråder) threads vs prosesser threads vs prosesser Definisjoner av

Læringsmål og pensum. Oversikt. Systemprogramvare Operativsystemer Drivere og hjelpeprogrammer. To hovedtyper programvare

Løsningsforslag for TDT4186 Operativsystemer

Eksamensoppgave i TDT4258 Energieffektive datamaskinsystemer

HØGSKOLEN I BERGEN Avdeling for ingeniørutdanning Data

Generelt om operativsystemer

HØGSKOLEN I SØR-TRØNDELAG

4/5 store parallelle maskiner /4 felles hukommelse in 147, våren 1999 parallelle datamaskiner 1. når tema pensum.

Eksamen DAT 103. Oppgave 2. Kandidatnr.: 145 1) B 2) B 3) A 4) A 5) D 6) C 7) B 8) A 9) A 10) D

Innhold. Introduksjon til parallelle datamaskiner. Ulike typer parallelle arkitekturer. Prinsipper for synkronisering av felles hukommelse

Kommersiell Unix Linux og frie Unix kloner

Faglig kontakt under eksamen: Orestis Gkorgkas

Applikasjonsutvikling med databaser

1. Introduksjon til operativsystemer

Funksjonalitet og oppbygning av et OS (og litt mer om Linux)

6105 Windows Server og datanett

IT1101 Informatikk basisfag, dobbeltime 18/9. Kommunikasjon med perifere enheter. Kontrollere. Kontrollere (2) I/O-instruksjoner

SIE 4005, 8/10 (3. Forelesn.)

Oppgave 1 - Linux kommandolinje (%)

Educatia AS. Programmeringsgrensesnitt (API) for brukersynkronisering. Versjon: 1.1 ( ) Educatia AS

1,r H øgs kolen i Østfol d

HØGSKOLEN I SØR-TRØNDELAG

Tildeling av minne til prosesser

Det matematisk-naturvitenskapelige fakultet

INF2270. Input / Output (I/O)

Læringsmål og pensum. v=nkiu9yen5nc

Minnehåndtering i operativsystemer

HØGSKOLEN I SØR-TRØNDELAG

Definisjon av prosess

Debugging. Tore Berg Hansen, TISIP

En prosess kan sees på som et stykke arbeid som skal utføres på datamaskinen. Ofte vil det være flere prosesser/tråder på datamaskinen samtidig.

Prosesstabeller (PCB - Prosess Control Block) Se på PD: kommandoene ps og top Bakgrunnsprosesser Opprettelse av prosesser:

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python. Professor Alf Inge Wang

Plan for dagen. Kræsj-kurs i sanntidsprogrammering. Måter å tenke på. Programmering intro. Tråder & synkronisering

ITPE/DATS 2400: Datamaskinarkitektur og Nettverk

AlgDat 10. Forelesning 2. Gunnar Misund

TDT ITGK - Hardware. Kapittel 9: Følge Instruksjoner - Prinsipper for Datamaskinens Virkemåte. Terje Rydland - IDI/NTNU

UNIVERSITETET I OSLO

Plan. Oppgaver og repetisjon Eksempler med fikspunkt og induksjon: 1. sortering 2. divisjon 3. Heis? IN 315: Foilsett 9: Unity: Arkitekturer

Fakultet for informasjonsteknologi,

Fakultet for informasjonsteknologi, Løsning på kontinuasjon i TDT4186 Operativsystemer August 2005,

SENTRAL FELLES KARTDATABASE. Geir Heksem

TMA4100 Matematikk 1, høst 2013

En ny generasjon standarder for bygging av geografisk infrastruktur Modellering av tjenester

TMA4100 Matematikk 1, høst 2013

Operativsystemets ansvar er å koordinere. programmers bruk av I/O

Introduksjon til programmering og programmeringsspråk. Henrik Lieng Høgskolen i Oslo og Akershus

Minnehåndtering i operativsystemer

Oppgave 8.1 fra COD2e

Hypervisor. Hardware. Virtualisering. App 1. App 2. App 2 App 1 App 2 App 1 CPU RAM I/O. Virtualisering av server/desktop hardware

EKSAMEN. Operativsystemer. Kontroller at oppgaven er komplett før du begynner å besvare spørsmålene.

Kom i gang med Python

Oversikt. Introduksjon Kildekode Kompilering Hello world Hello world med argumenter. 1 C programmering. 2 Funksjoner. 3 Datatyper. 4 Pekere og arrays

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

Android-Programmering Async. Vår 2017

UNIVERSITETET I OSLO

Introduksjon...5. Systemkrav...7. For Windows...9

EKSAMENSOPPGAVE, INF-2200

Qt Jambi E t R ammeverks His torie

Operativsystemer og nettverk

Hvorfor operativsystemer? Introduksjon til operativsystemer. Samtidighet. Praktiske hensyn. Kjell Åge Bringsrud INF103

Internminnet. Håkon Tolsby Håkon Tolsby

Løsningsforslag for TDT4186 Operativsystemer

Tilstandsmaskiner med UML og Java

Sikkerhet: Virus Sikkerhet i operativsystemet Maskinstøtte for sikkerhet Trojanske hester Ormer. IN 147 Program og maskinvare.

Dagens program. Sanntidsprogrammering med Linux. Embedded Linux: Begrensninger. Hvorfor Linux?

Kapittel 9: Følge Instruksjoner Prinsipper for Datamaskinens Virkemåte. Oversatt av Rune Sætre,

Kapittel 9: Følge Instruksjoner Prinsipper for Datamaskinens Virkemåte

Prosedyrer. Lars Vidar Magnusson. October 26, Lars Vidar Magnusson () Forelesning i DAS October 26, / 19

Dagens temaer. Fra kapittel 4 i Computer Organisation and Architecture. Kort om hurtigminne (RAM) Organisering av CPU: von Neuman-modellen

Tilkobling og Triggere

Stikkord: Java EE, EJB, JSF, JPA, SWT, klient/tjener, Glassfish server, Application Client.

CORBA Component Model (CCM)

Introduksjon til operativsystemer

Installere JBuilder Foundation i Mandrake Linux 10.0

Real-time Operativsystem

KRAVSPESIFIKASJON FOR SOSIORAMA

Før du starter, del 2

Løsningsforslag for TDT4186 Operativsystemer

Transkript:

Tråder Lars Vidar Magnusson October 11, 2011 Lars Vidar Magnusson () Forelesning i Operativsystemer 09.09.2011 October 11, 2011 1 / 28

Oversikt Tråder 1 Tråder Introduksjon Multithreading Prosesser og tråder Hastighetsøkning med multithreading 2 Multithreaded prosessmodell 3 Illustrere kjøring av tråder 4 Forskjellige typer tråder 5 Prosesser og tråder i Solaris og Linux Lars Vidar Magnusson () Forelesning i Operativsystemer 09.09.2011 October 11, 2011 2 / 28

Tråder Introduksjon Introduksjon Et operativsystem med trådstøtte må skille mellom to ulike egenskaper med kjørende prosesser. Tilgang til resurser og virtuelt minne. En eksekveringssekvens som kan flettes sammen med andre prosesser. I et multithreaded operativsystem blir denne inndelingen representer av henholdsvis prosesser og tråder (eller light-weight processes) Lars Vidar Magnusson () Forelesning i Operativsystemer 09.09.2011 October 11, 2011 3 / 28

Tråder Multithreading Multithreading Et multithreaded operativsystem støtter at flere tråder kjører samtidig i samme prosess. MS-DOS kan kjøre en tråd. Tradisjonelle UNIX implementasjoner støtter flere prosesser, men bare en tråd per prosess. Linux, Windows, Solaris, Mach og OS/2 er eksempler på operativsystem som støtter flere prosesser og flere tråder per prosess. Lars Vidar Magnusson () Forelesning i Operativsystemer 09.09.2011 October 11, 2011 4 / 28

Prosesser og tråder Tråder Prosesser og tråder Et diagram som illustrerer forskjellen mellom en tråd og flere tråder per prosess. Lars Vidar Magnusson () Forelesning i Operativsystemer 09.09.2011 October 11, 2011 5 / 28

Tråder Hastighetsøkning med multithreading Hastighetsøkning med multithreading Aamdahls lov beskriver forventet hastighetsøkning i forhold til å spre applikasjoner over flere tråder eller prosesser. Speedup = time to execute on a single processor time to execute on N processors Der N er antall prosessorer og τ er parallelliserbar kode. = 1 (1 τ) + τ N Lars Vidar Magnusson () Forelesning i Operativsystemer 09.09.2011 October 11, 2011 6 / 28

Oversikt Multithreaded prosessmodell 1 Tråder 2 Multithreaded prosessmodell Prosesser Tråder Trådstatus Trådoperasjoner Singlethreaded og multithreaded prosessdesign Fordeler med tråder 3 Illustrere kjøring av tråder 4 Forskjellige typer tråder 5 Prosesser og tråder i Solaris og Linux Lars Vidar Magnusson () Forelesning i Operativsystemer 09.09.2011 October 11, 2011 7 / 28

Multithreaded prosessmodell Prosesser Prosesser I et multithreaded operativsystem reduseres omfanget til hva som kalles en prosess. Hver prosess har et virtuelt minneområde som inneholder prosessens process image og deles av alle tråder. Prosessen styrer tilgang til prosessoren, andre prosesser, filer og I/O-resurser. Lars Vidar Magnusson () Forelesning i Operativsystemer 09.09.2011 October 11, 2011 8 / 28

Multithreaded prosessmodell Tråder Tråder En tråd inneholder data for å kjøre en sekvens med instruksjoner i tillegg til noen nye elementer. En statuskode for kjøringen e.g running and ready. Lagring av registere og annen relevant informasjon (thread context for å kunne bytte mellom tråder. En eller flere stacks for å ivareta program variable og parametere Mulighet for lokale variable. Tilgang til felles virtuelt minne. Lars Vidar Magnusson () Forelesning i Operativsystemer 09.09.2011 October 11, 2011 9 / 28

Multithreaded prosessmodell Trådstatus Trådstatus Som med prosesser kan tråder settes i forskjellig status, men det er ikke behov for en så kompleks modell e.g. ikke behov for suspended. Running Ready Blocked Lars Vidar Magnusson () Forelesning i Operativsystemer 09.09.2011 October 11, 2011 10 / 28

Multithreaded prosessmodell Trådoperasjoner Trådoperasjoner Det er vanlig å kunne kontrollere status til en tråd med et sett med operasjoner. Spawn kan benyttes til å lage en ny tråd (i tillegg til den som blir laget når prosessen starter). Nye tråder får egen instruksjonspeker, eget registerlager og egne argumenter, og de blir så satt til ready-state og lagt til ready-køen. status. Block kan sette en tråd i blocked-status, som medfører at registerne, programteller og stack-pekere må lagres. Unblock kan hente frem en låst tråd og legge den til ready-køen. Finish kan brukes til å avslutte tråden og slette tilhørende data. Lars Vidar Magnusson () Forelesning i Operativsystemer 09.09.2011 October 11, 2011 11 / 28

Multithreaded prosessmodell Singlethreaded og multithreaded prosessdesign Singlethreaded og multithreaded prosessdesign Et diagram som illustrerer forskjellen mellom singlethreaded og multithreaded prosessdesign. Lars Vidar Magnusson () Forelesning i Operativsystemer 09.09.2011 October 11, 2011 12 / 28

Multithreaded prosessmodell Fordeler med tråder Fordeler med tråder Det er en rekke fordeler med å benytte seg av tråder. Det tar mindre tid å starte og stoppe en tråd enn en prosess. Det tar mindre tid å bytte mellom ulike tråder enn å bytte prosess. Tråder kan kommunisere uten å involvere kernelen, siden de deler det samme virtuelle minnet. Kan fordele applikasjoner over tråder (forgrunn, bakgrunn og moduler). Asynkron prosessering og ytelsesforbedring. Lars Vidar Magnusson () Forelesning i Operativsystemer 09.09.2011 October 11, 2011 13 / 28

Oversikt Illustrere kjøring av tråder 1 Tråder 2 Multithreaded prosessmodell 3 Illustrere kjøring av tråder RPC med en enkel tråd RPC med to tråder Multithreading med to prosesser og tre tråder 4 Forskjellige typer tråder 5 Prosesser og tråder i Solaris og Linux Lars Vidar Magnusson () Forelesning i Operativsystemer 09.09.2011 October 11, 2011 14 / 28

Illustrere kjøring av tråder RPC med en enkel tråd RPC med en enkel tråd En illustrasjon av kjøringen av en tråd som utfører et Remote Procedure Call (RPC). Lars Vidar Magnusson () Forelesning i Operativsystemer 09.09.2011 October 11, 2011 15 / 28

RPC med to tråder Illustrere kjøring av tråder RPC med to tråder En illustrasjon av kjøringen av to tråder som utfører hver sitt Remote Procedure Call (RPC). Lars Vidar Magnusson () Forelesning i Operativsystemer 09.09.2011 October 11, 2011 16 / 28

Illustrere kjøring av tråder Multithreading med to prosesser og tre tråder Multithreading med to prosesser og tre tråder En illustrasjon av kjøringen av to prosesser med tilsammen tre tråde som kjører samtidig. Lars Vidar Magnusson () Forelesning i Operativsystemer 09.09.2011 October 11, 2011 17 / 28

Oversikt Forskjellige typer tråder 1 Tråder 2 Multithreaded prosessmodell 3 Illustrere kjøring av tråder 4 Forskjellige typer tråder User-level tråder Kernel-level tråder Kombinerte fremgangsmåter 5 Prosesser og tråder i Solaris og Linux Lars Vidar Magnusson () Forelesning i Operativsystemer 09.09.2011 October 11, 2011 18 / 28

Forskjellige typer tråder User-level tråder User-level tråder User-level tråder er blir kontrollert i applikasjonen. Kernelen er ikke engang klar over eksistensen av tråder. Man trenger ikke gå i kernelmodus for å bytte mellom tråder. Man kan sette opp scheduling slik som man selv ønsker. Siden tråden bare eksisterer i applikasjonen trenger man ikke legge til endringer i kjernen. Lars Vidar Magnusson () Forelesning i Operativsystemer 09.09.2011 October 11, 2011 19 / 28

Forskjellige typer tråder Kernel-level tråder Kernel-level tråder Motsetningen til user-level tråder er kernel-level tråder kontrollert i sin helhet av kernelen. Tillater at tråder kan gjøre kall som låser uten å forstyrre andre tråder. Gjør det mulig å kjøre tråder parallelt hvis maskinvaren tillater det i.e. har flere kjerner. Lars Vidar Magnusson () Forelesning i Operativsystemer 09.09.2011 October 11, 2011 20 / 28

Forskjellige typer tråder Kombinerte fremgangsmåter Kombinerte fremgangsmåter Siden både user-level og kernel-level tråder har sine ulemper har man også prøvd seg på kombinerte fremgangsmåter. Tråder lages i applikasjonen men blir mappet mot et sett med underliggende kerneltråder. Mesteparten av jobben blir gjerne gjort i applikasjonen Lars Vidar Magnusson () Forelesning i Operativsystemer 09.09.2011 October 11, 2011 21 / 28

Oversikt Prosesser og tråder i Solaris og Linux 1 Tråder 2 Multithreaded prosessmodell 3 Illustrere kjøring av tråder 4 Forskjellige typer tråder 5 Prosesser og tråder i Solaris og Linux Solaris arkitektur Solaris prosesser og tråder Tråder og prosesser i Linux Linux task Task status Task status diagram Lars Vidar Magnusson () Forelesning i Operativsystemer 09.09.2011 October 11, 2011 22 / 28

Prosesser og tråder i Solaris og Linux Solaris arkitektur Solaris arkitektur Solaris sin arkitektur for prosesser og tråder er et eksempel på en kombinert fremgangsmåte. De har prosesser på omtrent samme måte som i tradisjonell UNIX. De støtter user-level tråder som er usynlige for kernelen. Leightweight prosesser fungerer en mapping mellom user-level trådene og de underliggende kernel-level trådene. De bruker kernel-level tråder som blir fordelt over tilgjengelige prosessorer. Lars Vidar Magnusson () Forelesning i Operativsystemer 09.09.2011 October 11, 2011 23 / 28

Prosesser og tråder i Solaris og Linux Solaris prosesser og tråder Solaris prosesser og tråder En illustrasjon av relasjonene mellom prosesser, user-level tråder, kernel-level tråder og leightweight prosesser i Solaris. Lars Vidar Magnusson () Forelesning i Operativsystemer 09.09.2011 October 11, 2011 24 / 28

Prosesser og tråder i Solaris og Linux Tråder og prosesser i Linux Tråder og prosesser i Linux Linux tar en unik fremgangsmåte for å representere prosesser og tråder. De skiller ikke mellom de to. De første utgavene av Linux, som med tradisjonell UNIX, støttet ikke multithreading. Portable Operating Systems Interface for UNIX (POSIX) inneholder et API for å lage å håndtere tråder (Pthreads). Tråder er bare en spesiell form for prosess. Tråder kan grupperes sammen og mappes til samme prosess slik at det ikke trengs å utføres tradisjonelle kontekstbytter. Lars Vidar Magnusson () Forelesning i Operativsystemer 09.09.2011 October 11, 2011 25 / 28

Prosesser og tråder i Solaris og Linux Linux task Linux task Både prosesser og tråder blir i Linux representert som en task som inneholder en rekke elementer. Status til prosessen Identifikatorer både for prosessen og gruppen Linker til forelderprosess og søskenprosesser. Pekere til minneområder... (1.7Kb i 32 bit) Lars Vidar Magnusson () Forelesning i Operativsystemer 09.09.2011 October 11, 2011 26 / 28

Prosesser og tråder i Solaris og Linux Task status Task status I likhet med prosesser har en task i Linux ulike status. Running tilsvarer to tilstander; ready og executing. Interruptable er en blokkert status som tilsier at prosessen venter på en event, tilgang til en resurs eller et signal fra en annen prosess. Uninterruptable ligner på interruptable, men den kan ikke avbrytes med et signal. Stopped er når en prosess har blitt stoppet og bare kan settes i gang igjen fra annen prosess. Zombie er en state som har blitt stoppet, men av en eller annen grunn ikke kan fjernes. Lars Vidar Magnusson () Forelesning i Operativsystemer 09.09.2011 October 11, 2011 27 / 28

Prosesser og tråder i Solaris og Linux Task status diagram Task status diagram Et diagram over mulige prosessstatus i Linux. Lars Vidar Magnusson () Forelesning i Operativsystemer 09.09.2011 October 11, 2011 28 / 28