You are on page 1of 58

Realtidssystem, device drivers

Frelsning 10

Dagens frelsning

Realtidssystem
Device drivers
(Multimedia video)

Realtidssystem

Karakteristika
Mjuka realtidssystem
Hrda realtidssystem
Schemalggning

Realtidssystem
Uppgifter, jobb, som mste lsas inom givna
tidsramar
Ett jobb r oftast en ganska liten berkning
Ex:
Lsa av och analysera sensordata
Styra saker, ex. tndning i en bilmotor, instabila
flygplan (JAS 39)

Jobb har en deadline som inte fr missas

OS Frelsning 10,
Realtidssystem, Device Drivers

Jobb
Ett jobb har fljande attribut
starttid S r det tidigaste tillflle d det kan
startas
berkningstid C r den maximala exekveringstid
det kan behva fr att utfra sin uppgift (kallas
ocks critical path, kritisk vg)
deadline D r tiden d det mste vara utfrt

S+CD (annars gr det inte)

OS Frelsning 10,
Realtidssystem, Device Drivers

Periodiska jobb
Ett periodiskt jobb skter en uppgift som
utfrs med regelbundna intervall
Styrsystem (mt,rkna,styr)
Mtdatainsamling

Tiden mellan tv startider fr ett jobb r


dess period P

Ex: mt ngot 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
OS Frelsning 10,
Realtidssystem, Device Drivers

Aperiodiska jobb
Realtidsystem innehller ofta uppgifter som
inte r periodiska utan frorsakas av ngon
hndelse
Ex: Styrsystem: ngon parameters vrde indikerar
att systemet mste ndstoppas

Vanligt r att realtidsystem innehller bde


periodiska och aperiodiska jobb

OS Frelsning 10,
Realtidssystem, Device Drivers

Hrda och mjuka system


I ett hrt realtidssystem fr man inte missa
deadlines eftersom det medfr fatala fel.
Ex:

En robotarm br stoppas innan den slagit genom vindrutan p


bilen den stter samman
Styrstavarna i en krnreaktor br hinna snkas ned i hrden
innan krnreaktionen skenar

I mjuka realtidssystem br man hlla deadlines men


det intrffar 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
OS Frelsning 10,
Realtidssystem, Device Drivers

Mer eller mindre hrda/mjuka jobb


I den mesta grundlggande litteraturen om
realtidssystem r vrlden svart-vit eller hrd-mjuk
Men mnga verkliga realtidsystem kan innehlla
uppgifter (jobb) som r mer eller mindre viktiga
(hrda)
Ofta br man prioritera skerhetskritiska jobb fre sdana
som styr normalfallet
Ex: styr/kontrollsystem i en bil
Vid en inbromsning br man kanske prioritera att styra ABSbromsarna framfr att klara perfekt motorstyrning om man
inte klarar bgge optimalt

jobb kan ha en vikt som talar om hur viktiga de r


OS Frelsning 10,
Realtidssystem, Device Drivers

Vilken typ av std frn OS behvs?


- hrda system

Hrda realtidsystem krver att man inte rkar ut fr


svrfrutsgbara frdrjningar
Hrda realtids OS har drfr oftast inte std fr:
Virtuellminne
Filsystem och mnga andra typer av I/O-enheter som kan
lsas/skrivas under drift av realtidsystemet

Data lagras oftast i ROM


Exempel p realtids OS: VxWorks, Eneas OS-E...

OS Frelsning 10,
Realtidssystem, Device Drivers

10

Vilken typ av std frn OS behvs?


- mjuka system

De flesta moderna UNIX och vissa Windows


varianter stdjer mjuka realtids krav
Anvndarna vill kunna titta p video, spela
interaktiva spel, utnyttja IP-telefoni etc.

Stdet bestr normalt av

Mjlighet att ge processer hgre prioritet


Mjuka realtidsprocessers prioritet fr inte sjunka
genom t.ex ageing
Mjlighet att lsa sidor i minnet (pinning)
Mjlighet att avbryta andra processers
systemanrop (krnan)
OS Frelsning 10,
Realtidssystem, Device Drivers

11

Varfr avbryta andra processers


systemanrop?
Vanligen mste ett OS vnta p att ett systemanrop
eller blockerande I/O utfrs innan ett processbyte
kan utfras
Ger upphov till dispatch latency nr en ny process skall
schemalggas

Kan ge oacceptabla frdrjningar fr en (mjuk)


