Realtidssystem, device drivers. Föreläsning 10



Relevanta dokument
Multimedia. Multimedia. Datakompression. Annorlunda krav. Inte bara text eller nerladdning av filer. Video, ljud med tidskrav.

Realtidssystem HT03. Vad är realtidssystem? Inbyggda system. Att programmera, Tasks (Uppgifter) Realtidssystem kräver analys

Realtidssystem. - Schemaläggning - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 6

Vad är viktigast? Sammanfattning. Processer och trådar. Processer och trådar. Flerprocessorsystem. Schemaläggning. Interprocesskommunikation.

Realtidsprogrammering Ordinarie tentamen

Operativsystem. Innehåll. Operativsystemets funktion. Vad är ett OS? Vart hittar men ett OS? OS hanterar processorns resurser

Tentamen i Realtidsprogrammering för Au3, D3, E3

Tentamen i ID2206, ID2200 samt IS1350 Operativsystem

Omtentamen i Realtidsprogrammering för Au3, D3, E3

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

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

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

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

Tentamen omfattar 40 poäng fördelade på 7 uppgifter. 20 poäng krävs för betyget 3, 30 poäng för betyget 4 och 36 poäng för betyget 5.

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

Datorteknik ERIK LARSSON

Synkronisering. Föreläsning 8

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

Lunds Tekniska Högskola Datorarkitektur med operativsystem EITF60. Superscalar vs VLIW. Cornelia Kloth IDA2. Inlämningsdatum:

Fö 8: Operativsystem II. Minneshantering. Minneshantering (1) Minneshantering (2) Minneshantering och Virtuelltminne.

Realtidssystem. - Schemaläggning - EDA698 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 6

Föreläsning 2. Operativsystem och programmering

Filsystem. Varför? Hur? För att kunna lagra data mer permanent än i RAM. Vettig organisation Vettiga namn

Öka prestanda i Shared-Cache multi-core processorer

Lösningsförslag till tentamen i IS1350 Operativsystem

Institutionen för elektro- och informationsteknologi, LTH

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

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

syftar till att förbättra prestanda. Den kan avse något eller flera av följande mått.

Försättsblad till skriftlig tentamen vid Linköpings Universitet Cover page for written exam at Linköping University

Operativsystem ID1200/06 Tentamen :00-18:00

Datorsystem 5. På denna föreläsning skall vi prata om Operativsystem Exempel på tenta (typ fjolårets)

Schemaläggning Unix. Minneshantering etc. Linux. Schemaläggning av trådar (kernel threads) Detaljer. Operativsystem - Lektion 7

Deluppgift 17 Processhantering: exec, sleep, exit, plist

Design och trender. Föreläsning 12

Outline. Datorsystemtekni. Kravspecifikation. Kravspecifikation (forts.)

F5: Högnivåprogrammering

F5: Högnivåprogrammering

Operativsystem (IS1350) :00-12:00

Realtidssystem Z EDA300 Tentamen 15/ , kl i V-huset

Operativsystem Lektion 1. Lärare. Schema. Kurssajten Finns på adressen. Jan Erik Moström. Set Norman

Datakom II (MNP) ht 1998 Bengt Ahlgren 1. Vad är speciellt med implementering av kommunikationsprotokoll?

Information Coding / Computer Graphics, ISY, LiTH. Minnesaccess. Vitalt för prestanda! Minnestyper. Coalescing

Program & programmering

Tentamen i Realtidsprogrammering

Realtidsstöd i Minix. En laborationrapport. Oktober 2012

Operativsystem - input/output, skydd, virtualisering

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

Hjälpmedel: Inga hjälpmedel förutom penna, suddgummi och glatt humör.

Operativsystem IS1350

Tentamen, Distribuerade System/Programvaruarkitektur

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

Operativsystem (ID2200/06) XX XX:00-XX:00

Operativsystem ID hp, ID2200 6hp

Introduktion till hårdvara, mjukvara och operativsystem

