Mål. Datorteknik. Repetition av avbrott. Innehåll. Mätning och styrning. Datorer för mätning och styrning. timer. Datorsystem A/D. Analog insignal D/A

Relevanta dokument
Institutionen för elektro- och informationsteknologi, LTH

Datorteknik. Föreläsning 5. Realtidssystem och realtidsprogrammering. Institutionen för elektro- och informationsteknologi, LTH.

Datorsystemteknik Föreläsning 7DAVA14

Polling (cyklisk avfrågning) Avbrott

Fö 5+6 TSEA81. Real-time kernel + Real-time OS

Operativsystem. Informationsteknologi sommarkurs 5p, Agenda. Slideset 7. Exempel på operativsystem. Operativsystem

Lösningar till tentamen i EIT070 Datorteknik

A-del motsvarande KS1

Lösningar till tentamen i EIT070 Datorteknik

Mål. Datorteknik. Introduktion. Innehåll. Verklig situation - pappaledighet. Introduktion (forts)

Institutionen för elektro- och informationsteknologi, LTH

Lösningar till tentamen i EIT070 Datorteknik

Datorteknik. Föreläsning 4. Polling och avbrott. Institutionen för elektro- och informationsteknologi, LTH. Mål

Stack och subrutiner Programmeringskonventionen

Provmoment: Ladokkod: Tentamen ges för: Tentamen TE111B El3. Namn: Personnummer: Tentamensdatum: Tid: 14:00-18:00.

Elektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 Mikrodatorteknik

Synkronisering. Föreläsning 8

Outline. Datorsystemtekni. Kravspecifikation. Kravspecifikation (forts.)

Föreläsningsanteckningar 3. Mikroprogrammering II

F8: Undantagshantering

Datorteknik ERIK LARSSON

Digitala Projekt (EITF11)

Flera processer. Minneshantering. Trashing kan uppstå ändå. Ersätta globalt

Övningsuppgifterna i kapitel F avser FLIS-processorn, vars instruktioner och motsvarande koder definieras i INSTRUKTIONSLISTA FÖR FLISP.

Fö 5+6 TSEA81. Reflektion av Lab 2. clock.c (module) Real-time kernel + Real-time OS

Datorsystem Laboration 2: Minnesmappade bussar

TENTAMEN. Datorteknik. D1/E1/Mek1/Ö Hjälpmedel: Häfte "ARM-instruktioner", A4-format, 17 sidor. Maxpoäng:

Tentamen i EIT070 Datorteknik

Tentamen. Datorteknik Y, TSEA28

7) Beskriv tre sätt att överföra parametrar mellan huvudprogram och subrutin.

TDDIU81. Processer och trådar. Andreas Dahlberg, Jonathan Doherty, Tony Magnusson, Patrik Ottosson, Rasmus Siljedahl

Mål. Datorteknik. Innehåll. Innehåll (forts) Hur ser ett program ut? Hur skapas maskinkoden?

In- och Utenheter. Fö 3: In/Ut matning och kopplingsstruktur. Några exempel. Egenskaper. In- och Utenheter. Styrning.

Manual UDM 35/40 Digitalt panelinstrument

Institutionen för elektro- och informationsteknologi, LTH

Datorteknik. Föreläsning 3. Assembler, stack och subrutiner, programmeringskonventionen. Institutionen för elektro- och informationsteknologi, LTH

Adressrum, programmerarens bild

Datorsystemteknik DAV A14 Föreläsning 1

HI1025 Operativsystem, KTH Haninge, VT2012

LABORATION. Datorteknik Y

Skapat av (Efternamn, Förnamn, org) DokumentID Ev. ärendenummer. Lars Jonsson UHniö [DokumentID] [Ärendenummer]

F2: Motorola Arkitektur. Assembler vs. Maskinkod Exekvering av instruktioner i Instruktionsformat MOVE instruktionen

D/A- och A/D-omvandlarmodul MOD687-31

Exempeluppgift i Logikstyrning. 1 Inledning. 2 Insignaler och utsignaler

Datorteknik. Föreläsning 6. Processorns uppbyggnad, pipelining. Institutionen för elektro- och informationsteknologi, LTH. Mål

Datorteknik. Tomas Nordström. Föreläsning 6. För utveckling av verksamhet, produkter och livskvalitet.

FileCentral Desktop. Användarhandledning Version