realtidsprocess som vill exekvera
Lsning: Gr det mjligt att avbryta (pre-emption)
systemanrop och krnan!

OS Frelsning 10,
Realtidssystem, Device Drivers

12

Att avbryta systemanrop och krnan


-forts.

Problem: Hur hanteras datastrukturer som r under


modifiering nr systemanropet avbryts?
Tv alternativ:
Preemption points krnan kan bara avbrytas p vissa
bestmda punkter
Krnan kan avbrytas var som helst men den avbrytande
processen kan inte modifiera datastrukturer som den
avbrutna processen arbetade med

Ex: Solaris 2 och senare


Krnan kan avbrytas var som helst
Dispatch latency utan pre-emption p krnan ~100msec
med pre-emption p krnan ~2msec
OS Frelsning 10,
Realtidssystem, Device Drivers

13

Prioritetsinversion
En process med hg prioritet kan bli tvungen
att vnta p en process med lgre prioritet
om:
Processen med lg prioritet hller en resurs som
inte kan gras pre-emption p och som procesen
med hg prioritet behver

Lsningar:
En process (jobb) fr bara kra om den kan f alla
resurser p en gng som den behver fr att
slutfra sin uppgift (n sin deadline i tid)
Ha bara resurser som kan pre-emptas
OS Frelsning 10,
Realtidssystem, Device Drivers

14

Prioritetsinversion forts.
- att rva prioriteter
Antag att en hgprioriterad process begr att en lgprioriterad
process skall utfra ett jobb t den och att den hgprioriterade
mste ha svaret innan den kan fortstta
- den hgprioriterade processen kan d f vnta p andra
processer med mellanhga prioriteter som avbryter den
lgprioriterade!

Lsning: lt den lgprioriterade processen rva den


hgprioriterades priorited under det att den utfr arbetet t
den hgprioriterade
OS Frelsning 10,
Realtidssystem, Device Drivers

15

Schemalggning i realtidssytem
-Ml och kvalitetesmtt
Ml: klara alla deadlines
En optimal realtidsschemalggningsalgoritm r optimal om
den bara misslyckas med att klara en deadline om ingen
annan schemalggningsalgoritm heller klarar det

Mtt som anvnds fr schemalggningsalgoritmer:


Minimera en viktad summa av tidpunkterna d jobb r klara
(kan vara ett bra mtt om man har jobb som r olika viktiga att
slutfra)

Minimera den maximala tiden T ett jobb missar sin deadline


med dvs. maximala frseningen (om T > 0 mste mer resurser
tillfras annars klarar man inte alla deadlines)
OBS! Sger inget om hur mnga deadlines som klaras!

OS Frelsning 10,
Realtidssystem, Device Drivers

16

Maximal frsening
- exempel
T1

T2

d1

T3

d2

d3

T4

Missar alla
deadline

T5

d4

d5

Maximal frsening

T2

T3
d1

T4

T5
d2

d3

T1
d4

OS Frelsning 10,
Maximal
frsening
Realtidssystem,
Device Drivers

Missar en
deadline

d5
17

Bivillkor fr schemlggning
Bivillkoren fr en realtidsschemalggning kan
inkludera
Deadlines
Berkningstider, C
Starttider, S
Ordning mellan jobb (ex. jobb A mste vara klart
fre jobb B)
Vikter

OS Frelsning 10,
Realtidssystem, Device Drivers

18

Schemalggningsvarianter
- del 1

Statisk schemalggning

Alla bivillkor r knda a priori


Fix processpopulation
Schemalggningsalgoritm:
En statisk schemalggning som aldrig ndras

Dynamisk schemalggning

Alla bivillkor knda fr de processer som r aktiva


Dynamisk processpopulation, processer kan tillkomma, f nya
starttider

Schemalggningen kan frndras med processpopulationen


Vill man skerstlla att man kan mta deadline mste begra
att nya processer kan deklarera hela sitt resursbehov/alla
bivillkor och man kan tvingas neka en process/jobb att starta
fr att skydda jobb som redan schemalagts
OS Frelsning 10,
Realtidssystem, Device Drivers

19

Schemalggningsvarianter
- del 2
Off-line schemalggning
Schemalggningen berknas off-line
Kan gras fr statisk schemalggning
Br ocks anvndas fr att testa vrsta fallet vid
dynamisk schemalggning

On-line schemalggning
Schemalgningen berknas vid exekveringen

OS Frelsning 10,
Realtidssystem, Device Drivers

20

Schemalggning utan pre-emption