INSTITUTIONEN FÖR DATA- OCH INFORMATIONSTEKNIK

Operativsystem ID2206 Tentamen TEN1 4.5 hp :00-18:00

Minneshantering segmentering och virtuellminne. Föreläsning 3

Omkoppling av in- och utmatning. In- och utmatning i Unix. Kommando exempel, ls, pipe forts. Kommando exempel, ls, pipe

Generell säkerhet. Loggning - Hur mycket ska man logga? Inloggningsrutinerna i Unix. Loggning fortsättning

Operativsystem ID1200/06 Tentamen :00-18:00

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

Tentamen Lösningar EDA698 Realtidssystem

Hur hänger det ihop med användarkommandon, biblioteksfunktioner och systemanrop?

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design (DIT953) Niklas Broberg, 2018

SMD 134 Objektorienterad programmering

Några gamla tentamensuppgifter: Processer. 3. Antag givet ett system i vilket rent CPU-bundna processer med följande egenskaper exekveras.

Schemaläggningsmetodik för multi-core inom Windows 7 OS Vad är scheduling och hur schemalägger Windows OS sina processer?

Tentamen vid Institutionen för Datavetenskap, Linköpings universitet

Fö 7 TSEA81. Scheduling

Operativsystem. IS hp. Jim Dowling Docent, PhD [Bilder av Robert Rönngren]

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

Kompletterande kompendium till kursen Realtidsprogrammering

Operativsystem Introduktion

DIG IN TO Dator och nätverksteknik

Lärare. Operativsystem. Handledning. Kurssajt. Schema. Lektioner. Jan Erik Moström

Tentamen vid Institutionen för Datavetenskap, Linköpings universitet

Tentamen. Datorteknik och realtidssystem

Systembeskrivning. Systemskiss. Moduler.

Realtidsprogrammering

Aktivitetsschemaläggning för flerkärninga processorer

Öppna filer och filsystem i PintOS Hemuppgift TDDI81, 21/

Försättsblad till skriftlig tentamen vid Linköpings Universitet Cover page for written exam at Linköping University

Operativsystem - Filsystem

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

Datorsystemteknik Föreläsning 7DAVA14

Programmering i C++ Kompilering från kommandoraden

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design Alex Gerdes, 2016

3) Routern kontrollerar nu om destinationen återfinns i Routingtabellen av för att se om det finns en väg (route) till denna remote ost.

4 grundregler. Minneshantering. Problemet. Windows minkrav

Hantering av hazards i pipelines

Översikt. Datorarkitekturer med operativsystem. Inledning. Inledning

Tentamen. Datorteknik och realtidssystem

MESI i Intel Core 2 Duo

Föreläsning 13 Innehåll

Nemo96 HD och Nemo96 HD+ firmware uppdatering

Exam Concurrent and Real-Time Programming

Skyddsmekanism. Säkerhet. Säkerhet. Policy. Principle of least privilege. Säkerhetsnivåer

En Von Neumann-arkitektur ( Von Neumann-principen i föreläsning 1) innebär:

Tentamen i Realtidsprogrammering

Transkript:

Realtidssystem, device drivers Föreläsning 10

Dagens föreläsning Realtidssystem Device drivers (Multimedia video)

Realtidssystem Karakteristika Mjuka realtidssystem Hårda realtidssystem Schemaläggning

Realtidssystem Uppgifter, jobb, som måste lösas inom givna tidsramar Ett jobb är oftast en ganska liten beräkning Ex: Läsa av och analysera sensordata Styra saker, ex. tändning i en bilmotor, instabila flygplan (JAS 39) Jobb har en deadline som inte får missas Realtidssystem, Device Drivers 4

Jobb Ett jobb har följande attribut starttid S är det tidigaste tillfälle då det kan startas beräkningstid C är den maximala exekveringstid det kan behöva för att utföra sin uppgift (kallas också critical path, kritisk väg) deadline D är tiden då det måste vara utfört S+C D (annars går det inte) Realtidssystem, Device Drivers 5