Växtviskaren EITF11 Digitala projekt VT15, I12

Operativsystem ID2200 Tentamen TEN1 3.8 hp :00-18:00

Beskrivning av porthantering i mikroprocessorn SAM3U som används på vårt labkort SAM3U- EK.

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

Övning2 Datorteknik, HH vt12 - Programmering

Att använda pekare i. C-kod

Föreläsning 3.1: Datastrukturer, en översikt

Institutionen för elektro- och informationsteknologi, LTH

Datorteknik. Föreläsning 2. Programmering i C och assembler MIPS instruktionsarkitektur. Institutionen för elektro- och informationsteknologi, LTH

Mål. Datorteknik. Innehåll. Vad händer med en add-instruktion? Vad händer med en add-instruktion. Instruktioner som bitmönster i minnet

Information om Aptus bokning- och låssystem i Brf Göteborgshus 42

Digital- och datorteknik

Tentamen i EIT070 Datorteknik

Programallokering. Programtyper. Att placera program i flashrespektive. Program i FLASH-minne. Program i RAM-minne

Datakommunikation med IR-ljus.

Datorsystemteknik DVGA03 Föreläsning 8

LABORATION. Datorteknik Y

Den här texten ska förhoppningsvis underlätta en del av anpassningarna. Det kan säkert finnas en del fel och annat tok.

Fö 7: Operativsystem. Vad är ett operativsystem? Målsättning med operativsystem. Styr operativsystemet datorn?

Skizz till en enkel databas

Länsträff 2012 Skolform SMoK

Datorsystemteknik DVGA03 Föreläsning 5

En något mer detaljerad bild av en processor. De tre delarna i processorn är: Nere 3ll vänster finns e' antal register som används för a' lagra data.

En något mer detaljerad bild av en processor. De tre delarna i processorn är: Nere 3ll vänster finns e' antal register som används för a' lagra data.

Trådar och Multiprocessorer. Föreläsning 6

TENTAMEN Datorteknik (DO2005) D1/E1/Mek1/Ö1

HF0010. Introduktionskurs i datateknik 1,5 hp

Information om personalbostäder

Användarmanual till AD OnLine

RVS5000PC. Allmänt. RVS5000PC produktblad

Tentaupplägg denna gång

Innehållsförteckning

En ideal op-förstärkare har oändlig inimedans, noll utimpedans och oändlig förstärkning.

Studieavbrott i sfi. 1 Inledning

Manual för WMR- 252 inbyggnadsmottagare med universaldimmer

Övningsuppgifter STYRNING - i Mikrodatorteknik för U2 2010

EDA480/EDA485 - Maskinorienterad programmering, tentamen 2006-xx-xx 1(7)

Ansvarig lärare: Olof Andersson, Telefon (besöker skrivsalen)

LV6 LV7. Aktivera Kursens mål:

Mekanismer. (implementation)

DatorsystemteknikDAVA14 Föreläsning 9

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

Lathund för att arbeta med pdf

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

Utredning om införande av digital nämndhantering för socialnämnden

Realtidssystem. - Dödläge - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 5

Föreläsning 15: Parallella subrutiner. Parallellitet. Varför parallella underprogram?

Tentamen i Realtidsprogrammering

Manual Jourläkarschema Närhälsan V7 - Version 1.0

Tärna Folkhögskola IT-pedagogutbildningen Individuellt fördjupningsarbete Vt IT I FÖRSKOLAN. Författare:Tove Andersson

Tentamen. Datorteknik Y, TSEA28

Föreläsningsanteckningar 2. Mikroprogrammering I

Tentamen. Datorteknik Y, TSEA28

Transkript:

