Deadlocks og mer om concurrencymekanismer

Like dokumenter
Tråder og concurrency i Linux

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

GetMutex(lock) { while(testandset(lock)) {} } En context switch kan ikke ødelegge siden testen og endringen av lock skjer i samme instruksjon.

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

Repetisjon - Modul 1

Mer om C programmering og cuncurrency

Introduksjon til kurset og dets innhold

Kort notat om parallellstyring IN147

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

HØGSKOLEN I SØR-TRØNDELAG

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

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

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

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

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

Vranglås (Deadlocks) Fag: Operativsystemer

Forelesning III Kap 8 & 7; Dagsplan. Gjenbruk. Condition synchronization. Gjennomgående eksempler. Kode: Design: Verktøy

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

HØGSKOLEN I BERGEN Avdeling for ingeniørutdanning Data

Definisjon av prosess

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

1,r H øgs kolen i Østfol d

Begrepet kritisk region er sentralt i forbindelse med datamaskinsystemer.

STE6221 Sanntidssystemer Løsningsforslag

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.

HØGSKOLEN I SØR-TRØNDELAG

alternativer til felles hukommelse store parallelle datamaskiner Tema for denne forelesningen: in 147, våren 1999 parallelle datamaskiner 1 9

DAT kandidatnummer: 142

INF2270. Input / Output (I/O)

Eksempler på ikke-blokkerende systemkall:

Filsystemet fra innsiden

TDT4258 Eksamen vår 2013

D: Ingen trykte eller håndskrevne hjelpemiddel tillatt. Bestemt, enkel kalkulator tillatt.

Ikke pensum! Plan for dagen. Resource Management Kontekst: Bloom (1979) Kap. 11: Resource control (utvalg)

Tråder Repetisjon. 9. og 13. mai Tråder

HØGSKOLEN I SØR-TRØNDELAG

! Ytelsen til I/O- systemer avhenger av flere faktorer: ! De to viktigste parametrene for ytelse til I/O er:

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

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

Løsningsforslag for TDT4186 Operativsystemer

Grunnleggende Datastrukturer

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

Tråder Repetisjon. 9. og 13. mai Tråder

IN1010 våren Repetisjon av tråder. 15. mai 2018

EKSAMENSOPPGAVE I FAG TDT4186 OPERATIVSYSTEMER. Faglig kontakt under eksamen: Svein Erik Bratsberg og Arvid Staupe

Generelt om operativsystemer

INF1010 Tråder II 6. april 2016

Forelesning Instruksjonstyper Kap 5.5

INF2270. Input / Output (I/O)

Eksamensoppgave i TDT4258 Energieffektive datamaskinsystemer

Fakultet for informasjonsteknologi, Løsning på kontinuasjon i TDT4186 Operativsystemer 14. august 2006,

Kjenn din PC (Windows 7)

EKSAMEN. Operativsystemer. 1. Læreboken "A Practical Guide to Red Hat Linux" av Mark Sobell 2. Maks. tre A-4 ark med selvskrevne notater.

Introduksjon til dataanlegget ved Institutt for informatikk. Marc Bezem Institutt for informatikk Universitetet i Bergen

Scheduling og prosesshåndtering

Dagens tema: Synkronisering

1. Introduksjon til operativsystemer

IN 147 Program og maskinvare

Dagens tema: Synkronisering

ThinkPad G40 Series Installeringsveiledning

Programmeringsspråket C Del 3

Applikasjonsutvikling med databaser

Fakultet for informasjonsteknologi,

Løsningsforslag for TDT4186 Operativsystemer

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

Programmeringsspråket C Del 3

Dagens forelesning. Java 13. Rollefordeling (variant 1) Rollefordeling (variant 2) Design av større programmer : fordeling av roller.

Nordic Eye Solo PC og MAC

Programmeringsspråket C Del 3

Oppgave 2: Gå til roten (/) av systemet. Finn minst tre forskjellige måter å gå tilbake til hjemmekatalogen din på.