Periodiska jobb Ett periodiskt jobb sköter en uppgift som utförs med regelbundna intervall Styrsystem (mät,räkna,styr) Mätdatainsamling Tiden mellan två startider för ett jobb är dess period P Ex: mät något 10 ggr/sek ger period P = 0.1 sek Olika jobb i samma system kan ha olika period Ett system med bara periodiska jobb kallas periodiskt Realtidssystem, Device Drivers 6

Aperiodiska jobb Realtidsystem innehåller ofta uppgifter som inte är periodiska utan förorsakas av någon händelse Ex: Styrsystem: någon parameters värde indikerar att systemet måste nödstoppas Vanligt är att realtidsystem innehåller både periodiska och aperiodiska jobb Realtidssystem, Device Drivers 7

Hårda och mjuka system I ett hårt realtidssystem får man inte missa deadlines eftersom det medför fatala fel. Ex: En robotarm bör stoppas innan den slagit genom vindrutan på bilen den sätter samman Styrstavarna i en kärnreaktor bör hinna sänkas ned i härden innan kärnreaktionen skenar I mjuka realtidssystem bör man hålla deadlines men det inträffar inte katastrofer om man missar en deadline. Ex: Spelar man upp en videosnutt och missar en deadline så att det blir ett hack i filmen är det inte bra men heller inte katastrofalt Realtidssystem, Device Drivers 8

Mer eller mindre hårda/mjuka jobb I den mesta grundläggande litteraturen om realtidssystem är världen svart-vit eller hård-mjuk Men många verkliga realtidsystem kan innehålla uppgifter (jobb) som är mer eller mindre viktiga (hårda) Ofta bör man prioritera säkerhetskritiska jobb före sådana som styr normalfallet Ex: styr/kontrollsystem i en bil Vid en inbromsning bör man kanske prioritera att styra ABSbromsarna framför att klara perfekt motorstyrning om man inte klarar bägge optimalt jobb kan ha en vikt som talar om hur viktiga de är Realtidssystem, Device Drivers 9

Vilken typ av stöd från OS behövs? - hårda system Hårda realtidsystem kräver att man inte råkar ut för svårförutsägbara fördröjningar Hårda realtids OS har därför oftast inte stöd för: Virtuellminne Filsystem och många andra typer av I/O-enheter som kan läsas/skrivas under drift av realtidsystemet Data lagras oftast i ROM Exempel på realtids OS: VxWorks, Eneas OS-E... Realtidssystem, Device Drivers 10

Vilken typ av stöd från OS behövs? - mjuka system De flesta moderna UNIX och vissa Windows varianter stödjer mjuka realtids krav Användarna vill kunna titta på video, spela interaktiva spel, utnyttja IP-telefoni etc. Stödet består normalt av Möjlighet att ge processer högre prioritet Mjuka realtidsprocessers prioritet får inte sjunka genom t.ex ageing Möjlighet att låsa sidor i minnet (pinning) Möjlighet att avbryta andra processers systemanrop (kärnan) Realtidssystem, Device Drivers 11

Varför avbryta andra processers systemanrop? Vanligen måste ett OS vänta på att ett systemanrop eller blockerande I/O utförs innan ett processbyte kan utföras Ger upphov till dispatch latency när en ny process skall schemaläggas Kan ge oacceptabla fördröjningar för en (mjuk) realtidsprocess som vill exekvera Lösning: Gör det möjligt att avbryta (pre-emption) systemanrop och kärnan! Realtidssystem, Device Drivers 12

Att avbryta systemanrop och kärnan -forts. Problem: Hur hanteras datastrukturer som är under modifiering när systemanropet avbryts? Två alternativ: Preemption points kärnan kan bara avbrytas på vissa bestämda punkter Kärnan kan avbrytas var som helst men den avbrytande processen kan inte modifiera datastrukturer som den avbrutna processen arbetade med Ex: Solaris 2 och senare Kärnan kan avbrytas var som helst Dispatch latency utan pre-emption på kärnan ~100msec med pre-emption på kärnan ~2msec Realtidssystem, Device Drivers 13

