Jonny Karlsson 27.9.2005 PROCESSPROGRAMMERING Föreläsning 5 (27.9.2005) Innehåll: -Signaler -Signalhantering.

Slides:



Advertisements
Liknande presentationer
Att identifiera och utveckla ledare
Advertisements

Varför är det viktigt att mäta?
Föreläsning 9 Programmeringsteknik och Matlab 2D1312/2D1305
Tidsplanering Tidsplanering
Utveckla en applikation Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling Fredric Ragnar
Avlusning Debugger (”avlusare”) Breakpoints Watch.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 1 ( ) Innehåll: -Introduktion av kursen -Program och processer -Fildeskriptorer -Filhantering.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 3 ( ) Innehåll: -Namngivna rörledningar.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 3 ( ) Innehåll: -Namngivna rörledningar -Signaler -Signalhantering.
Funktioner och programorganisation
Föreläsning 12 Matlab J-uppgiften.
Föreläsning 4 Python: Definiering av egna funktioner Parametrar
Stora additionstabellen
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, Kap 3 & 4: Processer & trådar.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser och instansvariabler -Tabeller av klassobjekt.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 7 ( ) Innehåll: -Datakanaler och datakanalpar -Kommunikation på samma dator med datakanaler.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 4 ( )‏ Innehåll:Trådsäkerhet - Intrinsic locks och synkronisering - Synchronized statements.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 8 ( ) Innehåll: Trådprogrammering i Java - Avbrott (”interrupts”) - Metoden join() -
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 4 ( ) Innehåll: -Programmerade rörledningar -Namngivna rörledningar.
William Sandqvist C:s minnesmodell.
Föreläsning 3 Programmeringsteknik och Matlab DD1312
Listor En lista är en föränderlig ordnad samling objekt.
PROCESSPROGRAMMERING Föreläsning ‏ Innehåll: Högnivå objekt för trådprogrammering: - Trådgrupper (”Thread pools”)‏ - Exekverare (Executor.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 4 ( ) INNEHÅLL: -Logiska opertorer -Poster.
Programspråk Två olika typer av program omvandlar högnivå till lågnivå program: Interpreterande program och kompilerande program. Python är ett interpreterande.
Bygg strukturen Skapa en kunddatabas på företagsnivå
Problemlösning Veckodagsproblemet Gissa talet Siffersumman.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Jämförelseoperatorer -Villkorssatser -Logiska operatorer.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Jämförelseoperatorer -Villkorssatser -Logiska operatorer.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser -Att definiera egna klasser -Klassvariabler -Klassmetoder.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 4 ( ) Innehåll: - Förening av dataströmmar - Signaler - Signalhantering.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 6 ( ) Innehåll: -Producent – konsument problemet -Förmedling av fildeskriptorer.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 8 ( ) INNEHÅLL:Klasser: -Konstruktorer -Klassvariabler -Instansmetoder -Privata.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 6 ( ) Innehåll: -IPC: Semaforer -Exekveringstrådar (threads) -Introduktion till Java.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Metoder -Lokala variabler -Mera om klasser: -Nyckelorden.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 12 ( ) Innehåll: -Datakanaler och datakanalpar -Kommunikation på samma dator med datakanaler.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
Styrteknik 7.5 hp distans: PLC-Program, kaffe-automat PLC7B:1
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 11 ( ) Innehåll: - Förmedling av fildeskriptorer.
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.
Anders Sjögren ANSI - standard ?. Anders Sjögren ANSI - standard ? Om man skriver ett bra C-program och kompilerar fram ”exe”-filen så vore det ju trevligt.
INTRODUKTION TILL PROGRAMMERING
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 2 ( ) INNEHÅLL: -Variabler och datatyper -Tilldelning av variabler -Aritmetiska.
Problemlösningsmetodik
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Tabeller -Villkorssatser -Repetitionssatser.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 5 ( ) INNEHÅLL: -Metoder.
F4 - Funktioner & parametrar 1 Programmeringsteknik, 4p vt-00 Modularisering ”svarta lådor” Väl definierade arbetsuppgifter Enklare validering Enklare.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 5 ( ) Innehåll: IPC: meddelandeköer IPC: delat minne.
Stora subtraktionstabellen
Vård utan omvägar - en del av programmet för ökad patientsäkerhet
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 4 ( ) INNEHÅLL: -Logiska operatorer och logiska uttryck -Referenstyper.
Föreläsning 4 Listor, tupler, och for-loopar. Listor En lista är en föränderlig ordnad samling objekt. Listor skapas med hakparenteser. lista = [12,13,14,15]
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 5 ( ) INNEHÅLL: -Introduktion till programmeringsspråket Java -Den allmänna.
BVForum - en genomgång för revisorer Sören Thuresson.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 5 ( ) INNEHÅLL: -Repetitionssatser: do-satsen och for-satsen -Operatorer:
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 7 ( ) Innehåll: -IPC: Meddelandeköer.
Uppgift 5 Tekniska rapporten En beskrivning av ett uppdrag ni har gjort i er grupp. Du ska bifoga en programmeringshandledning som visar hur man programmerar.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 9 ( ) Innehåll: - IPC: Semaforer.
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 6 ( ) Innehåll: - Förening av dataströmmar -Blockerande I/O multiplexering -Icke blockerande.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 2 ( )‏ Innehåll:Trådar: - Avbrott (”interrupts”)‏ - Metoden join()‏ Högnivå objekt för.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Gruppövning 0.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 2 ( ) Innehåll: -Fildeskriptorer -Filhantering -Felhantering.
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.
Föreläsning 3 Väsentliga delar i ett Javaprogram Input i paketet extra
IT och medier1 Utgående från boken Computer Science av: J. Glenn Brookshear Grundläggande datavetenskap, 4p Kapitel 3 Operativsystem.
Roligt lärande! Varför? Vad ? Hur?.
Presentationens avskrift:

Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 5 ( ) Innehåll: -Signaler -Signalhantering

Jonny Karlsson Signaler Signaler är kommunikation utan informationsöverföring, inom en process, eller mellan olika processer. Används för processavbrott, dvs. det normala förloppet hos en process kan avbrytas av en signal. Interna signalerSkapas av en exekverande process t.ex: - felaktig instruktion - skrivning av information i en rörledning vars läsända är stängd Externa signalerSkapas t.ex. från: - tangentbordet, t.ex. ctrl-c - Från andra processer systemanropet kill - Från UNIX kommondoraden med kommandot kill En signal identifieras i unix m.h.a. en signalnummer (positivt heltal)

Jonny Karlsson Signaler STANDARDISERADE SIGNALER I UNIX (Mer info i föreläsningskompendiet och boken) 1.SIGHUP 2.SIGINTTerminal avbrott. Genereras vanligen med ctrl-c 3.SIGQUIT 4.SIGILLGenereras av ogiltig maskininstruktion 5.SIGTRAP 6.SIGIOT 7.SIGEMT 8.SIGFPE 9.SIGKILLGenereras bl.a. av kill -9 processnummer 10.SIGBUS 11.SIGSEGV 12.SIGSYS 13.SIGPIPEGenereras om en process försöker skriva i en rörledning med stängd läsända 14.SIGALRMGenereras av systemanropet alarm(seconds) efter önskat antal sek. 15.SIGTERMGenereras av UNIX kommandot kill processnummer

Jonny Karlsson Signalhantering UPPFÅNGNING AV SIGNALER ”signal catching” Varje signal i UNIX har en standard funktion som utförs då signalen genereras En signal kan fångas upp och trigga en egen programmerad funktion eller ignoreras genom med systemanropet signal() #include typedef void (*sighandler_t) (int); sighandler_t signal(int signum, sighandler_t handler) signumNumret på en signal som man vill uppfånga handerPekare på en void funktion som skall triggas då signalen uppfångas ReturnerarVärdet för den förra ”signal handlern” eller SIG_ERR vid misslyckande.  Ex1

Jonny Karlsson Signalhantering En signal kan ignoreras i en process med: signal(signalnummer, SIG_IGN); Man kan återställa grundinställningen för en signal med: signal(signalnummer, SIG_DFL); Alla signaler förtom SIGKILL kan göras uppfångbara med systemanropet signal()  Ex. 2

Jonny Karlsson Signalhantering Systemanropet pause() kan användas om man vill att en process skall lämna och vänta på en viss signal: #include int pause(void);  Ex. 3

Jonny Karlsson Signalhantering ATT SÄNDA EN SIGNAL FRÅN EN PROCESS TILL EN ANNAN Kan i C-programmet göras med systemanropet kill() #include int kill (pid_t pid, int signummer); pidprocessnummer för den process som skall ta emot signalen signummersignalnumret som skall skickas till den andra processen Returnerar0 vid framgång -1 vid misslyckande  Ex. 4