Signaler. Icke tillförlitliga signaler. Vad göra?
|
|
- Hanna Engström
- för 9 år sedan
- Visningar:
Transkript
1 Signaler Signaler Signaler kan betecknas som mjukvaruavbrott och du kan välja om du vill ta hand om dessa signaler eller strunta i dem. De funkar på ungefär samma sätt som hårdvaruavbrott och du kan definiera rutiner som tar hand om dem. Funktion De används oftast för liknande saker som hårdvaruavbrotten, dvs. signalera att något extra har hänt. Exempel på signaler är SIGALRM (alarm) och SIGCHLD (nåt har hänt med barnet till en process). Beroende på operativsystem så finns det flera olika varianter av signaler. Vissa definierar 15 stycken andra 31. För att få reda på den exakta funktionen och vilka som finns blir man tvungen att läsa dokumentationen för det aktuella operativsystemet Icke tillförlitliga signaler Vissa äldre unix-system implementerar signaler på ett sätt som inte är tillförlitligt!! I dessa är signaler inte är garanterade att verkligen komma fram till ditt program utan de kan försvinna på vägen. Det kan också vara problem med att själv skriva koden så att olika problem inte uppstår. 140 Vad göra? Vad ska man då göra åt dessa signaler? Välj mellan: Strunta i signalen Funkar för alla signaler (utom SIGKILL och SIGSTOP) men beroende på vad som genererade signalen så kan man få problem senare. Fånga signalen Skriv kod som tar hand om signalen och ser till att göra nåt (naturligtvis olika saker beroende på vad som har hänt). Default action Låt den fördefinierade koden ta hand om saken. Exakt vad som händer då finns beskrivet på sidan 292. Core Tillståndet för en process när den avslutas, kan användas för att ta reda på orsaken till varför processen avslutades. Genereras vid vissa signaler. 141
2 Några signaler och dess default Signal Value Action Comment SIGHUP 1 Term Hangup detected on controlling terminal or death of controlling process SIGINT 2 Term Interrupt from keyboard SIGQUIT 3 Core Quit from keyboard SIGILL 4 Core Illegal Instruction SIGABRT 6 Core Abort signal from abort(3) SIGFPE 8 Core Floating point exception SIGKILL 9 Term Kill signal SIGSEGV 11 Core Invalid memory reference SIGPIPE 13 Term Broken pipe: write to pipe with no readers SIGALRM 14 Term Timer signal from alarm(2) SIGTERM 15 Term Termination signal SIGUSR1 30,10,16 Term User-defined signal 1 SIGUSR2 31,12,17 Term User-defined signal 2 SIGCHLD 20,17,18 Ign Child stopped or terminated SIGCONT 19,18,25 Cont Continue if stopped SIGSTOP 17,19,23 Stop Stop process SIGWINCH 28,28,20 Ign Window resize signal (4.3BSD, Sun) 142 Fånga signaler Signalhanterare kan registreras mha funktionen (funkar ej tillförlitligt på Solaris kolla fig för alt. impl) void (*signal (int sig, void (*disp)(int)))(int); eller med en typedef: typedef void Sigfunc(int) Sigfunc *signal(int, Sigfunc *); 143 Fånga signaler Tre konstanter i signal.h #define SIG_DFL (void (*)(int))0 Används för att sätta defaultbeteende #define SIG_ERR (void (*)(int))-1 Returneras av signal om något går fel #define SIG_IGN (void (*)(int))1 Används för att ignorera signalen Om signalhanteraren returnerar kommer koden att fortsätta där den avbröts av signalen. Även funktionen sigaction kan användas i detta syfte. Mer krånglig (och också mer uttrycksfull), men funkar alltid. 144 Speciella signaler Det finns några signaler som är lite speciella då de inte uppträder som alla andra. SIGABRT är en speciell i den meningen att du kan definiera en avbrottshanterare men om ett avbrott inträffar så kommer programmet att avbrytas. Det vill säga: efter det att din kod har exekverats så kommer inte kontrollen tillbaka till programmet utan programmet avslutas. SIGSTOP, SIGKILL är speciell i den meningen att den inte går att ta hand om, om du försöker så lyckas du inte. 145
3 Signaler under systemanrop Vad händer om man får en signal medan man gör ett systemanrop? Principen: om man har gjort ett "långsamt" systemanrop så avbryts detta anrop och man får tillbaka ett fel och felkoden (errno) är satt till EINTR. Varför: jo, om man fångar en signal så är det antagligen något man är intresserad av och man bör därför hoppa tillbaka så fort som möjligt Vissa system startar numera om ett flertal av de långsamma anropen som standard (dock ej Solaris) POSIX tillåter att de startas om, men har det ej som ett krav 146 Långsamma anrop Vad är då långsamma anrop? Jo, det är systemanrop som kan blockeras "för evigt": Filläsning De som kan blockeras för evigt om data inte finns tillgängligt (pipe, terminaler och nätverk) Filskrivning Samma som ovan open Open till filer som kan blockeras för evigt (t.ex. modem). pause och wait ioctl en del interprocess grejor Disk IO anrop gäller inte De kommer alltid tillbaka 147 Reentrant functions Kan en funktion anropas igen samtidigt som den redan exekveras? Ibland men ibland inte och gör man ett andra anrop på en funktion som inte är reentrant så ligger man pyrt till. Tabell 10.4 beskriver de funktioner som garanterat är reentrant och därmed med säkerhet kan anropas i signalhanterare. Följande måste gälla för att en funktion ska vara reentrant: 1. Håller inte reda på statiskt data 2. Skyddar globalt data genom att ta en lokal kopia av det 3. Får inte anropa andra funktioner som inte är reentrant 4. Får ej returnera referens till static-deklarerat data, och allt data tillhandahålls av anroparen. 148 _Exit() _exit() abort() accept() access() alarm() bind() Några funktioner som är reentrant fstat() getegid() geteuid() getgid() getgroups() getpid() getppid() pipe() poll() pselect() raise() read() recv() recvmsg() sigdelset() sigemptyset() sigfillset() sigismember() signal() sigpending() sigprocmask() chdir() chmod() chown() close() connect() creat() dup() dup2() execle() execve() fcntl() fork() getsockname() getsockopt() getuid() kill() link() listen() lseek() lstat() mkdir() mkfifo() open() pause() rename() rmdir() select() send() sendmsg() setgid() setpgid() setsid() setuid() shutdown() sigaction() sigaddset() sigset() sigsuspend() sleep() socket() socketpair() stat() sysconf() time() times() umask() uname() unlink() 149 utime() wait() waitpid() write()
4 Skicka signaler kill int kill(pid_t pid, int sig); Skickar signalen sig till PID (en process eller grupp av processer) PID måste vara en process vars real eller effective UID överensstämmer med anroparens effective eller real UID raise int raise(int sig); Med hjälp av denna funktion så kan en process skicka en signal till sig själv. alarm Används ofta i kombination med pause 150 Alarm unsigned int alarm(unsigned int sec) Ställer alarmklockan som tillhör den anropande processen att skicka signalen SIGALRM till processen efter sec sekunder. Endast ett larm kan vara inställt för en process. Om sec är 0, kommer ev. tidigare larm att tas bort. fork stänger av alla ev. alarm för nya processer. Exec-funktionerna förändrar ej ev. alarm som är satta för processen som anropar exec. Man får nödvändigtvis inte en alarmsignal efter 5 sekunder om man gör anropet alarm(5)! Det enda man kan vara säker på man får en alarmsignal någon gång efter 5 sekunder 151 int pause(void); Pause Stoppar upp den anropande processen tills den mottar en signal. Signalen måste vara en som inte ignoreras. Om signalen får processen att terminera så kommer pause ej att returnera. Om signalen fångas av den anropande processen och kontrollen återgår till programmet från signalhanteringsfunktionen, kommer den att fortsätta exekvera koden efter paus-anropet. Med alarm och pause så kan man låta en process somna och sedan vakna så att den kan göra nåt speciellt. sigsuspend lite mer avancerat systemanrop som kan åstadkomma samma sak 152 Blockera signaler Det finns funktioner för att förhindra signaler (man får välja vilka man vill förhindra) från att inträffa. Bör göras för viktiga partier i koden där någon viss signal inte får inträffa Signal sets Det finns möjlighet att hantera flera signaler samtidigt genom att definiera ett "signal set", se kap Genom att sedan använda sigprocmask, kan du sätta vilka signaler som för tillfället ska blockeras, etc. Om du vill kolla vilka signaler som väntar på att bli "levererade" så kan du använda sigpending,
5 sigaction Efterföljare till signal funktionen int sigaction(int signo, const struct sigaction *restrict act, struct sigaction *restrict oact); struct sigaction har ett fält för signalhanteraren, ett med ett signal set som sätts innan signalhanteraren körs (efteråt återställs den till det den var innan). OSet lägger automatiskt till den inträffade signalen här (så att den blockeras) boken har en implementation av signal mha sigaction (10.18) Realtidsaspekter Som ni har sett så finns det en hel del problem som hör ihop med signaler. Det gäller att vara noggrann och se till att man inte har några missar i koden, tyvärr är detta inte så enkelt utan det är enkelt att missa. Dessa problem är inte något som enbart har med signalhantering att göra utan det ingår i det mer allmänna problemet med realtidsprogrammering. Det är mycket svårt att göra ett "säkert" system utan att ha tillgång till atomiska operationer. Om man tittar på de instruktioner som finns för olika processorer så finns det ofta en operation som är just odelbar, kanske "test-and-set", som sedan kan användas för att implementera odelbara funktioner på en högre nivå
Vad händer när man kör ett program? Program och processer. Funktionsanrop. Avsluta programmet
Vad händer när man kör ett program? Program och processer När man kompilerar ett program och sedan länkar ihop det så stoppar länkaren in lite extra kod i programmet. Det är denna kod som i sin tur anropar
... Funktionsanrop. Vad händer när man kör ett program?
Vad händer när man kör ett program? När man kompilerar ett program och sedan länkar ihop det så stoppar länkaren in lite extra kod i programmet. Det är denna kod som i sin tur anropar main-funktionen ungefär
HI1025 Operativsystem, KTH Haninge, VT2012
Del 2 av kursen: Systemprogrammering. Tillfälle 5 (F): Introduktion till programmering med parallella processer: fork(), wait(), exit(), getpid(), getppid(), execl(), execvp(). 1. Parallella processer
Tillfälle 14 (F): Fördjupat studium av parallellitet och synkronisering: processer, trådar, schemaläggning och signaler.
Tillfälle 14 (F): Fördjupat studium av parallellitet och synkronisering: processer, trådar, schemaläggning och signaler. Mer kring trådar och processer Vi har nu erfarenhet av både trådar och processer.
read Systemanrop i UNIX Exempel med read & write write int antal_tkn, fd, count; char buffer[size]; antal_tkn = read(fd, buffer, count);
i UNIX read!filhantering!read!write!open!close!creat!lseek!dup!fcntl!pipe!processhantering!exec!exit!fork!getpid!kill!signal!wait! Funktionen read läser från en fildeskriptor och returnerar antalet lästa
printenv sort pager printenv grep args sort pager
1 Problembeskrivning Uppgiften var att skriva ett program, digenv för att visa miljövariabler. programmet vara ekvivalent med att köra: Kört utan argument så skulle printenv sort pager och kört med argument
Användbara systemanrop och biblioteksfunktioner. 2G1520 Operativsystem
Institutionen för Mikroelektronik och Informationsteknik Användbara systemanrop och biblioteksfunktioner 2G1520 Operativsystem 2005 Institutionen för Mikroelektronik och Informationsteknik 1.0 Introduktion
Flera processer. Minneshantering. Trashing kan uppstå ändå. Ersätta globalt
Flera processer Minneshantering Operativsystem lektion 6 Potentiellt problem: Den sida som plockas bort behöver inte vara den sida som används minst!! Det kan finnas andra processer som inte körs eller
Utkast. Programmering. Signals. Olika typer av program. Sommarkurs 2007 www.hh.se/staff/vero/programmering. Avbrott i mjukvara.
Programmering Sommarkurs 2007 www.hh.se/staff/vero/programmering Verónica Gaspes Utkast Avbrott i mjukvara Larm signaler Avslutnings signaler IDE-sektionen Curses Juli 2 Olika typer av program Signals
Grundprogrammen. combine
Seminarium II Andra seminariet behandlar speciella övningsuppgifter som gavs ut på kurswebben tidigare. Programmen som presenteras är förlag till lösningar på övningsuppgifterna. Genomgående används systemanropet
Deluppgift 17 Processhantering: exec, sleep, exit, plist
Linköpings Tekniska Högskola Institutionen för Datavetanskap (IDA), Software and Systems (SaS) (c) Klas Arvidsson Deluppgift 17 Processhantering: exec, sleep, exit, plist Inledning För att få ett praktiskt
Datorteknik ERIK LARSSON
Datorteknik ERIK LARSSON Inledning Ken Thompson och Dennis M. Ritchie utvecklade C Turingpriset( Nobelpris i datavetenskap ), 1983 Alan Turing (1912-1954) För deras utveckling av generell OS teori och
Dagens OS. Unix, Linux och Windows. Unix. Unix. En översikt av dagens OS Titt på hur de gör. Många varianter Mycket gemensamt. En del som skiljer
Dagens OS En översikt av dagens OS Titt på hur de gör Unix, Linux och Windows Unix Många varianter Mycket gemensamt Unix En del som skiljer Vanliga program, shell, etc System calls Interupts and traps
Systemnära programmering 2012-11-05. Tentamen. Systemnära programmering, 7.5hp 5 november 2012
Tentamen Systemnära programmering, 7.5hp 5 november 2012 Skrivtid: 9 13 Hjälpmedel: EN av följande böcker Bilting & Skansholm: Vägen till C ELLER J.R. Hanly & E.B. Koffman: C Program Design for Engineers
Enkla datatyper minne
Enkla datatyper minne 143.56 sant Sonja A falskt 18 1999-10-29 Bertil Gralvik, KTH Ingenjörsskolan 1 Addera två tal Algoritmen Summera tal Mata in två tal Beräkna Skriv ut resultat Mata in tal 1 Mata in
Tentamen PC-teknik 5 p Lösningar och kommentarer
Tentamen PC-teknik 5 p Lösningar och kommentarer Program: Di2, Em3, Et3 Datum: 04-08-10 Tid: 13:30-18:30 Lokal E171 Hjälpmedel: Linjal, miniräknare, Instruktionsrepertoar för 8086 (utdelas), Lathund, Pacific
Tentamen PC-teknik 5 p
Tentamen PC-teknik 5 p Namn:. Klass:... Program: Di2, Em3, Et3 Datum: 03-08-15 Tid: 13:30-18:30 Lokal: E171 Hjälpmedel: Linjal, miniräknare, Instruktionsrepertoar för 8086 (utdelas), Lathund, Pacific C
LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p
UMEÅ UNIVERSITET Datavetenskap 010530 LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p Betygsgränser 3 21,5-27 4 27,5-33,5 5 34-43 Uppgift 1. (4p) Hitta de fel som finns i nedanstående klass (det
UNIX verktyg. Användbara kommandon Fil och informationssökning Tags Versionshanteringssystem
Användbara kommandon Fil och informationssökning Tags Versionshanteringssystem 1 Användbara kommandon 1 more är ett filter som visar information skärmvis Exempel: ls al more less är en mer kraftfull variant
Operativsystem (ID2200/06) XX XX:00-XX:00
Operativsystem (ID2200/06) 2017-01-XX XX:00-XX:00 Namn: Instruktioner Du får, förutom skrivmateriel, endast ha med dig en egenhändigt handskriven A4-sida med anteckningar. Mobiler etc skall lämnas till
Möte 10: Kommunikation mellan processer - (PI)
Möte 10: Kommunikation mellan processer - (PI) Målet med att köra flera processer är ofta att få dem att samverka, som sagt, men för att få dem att samverka måste de ofta kommunicera. Vi ska studera processkommunikation
Möte 7: Uppföljning av föreläsningen med Peer Instruction - (PI)
Möte 7: Uppföljning av föreläsningen med Peer Instruction - (PI) Som sagt så kommer den här kursen endast innehålla en enda föreläsning och det var förra gången. Från och med nu så kommer vi förutsätta
2... uppvisa förmåga att skapa och/eller hantera flerprocessiga program där de ingående processerna ges
UPPGIFTER AV FÖRESLAGEN TENTAMENSKARAKTÄR, LÅTSASTENTA DEN 27 FEBRUARI 2017 Inför datortentan III Detta är tredje dokumentet i en följd av dokument som med syfte att klargöra kursmål och examinationsformen
Datorsystemteknik Föreläsning 7DAVA14
Datorsystemteknik Föreläsning 7DAVA14 Innehåll Introduktion (forts) Polling (cyklisk avfrågning) Större delen av materialet framtaget av :Jan Eric Larsson, Mats Brorsson och Mirec Novak IT-inst LTH Exempel
HOFFER Walkie-talkie set PMR446/SSP3381 Svenska
HOFFER Walkie-talkie set PMR446/SSP3381 Svenska Funktioner: 1. Antenn 2. Display, visar aktuell kanal, och andra aktuella funktioner. 3. Pil upp, tryck för att justera ner ljudet, och byta kanal. 4. Pil
Du skall naturligtvis visa körexempel med output där det behövs i din rapport!
och databprogrammering Christilinda Göstson - PL/SQL, paket och ref cursor Du skall naturligtvis visa körexempel med output där det behövs i din rapport! OBS! Denna labb redovis i labbrapport via mail
Trådar. Aktiva objekt
Föreläsning 11 Trådar 1 Aktiva objekt Det är välkänt från vardagslivet att saker händer samtidigt. Aktiva objekt gör saker på eget initiativ, medan passiva objekt endast gör saker när de blir ombedda.
Operativsystem Lektion 1. Lärare. Schema. Kurssajten Finns på adressen. Jan Erik Moström. Set Norman
Operativsystem Lektion 1 1 Lärare jem@cs.umu.se, B449 Lektioner etc Set Norman set@cs.umu.se, NAdv105 Labbar, labhandledning 2 Schema Notera att det finns ändringar i schemat!! Under perioden 1-8 mars
Institutionen för elektro- och informationsteknologi, LTH
Datorteknik Föreläsning 5 Realtidssystem och realtidsprogrammering Mål Att du ska förstå hur avbrott används för - Mätning - Styrning - Stöd för körning av flera processer Att du ska förstå begreppet tråd
Datorteknik. Föreläsning 5. Realtidssystem och realtidsprogrammering. Institutionen för elektro- och informationsteknologi, LTH.
Datorteknik Föreläsning 5 Realtidssystem och realtidsprogrammering Mål Att du ska förstå hur avbrott används för - Mätning - Styrning - Stöd för körning av flera processer Att du ska förstå begreppet tråd
Instruktion för konvertering av e-post i Lotus Notes med Swing PDF Converter
1.2 Utgåva 1 (16) för konvertering av e-post i Lotus Notes med Swing PDF Converter Hur du väljer i Lotus Notes vad du vill konvertera... 1 Från arkivfil... 1 Från Inkorgen... 1 Från mapp... 2 Alternativ
Operativsystem ID2200 Tentamen TEN1 3.8 hp :00-18:00
Operativsystem ID2200 Tentamen TEN1 3.8 hp 2018-04-03 14:00-18:00 Instruktioner Du får, förutom skrivmateriel, endast ha med dig en egenhändigt handskriven A4 med anteckningar. Svaren skall lämnas på dessa
Föreläsning 15: Parallella subrutiner. Parallellitet. Varför parallella underprogram?
Föreläsning 15: Parallella subrutiner Parallellitet Processer och trådar Semaforer, monitorer och synkroniseringsmeddelanden Parallellitet Ofta är det nödvändigt eller önskvärt att programdelar exekveras
Guido van Robot och olika UNIX-kommandon
Guido van Robot och olika UNIX-kommandon Till denna session är det tänkt att ni ska ha arbetat en del med både UNIX-kommandon och börjat med Guido van Robot. Vi ska nu studera dessa båda saker med hjälp
Del II: Systemprogrammering och Inter-Process Communication.
Möte 6 (Föreläsning 2) HI1025 Operativsystem 7.0 hp, KTH Haninge, VT2017 Del II: Systemprogrammering och Inter-Process Communication. Vi repeterar ett antal preciseringar: * En fil är en abstraktion som
Möte 9: Relationer mellan körande processer - (PI)
Möte 9: Relationer mellan körande processer - (PI) Målet med att köra flera processer är ofta att få dem att samverka. Vi ska idag studera olika sätt att får processer att samverka. En viktig form av samverkan
ZAP DVR-X3 Art.nr. 150346
ZAP DVR-X3 Art.nr. 150346 I förpackningen Bruksanvisning, USB-kabel samt hörlurar. Knappar och kontroller 1. Uttag för extern mikrofon 2. MENU Meny 3. PLAY På / Spela upp inspelning / Pausa uppspelning
Synkronisering - Semaforen. Om att vänta men inte i onödan
Synkronisering - Semaforen Om att vänta men inte i onödan Dörrvakten Har order uppifrån pga brandregler: Släpp in max 40 personer Garanterar att det aldrig är fler insläppta än order angivit Kommer fler
Mål. Datorteknik. Introduktion. Innehåll. Verklig situation - pappaledighet. Introduktion (forts)
Mål Datorteknik Föreläsning 4 Att känna till begreppet polling (cyklisk avfrågning) och hur det implementeras Att förstå varför avbrottstyrd exekvering är överlägset polling Att veta vilken information
Tentamen Nätverksprogrammering Lösningsförslag
LUNDS TEKNISKA HÖGSKOLA 1(6) Institutionen för datavetenskap Tentamen Nätverksprogrammering Lösningsförslag 2012 05 28, 8.00 13.00 Del 1 1. Time To Live (TTL) anger hur många routrar ett multicastpaket
TDDIU81. Processer och trådar. Andreas Dahlberg, Jonathan Doherty, Tony Magnusson, Patrik Ottosson, Rasmus Siljedahl
TDDIU81 Processer och trådar Andreas Dahlberg, Jonathan Doherty, Tony Magnusson, Patrik Ottosson, Rasmus Siljedahl Sammanfattning Den här rapporten innehåller en kort genomgång av allmän process och trådhantering
Mekanismer. (implementation)
Mekanismer (implementation) Repetition Semafor Räknar tillgängliga resurser Initieras med startvärde Vid förbrukning: väntar tills resurs finns Användning: invänta händelse Lås Markerar att en variabel/datastruktur
Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT 2007. Lars Larsson Algoritmer 1
Algoritmer Lars Larsson VT 2007 Lars Larsson Algoritmer 1 1 2 3 4 5 Lars Larsson Algoritmer 2 Ni som går denna kurs är framtidens projektledare inom mjukvaruutveckling. Som ledare måste ni göra svåra beslut
MESI i Intel Core 2 Duo
MESI i Intel Core 2 Duo Sammanfattning Denna rapport beskriver en processor (Intel Core 2 Duo) vars cache coherence protokoll är MESI. Rapporten beskriver hur processorn är uppbyggd, hur många kärnor den
Avancerad SSL-programmering I
Tekn.dr. Göran Pulkkis Överlärare i Datateknik Avancerad SSL-programmering I 25.1.2012 1 Innehåll SSL-sessioner Förnyad SSL-handskakning Blockerad/oblockerad in/uthantering 25.1.2012 2 SSL-sessioner Session
CE_O3. Nios II. Inför lab nios2time
IS1200 Exempelsamling till övning CE_O3, 2015 CE_O3. Nios II. Inför lab nios2time 3.1. Logiska operationer (se uppgift 1.2 c) Repetera (eller lär dig) innebörden av de logiska operationerna "bitvis AND",
Fö 8: Operativsystem II. Minneshantering. Minneshantering (1) Minneshantering (2) Minneshantering och Virtuelltminne.
Fö 8: Operativsystem II Minneshantering och Virtuelltminne. Virtuella I/O enheter och Filsystemet. Flerprocessorsystem. Minneshantering Uniprogrammering: Minnet delas mellan operativsystem och användarprogrammet.
Carbon Regulator Quick Guide Den här manualen visar hur du ansluter och startar Carbon Regulator.
Carbon Regulator Quick Guide Den här manualen visar hur du ansluter och startar Carbon Regulator. Illustration 1: CarbonRegulator Egenskaper: Blå aqua LEDs för presentation av ph Användarvänlig och enkel
Operativsystem ID1200/06 (ID2200/06 6hp) Tentamen :00-18:00
Operativsystem ID1200/06 (ID2200/06 6hp) Tentamen 2019-04-16 14:00-18:00 Instruktioner Du får, förutom skrivmateriel, endast ha med dig en egenhändigt handskriven A4 med anteckningar. Anteckningarna lämnas
Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11
Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11 Undantag Engelska: exceptions Skansholm: exceptionella händelser Fel som genereras om man försöker
Institutionen för elektro- och informationsteknologi, LTH
Datorteknik Föreläsning 4 Polling och avbrott Mål Att känna till begreppet polling (cyklisk avfrågning) och hur det implementeras Att förstå varför avbrottstyrd exekvering är överlägset polling Att veta
Föreläsning 4. Kö Implementerad med array Implementerad med länkad lista Djup kontra bredd Bredden först mha kö
Föreläsning 4 Kö Implementerad med array Implementerad med länkad lista Djup kontra bredd Bredden först mha kö Kö (ADT) En kö fungerar som en kö. Man fyller på den längst bak och tömmer den längst fram
Fö 5+6 TSEA81. Real-time kernel + Real-time OS
Fö 5+6 TSEA81 Real-time kernel + Real-time OS Stackens användningsområde * JSR / RTS : returadress * Temporärdata (push / pop) void myfunc(void) { int i; // hamnar nog i register int test[10]; // hamnar
Realtidsprogrammering. En introduktion Implementering (med exempel från PIC)
Realtidsprogrammering En introduktion Implementering (med exempel från PIC) Utan timing Periodtid varierar beroende på funktionernas exekveringstid. Specificera endast maxtid ( Worst case) och eventuellt
Fö 8 TSEA81. Real-time Linux
Fö 8 TSEA81 Real-time Linux Real-time Linux Olika sätt att åstadkomma Real-time Linux: * Linux 2.6 har CONFIG_PREEMPT option, dvs även processer som gör systemanrop kan preemptas. * Linux 2.6 kan köras
Polling (cyklisk avfrågning) Avbrott
Polling (cyklisk avfrågning) Avbrott Större delen av materialet framtaget av :Jan Eric Larsson, Mats Brorsson och Mirec Novak IT-inst LTH Att känna till begreppet polling (cyklisk avfrågning) och hur det
(Lösningsförslag finns sist i denna fil.)
(Lösningsförslag finns sist i denna fil.) Läser externa signaler. Har 64 ingångar (kanaler), från 0 till 63. Kan bara avläsa en ingång i taget. Avlästa värdet positivt 16-bitars tal. Varje läsning tar
EDA480/EDA485 - Maskinorienterad programmering, tentamen 2006-xx-xx 1(7)
EDA480/EDA485 - Maskinorienterad programmering, tentamen 2006-xx-xx 1(7) 1. Motivation ROM. 8kbyte 2 3 2 10 byte 13 Adressbitar [A12,A0] direkt till ROM-kapsel. RWM. 32kbyte 2 5 2 10 byte 15 Adressbitar
Föreläsning 3: Händelsestyrda program och användargränssnitt
(2 september 2015 F3.1 ) Föreläsning 3: Händelsestyrda program och användargränssnitt Idag Från sekventiella till händelsestyrda program Lyssnare Kontroller Layout för ordning av kontroller (2 september
const och pekare Output: char *unsafe(char *s) { // Returnerar pekare till det andra tecknet i s printf("%s \n", s);
(6 oktober 2010 T11.1 ) const och pekare char *unsafe(char *s) { // Returnerar pekare till det andra tecknet i s s++; // OK *s = * ; // Ej säkert OK return s; char s[] = "!"; char *u; u = unsafe(s); printf("första
Operativsystem. Hierarkin för hårdvara läses nerifrån
Operativsystem DOS DiskOperatingSystem - ett jobb i taget. Dagens Operativsystem - prioriterar olika jobb. Om ett jobb pausas körs ett annat. Operativsystems viktigaste funktion är att bilda gränssnitt
Tentamen i TDP004 Objektorienterad Programmering Praktisk del
Tentamen i TDP004 Objektorienterad Programmering Praktisk del Datum: 2010-04-07 Tid: 8-12 Plats: SU-salar i B-huset. Jour: Per-Magnus Olsson, tel 285607 Jourhavande kommer att besöka skrivsalarna ungefär
DD2387 Programsystemkonstruktion med C++ Tentamen 1 Tisdagen den 28 oktober 2014, 08:00-12:00
DD2387 Programsystemkonstruktion med C++ Tentamen 1 Tisdagen den 28 oktober 2014, 08:00-12:00 Introduktion Skriv dina svar på separata papper, dessa scannas in efter inlämning. Du kan skriva på båda sidor.
Operativsystem ID1200/06 (ID2200/06 6hp) Tentamen :00-18:00
Operativsystem ID1200/06 (ID2200/06 6hp) Tentamen 2019-01-11 14:00-18:00 Instruktioner Du får, förutom skrivmateriel, endast ha med dig en egenhändigt handskriven A4 med anteckningar. Anteckningarna lämnas
International Olympiad in Informatics 2011 22 29 July 2011, Pattaya City, Thailand Tävlingsuppgifter Dag 2 Svenska 1.3. Papegojor
Papegojor Yanee är fågelentusiast. Sedan hon läst om IP over Avian Carriers (IPoAC), har hon spenderat mycket tid med att träna en flock papegojor att leverera meddelanden över långa avstånd. Yanees dröm
Olika OS. Unix, Linux och Windows. Unix. Unix. En översikt av ett par OS. Titt på hur de gör. Många varianter. Mycket gemensamt. En del som skiljer
Olika OS En översikt av ett par OS Titt på hur de gör Unix, Linux och Windows Unix Många varianter Mycket gemensamt Unix En del som skiljer Begrepp Hur skapas en process Deamon rocess Föräldrar & barn
Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11
Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11 Undantag Engelska: exceptions Skansholm: exceptionella händelser Fel som genereras om man försöker
Grundkurs Programmering
HI124 Grundkurs Programmering F7b: Funktioner på djupet! A. Cajander, STH 6 1 5 42 3.14f a float char short circuit order of subexp eval. Dagens fokus = + - * / % ++ -- + - * / % & ^ > ==!= > < >=
Operativsystem. Innehåll. Operativsystemets funktion. Vad är ett OS? Vart hittar men ett OS? OS hanterar processorns resurser
Innehåll Operativsystem Vad är operativsystem och hur fungerar de Vad är ett OS? Syfte Att tillåta flera program att köra samtidigt Att fungera som ett abstraktionslager mot hårdvaran Att hantera olika
PROGES PLUS THERMOSCAN RF. Instruktionsmanual V. 061115
ThermoScan RF användarinstruktioner 1 PROGES PLUS THERMOSCAN RF Instruktionsmanual V. 061115 Viktigt! Den här manualen innehåller ett antal lösenord som endast är avsedda för administratörerna. Glöm inte
Svar till tentamen den 16 december 2013 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng
Lunds Universitet LTH Ingenjörshögskolan, Helsingborg Svar till tentamen den 16 december 2013 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng Skrivtid: 08.00-13.00 Tillåtna hjälpmedel: Inga. Maximalt
Introduktion till integrering av Schenkers e-tjänster. Version 2.0
Introduktion till integrering av Schenkers e- Version 2.0 Datum: 2008-06-18 Sida 2 av 8 Revisionshistorik Lägg senaste ändringen först! Datum Version Revision 2008-06-18 2.0 Stora delar av introduktionen
Datorteknik 2 (AVR 2)
Namn: Laborationen godkänd: Digitala system 15 hp Datorteknik 2 (AVR 2) LTH Ingenjörshögskolan vid Campus Helsingborg Enkel in- och utmatning. Drivrutiner. Bithantering. I denna laboration ska vi förbättra
public och private Obs: private inte skyddar mot access från andra objekt i samma klass.
public och private En metod som är public får anropas från alla metoder i alla klasser. Ett attribut som är public får avläsas och ändras från alla metoder i alla andra klasser. En metod som är private
C++ Slumptalsfunktioner + switch-satsen
C++ Slumptalsfunktioner + switch-satsen Veckans avsnitt består av ett antal lite udda funktioner man kan ha nytta av när man skriver program. Det är en slumptalsgenerator och lite annat smått och gott.
Tentamen i Realtidsprogrammering
Tentamen i Realtidsprogrammering Ordinarie Tentamen Datum: 2011-05-14 Tid: 08:15 11:15 Ansvarig lärare: Telefon: 301438 Hjälpmedel: Miniräknare Poäng: Tentamen omfattar 40 poäng fördelade på 5 uppgifter.
Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson
1 2 - Block, räckvidd Dagens föreläsning Programmering i Lisp - Bindning av variabler (avs 14.6) fria variabler statisk/lexikalisk och dynamisk bindning - Felhantering (kap 17) icke-normala återhopp catch
4 grundregler. Minneshantering. Problemet. Windows minkrav
4 grundregler 1. Man kan aldrig få för mycket minne 2. Minnet kan aldrig bli för snabbt Minneshantering 3. Minne kan aldrig bli för billigt 4. Programmens storlek ökar fortare än minnet i datorerna (känns
Metoder (funktioner) Murach s: kap Winstrand Development
(funktioner) Murach s: kap 6 2013-01-23 1 Winstrand Development Metoder I C# kan vi dela in koden i block en kodsekvens ska köras likadant på flera ställen i applikationen. Detta block kallas för en metod
Introduktion Schenker-BTL AB, Stab IT Beskrivning över informationsintegreringmed Schenker, metodbeskrivning version 1.
Schenker har interna system som handhar information som är av intresse för våra kunder/partners. Idag finns ett flertal av dem tillgängliga via Internet, sk Online-tjänster. Dessa erbjuder inte bara hämtning
Hur patchar man Entré?
Entré Hur patchar man Entré? OBS! Från version 5.3 går det ej att köra Entré-klienten på Windows XP eller Windows Server 2003. När det gäller Windows Server 2003 kan man använda den som filserver men det
C++ Objektorientering - Klasser. Eric Elfving Institutionen för datavetenskap
C++ Objektorientering - Klasser Eric Elfving Institutionen för datavetenskap 1 / 23 Återblick struct struct är bra att ha för att skapa aggregat - slå ihop flera data till en ny datatyp. Ett problem med
Version X6 Fler tips
Version X6 Fler tips Jobba i ditt EndNote-bibliotek Hantera PDF:er För att använda dig av den automatiska Find fulltext-funktionen, markera den eller de referenser du vill söka fulltext för och välj References
Instruktion Ishockey
2314sv07 Sida: 1 of 5 Instruktion Ishockey Tastaturmall 20957-01 för resultattavla ishockey LED- och elektromekaniska versioner Igångsättning A. Slå på strömmen till grundtavlan. B. Fäst tastaturmallen
Tentamen i TDP004 Objektorienterad Programmering Lösningsförslag
Tentamen i TDP004 Objektorienterad Programmering Lösningsförslag Datum: 2009-04-15 Tid: 8-12 Plats: SU-salar i B-huset. Jour: Per-Magnus Olsson, tel 285607 Jourhavande kommer att besöka skrivsalarna ungefär
Datorteknik. Föreläsning 4. Polling och avbrott. Institutionen för elektro- och informationsteknologi, LTH. Mål
Datorteknik Föreläsning 4 Polling och avbrott Mål Att känna till begreppet polling (cyklisk avfrågning) och hur det implementeras Att förstå varför avbrottstyrd exekvering är överlägset polling Att veta
Lunds Tekniska Högskola Datorarkitektur med operativsystem EITF60. Superscalar vs VLIW. Cornelia Kloth IDA2. Inlämningsdatum:
Lunds Tekniska Högskola Datorarkitektur med operativsystem EITF60 Superscalar vs VLIW Cornelia Kloth IDA2 Inlämningsdatum: 2018-12-05 Abstract Rapporten handlar om två tekniker inom multiple issue processorer
En Von Neumann-arkitektur ( Von Neumann-principen i föreläsning 1) innebär:
Lösningsförslag för 725G45-tentan 3/11-10 1. Vad menas med Von Neumann-arkitektur? (2p) En Von Neumann-arkitektur ( Von Neumann-principen i föreläsning 1) innebär: Data och instruktioner lagras i samma
Tentamen PC-teknik 5 p
Tentamen PC-teknik 5 p Lösningar och kommentarer OBS! Denna version av tentan är främst avsedd för dem som gick kursen HT-02. En parallell tentamen i E103 är något anpassad för dem som gick kursen tidigare.
Operativsystem ID2206 Tentamen TEN1 4.5 hp :00-18:00
Operativsystem ID2206 Tentamen TEN1 4.5 hp 2018-04-03 14:00-18:00 Instruktioner Du får, förutom skrivmateriel, endast ha med dig en egenhändigt handskriven A4 med anteckningar. Svaren skall lämnas på dessa
Dynamiskt minne. Vad är dynamiskt minne Motivering Hur gör man i C Övningar
Dynamiskt minne Agenda Vad är dynamiskt minne Motivering Hur gör man i C Övningar Minne Datorns primärminne används till olika ändamål De flesta system partitionerar minnet efter användningen: Programkoden
Tentamen i TDP004 Objektorienterad Programmering Praktisk del
Tentamen i TDP004 Objektorienterad Programmering Praktisk del Datum: 2011-04-28 Tid: 08-12 Plats: SU-salar i B-huset. Jour: Per-Magnus Olsson, tel 281456 Jourhavande kommer att besöka skrivsalarna ungefär
Systembeskrivning. Systemskiss. Moduler.
Page 1 of 5 Systembeskrivning Projektets namn: Educational Operating System (EOS) Uppdragsgivare: Virtutech Gruppmedlemmar: Jens Lind (Projektledare) Peter Wåhlander (Sekreterare) Åke Wallebom Gilbert
Institutionen för datavetenskap 2014/15
LUNDS TEKNISKA HÖGSKOLA Datorer och datoranvändning Institutionen för datavetenskap 2014/15 ME en dator 1 Inledning ME är en påhittad dator, men den har likheter med riktiga datorer: det finns ett maskinspråk
Tentamen i ID2206, ID2200 samt IS1350 Operativsystem
Tentamen i ID2206, ID2200 samt IS1350 Operativsystem Tisdagen 2014-03-18 kl 09:00-13:00 Examinator: ID2206, ID2200 Robert Rönngren, IS1350 Jim Dowling Hjälpmedel: Inga Tentamensfrågorna behöver inte återlämnas
Kapitel 4 Arkivmenyn Innehåll
Kapitel 4 Arkivmenyn Innehåll ARKIVMENYN...2 Byt aktuell användare...2 Utskrift till skärm eller skrivare...3 SQL verktyget...4 Ny SQL...4 Hämta SQL...5 Spara SQL...5 Kör SQL...5 Visa som...5 Avsluta...5
Nemo96 HD och Nemo96 HD+ firmware uppdatering
Nemo96 HD och Nemo96 HD+ firmware uppdatering Gå till vår hemsida www.taljemat.se Klicka på Ladda ner programvaror Välj IME Välj Nemo96HD/HD+ IDM = Ime Device Manager Ladda ner IDM_WINXP om Du arbetar
Objektorienterad programmering
Objektorienterad programmering Föreläsning 14 Copyright Mahmud Al Hakim mahmud@dynamicos.se www.webacademy.se Agenda Exceptionella händelser Vanliga Programfel Exception-klasser Automatiskt genererade
Javas Exceptions. DD2385 Programutvecklingsteknik Fler bilder till föreläsning 7 23/ Kort om Javas Exceptions Trådar i Java
DD2385 Programutvecklingsteknik Fler bilder till föreläsning 7 23/4 2014 Innehåll Kort om Javas Exceptions Trådar i Java swing- klassen Timer Klient-Server-program Javas Exceptions Checked måste hanteras,
Övning från förra gången: readword
(9 september 2010 T4.1 ) Övning från förra gången: readword /** readword.c * * int readword(char w[], int n) { * * Läser tecken tills en bokstav påträffas. * Läser och lagrar sedan högst n-1 bokstäver