Prioritetsinversion En process med hög prioritet kan bli tvungen att vänta på en process med lägre prioritet om: Processen med låg prioritet håller en resurs som inte kan göras pre-emption på och som procesen med hög prioritet behöver Lösningar: En process (jobb) får bara köra om den kan få alla resurser på en gång som den behöver för att slutföra sin uppgift (nå sin deadline i tid) Ha bara resurser som kan pre-emptas Realtidssystem, Device Drivers 14

Prioritetsinversion forts. - att ärva prioriteter Antag att en högprioriterad process begär att en lågprioriterad process skall utföra ett jobb åt den och att den högprioriterade måste ha svaret innan den kan fortsätta - den högprioriterade processen kan då få vänta på andra processer med mellanhöga prioriteter som avbryter den lågprioriterade! Lösning: låt den lågprioriterade processen ärva den högprioriterades priorited under det att den utför arbetet åt den högprioriterade Realtidssystem, Device Drivers 15

Schemaläggning i realtidssytem -Mål och kvalitetesmått Mål: klara alla deadlines En optimal realtidsschemaläggningsalgoritm är optimal om den bara misslyckas med att klara en deadline om ingen annan schemaläggningsalgoritm heller klarar det Mått som används för schemaläggningsalgoritmer: Minimera en viktad summa av tidpunkterna då jobb är klara (kan vara ett bra mått om man har jobb som är olika viktiga att slutföra) Minimera den maximala tiden T ett jobb missar sin deadline med dvs. maximala förseningen (om T > 0 måste mer resurser tillföras annars klarar man inte alla deadlines) OBS! Säger inget om hur många deadlines som klaras! Realtidssystem, Device Drivers 16

Maximal försening - exempel T1 T2 T3 T4 T5 Missar alla deadline d1 d2 d3 d4 d5 Maximal försening T2 T3 T4 T5 T1 Missar en deadline d1 d2 d3 d4 d5 Realtidssystem, Device Drivers 17 Maximal försening

Bivillkor för schemläggning Bivillkoren för en realtidsschemaläggning kan inkludera Deadlines Beräkningstider, C Starttider, S Ordning mellan jobb (ex. jobb A måste vara klart före jobb B) Vikter Realtidssystem, Device Drivers 18

Schemaläggningsvarianter - del 1 Statisk schemaläggning Alla bivillkor är kända a priori Fix processpopulation Schemaläggningsalgoritm: En statisk schemaläggning som aldrig ändras Dynamisk schemaläggning Alla bivillkor kända för de processer som är aktiva Dynamisk processpopulation, processer kan tillkomma, få nya starttider Schemaläggningen kan förändras med processpopulationen Vill man säkerställa att man kan möta deadline måste begära att nya processer kan deklarera hela sitt resursbehov/alla bivillkor och man kan tvingas neka en process/jobb att starta för att skydda jobb som redan schemalagts Realtidssystem, Device Drivers 19

Schemaläggningsvarianter - del 2 Off-line schemaläggning Schemaläggningen beräknas off-line Kan göras för statisk schemaläggning Bör också användas för att testa värsta fallet vid dynamisk schemaläggning On-line schemaläggning Schemalägningen beräknas vid exekveringen Realtidssystem, Device Drivers 20

Schemaläggning utan pre-emption Jacksons regel Varje schemaläggning som ordnar processerna efter strikt ökande deadline-tider är optimal Realtidssystem, Device Drivers 21

Periodiska system Nödvändigt villkor för att ett periodiskt system skall vara schemaläggningsbart C i /P i <= 1 C/P är andelen av perioden som en process måste få exekvera (last) Realtidssystem, Device Drivers 22

Analys av periodiska system Det kritiska ögonblicket är när alla jobb vill starta var sitt uppdrag samtidigt En prioritetstilldelning fungerar om den fungerar från det kritiska ögonblicket till dess att alla jobb är idle utan att något jobb missar en deadline Realtidssystem, Device Drivers 23