Jacksons regel
Varje schemalggning som ordnar processerna
efter strikt kande deadline-tider r optimal

OS Frelsning 10,
Realtidssystem, Device Drivers

21

Periodiska system
Ndvndigt villkor fr att ett periodiskt
system skall vara schemalggningsbart

Ci/Pi <= 1
C/P r andelen av perioden som en process
mste f exekvera (last)

OS Frelsning 10,
Realtidssystem, Device Drivers

22

Analys av periodiska system


Det kritiska gonblicket r nr alla jobb vill
starta var sitt uppdrag samtidigt
En prioritetstilldelning fungerar om den
fungerar
frn det kritiska gonblicket
till dess att alla jobb r idle
utan att ngot jobb missar en deadline

OS Frelsning 10,
Realtidssystem, Device Drivers

23

Rate Monotonic Scheduling

- statisk schemalggning fr periodiska system

Avbrytande (preemptive) schemalggning med


fasta prioriteter
Processer kan avbrytas av att hgre prioriterade
processer blir krbara

En process (eller trd) per jobb


Kortast period har hgst prioritet p = 1/P
Anvnds i mnga system

OS Frelsning 10,
Realtidssystem, Device Drivers

24

Rate Monotonic Scheduling


- schemalggningsbarhet

n oberoende periodiska processer kan


schemalggas med RMS omm:

Ci/Pi <= n(2

1)

: 0.69

Grnsvrde d n gr mot

1/n

OS Frelsning 10,
Realtidssystem, Device Drivers

25

Earliest deadline first


Dynamisk avbrytande schemalggning fr periodiska
och aperiodiska system

Den process som har kortast tid kvar till


sin deadline fr kra frst
En process som blir krklar anmler sin deadline till
systemet
Optimal enligt Jacksons regel
Klarar alla periodiska system med knd processpopulation
och last <= 1

Men vid verlast kan den fungera riktigt dligt och ge


en dominoeffekt av jobb som missar sin deadline!!!
OS Frelsning 10,
Realtidssystem, Device Drivers

26

Exempel p schemalggning
RMS prioriteter
TA (C=15, P=30) 1/30
TB (C=15, P=40) 1/40

TC (C=5, P=50)

1/50

Total last: 15/30+15/40+5/50 = 0.975

RMS

TC missar sin deadline!

EDF
0

10

20

30

40

50

60

70

OS Frelsning 10,
Realtidssystem, Device Drivers

80

90

100

110

120
27

Schemalggning med vikter


Smiths regel

Antag att varje process har en vikt w som anger hur


viktig den r

En schemalggning r optimal som


schemalgger processerna i icke-avtagande
ordning efter C/w

OS Frelsning 10,
Realtidssystem, Device Drivers

28

Vad r svrt (omjligt)


Delade resurser r ett problem...
Schemalggning med allmnna ordningsvillkor
(precedence constraints) mellan jobb r ett NP
komplett problem
Schemalggning fr 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 kr T1 och T2 p var sin processor och T3 missar
deadline
OS Frelsning 10,
Realtidssystem, Device Drivers

29

Device drivers

Allmnt
Lite om LINUX

Vilken kod ska en device driver


innehlla
Interface mot krnan
Kod fr
Kod fr
Kod fr
Kod fr

systemanrop
avbrottshantering
initialisering nr device drivern installeras
att stda upp om device drivern tas bort

Device driver r en typ av svart-lda som


ska styra hrdvaruenheten

OS Frelsning 10,
Realtidssystem, Device Drivers

31

Policy och mekansim


En device driver br implementera mekanismer fr
att hantera enheten
En device driver br inte implementera policy
Viss implementation av policy kan dock vara p sin
plats nr det gller skerhet
Kontrollera vem som kr rutinen
Intialisera dataareor till noll s inte information sprids
oavsiktligt (om en gammal datarea teranvnds)

Man mste f till det rtt vad avser skerheten !

OS Frelsning 10,
Realtidssystem, Device Drivers

32

Programmering
Oftast vanlig C med lite assembler
Alla Cs biblioteksfunktioner r inte tillgngliga
Krnan har oftast egna motsvarigheter
Ex. frn LINUX: kmalloc(), printk()

Koden mste vara reentrant


Mste hantera parallelism (concurrency)
Kod i krnan kan avbrytas av avbrott!
Om OS:et tillter exekvering p multiprocessorer eller
krnan kan avbrytas kan dessutom flera processer exekvera
koden samtidigt