Mål Datorteknik Föreläsning 5 Att du ska förstå hur avbrott används för - Mätning - Styrning - Stöd för körning av fle processer Att du ska förstå begreppet tråd Att du ska veta hur odelba resurser kan hantes Att du ska känna till funktionen hos en realtidskärna Realtidssystem och realtidrogmmering Innehåll Repetition av avbrott Avbrott - repetition Vad är ett realtidssystem? Microgvityugnen Hur får man en processor att utfö fle uppgifter? Trådar - Vad, när och hur? Hur funger en realtidskärna? Vad är ömsesidig uteslutning och hur implementes det? Exempel på en realtidskärna för MIPS Avbrott: En yttre (eller inre) händelse kan kopplas till en subrutin Avbrottsrutinen körs automatiskt när avbrottet kommer Avbrottsrutinen måste a undan alla register som den använder Avbrott och MIPS: Sex externa användar-definiede avbrott Ett antal maskindefiniede avbrott finns Alla avbrott leder till att exekvering på adress 0x80000080 Efter avbrottet innehåller Causeregistret orsaken till avbrottet Datorer för mätning och styrning Mätning och styrning Datorer används i många sammanhang för att mäta och sty olika processer - Pappersmaskiner - Autopiloter för flygplan - Styrsystem för truckar - Övervakningssystem på sjukhus Analog insignal Analog styrsignal timer avbrottsingång A/D D/A in ut Datorsystem Datorsystemets progm läser insignalen med jämna tidsmellanrum och beräknar utifrån dessa styrsignaler Särskilda enheter omvandlar mellan analoga och digitala signaler 1

Vad är ett realtidssystem? Microgvity-experimentugn Datorsystem med tidskv Fle insignaler och fle utsignaler, möjligen med olika tidskonstanter Exempel: Bränsleinrutningssystem för bilar (100 varv/s) Kftverk Tvättmaskiner Switch/router för Internet Prov 1 gång/s: Styrsignaler till lamporna (värmer provet) 2 ggr/s: Mätsignaler från termoelement Huvudprogm: Beräkna styrsignaler, sänd telemetri till ketbasen (temp, status, ) Halogenlampor Ihålig kolcylinder Termoelement Microgvity-experimentugn Tre olika uppgifter för processorn Två av dessa är tidskritiska Mätningen och styrningen utformades i en avbrottsrutin Avbrotten generedes som externa med en timer En processor - fle olika uppgifter Hur kan en processor utfö fle uppgifter samtidigt? Nyckeln: Avbrottsmekanismen Kan användas för att realise ett system som klar fle olika processer Trådar Trådar tråd 2 tråd 1 tråd 0 styrning mätning beräkning tid Trådar är progm som gör olika saker, och tus om att kö på en och samma processor Olika sttegier finns: Alla trådarna kan kös i turordning Trådarna kan ha proritet och kös i prioritetsordning För vi har ju en enda processor! tid/100 tidsavbrott 2

En tråds olika tillstånd Kan vi hind tråden att bli avbruten? Exekvende Tidsavbrott Redo Ibland vill vi att tråden ska kö färdigt något kritiskt Ex: Utskrift, ställa om styrvärden, läsa av en givare Då får ingen annan tråd gå in och ta över processorn Kallas ömsesidig uteslutning - mutual exclusion Tex Systemanrop Väntan på händelser Blocked Händelse som vi väntat på Hur kan vi ordna det? Ledning: Vad gör att vi byter tråd? Skapa tråd Problem med gemensam resurs Tråd 1: printf( Detta är tråd 1!\n ); Tråd 2: printf( Detta är tråd 2!\n ); Ovanstående kod kan resulte i en utskrift som liknar: DeDtettat a äär r tråtd 1!r åd 2! Varför? Texten skrivs ut tecken för tecken Hur löser man det här? Tråd 1: lock(); printf( Detta är tråd 1!\n ); unlock(); Ömsesidig uteslutning Tråd 2: lock(); printf( Detta är tråd 2!\n ); unlock(); Hela utskriften kan skrivas ut utan att den and tråden kommer in Detta är tråd 1! Detta är tråd 2! lock() hindr and trådar att kö, unlock() tillåter det igen. Ömsesidig uteslutning - en lösning Vi vill inte att någon ann tråd ska kö Lösning: stäng av avbrotten. Ingen annan tråd kommer då att kunna kö. Lite för dstiskt ibland - det kan ju finnas and, viktiga avbrott som vi då inte tillåter... Struktur för ömsesidig uteslutning Semaforer - en struktur för detta Två opetioner, wait() och signal() Semaforen inities till ett värde, oftast 1. Den tråd som vill komma åt en resurs gör wait() på semaforen som hör till resursen Den tråd som släpper resursen gör signal() på semaforen. 3