Rate Monotonic Scheduling - statisk schemaläggning för periodiska system Avbrytande (preemptive) schemaläggning med fasta prioriteter Processer kan avbrytas av att högre prioriterade processer blir körbara En process (eller tråd) per jobb Kortast period har högst prioritet p = 1/P Används i många system Realtidssystem, Device Drivers 24

Rate Monotonic Scheduling - schemaläggningsbarhet n oberoende periodiska processer kan schemaläggas med RMS omm: C i /P i <= n(2 1/n 1) Gränsvärde då n går mot : 0.69 8 Realtidssystem, Device Drivers 25

Earliest deadline first Dynamisk avbrytande schemaläggning för periodiska och aperiodiska system Den process som har kortast tid kvar till sin deadline får köra först En process som blir körklar anmäler sin deadline till systemet Optimal enligt Jacksons regel Klarar alla periodiska system med känd processpopulation och last <= 1 Men vid överlast kan den fungera riktigt dåligt och ge en dominoeffekt av jobb som missar sin deadline!!! Realtidssystem, Device Drivers 26

Exempel på schemaläggning T A (C=15, P=30) T B (C=15, P=40) T C (C=5, P=50) RMS prioriteter 1/30 1/40 1/50 Total last: 15/30+15/40+5/50 = 0.975 RMS EDF T C missar sin deadline! 0 10 20 30 40 50 60 70 80 90 100 110 120 Realtidssystem, Device Drivers 27

Schemaläggning med vikter Smiths regel Antag att varje process har en vikt w som anger hur viktig den är En schemaläggning är optimal som schemalägger processerna i icke-avtagande ordning efter C/w Realtidssystem, Device Drivers 28

Vad är svårt (omöjligt) Delade resurser är ett problem... Schemaläggning med allmänna ordningsvillkor (precedence constraints) mellan jobb är ett NP komplett problem Schemaläggning för processer som synkroniserar med semaforer är ett NP-komplett problem Earliest deadline first är icke-optimal om man har fler än en processor ex: 2 processorer jobb: T1(C=1, d=1), T2(C=1, d= 2), T3(C=3, d = 3.5) EDF kör T1 och T2 på var sin processor och T3 missar deadline Realtidssystem, Device Drivers 29

Device drivers Allmänt Lite om LINUX

Vilken kod ska en device driver innehålla Interface mot kärnan Kod för systemanrop Kod för avbrottshantering Kod för initialisering när device drivern installeras Kod för att städa upp om device drivern tas bort Device driver är en typ av svart-låda som ska styra hårdvaruenheten Realtidssystem, Device Drivers 31

Policy och mekansim En device driver bör implementera mekanismer för att hantera enheten En device driver bör inte implementera policy Viss implementation av policy kan dock vara på sin plats när det gäller säkerhet Kontrollera vem som kör rutinen Intialisera dataareor till noll så inte information sprids oavsiktligt (om en gammal datarea återanvänds) Man måste få till det rätt vad avser säkerheten! Realtidssystem, Device Drivers 32

Programmering Oftast vanlig C med lite assembler Alla C s biblioteksfunktioner är inte tillgängliga Kärnan har oftast egna motsvarigheter Ex. från LINUX: kmalloc(), printk() Koden måste vara reentrant Måste hantera parallelism (concurrency) Kod i kärnan kan avbrytas av avbrott! Om OS:et tillåter exekvering på multiprocessorer eller kärnan kan avbrytas kan dessutom flera processer exekvera koden samtidigt Realtidssystem, Device Drivers 33

Kompilering En device driver måste kompileras: För en viss arkitektur Normalt också för en viss version av OS-kärnan Realtidssystem, Device Drivers 34