OS Frelsning 10,
Realtidssystem, Device Drivers

33

Kompilering
En device driver mste kompileras:
Fr en viss arkitektur
Normalt ocks fr en viss version av OS-krnan

OS Frelsning 10,
Realtidssystem, Device Drivers

34

Debuggning
I de flesta fall kan man skriva meddelanden till en
demon eller till en speciell fil frn kod i krnan
En del system har inbyggda debuggers i krnan
Inte LINUX eftersom Linus T anser att interaktiva
debuggers ltt leder till patchar
Fr LINUX finns separatutvecklade krndebuggers (kdb)

Fel leder ofta till att den process som krde i device
drivern dr men krnan verlever oftast
Har man riktig otur kan man f en maskin att hnga
sig helt s den mste power-switchas
OS Frelsning 10,
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 istllet fr strmmar av data
OS Frelsning 10,
Realtidssystem, Device Drivers

36

LINUX moduler
LINUX har ett modulsystem fr att kunna
lnka in/ta bort device drivers dynamiskt
Inte lnkning i vanlig mening
Det byggs ingen exekverbar fil
Objektkoden lnkas till krnans funktioner
genom att funktionspekare stts upp

Kommandon fr att installera/ta bort moduler


insmod
rmmod
OS Frelsning 10,
Realtidssystem, Device Drivers

37

LINUX moduler
- forts.

En modul i LINUX skall ha


Funktion fr installation
Registerar funktioner hos krnan
Initierar data

Funktion fr upprensing om modulen tas bort med


rmmod

OS Frelsning 10,
Realtidssystem, Device Drivers

38

LINUX moduler
insmod

kernel proper

module

register_capability()

init_module()

capabilities[]

printk()
...
...
rmmod
cleanup_module()

OS Frelsning 10,
Realtidssystem, Device Drivers

unregister_capability()

39

U
s
e
r
s
p
a
c
e
K
e
r
n
e
l
s
p
a
c
e

Systemanrop och device drivers


exit(0)
Lgg parametern i register t.ex %o0
Lgg koden fr systemanropet i register t.ex %g0
Gr trap, ta

I TRAP-handlern
Kolla att det var ett systemanrop
Anvnd koden fr systemanropet och sl upp/anropa
funktionen frn en tabell

OS Frelsning 10,
Realtidssystem, Device Drivers

%g0

exit(%o0)

40

U
s
e
r
s
p
a
c
e
K
e
r
n
e
l
s
p
a
c
e

Systemanrop och device drivers


write(fd, buf, len)

TRAP-vektor
DeviceDriverTabell
%g0

write(%o0, %o1, %o2) ?

write_to_terminal(fd, buf, len)

fd -> i-nodstabell

write_to_disk
OS Frelsning 10,
Realtidssystem, Device Drivers

41

LINUX moduler
Globala variabler och funktioner blir normalt
synliga fr hela krnan nr en modul
installeras
Fr att undvika name-space pollution
Deklarera funktioner och globala variabler som
bara anvnds lokalt i modulen som static
Vlj namn p sdant som skall vara synligt utanfr
modulen s att det gr att frst vad de anvnds
till
OS Frelsning 10,
Realtidssystem, Device Drivers

42

Att anropa funktioner i modulen


En device driver identifieras av krnan med ett major
device number
En enhet som hanteras av en device driver
identifieras med ett minor device number
Nr krnan anropar funktioner i en device driver
skickar den med major och minor device number till
device drivern
Fr att krnan skall kunna anvnda funktioner i en
device driver ska device drivern ha frdefinierade
datastrukturer med pekare till funktioner
struct file_operations med pekare till open, read,
write etc.
OS Frelsning 10,
Realtidssystem, Device Drivers

43

Att bli en erknd device driver


En device driver mste vlja ett ledigt major
device number och registrera det hos krnan
Fr att skapa en device fil (node) i
filsystemet (/dev) anvnds kommandot
mknod
Kan bara kras av super-user (root)
Ex: mknod /dev/scull c 254 0

OS Frelsning 10,
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 anvnds
Modulen skall ha en rknare som talar om hur mnga
aktiva anvndare av modulen som finns

Ansvaret att uppdatera rknaren ligger p modulen sjlv


Rknaren mste uppdateras direkt nr en ny anvndare
startar anvnda modulen och rknas ned som det sista som
grs nr en anvndare slutar anvnda modulen
Misslyckas man med dessa rknare kan man hamna i lgen d
modulen inte gr att avinstallera