Semaforer - wait() och signal() Vad är en realtidskärna? wait(sem) { while (sem<=0) { /* Vänta - Gör inget */ } sem = sem-1; } /* Tråden väntar tills värdet blir större än 0, låser sedan för and */ signal(sem) { sem = sem+1; } /* Tråden låser upp semaforen */ Med en enda processor kan ju ba en enda tråd exekve åt gången För varje tråd måste vi hålla reda på hur processorns status var för den tråden Statusen är innehållet i de vanliga registren,, Status, Cause, HI och LO Vi måste kunna välja vilken tråd som ska kö efter nästa tidsavbrott - det gör SCHEDULERN Vad gör en scheduler? Statusbyte När en tråd avbryts (av tex ett tidsavbrott) gör schedulern följande: - Spar status för den aktuella tråden ( i minnet) - Väljer en ny tråd av dem som är kla att kö - Laddar status för denna tråd från minnet - Statusen: Registren, HI, LO,, Status, Cause - Återhopp sker till nya trådens. Varför? TCB1 (minne) Tråd 1 avbryts TCB2 (minne) TCB3 (minne) Tråd 1 ska kös Processorns register Statusbytet Varje tråd har sin egen stackpekare. Varje tråd måste ha sin egen stack - måste ecifices då tråden inities! Realtidskärnan En realtidskärna måste gö följande: Initiering av trådhantering, avbrottsrutin, etc Sätta upp strukturer då en tråd skapas Tillhandahålla primitiver för ömsesidig uteslutning Kö en scheduler som byter mellan de olika trådarna 4

Exempel: ITS Utvecklad av Mats Brorsson Skriven i C och assembler Ba det nödvändigaste är skrivet i assembler: - avbrottsrutinen - ande av status (TCB) - skrivande av register (TCB) - hantering av avbrottsregister Grundfunktionerna i ITS ITS_init(): Initiering ITS_create_thread(routine,&arg,&stack) : Skapa tråd ITS_enter_critical(): Primitiv för ömsesidig uteslutning ITS_leave_critical() ITS_yield(): För trådar som vill släppa sin exekvering (om de t.ex. väntar) Initiering ITS_init() Sätter upp och initier datastrukturer En tråd sätts igång Avbrottsrutinen inities Avbrott tillåts Skapa ny tråd ITS_create_thread(routine,&arg,&stack) Skapar och förbereder för ny tråd Subrutinens namn i routine Argument till subrutinen i arg Stackutrymme för tråden i stack Initier någ register i TCB:,a0, osv Ömsesidig uteslutning ITS_enter_critical() Vill hind and trådar att kö - stänger av avbrotten! Kan användas för att implemente semaforer Ömsesidig uteslutning ITS_leave_critical() Tillåter avbrott igen när tråden passet den kritiska regionen 5

Om man inte vill exekve ITS_yield() Om en tråd inte kan eller vill kö vidare Vill släppa exekveringen till någon annan tråd Generer ett mjukvaruavbrott (genom att skriva i Causeregistret) Vad händer i avbrottsrutinen? Vid avbrott avbryts den könde trådens exekvering Avbrottsrutinen måste a trådens status i dess TCB - detta måste skrivas i assembler Värdet i trådens är den adress där exekveringen ska återupptas (den blev ju avbruten!) ITS_scheduler anropas. Den väljer en ny tråd som ska kös, skickar dess TCB-adress i register k0 Hur väljer schedulern en ny tråd? Tråden måste va redo för körning Man skulle sedan kunna välja efter prioritet Enkel sttegi: turordning - round robin Schedulern behöver inte skrivas i assembler, och är det heller inte i ITS Hur startas nästa tråd i ordningen? Den nya trådens TCB skrivs till registren (utom ) - vi återställer den status som tråden hade senast Kopie trådens till register k1 Hoppa tillbaka med jr k1 Återställ med rfe ITS ITS är en relativt enkel realtidskärna, som trots det kan användas till mycket. Den visar på de viktigaste principerna. Naturliga utvidgningar av kärnan vore att implemente prioriteter vid trådbyte, och möjlighet till systemanrop. Windows Unix Läennor Telefoner mm Var hittar vi realtidskärnor? 6

Sammanfattning Realtidssystem används flitigt övellt En processor kan utfö många uppgifter samtidigt Trådar och trådbyte Avbrott är nyckeln till system med fle trådar Realtidskärnan - vad gör den? Schedulern - vad har den för roll och funktion? Ömsesidig uteslutning ITS - en enkel, pedagogisk, realtidskärna 7