Debuggning I de flesta fall kan man skriva meddelanden till en demon eller till en speciell fil från kod i kärnan En del system har inbyggda debuggers i kärnan Inte LINUX eftersom Linus T anser att interaktiva debuggers lätt leder till patchar För LINUX finns separatutvecklade kärndebuggers (kdb) Fel leder ofta till att den process som körde i device drivern dör men kärnan överlever oftast Har man riktig otur kan man få en maskin att hänga sig helt så den måste power-switchas Realtidssystem, Device Drivers 35

Device (driver) typer i LINUX Character device Block device Network interfaces Character och Block devices Hanteras som filer open, read, write, close systemanrop Network interfaces Syns i filsystemet Hanterar paket istället för strömmar av data Realtidssystem, Device Drivers 36

LINUX moduler LINUX har ett modulsystem för att kunna länka in /ta bort device drivers dynamiskt Inte länkning i vanlig mening Det byggs ingen exekverbar fil Objektkoden länkas till kärnans funktioner genom att funktionspekare sätts upp Kommandon för att installera/ta bort moduler insmod rmmod Realtidssystem, Device Drivers 37

LINUX moduler - forts. En modul i LINUX skall ha Funktion för installation Registerar funktioner hos kärnan Initierar data Funktion för upprensing om modulen tas bort med rmmod Realtidssystem, Device Drivers 38

LINUX moduler insmod module init_module() kernel proper register_capability() capabilities[] printk()...... rmmod cleanup_module() unregister_capability() Realtidssystem, Device Drivers 39

U s e r s p a c e Systemanrop och device drivers exit(0) Lägg parametern i register t.ex %o0 Lägg koden för systemanropet i register t.ex %g0 Gör trap, ta K e r n e l I TRAP-handlern Kolla att det var ett systemanrop Använd koden för systemanropet och slå upp/anropa funktionen från en tabell %g0 exit(%o0) s p a c e Realtidssystem, Device Drivers 40

U s e r s p a c e K e r n e l Systemanrop och device drivers write(fd, buf, len) TRAP-vektor %g0 write(%o0, %o1, %o2)? fd -> i-nodstabell DeviceDriverTabell write_to_terminal(fd, buf, len) s p a c e write_to_disk Realtidssystem, Device Drivers 41

LINUX moduler Globala variabler och funktioner blir normalt synliga för hela kärnan när en modul installeras För att undvika name-space pollution Deklarera funktioner och globala variabler som bara används lokalt i modulen som static Välj namn på sådant som skall vara synligt utanför modulen så att det går att förstå vad de används till Realtidssystem, Device Drivers 42

Att anropa funktioner i modulen En device driver identifieras av kärnan med ett major device number En enhet som hanteras av en device driver identifieras med ett minor device number När kärnan anropar funktioner i en device driver skickar den med major och minor device number till device drivern För att kärnan skall kunna använda funktioner i en device driver ska device drivern ha fördefinierade datastrukturer med pekare till funktioner struct file_operations med pekare till open, read, write etc. Realtidssystem, Device Drivers 43

Att bli en erkänd device driver En device driver måste välja ett ledigt major device number och registrera det hos kärnan För att skapa en device fil (node) i filsystemet (/dev) används kommandot mknod Kan bara köras av super-user (root) Ex: mknod /dev/scull c 254 0 Realtidssystem, Device Drivers 44

Att ta bort en device driver (modul) Man kan få stora problem om man tar bort en modul (device driver) som används Modulen skall ha en räknare som talar om hur många aktiva användare av modulen som finns Ansvaret att uppdatera räknaren ligger på modulen själv Räknaren måste uppdateras direkt när en ny användare startar använda modulen och räknas ned som det sista som görs när en användare slutar använda modulen Misslyckas man med dessa räknare kan man hamna i lägen då modulen inte går att avinstallera Dessutom skall modulen ha en funktion som rensar upp då modulen tas bort Lämnar tillbaka resurser den allokerat till kärnan som minne, datastrukturer etc. Realtidssystem, Device Drivers 45

Att lära sig mer LINUX device drivers 3 d edition Rubini & Corbet, O Reilly 2001 Boken finns tillgänglig på webben under GNU licens www.it.kth.se/courses/is1350 lab2 &3 www.oreilly.com/catalog/linuxdrive3/chapter/bookindexpdf.html Realtidssystem, Device Drivers 46