Operativsystemer og grensesnitt

Forord Dette er brukerdokumentasjonen skrevet i forbindelse med hovedprosjekt ved Høgskolen i Oslo våren 2010.

INF2810: Funksjonell Programmering. Muterbare data

ThinkPad X Series. Installeringsveiledning

INF2810: Funksjonell Programmering. Køer, tabeller, og (litt om) parallelitet

Minimum Spenntrær - Kruskal & Prim

References Hovedprosjekt ved Høgskolen i Oslo 2010 Testrapport

AlgDat 12. Forelesning 2. Gunnar Misund

INF2810: Funksjonell Programmering. Køer, tabeller, og (litt om) parallelitet

Computer Setup Brukerhåndbok

Eksamensoppgave i TDT4186 Operativsystemer

Redigere bibliografisk post

Om du allerede kjenner Scratch og har en Scratchbruker kan du gå videre til Steg 1.

Sortering i Lineær Tid

NY PÅ NETT. Operativsystemer

Filsystemet fra innsiden

ebudbok Elektronisk budbok på PDA Registrering av gangrekkefølge på web

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring

Fakultet for informasjonsteknologi,

Hvor i All Verden? Del 2. Introduksjon. Steg 0: Forrige gang. Skrevet av: Geir Arne Hjelle

ITF20205 Datakommunikasjon - høsten 2011

Løsningsforslag for Obligatorisk Oppgave 2. Algoritmer og Datastrukturer ITF20006

Oppgave 1 - Linux kommandolinje (%)

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

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

IN 147 Program og maskinvare. Dagens tema:

Innhold. Virtuelt minne. Paging i mer detalj. Felles rammeverk for hukommelseshierarki Hukommelseshierarki-2 1

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

Oppsummering av IN147 siste del Operativsystemer Parallellisering Veien videre

Transkript:

Deadlocks og mer om concurrencymekanismer Lars Vidar Magnusson September 30, 2011 Lars Vidar Magnusson () Forelesning i Operativsystemer 27.09.2011 September 30, 2011 1 / 17

Oversikt Deadlocks 1 Deadlocks Illustrasjon 2 Reusable resurser 3 Consumable resources 4 Dining philosophers problemet 5 UNIX concurrency mekanismer Lars Vidar Magnusson () Forelesning i Operativsystemer 27.09.2011 September 30, 2011 2 / 17

Deadlocks Begrepet deadlock brukes til å beskrive situasjoner hvor vi har et sett med prosesser som enten konkurrerer med hverandre om resurser eller som kommuniserer med hverandre. Det finnes ingen effektive løsninger for alle deadlock situasjoner. Kan ofte være vanskelige å oppdage, da de kan avhenge av tilfeldigheter. Lars Vidar Magnusson () Forelesning i Operativsystemer 27.09.2011 September 30, 2011 3 / 17

Illustrasjon Deadlocks Illustrasjon En illustrasjon som visualiserer hvordan en deadlock kan oppstå. Til venstre har vi en situasjon hvor en deadlock er mulig. Til høyre så er deadlocken satt. Lars Vidar Magnusson () Forelesning i Operativsystemer 27.09.2011 September 30, 2011 4 / 17

Oversikt Reusable resurser 1 Deadlocks 2 Reusable resurser Illustrasjon 3 Consumable resources 4 Dining philosophers problemet 5 UNIX concurrency mekanismer Lars Vidar Magnusson () Forelesning i Operativsystemer 27.09.2011 September 30, 2011 5 / 17

Reusable resurser Reusable resurser bruker som betegnelse på resurser som ikke blir tømt (slettet) ved bruk. Kan bare brukes av en prosess om gangen. Slippes etter bruk Deadlock oppstår når prosessene holder på en resurs mens de ber om en annen. Eksempler på gjenbrukbare resurser Prosessoren I/O kanaler Minne Datastrukturer e.g filer og databaser Lars Vidar Magnusson () Forelesning i Operativsystemer 27.09.2011 September 30, 2011 6 / 17