Dessutom skall modulen ha en funktion som rensar


upp d modulen tas bort

Lmnar tillbaka resurser den allokerat till krnan som minne,


datastrukturer etc.
OS Frelsning 10,
Realtidssystem, Device Drivers

45

Att lra sig mer


LINUX device drivers 3d edition
Rubini & Corbet, OReilly 2001
Boken finns tillgnglig p webben under GNU
licens
www.it.kth.se/courses/IS1350 lab2 &3
www.oreilly.com/catalog/linuxdrive3/chapter/bookindexpdf.html

OS Frelsning 10,
Realtidssystem, Device Drivers

46

Lite om multimedia

- bde realtid och device drivers

Multimedia
Integrering av
Video (rrliga bilder)
Ljud
Text (textremsor)

Multimedia blir allt vanligare


Filmer p DVD
Videoclips frn ntet
Spel
Redigeringsverksamhet (produktion av multimedia)
Video on demand
OS Frelsning 10,
Realtidssystem, Device Drivers

48

Karakteristika
Ett dokument (t.ex. en film) kan best av
Videoinformation (bilder)
Flera ljudspr p olika sprk
Flera textspr p olika sprk
Extra ljud och bildspr fr snabbspolning

Videoinformationen r huvuddelen av data


Oftast MPEG 2 kodad (kompression)
Ungefr 4 megabit per sekund
Bestr av bildrutor (25-30 per sekund) som p
grund av kompression r olika stora
OS Frelsning 10,
Realtidssystem, Device Drivers

49

Ngot om videokompression med


MPEG 2
En videostrm (film) bestr av 25-30
bildrutor (frames) per sekund
De flesta bildrutor skickas som diff av
fregende (eller nsta), P (eller B)-frame
Mycket kraftigt komprimerande i allmnhet

En bild i sekunden eller s skickas som en


JPEG bild, kallas I-frame
Gr att man kan brja titta dr
Medger ven fortsttning efter fel
Kanske 10 gnger strre n P eller B-frame
OS Frelsning 10,
Realtidssystem, Device Drivers

50

Krav fr hantering av multimediadata


Hg bandbredd och stora datavolymer
4-6 megabit per sekund
en tvtimmarsfilm blir 3,6 till 5,4 gigabyte stor
ljudet tar ytterligare 70 kilobit per sekund och
kanal

Realtidskrav
data mste komma i jmn strm

Frutsgbarhet
efter en bild kommer nstan alltid nsta
OS Frelsning 10,
Realtidssystem, Device Drivers

51

Filsystem fr multimediadata
Prestanda frbttras om filsystemet
anpassas
Strategi: anvnd frutsgbarhet

lagra all information som anvnds nra i tiden


tillsammans
en bild (I,B eller P-frame)
ljudet fr de 33-40 millisekunderna
ev annan info

read-ahead av data

kan krva stora buffrar men sparar mnga frflyttningar


av diskarmen och kan spara mycket tid
OS Frelsning 10,
Realtidssystem, Device Drivers

52

Organisation av multimediafiler
Smblocksmodellen (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

OS Frelsning 10,
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 hller reda p vilken bild som
brjar 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 fr plats) kan man gra tv saker
lmna slutet av blocket tomt
ha halva bilden i det blocket och andra halvan i nsta
OS Frelsning 10,
Realtidssystem, Device Drivers

54

Multimediafiler och cachning


Anvnd inte LRU
Anvnd inte LRU
Anvnd inte LRU
...

OS Frelsning 10,
Realtidssystem, Device Drivers

55

Multimediafiler och cachning


Om tv anvndare ser samma film nstan
samtidigt kan man lta data ligga kvar efter
frsta filmens hmtning
Dock behvs en stor buffer eftersom filmen
tar 4-6 megabit per sekund

OS Frelsning 10,
Realtidssystem, Device Drivers

56

Multimediafiler och
diskarmsschemalggning
Om man har flera diskoperationer p k kan
man ordna om dem fr kade prestanda
Enligt SJF algoritmen skulle man alltid ta det
nrmaste hrnst, men d svlts vissa
operationer ut
Man kan dela upp operationerna i grupper och
optimera varje grupp fr sig
Hissalgoritmen lmplig fr varje grupp
OS Frelsning 10,
Realtidssystem, Device Drivers

57

Nsta frelsning
Fallstudie LINUX & Windows

OS Frelsning 10,
Realtidssystem, Device Drivers

58

You might also like