Lite om multimedia - både realtid och device drivers

Multimedia Integrering av Video (rörliga bilder) Ljud Text (textremsor) Multimedia blir allt vanligare Filmer på DVD Videoclips från nätet Spel Redigeringsverksamhet (produktion av multimedia) Video on demand Realtidssystem, Device Drivers 48

Karakteristika Ett dokument (t.ex. en film) kan bestå av Videoinformation (bilder) Flera ljudspår på olika språk Flera textspår på olika språk Extra ljud och bildspår för snabbspolning Videoinformationen är huvuddelen av data Oftast MPEG 2 kodad (kompression) Ungefär 4 megabit per sekund Består av bildrutor (25-30 per sekund) som på grund av kompression är olika stora Realtidssystem, Device Drivers 49

Något om videokompression med MPEG 2 En videoström (film) består av 25-30 bildrutor (frames) per sekund De flesta bildrutor skickas som diff av föregående (eller nästa), P (eller B)-frame Mycket kraftigt komprimerande i allmänhet En bild i sekunden eller så skickas som en JPEG bild, kallas I-frame Gör att man kan börja titta där Medger även fortsättning efter fel Kanske 10 gånger större än P eller B-frame Realtidssystem, Device Drivers 50

Krav för hantering av multimediadata Hög bandbredd och stora datavolymer 4-6 megabit per sekund en tvåtimmarsfilm blir 3,6 till 5,4 gigabyte stor ljudet tar ytterligare 70 kilobit per sekund och kanal Realtidskrav data måste komma i jämn ström Förutsägbarhet efter en bild kommer nästan alltid nästa Realtidssystem, Device Drivers 51

Filsystem för multimediadata Prestanda förbättras om filsystemet anpassas Strategi: använd förutsägbarhet lagra all information som används nära i tiden tillsammans en bild (I,B eller P-frame) ljudet för de 33-40 millisekunderna ev annan info read-ahead av data kan kräva stora buffrar men sparar många förflyttningar av diskarmen och kan spara mycket tid Realtidssystem, Device Drivers 52

Organisation av multimediafiler Småblocksmodellen (the small block model) blockstorlek mycket mindre än bildstorlek (inklusive ljud), t.ex. 1 KB varje bild är ett antal block, sista blocket halvfullt blocken i varje bild är konsekutiva på disken ett bildindex ger info om vilket blocknummer en bild ligger på samt hur stor den är diskhantering lite knepig då allokeringsenheten är olika stor Realtidssystem, Device Drivers 53

Organisation av multimediafiler Storblocksmodellen (the large block model) man lagrar flera bilder per block, block är t.ex. 256 KB ett blockindex håller reda på vilken bild som börjar i ett visst block och var på disken det blocket finns om det är plats över i ett block (bara en del av en bild får plats) kan man göra två saker lämna slutet av blocket tomt ha halva bilden i det blocket och andra halvan i nästa Realtidssystem, Device Drivers 54

Multimediafiler och cachning Använd inte LRU Använd inte LRU Använd inte LRU... Realtidssystem, Device Drivers 55

Multimediafiler och cachning Om två användare ser samma film nästan samtidigt kan man låta data ligga kvar efter första filmens hämtning Dock behövs en stor buffer eftersom filmen tar 4-6 megabit per sekund Realtidssystem, Device Drivers 56

Multimediafiler och diskarmsschemaläggning Om man har flera diskoperationer på kö kan man ordna om dem för ökade prestanda Enligt SJF algoritmen skulle man alltid ta det närmaste härnäst, men då svälts vissa operationer ut Man kan dela upp operationerna i grupper och optimera varje grupp för sig Hissalgoritmen lämplig för varje grupp Realtidssystem, Device Drivers 57

Nästa föreläsning Fallstudie LINUX & Windows Realtidssystem, Device Drivers 58