Illustrasjon Reusable resurser Illustrasjon Først ser vi på et generelt tilfelle med to prosesser og to resurser. Det neste tilfellet oppstår hvis vi har tilsammen 200 Kb minne tilgjengelig, og de to prosessene prøver å allokere for andre gang. Lars Vidar Magnusson () Forelesning i Operativsystemer 27.09.2011 September 30, 2011 7 / 17

Oversikt Consumable resources 1 Deadlocks 2 Reusable resurser 3 Consumable resources Illustrasjon 4 Dining philosophers problemet 5 UNIX concurrency mekanismer Lars Vidar Magnusson () Forelesning i Operativsystemer 27.09.2011 September 30, 2011 8 / 17

Consumable resources I motsetning til reusable resurser så blir consumable resurser brukt opp (fjernet/slettet/ødelagt) etter bruk. En deadlock kan oppstå når et mottak blokkerer. Det trengs ofte tilfeldige/sjeldne hendelser for å forårsake en deadlock. Eksempler på oppbrukbare resurser Interrupts Signals Meldinger Informasjon i I/O buffere Lars Vidar Magnusson () Forelesning i Operativsystemer 27.09.2011 September 30, 2011 9 / 17

Illustrasjon Consumable resources Illustrasjon Et eksempel på en deadlock situasjon oppstår i prosessene illustrert under når receive kallet blokkerer. Hvis disse instruksjonene kjører i en løkke ville det ikke hjulpet å snu på rekkefølgen. Lars Vidar Magnusson () Forelesning i Operativsystemer 27.09.2011 September 30, 2011 10 / 17

Oversikt Dining philosophers problemet 1 Deadlocks 2 Reusable resurser 3 Consumable resources 4 Dining philosophers problemet En løsning? En løsning 5 UNIX concurrency mekanismer Lars Vidar Magnusson () Forelesning i Operativsystemer 27.09.2011 September 30, 2011 11 / 17

Dining philosophers problemet Dining philosophers problemet ble lagt fram av Dijstra, og det har siden det blitt brukt for å illustrere kompleksiteten ved delte resurser. Det er også et godt utganspunkt for å teste concurrency mekanismer. Lars Vidar Magnusson () Forelesning i Operativsystemer 27.09.2011 September 30, 2011 12 / 17

En løsning? Dining philosophers problemet En løsning? Her er et forslag til en løsning på problemet Lars Vidar Magnusson () Forelesning i Operativsystemer 27.09.2011 September 30, 2011 13 / 17

En løsning Dining philosophers problemet En løsning Her er en faktisk løsning på problemet Lars Vidar Magnusson () Forelesning i Operativsystemer 27.09.2011 September 30, 2011 14 / 17

Oversikt UNIX concurrency mekanismer 1 Deadlocks 2 Reusable resurser 3 Consumable resources 4 Dining philosophers problemet 5 UNIX concurrency mekanismer Oversikt UNIX Oversikt Linux Lars Vidar Magnusson () Forelesning i Operativsystemer 27.09.2011 September 30, 2011 15 / 17

UNIX concurrency mekanismer Oversikt UNIX Oversikt UNIX Det finnes en rekke concurrency mekanismer i UNIX. Pipes (pipe, dup2, popen, pclose, mkfifo) Messages (msgget, msgrcv, msgsnd, msgctl) Shared memory (shmget, shmat, shmdt, shmctl) Semaphores (sem open, sem init, sem wait, sem post) Signals Lars Vidar Magnusson () Forelesning i Operativsystemer 27.09.2011 September 30, 2011 16 / 17

UNIX concurrency mekanismer Oversikt Linux Oversikt Linux Siden Linux er en UNIX varianter har den de samme concurrency mekanismene som standard UNIX, men den har også et par (interne) tillegg. Atomic operations Spinlocks Semaphores (binary, counting og reader/writer) Barriers Lars Vidar Magnusson () Forelesning i Operativsystemer 27.09.2011 September 30, 2011 17 / 17