Prosesser og Tråder. Ketil Danielsen January 16, en tråd arbeider sekvensielt gjennom program
|
|
- Kai Clausen
- 8 år siden
- Visninger:
Transkript
1 Prosesser og Tråder Ketil Danielsen January 16, 2005 Prosess og tråd en tråd arbeider sekvensielt gjennom program en prosess har minst en tråd i gang en tråd er Running (er tildelt CPU), Ready (venter på CPU) eller Blocked (venter data utenfra) hver prosess er tildelt et område i hurtigminnet (prosessens adresseområde) prosesser kan vanligvis ikke lese eller skrive til hverandres minne helt spesielle sharedmem finnes riktignok tråder innenfor en prosess kan lese prosessens minne En enkelt VB hovedtråd Imports System for WriteLine Class Test Shared Sub Main () Dim i as Integer For i = 1 To i = i + 1 Console.WriteLine("teller er " & i) End Class Ressursbehov i ProcExp ser en trådtallet ved å velge inn kolonne for Threads: View:Select Columns. i VB.NET observeres 2-3 admintråder + hovedtråd ved kjøring av Javaprogram ser en 6-7 admintråder og hovedtråd EnTraad trenger kun CPU (tar 100 prosent) la vi på utskrift i hver løkke tar den kun 30 prosent CPU: Console. WriteLine("teller er " & i) nå er det en annen prosess som ligger på prosent (csrss.exe som tar seg av utskrift til skjerm) 1
2 Typer arbeid interaktivt, stort sett I/O mot sluttbruker (tilstand Blocked) tjenester i nett (daemon) innholdsserver (fil, statisk web, epost): mye I/O mot nett og disk (tilstand Blocked) hvis innhold er mellomlagret i cache blir det mindre I/O mot disk, og raskere svar computeserver: lite I/O, mest tallknusing i CPU (tilstand Ready og Running) dynamisk webserver: mye I/O mot database og nett, noe beregning (mest Blocked, noe Ready og Running) printserver: mye I/O mot skriver, disk og nett kernelarbeid: mest bokholderi mot minnet for å koordinere og effektivisere overføring av data mellom ovennevnte tråder og ytre enheter en god del caching av data for å redusere I/O Trådadmin Tråder (i likhet med prosesser) skal forvaltes via admin-api kan en tråd påkalle create, exit, yield, wait, wakeup, setpriority en skal sikre god nok veksling mellom tråder hvis tråd trenger data utenfra må en eventuelt blokkere tråden en av de andre BØR da få overta (dét er hele poenget med tråder) to hovedtyper, userlevel eller kernellevel administrasjon user-level threads hver prosess har et administrativt apparat som kalles runtime system (RTS) trådadm ordnes internt i prosessen uten systemkall (raskt) kernels scheduler veksler mellom prosesser, ikke tråder prosessens RTS veksler grovkornet mellom trådene en blokkert tråd blokkerer hele prosessen kernel-level threads trådadm krever kostbart systemkall en kernel-level tråd kan blokkere uten å blokkere hele prosessen den inngår i kernels scheduler veksler presist mellom tråder Scheduler Activations ønsker at andre tråder i en prosess veksles inn når en gitt tråd venter på (kap ) 2
3 dataoverføring mot ytre enheter at en annen tråd skal komme til et visst stadium kernel varsler prosessens RTS hvis den ser at en tråd venter på hendelse hendelse har inntruffet RTS kan (fordi den ble varslet) foreta omveksling ikke pensum: og InterProcess Communication (IPC) Samarbeidende tråder må utveksle data shell pipeline: cat grep wc (to datakanaler) webleser og server VisualStudio og VB-kompilator Hvordan? mekanisme skrive og lese samme delte adresse (eller fil). Raskt, ingen kopiering atskilt minne, lokalt eller over nett: medfører kostbar kopiering hvordan forhindre forkludring hvordan sikre rekkefølgen Race Condition Forkludring av delt minne er mulig variabel x kan leses og skrives av trådene A og B (samme maskin, samme minne) i tid: B leser x, A leser x, B endrer x, A endrer x B kan komme til å lese og lagre x før A får lagret x fordi scheduler kjøres for hvert klokkeinterrupt og hvem vet når klokka slår? ikke et problem hvis kun én tråd skriver Spm.: Kan det samme skje med en fil (hint: skriverspool i UNIX)? Maskinkode (omtrent) x = x + 1 blir MOV x, R5 ; fra RAM til CPU INC R5 ; aritmetikk i CPU MOV R5, x ; fra CPU til RAM Ved eksekvering blir A avbrutt (se under): MOV x, R5 INC R5 (klokkeinterrupt) (scheduler veksler inn B) (A s registre legges til stack) 3
4 MOV x, R5 INC R5 MOV R5, x (resten) (blokkering) (A s registre hentes fra stack) MOV R5, x Og, x er en mindre enn den skulle vært Et flertrådet program i VB hovedtråd Main() lager trådene slave() alt (metoder, variabler) ligger i samme objekt hver slave henter endringer og oppdaterer en delt variabel beholdning (bank, lager) angsten ligger rundt beholdning: Kan den bli endret av en annen før jeg får lagret min endring? hver slave påkaller hentendring() og blokkerer i påvente ekstern datatilførsel Race Condition i VB uregulert bruk av delt variabel ide fra msdn.microsoft.com Imports System, System.Threading Class enkonto Dim beholdning as Integer = 0 Shared Sub Main() Dim i As Integer For i = 1 To 33 ant barn Dim t As New Thread(AddressOf slave) t.start() Private Shared Sub slave() Dim i As Integer For i = 1 To 100 ganger i KR oppdaterbeh() Private Shared Sub oppdaterbeh() inne i KR Dim endring as Integer endring = 1 eller sjekkinnutganglager() beholdning = beholdning + endring End Class Kritisk region (KR) tråd T s KR: kode der T oppdaterer delte variabler fire regler for mutual exclusion (gjensidig utelukkelse) til enhver tid: Kun en tråd i sin KR uavhengig av CPU s hastighet og antall CPU en som er inne i sin KR kan ikke blokkeres av en annen ingen tråder vil vente for evig på sin KR vanskelig å fremprovosere i eksperiment (men, de kan altså skje) Slå av interrupt (DisInt) scheduler kjøres for hvert hw-interrupt fra klokka 4
5 hvis A ikke kan veksles ut (mens A er i sin KR) er A trygg DisInt(c): CPU-instruksjon som masker ut interrupt fra h/w for CPU c kernel gjør DisInt forut for sine (mange) KR Spm.: Kan vi tillate DisInt fra usertråder? Spm.: Hva med de andre CPU? Låsevariabel l A og B kan lese og endre l inngang i sin KR kun hvis l == 0 (hvis ikke: spinlock, busywait: Les l, test, les l, test,... ) Sett l = 1 etter inngang, og l = 0 ved utgang Spm.: Hva er problemet her? TSL (Test-Set-Lock) en bedre lås CPU kan ha en instruksjon TSL, som i en operasjon leser l, setter l = 1 hvis l = 0 TSL er atomisk, kan ikke avbrytes av klokkeinterrupt funker, men betyr busywait for den som venter Strict Alternation (alltid annen-hver gang) tråd k gjør busywait mens den venter på tur ved utgang av KR: Sett tur til k + 1%N (N konkurrenter) en sikrer rekkefølgen og gjensidig utelukkelse Spm.: Er rekkefølgen viktig? Petersons løsning (for N = 2) k vil inn i KR, men vil først sette i(k) = 1 (sier seg interessert) og setter tur til k deretter: k skal vente med KR (les: busy wait) sålenge det er dens tur og den andre er interessert ved utgang av KR vil k sette i(k) = 0 (si seg uinteressert) unngår unødig venting Spm.: Hvordan vil dette virke med flere enn to interessenter? Priority Inversion noen schedulere gir CPU til høyeste prioritet (s. 108) H og L er to der L har lavere prioritet enn H 5
6 Spm.: Hva skjer hvis H ankommer mens L er i sin KR? Bort med busy wait! mange ideer er skissert med busy waiting (CPU-spoling) for de som må vente (OK for kortvarig venting) mer fornuftig å suspendere disse de blokkerer, men ikke i forbindelse med ekstern datatilførsel, men i påvente av at en annen tråd skal gi klarsignal en som venter gir opp CPU, med systemkall wait() og suspenderes den som er ferdig i KR vekker id med systemkall wakeup(id) Semafor oppfunnet av Edsgar Dijkstra (1965), først tilgjengelig i Algol68 lenge siden s = new Semafor(n) en semafor har privat teller N som i new settes til n public metode up: N++ og wakeup() public metode down: sleep() if N==0; N--; Dijkstra s brukte P() og V() (probieren og verhogen) for down og up Spm.: Hvor ligger race condition her, og hvordan kan forkludring forhindres? alle tråder skal ha tilgang til s gjøre s.down() før KR gjøre s.up() etter KR binær semafor: Semafor(1) Semafor i Java // Geir S. M. Gjersvoll s // semafor in240 H03! public class Semafor{ private int n; public Semafor(int x) { System.out.println ("ny semafor " + x); n=x; public synchronized void P(){ System.out.println ("P() entres!"); if (n==0){ try { System.out.println ("P() wait()!"); wait(); catch (InterruptedException e){ else { n=n-1; public synchronized void V() { n=n+1; System.out.println 6
7 ("P() notify()!"); notify(); Skriver-leser med semafor utgangspunkt K plasser i delt minne skriver kan ikke putte hvis alle plasser tatt leser kan ikke hente hvis ingen plasser fylt Kritisk region: Der skriver skriver og der leseren leser trenger tre semaforer en for mutex til KR: mutex = new semafor(1) en for fulltest: full = new semafor(0) en for tomtest: tom = new semafor(k) realisering Mutex leser tester tomhet med tom.down() og avslutter med full.up() for å eventuelt vekke skriveren skriver tester fullhet med full.down() og avslutter med tom.up() for eventuelt å vekke leseren en variabel som er låst eller ikkelåst (og, hvordan er det forskjellig fra lås eller TSL?) userspace realisering hvis TSL (og gjerne thread_yield) er tilgjengelig mutexex insp msdn.microsoft.com Imports System, System.Threading Class Test Private Shared mut As New Mutex() Shared Sub Main() Dim i As Integer For i = 1 To 7 Dim t As New Thread(AddressOf w) t.name = [String].Format(i) t.start() Private Shared Sub w() Dim i As Integer For i = 1 To 98 mut.waitone() delressurs() mut.releasemutex() Private Shared Sub delressurs() Dim t as Thread = Thread.CurrentThread Console.WriteLine("inn "& t.name) Thread.Sleep(500) liksom-kr Console.WriteLine("ut " & t.name) End Class 7
8 Risky semaforer feil bruk av semaforer kan gi vranglås P: empty.down; mutex.down; (KR) mutex.up; full.up; C: full.down; mutex.down; (KR) mutex.up; empty.up; feilkodet (s. 115) Monitor P: mutex.down; empty.down; (KR) mutex.up; full.up; vranglås hvis buffer er fullt. tråders skriving og lesing reguleres av en egen monitorklasse som låser objektet med egen låsevariabel i tillegg: condition variables som kan ta wait og signal scheduler bestemmer hvem som vekkes ved signal dropper signalet hvis ingen venter unngår programmererfeil, og er lettere i praksis enn i læreboken monitor krever delt minne, uaktuelt mellom maskiner Monitor i Java et objekt har metoder metode kan deklareres synchronized: ved inngang låses objektet et låst objekt legger nye metodekall i en kø ved utgang frigis objektet JVM velger neste tråd fra objektkøen Gjersvoll s semaforløsning er omtrent en monitor Message Passing istedetfor lesing og skriving til delt minne, sendes beskjeder mellom prosessene beskjedene kopieres flere ganger (kostbart) datakom (in115, in270) befrakteren tap av data underveis: ack, nack, timeout ack (retransmit data), timeout data (retransmit nack) sekvensnumre i tilfelle tap, duplikat og endret rekkefølge flytkontroll: unngå å sende mer enn mottaker kan ta unna opphopningskontroll: unngå å sende mere enn befrakteren kan ta unna. autentisering (mellom maskiner, stort Internett) 8
9 adressering (millioner av maskiner) Eksempel fig 2.29, s. 121 C lager N tomme konvolutter som sendes til P P lager meldinger, men blokkerer inntil tom konvolutt foreligger C blokkerer inntil melding foreligger fra P (i konvolutt), sender umiddelbart tom konvolutt tilbake Spm.: Drøft forskjell i arbeidshastighet mellom C og P, altså flytkontroll. Barrierer flere tråder skal starte neste fase samtidig en tråd må da vente til de andre er ferdig dette løses med et systemkall barrier() barrier() er i praksis en wait() der alle vekkes samtidig Spm.: Hva kreves for at dette skal virke? 9
GetMutex(lock) { while(testandset(lock)) {} } En context switch kan ikke ødelegge siden testen og endringen av lock skjer i samme instruksjon.
Hardware-støttet Semafor og Implementasjon av semafor i OS til å synkronisere Hardware-støttet alle softwareløsninger innebærer mange instruksjoner i tillegg til busy-waiting, som koster CPU-tid. I praksis
DetaljerKort notat om parallellstyring IN147
Kort notat om parallellstyring IN147 Kristin Skar 18. mai 2001 1 Kommunikasjon mellom prosesser Mange problemer man kommer borti kan kreve en paralell løsning: Man kan ha behov for økt hastighet, og dermed
DetaljerEksempler på ikke-blokkerende systemkall:
Blokkerende systemkall Thread-modeller Thread-modeller Blokkerende systemkall Viktigste grunn for tråder: blokkerende I/O forespørsler Applikasjonen som ber om I/O blir satt på vent av operativsystemet
DetaljerDefinisjon av prosess
Prosesser og tråder Definisjon av prosess Enkel definisjon: En prosess er et program som kjører på datamaskinen Mer presis definisjon: En prosess er en samling av ressurser som er nødvendige for å utføre
DetaljerINF1010 Tråder J. Marit Nybakken Motivasjon. Å lage en tråd
J INF1010 Tråder J Marit Nybakken marnybak@ifi.uio.no Motivasjon Til nå har vi kun skrevet programmer der programmet bare var på ett sted i koden til enhver tid (bortsett fra når vi har drevet med GUI,
DetaljerEn 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.
Synkronisering 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. Behov for synkronisering Mange prosesser/tråder
DetaljerHØGSKOLEN I SØR-TRØNDELAG
HØGSKOLEN I SØR-TRØNDELAG Eksamensdato: 21. desember 2005 Varighet: 3 timer ( 9:00 12:00 ) Avdeling for informatikk og e-læring Fagnummer: Fagnavn: LO249D Operativsystemer med Linux Klasser: FU (1. ING)
DetaljerSide 1 av 11, prosesser, tråder, synkronisering, V. Holmstedt, HiO 2006
Side 1 av 11, prosesser, tråder, synkronisering, V. Holmstedt, HiO 2006 Prosesser og tråder Datamaskinen lager prosesser. En prosess organiserer arbeidet i et program ved å administrere tråder. Det er
DetaljerINF1010 Tråder II 6. april 2016
INF1010 Tråder II 6. april 2016 Stein Gjessing Universitetet i Oslo 1 Tråder i Java tråden minrunp class MinRun implements Runable { MinRun(... ) {... } public void run( ) {...... } } //end
DetaljerTråder Repetisjon. 9. og 13. mai Tråder
Tråder Repetisjon 9. og 13. mai Tråder Hva er tråder? 2 Hva er tråder? I utgangspunktet uavhengige aktiviteter som konkurrerer om å få bruke prosessoren. 2 Hvorfor tråder? 3 Hvorfor tråder? Flere oppgaver
DetaljerEksamen 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
Eksamen DAT 103 Kandidatnr.: 145 Oppgave 1 1) B 2) B 3) A 4) A 5) D 6) C 7) B 8) A 9) A 10) D Oppgave 2 a) Et OS er den administrerende softwaren i en datamaskin. Den bygger på prinsippene om filhåndtering,
DetaljerTråder Repetisjon. 9. og 13. mai Tråder
Tråder Repetisjon 9. og 13. mai Tråder Hva er tråder? 2 Hva er tråder? I utgangspunktet uavhengige aktiviteter som konkurrerer om å få bruke prosessoren. 2 Hvorfor tråder? 3 Hvorfor tråder? Flere oppgaver
DetaljerConcurrency. Lars Vidar Magnusson. September 20, Lars Vidar Magnusson () Forelesning i Operativsystemer September 20, / 17
Concurrency Lars Vidar Magnusson September 20, 2011 Lars Vidar Magnusson () Forelesning i Operativsystemer 20.09.2011 September 20, 2011 1 / 17 Oversikt Concurrency 1 Concurrency Beskrivelse Prinsipper
DetaljerIN1010 våren Repetisjon av tråder. 15. mai 2018
IN1010 våren 2018 Repetisjon av tråder 15. mai 2018 Stein Gjessing,, Universitetet i Oslo 1 Tråder Datamaskinarkitektur prosessor registre cache 1 cache 2 prosessor registre cache 1 Disk System-bus Minne
DetaljerFaglig kontakt under eksamen: Orestis Gkorgkas
Side 1 av 5 Norges teknisk-naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Løsningsforslag til EKSAMENSOPPGAVE I FAG TDT4186 OPERATIVSYSTEMER Faglig kontakt under eksamen:
DetaljerOppgave 1 - Linux kommandolinje (%)
Løsningsforslag Eksamen høst 2017 Operativsystemer Oppgave 1 - Linux kommandolinje (%) a) pwd b) ps Oppgave 2 - Bash-scripting (%) a) ping -i 5 www.hin.no b) ping -c 1 www.hin.no ping -c 1 -t 1 www.hin.no
DetaljerForelesning III Kap 8 & 7; Dagsplan. Gjenbruk. Condition synchronization. Gjennomgående eksempler. Kode: Design: Verktøy
Forelesning III Kap 8 & 7; Dagsplan Moral: Gjenbruk Kap 8: Shared variable-based synchronization and communication Condition synchronization Mutual Exclution Conditional Critical Regions Suspend & Resume
DetaljerTråder og concurrency i Linux
Tråder og concurrency i Linux Lars Vidar Magnusson September 27, 2011 Lars Vidar Magnusson () Forelesning i Operativsystemer 27.09.2011 September 27, 2011 1 / 14 Oversikt Tråder i Linux 1 Tråder i Linux
DetaljerSynkronisering II. Kapittel 7. Betingelse oppfylt (0) liste. tråd-deskriptor. venteliste. tråd-deskriptor. tråd-deskriptor.
Kapittel 7 Synkronisering II etingelse oppfylt (0) liste venteliste tråd-deskriptor tråd-deskriptor tråd-deskriptor tråd-deskriptor Figur 7-1: Datastrukturen for en etingelse. are når oppfylt er 0 kan
Detaljer2 Om statiske variable/konstanter og statiske metoder.
Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo 1 Innledning Dette notatet beskriver noe av det som foregår i primærlageret når et Javaprogram utføres.
Detaljer! Ytelsen til I/O- systemer avhenger av flere faktorer: ! De to viktigste parametrene for ytelse til I/O er:
Dagens temaer! Ulike kategorier input/output! Programmert! Avbruddstyrt! med polling.! Direct Memory Access (DMA)! Asynkrone vs synkrone busser! Med! Fordi! -enheter menes de enheter og mekanismer som
DetaljerScheduling og prosesshåndtering
Scheduling og prosesshåndtering Håndtering av prosesser i et OS OS må kontrollere og holde oversikt over alle prosessene som kjører på systemet samtidig Prosesshåndteringen må være: Korrekt Robust Feiltolerant
DetaljerOppsummering av IN147 siste del Operativsystemer Parallellisering Veien videre
Oppsummering av IN147 siste del Operativsystemer Parallellisering Veien videre Ark 1 av 12 Forelesning 12.5.1999 Operativsystemer I kurset har vi fokusert på UNIX, men prinsippene gjelder i større eller
DetaljerMinnehåndtering i operativsystemer
Minnehåndtering i operativsystemer Minnehåndtering? Minne er en begrenset ressurs i datamaskinen Tilgjengelig minne må fordeles til prosessene som OS-et håndterer, på en korrekt og rettferdig måte Minnet
DetaljerHØGSKOLEN I SØR-TRØNDELAG
HØGSKOLEN I SØR-TRØNDELAG Eksamensdato: 26. mai 25 Varighet: 3 timer ( 9: 2: ) Avdeling for informatikk og e-læring Fagnummer: Fagnavn: LO249D Operativsystemer med Linux Klasser: BADR. ING FU Studiepoeng:
DetaljerHØGSKOLEN I SØR-TRØNDELAG
HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring Eksamensdato: 22. mai 2002 Varighet: Fagnummer: Fagnavn: 4 timer LO245D Datateknikk Klasse(r): 1D FU Vekttall: 3 Faglærer(e): Geir Maribu
DetaljerSkisse til løsning for eksamensoppgave i TDT4186 Operativsystemer
Institutt for datateknikk og informasjonsvitenskap Skisse til løsning for eksamensoppgave i TDT4186 Operativsystemer Faglig kontakt under eksamen: Svein Erik Bratsberg: 9953 9963 Eksamensdato: 9. desember
DetaljerForelesning inf Java 1
Forelesning inf1000 - Java 1 Tema: Javas historie Bestanddelene i et Java-program Programvariabler Ole Christian Lingjærde, 22. august 2012 Litt Java-historikk The Green Team I 1991 opprettet Sun Microsystems
DetaljerSingletasking OS. Device minne Skjerm minne. Brukerprogram. Brukerdata/heap. Stack. Basis for flerprosess-systemer.
-OS i i L1 og L2 og og Basis for flerprosess-systemer. Adresser.. 2 1 0 OS Device minne Skjerm minne Brukerprogram Brukerdata/heap Stack Stack: brukes bl. a. til å lagre adressen som skal returneres til
DetaljerINF2270. Input / Output (I/O)
INF2270 Input / Output (I/O) Hovedpunkter Innledning til Input / Output Ulike typer I/O I/O internt i datamaskinen I/O eksternt Omid Mirmotahari 3 Input / Output En datamaskin kommuniserer med omverdenen
DetaljerStein Gjessing. Institutt for informatikk. Universitetet i Oslo. Institutt for informatikk
INF1010 11. mai 2017 Monitorer med kritiske regioner og passive venting innbygget i Java - Kommunikasjon mellom prosesser i Java (Ikke pensum i INF1010) Stein Gjessing Universitetet i Oslo 1 Repetisjon:
DetaljerLa oss begynne med en repetisjon av hva som skjer når du kjører Javaprogrammet
K A P I T T E L 18 Tråder N år et program kjøres, utføres programsetningene i en bestemt rekkefølge. En tråd er det samme som denne programflyten, og i dette kapitlet skal vi se på hvordan vi starter og
DetaljerSortering med tråder - Quicksort
Sortering med tråder - Quicksort Skisser til to programmer INF1010 våren 2016 Stein Gjessing Institutt for informatikk Universitetet i Oslo Sortering som tema, slikt som valg av sorteringsmetode, hastigheten
DetaljerHØGSKOLEN I SØR-TRØNDELAG
HØGSKOLEN I SØR-TRØNDELAG Eksamensdato: 26. mai 25 Varighet: 3 timer ( 9: 12: ) Avdeling for informatikk og e-læring Fagnummer: Fagnavn: LO249D Operativsystemer med Linux Klasser: BADR 1. ING FU Studiepoeng:
DetaljerEKSAMEN. Operativsystemer. 1. Læreboken "A Practical Guide to Red Hat Linux" av Mark Sobell 2. Maks. tre A-4 ark med selvskrevne notater.
EKSAMEN Emnekode: ITF22506 Emne: Operativsystemer Dato: 12. desember 2007 Eksamenstid: kl. 9.00 til kl. 13.00 Hjelpemidler: 1. Læreboken "A Practical Guide to Red Hat Linux" av Mark Sobell 2. Maks. tre
DetaljerTransaksjoner. transaksjon. når starter/slutter 1 trans.?
Transaksjoner IBE211 Kap. 10 feil mediefeil: disk feiler må gjenopprette (fra sikkerhetskopi, kap. 11) instansfeil: databasen stopper midt i noe tilbakeføring (rollback) til konsistent samtidighet når
DetaljerINF2270. Input / Output (I/O)
INF2270 Input / Output (I/O) Hovedpunkter Innledning til Input / Output Ulike typer I/O I/O internt i datamaskinen I/O eksternt Omid Mirmotahari 3 Input / Output En datamaskin kommuniserer med omverdenen
DetaljerDefinisjon av prosess
Prosesser og tråder Definisjon av prosess Enkel definisjon En prosess er et program som kjører Mer presis definisjon En prosess er en samling av ressurser som er nødvendige for å utføre en oppgave beskrevet
DetaljerMer om C programmering og cuncurrency
Mer om C programmering og cuncurrency Lars Vidar Magnusson September 23, 2011 Lars Vidar Magnusson () Forelesning i Operativsystemer 20.09.2011 September 23, 2011 1 / 19 Oversikt Mer om C programmering
DetaljerD: Ingen trykte eller håndskrevne hjelpemiddel tillatt. Bestemt, enkel kalkulator tillatt.
Side 1 av 8 Norges teknisk-naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Løsningsforslag til EKSAMENSOPPGAVE I FAG TDT4186 OPERATIVSYSTEMER Versjon: 13.des 2011 Faglig
DetaljerOperativsystemer og grensesnitt
Operativsystemer og grensesnitt Ulike måter å bruke OS'et på Application Program Interface (API) Applikasjoner (ofte C-programmer) som f.eks. emacs, som bruker tjenestene i OS ved å kalle på funksjoner
DetaljerHåndtering av minne i et OS
Håndtering av minne i et OS Hva er det som skal håndteres? Minnehåndtering (memory management) utføres av de delene av systemet som har ansvar for å håndtere maskinens primærminne Primærminnet (aka hovedminne,
DetaljerThreads Threads (tråder) threads vs prosesser threads vs prosesser Definisjoner av
prosess = At en kokk lager en porsjon middag i et kjøkken CPU = kokk ressurser = kjøkken, matvarer, oppskrift thread/tråd = den sammenhengende serien(tråden) av hendelser som skjer når kokken lager en
DetaljerMinnehåndtering i operativsystemer
Minnehåndtering i operativsystemer Minnehåndtering? Minne er en begrenset ressurs i datamaskinen Tilgjengelig minne må fordeles til prosessene som OS-et håndterer, på en korrekt og rettferdig måte Minnet
DetaljerOPPGAVE 1 OBLIGATORISKE OPPGAVER (OBLIG 1) (1) Uten å selv implementere og kjøre koden under, hva skriver koden ut til konsollen?
OPPGAVESETT 4 PROSEDYRER Oppgavesett 4 i Programmering: prosedyrer. I dette oppgavesettet blir du introdusert til programmering av prosedyrer i Java. Prosedyrer er også kjent som funksjoner eller subrutiner.
DetaljerProsesstabeller (PCB - Prosess Control Block) Se på PD: kommandoene ps og top Bakgrunnsprosesser Opprettelse av prosesser:
Prosesser i Prosesstabeller (PCB - Prosess Control Block) Se på PD: kommandoene ps og top Bakgrunns Opprettelse av : fork og exec pid og ppid Foreldre, barn og barnebarn Utførelse av kommando i Eksempler
DetaljerForelesning inf1000 - Java 1
Litt Java-historikk Forelesning inf1000 - Java 1 Tema: Javas historie Bestanddelene i et Java-program Programvariabler Ole Christian Lingjærde, 22. august 2012 The Green Team I 1991 opprettet Sun Microsystems
Detaljerstatic int ant_steiner; //antall steiner static int teller2 = 0; //teller for printing til Thread^ murer; //murertråden
Øving 4 Thorstein Brekke Operativsystemer Oppgave 1 Kode for Murer: // Uke4oppgave1murer.cpp : main project file. #include "stdafx.h" using namespace System; using namespace Threading; using namespace
DetaljerSynkronisering I. Kapittel 6. Tråd A. ferdig. t.varsle() u.vente() Tråd B. ferdig. tid
Kapittel 6 Synkronisering I Tråd A t.varsle() u.vente() ferdig Tråd B t.vente() u.varsle() ferdig tid Figur 6-1: Tråder som venter og varsler langs en tidsakse. Heltrukket linje betyr aktiv, og stiplet
DetaljerProgram delegate. Lage et nytt prosjekt i Visual Studio
Program delegate Kommunikasjon mellom objekter er en utfordring i objektorientert programmering. Dette GUI eksempelet viser hvordan bruke en delegate til å gjøre metodekall i et annet objekt. Vi skal legge
DetaljerInnhold. Introduksjon til parallelle datamaskiner. Ulike typer parallelle arkitekturer. Prinsipper for synkronisering av felles hukommelse
Innhold Introduksjon til parallelle datamaskiner. Ulike typer parallelle arkitekturer Prinsipper for synkronisering av felles hukommelse Multiprosessorer koblet sammen av én buss 02.05 2001 Parallelle
DetaljerAvdeling for ingeniørutdanning Institutt for teknologi
Avdeling for ingeniørutdanning Institutt for teknologi Oppgavetittel: Lab Fag(nr./navn): DOPS2021 - Operativsystemer Gruppemedlemmer: T. Alexander Lystad Faglærer: Karoline Moholth Dato: 15. oktober 2009
DetaljerModeller av prosessering Implementasjon av tjenere
Modeller av prosessering Implementasjon av tjenere Foreleser: Kjell Åge Bringsrud 1 Oversikt Motivasjon for flertrådede prosesser og deres anvendelse i distribuerte system Modeller av prosessering i CORBA
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Prøveeksamen i : INF2440 Praktisk parallell programmering Prøveeksamensdag : 26. mai 2014 Tidspunkter: 11.00 Utdeling av prøveeksamen 15:15
DetaljerHva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først
Køer Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først Et nytt element legges alltid til sist i køen Skal vi ta ut et element, tar vi alltid
DetaljerSamtidige prosesser. Prosessor modus. Hvordan kan OS effektivt kontrollere brukerprosesser? Hvordan kan OS. kontrollere brukerprosesser?
Samtidige To (tasks) må ikke ødelegge for hverandre: skrive til samme minne kapre for mye CPU-tid få systemet til å henge Beste løsning: All makt til OS = Preemptive multitasking Preemptive = rettighetsfordelende.
DetaljerHva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først
Køer Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først Et nytt element legges alltid til sist i køen Skal vi ta ut et element, tar vi alltid
DetaljerEKSAMENSOPPGAVE I FAG TDT4186 OPERATIVSYSTEMER. Faglig kontakt under eksamen: Svein Erik Bratsberg og Arvid Staupe
Side 1 av 8 Norges teknisk-naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Løsningsforslag til EKSAMENSOPPGAVE I FAG TDT4186 OPERATIVSYSTEMER Versjon: 20. nov 2012 Faglig
Detaljer13.09.2012 LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke 1-3 12. September 2012 Siri Moe Jensen EKSEMPLER
.9.22 LITT OM OPPLEGGET INF EKSTRATILBUD Stoff fra uke - 2. September 22 Siri Moe Jensen Målgruppe: De som mangler forståelse for konseptene gjennomgått så langt. Trening får du ved å jobbe med oppgaver,
DetaljerTDT4258 Eksamen vår 2013
Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Side 1 av 8 TDT4258 Eksamen vår 2013 Løsningsforslag Oppgave 1 Flervalgsoppgave (16 poeng) Du får 2 poeng
DetaljerDagens temaer. Fra kapittel 4 i Computer Organisation and Architecture. Kort om hurtigminne (RAM) Organisering av CPU: von Neuman-modellen
Dagens temaer Fra kapittel 4 i Computer Organisation and Architecture Kort om hurtigminne (RAM) Organisering av CPU: von Neuman-modellen Register Transfer Language (RTL) Instruksjonseksekvering Pipelining
DetaljerOperativsystemer, prosesser og tråder
Dagens program Grunnleggende tråd-programmering i Java: Java-tråder: definisjoner, egenskaper Interferens Låsing og synkronisering Venting og signallering Løpende eksempel: lesere og skrivere Erfaringer
DetaljerHØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring
HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring Eksamensdato: 26. mai 2004 Varighet: 0900-200 Fagnummer: LO249D Fagnavn: Operativsystemer med Linux Klasse(r): ing, hk, fu Studiepoeng: 6
DetaljerHva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først
Køer Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først Et nytt element legges alltid til sist i køen Skal vi ta ut et element, tar vi alltid
DetaljerProgrammering i C++ Løsningsforslag Eksamen høsten 2005
Programmering i C++ Eksamen høsten 2005 Simen Hagen Høgskolen i Oslo, Avdeling for Ingeniørutdanning 7. desember 2005 Generelt Denne eksamensoppgaven består av tre oppgaver, pluss en ekstraoppgave. Det
DetaljerINF1000 - Uke 10. Ukesoppgaver 10 24. oktober 2012
INF1000 - Uke 10 Ukesoppgaver 10 24. oktober 2012 Vanlige ukesoppgaver De første 4 oppgavene (Oppgave 1-4) handler om HashMap og bør absolutt gjøres før du starter på Oblig 4. Deretter er det en del repetisjonsoppgaver
DetaljerReal-time Operativsystem
Real-time Operativsystem c Ketil Danielsen November 8, 2002 Oversikt hvilke behov har vi (kap. 1-2) hvordan organiseres arbeidet (kap. 3) CPU scheduling (kap. 6) Minnescheduling (kap. 10) Scheduling av
Detaljer2 Om statiske variable/konstanter og statiske metoder.
Gaustadbekkdalen, januar 22 Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Innledning Dette notatet beskriver noe av det som foregår i primærlageret når
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF1010 Objektorientert programmering Dato: 9. juni 2016 Tid for eksamen: 09.00 15.00 (6 timer) Oppgavesettet er på 7 sider.
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO BOKMÅL Det matematisk-naturvitenskapelige fakultet Eksamen i : Eksamensdag : Torsdag 2. desember 2004 Tid for eksamen : 09.00 12.00 Oppgavesettet er på : Vedlegg : Tillatte hjelpemidler
DetaljerDagens forelesning. Java 13. Rollefordeling (variant 1) Rollefordeling (variant 2) Design av større programmer : fordeling av roller.
Dagens forelesning Java 13 Design av større programmer : fordeling av roller INF 101-13. mars 2003 Flere eksempler på bruk av objekter MVC-prinsippet MVC-prinsippet Flere eksempler på programmer med objekter
DetaljerFra Python til Java, del 2
Fra Python til Java, del 2 Hvordan kjøre Java? På Ifis maskiner På egen maskin Et eksempel Array-er For-setninger Lesing og skriving Metoder Biblioteket Hva trenger vi egentlig? Å kjøre Java For å kunne
DetaljerI et Java-program må programmøren lage og starte hver tråd som programmet bruker. Er dette korrekt? Velg ett alternativ
INF2440-V18 Information INF2440 Vår 2018 eksamen Dato og tid: 11. juni 2018 09:00. Varighet: 4 timer Hjelpemidler: Alt skriftlig materiale er tillatt. Ingen elektroniske hjelpemidler er tillatt. Powerpoint
DetaljerDeadlocks og mer om concurrencymekanismer
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
Detaljerstatic int skrivetidsfrist = 0; // antall overskredet tid når skrive
// Dette eksempelet viser en ReaderWriterLock beskytte en delt // ressurs som kan leses samtidig av mange tråder, men kun // skrives til av en tråd om gangen. #include "stdafx.h" using namespace System;
DetaljerForelesning inf Java 4
Forelesning inf1000 - Java 4 Tema: Løkker Arrayer Metoder Ole Christian Lingjærde, 12. september 2012 Ole Chr. Lingjærde Institutt for informatikk, 29. august 2012 1 Repetisjon: arrayer Deklarere og opprette
Detaljer1,r H øgs kolen i Østfol d
1,r H øgs kolen i Østfol d EKSAMEN Emnekode: ITF22506 Emne: Operativsystemer Dato: 2. juni 2010 Eksamenstid: kl. 9.00 til kl. 13.00 Hjelpemidler: Faglærer: 1. Læreboken "A Practical Guide to Red Hat Linux"
DetaljerIkke pensum! Plan for dagen. Resource Management Kontekst: Bloom (1979) Kap. 11: Resource control (utvalg)
Plan for dagen Kap. 11: Resource control (utvalg) Hva trenger vi av egenskaper? Hvordan unngår vi vranglåser? Ikke pensum! Kap. 11.4 (The requeue facility) Kap 14 (Distributed Systems) Kap 14 Distributed
DetaljerINF1010, 22. mai Prøveeksamen (Eksamen 12. juni 2012) Stein Gjessing Inst. for Informatikk Universitetet i Oslo
INF, 22. mai 23 Prøveeksamen 23 (Eksamen 2. juni 22) Stein Gjessing Inst. for Informatikk Universitetet i Oslo Oppgave a Tegn klassehierarkiet for de 9 produkttypene som er beskrevet over. Inkluder også
Detaljeri=0 Repetisjon: arrayer Forelesning inf Java 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker 0*0 0*2 0*3 0*1 0*4
Forelesning inf - Java 4 Repetisjon: arrayer Tema: Løkker Arrayer Metoder Ole Christian Lingjærde,. september Deklarere og opprette array - eksempler: int[] a = new int[]; String[] a = new String[]; I
DetaljerINF 1010, vår 2005 Løsningsforslag uke 11
INF 1010, vår 2005 uke 11 Anders Brunland 11. april 2005 Oppgave 1 Oppgave 1 i kapittel 19, Rett på Java Er følgende metoder lovlige? Hovorfor/hvorfor ikke? a) void koknverter ( int mnd ) { konverterdato
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Prøveeksamen i: INF2440 Effektiv parallellprogrammering Prøveeksamensdag: 1. juni 2016 Tidspunkter: 09.00 16.00 Oppgavesettet er på: 4 sider
DetaljerP1 P2 P3 P1 P2 P3 P1 P2. OS gjør Contex Switch fra P1 til P2
i, intensive i og Når OS switcher fra prosess P1 til prosess P2 utføres en såkalt Contex (kontekst svitsj). 10 30 50 70 P1 P2 P3 P1 P2 P3 P1 P2 OS gjør Contex fra P1 til P2 tid/ms bruk Figure: Prosessene
DetaljerForkurs INF1010. Dag 1. Andreas Færøvig Olsen Tuva Kristine Thoresen
Forkurs INF1010 Dag 1 Andreas Færøvig Olsen (andrefol@ifi.uio.no) Tuva Kristine Thoresen (tuvakt@ifi.uio.no) Institutt for Informatikk, 6. januar 2014 Forkurs INF1010 - dag 1 Hello, World! Typer Input/output
DetaljerTOD063 Datastrukturer og algoritmer
TOD063 Datastrukturer og algoritmer Øving : 3 Utlevert : Uke 7 Innleveringsfrist : 26. februar 2010 Klasse : 1 Data og 1 Informasjonsteknologi Gruppearbeid: 2-3 personer pr. gruppe. Oppgave 1 Vi skal lage
DetaljerOversikt over IN147(A):
Oversikt over IN147(A): Programmerings- og operativsystem-delen Oppsummering for IN147(A) Bit-mønstre Tallsystemer MIPS assemblerspråk C Datatyper Tillegg for de som tar hele IN147 Operativsystemer Parallellisering
DetaljerHvordan skrive Flok og Flass kode? I mange tilfelle er det svært enkelt:
Hvordan skrive Flok og Flass kode? I mange tilfelle er det svært enkelt: inchar INC inint INI Tegnet eller tallverdien kommer i I registeret. outchar OUTC outint (n) OUTI n outline OLIN I Flink maskinen
DetaljerINF1010 Repetisjonskurs i tråder
Eivind Storm Aarnæs eivinsaa@student.matnat.uio.no 19. mai og 21. mai 2014 Hello, World! La oss starte med det vanlige eksempelet: Hello, World Alle trådene skriver ut samtidig. Hello, World! La oss starte
DetaljerD: Ingen trykte eller håndskrevne hjelpemiddel tillatt. Bestemt, enkel kalkulator tillatt.
Side 1 av 5 Norges teknisk-naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Løsningsforslag til EKSAMENSOPPGAVE I FAG TDT4186 OPERATIVSYSTEMER Versjon: 17.jan 2013 Faglig
DetaljerLars Vidar Magnusson. October 11, Lars Vidar Magnusson () Forelesning i Operativsystemer October 11, / 28
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
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : INF5110 - Kompilatorteknikk Eksamensdag : Onsdag 2. juni 2010 Tid for eksamen : 14.30-17.30 Oppgavesettet er på : 5 sider (pluss
DetaljerINF NOV PARALLELL SORTERING. Arne Maus, PSE, Ifi
INF2220-2. NOV. 2017 PARALLELL SORTERING Arne Maus, PSE, Ifi 2 Dagens forelesning Hva er et parallelt program med tråder (i Java) Typer av parallelle programmer her vil vi ha raskere programmer Hva er
Detaljerpublic static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren
Prosedyrer Hensikten med en prosedyre Hensikten med en prosedyre er, logisk sett, å representere en jobb eller en funksjonalitet i et eller flere programmer. Bruk av entall er viktig: vi har generelt en
DetaljerEksamensoppgave i TDT4258 Energieffektive Datamaskinsystemer
Institutt for Datateknikk og Informasjonsvitenskap Eksamensoppgave i TDT4258 Energieffektive Datamaskinsystemer Faglig kontakt under eksamen: Magnus Jahre Tlf.: 952 22 309 Eksamensdato: 19. Mai 2014 Eksamenstid
DetaljerLitt om Javas class-filer og byte-kode
Litt om Javas class-filer og byte-kode INF 5110, 11/5-2010, Stein Krogdahl (Dessverre litt få figurer) Disse formatene ble planlagt fra start som en del av hele Java-ideen Bt Byte-koden gir portabilitet
DetaljerINF2440 Prøveeksamen, løsningsforslag, 20 mai Arne Maus PSE, Inst. for informatikk
INF2440 Prøveeksamen, løsningsforslag, 20 mai 2015 Arne Maus PSE, Inst. for informatikk 1 Prøveeksamen Er en modell av hva du får til eksamen: - like mange (+-1) oppgaver som eksamen og nesten samme type
DetaljerFakultet for informasjonsteknologi, Løsning på kontinuasjon i TDT4186 Operativsystemer August 2005,
Side 1 av 5 NTNU Norges teknisk-naturvitenskapelige universitet Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap Løsning på kontinuasjon
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: 13. juni 2006 Tid for eksamen: 9.00 12.00 Oppgavesettet er på 5
DetaljerForelesning Instruksjonstyper Kap 5.5
TDT4160 Datamaskiner Grunnkurs Forelesning 22.11 Instruksjonstyper Kap 5.5 Dagens tema Instruksjonstyper (5.5) Datatransport Datamanipulering Betingede hoppinstruksjoner Prosedyrekall Løkker I/O Eksempler
Detaljer1b) RaceCondision: En bug som kommer til overflaten ved uheldig timing/scheduling. Det klassiske eksemplet er vel med suspend og resume:
Sensor: Noter kommentarer til dette arket, hvis studenter kommer opp med ting som hadde fortjent å stå her. Jeg kommer vel til å gjøre denne veiledningen tilgjengelig for dem til neste år... 1a) Dette
Detaljer