linux i temps real

21
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d’Arquitectura de Computadors (Seminaris de CASO) Autor Linux i Temps Real Alexei Lebedev

Upload: makya

Post on 12-Jan-2016

54 views

Category:

Documents


0 download

DESCRIPTION

Alexei Lebedev. Linux i Temps Real. Què és un S.O. de Temps Real?. Un sistema de Temps Real (Realtime) assegura que el temps de resposta serà inferior a un temps fixat segons les necessitats de l’aplicació. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Linux i Temps Real

CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d’Arquitectura de Computadors

(Seminaris de CASO)

Autor

Linux i Temps Real

Alexei Lebedev

Page 2: Linux i Temps Real

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

2

Què és un S.O. de Temps Real? Un sistema de Temps Real (Realtime) assegura

que el temps de resposta serà inferior a un temps fixat segons les necessitats de l’aplicació.

El temps de resposta normalment es refereix a l’interval que hi ha entre un esdeveniment (interrupció...) fins que aquest és atès.

També s’anomena latència.

Page 3: Linux i Temps Real

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

3

Què aporta? Capacitat per atendre serveis que fins fa ben poc requerien

hardware especialitzat. Un sistema de computació convencional amb capacitats de

temps real (PC + S.O. Temps Real, ...) és relativament molt barat, i és molt més flexible que un sistema especialitzat.

Aplicacions Multimèdia, so video, és senzill muntar un estudi semi-professional amb un pressupost baix.

Un efecte secundari (positiu) és que les interfícies gràfiques poden ser més agradables (resposta més ràpida).

Page 4: Linux i Temps Real

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

4

Tipus de Temps Real Hard Realtime: El sistema ha de complir sempre les

latències fixades, sinó els efectes poden ser desastrosos, com per exemple en centrals nuclears, llançament de satèl.lits, control aèri, etc...

Soft Realtime: El sistema hauria de respondre sempre en el plaç previst, però si no ho aconsegueix l’únic efecte és una degradació del servei. Alguns exemples són les aplicacions d’àudio i vídeo.

Page 5: Linux i Temps Real

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

5

Com mesurar-ho? És obvi que la latència no serà constant en un sistema, i

depèn de molts factors, com la càrrega de la CPU, la utilització dels busos, les interrupcions a atendre, el tipus de programes...

Dos indicadors que s’utilitzen són la latència mitjana i la pitjor.

Normalment interessa tenir una latència mitjana el més baixa possible, però en un sistema amb hard realtime una lat. mitjana baixa no compensarà un cas pitjor massa alt.

Page 6: Linux i Temps Real

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

6

Linux, és un S.O. de Temps Real? Les latències en un sistema Linux convencional en un PC

actual poden arribar en algun cas a ser de més de 300 ms, tot i que és molt poc freqüent.

En una aplicació d’àudio, en un sistema actual amb no massa càrrega, les elevades latències poden arribar a sobrepassar el llindar de l’audició humana, fent-lo perceptible (i molt molest).

Sembla que el S.O. Linux estàndard no és gaire adequat per aplicacions de Temps Real.

Page 7: Linux i Temps Real

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

7

Doncs... Per què fer un seminari sobre Linux? En altres S.O. sobretot comercials en aquest cas no

tindríem cap més alternativa que buscar-ne un altre. Però Linux és diferent, documentació i codi font

disponibles i molta gent disposada a treballar-hi. És força complicat fer els canvis necessaris al Kernel un

mateix. Ja existeixen diverses solucions per resoldre el problema.

Page 8: Linux i Temps Real

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

8

Per què Linux es comporta així? El planificador de processos està orientat a optimitzar el

Throughput, no les latències. Es dóna prioritat al rendiment, i es deixa en segon terme la velocitat de resposta del sistema.

Memòria virtual. Si una pàgina no és a la memòria física, s’ha d’anar a disc a buscar-la, amb la conseqüent pèrdua de temps.

Page 9: Linux i Temps Real

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

9

Per què Linux es comporta així? Moltes estructures del kernel estan bloquejades per

exclució mútua durant molt temps, de manera que el processos de T.R. s’han d’esperar a que s’alliberin.

El planificador és “just”, i pot arribar a donar temps de CPU als processos de més baixa prioritat fins i tot quan hi ha un procés de T.R. esperant-se.

Les cues per accedir al recursos hardware poden no ser FIFO, sinó que intenta optimitzar els temps d’accés (moure els capçals del disc dur, etc). Això pot perjudicar un procés de T.R. encara que hagi estat el primer a accedir-hi.

Page 10: Linux i Temps Real

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

10

Per què Linux es comporta així? El sistema no s’apropiarà de la CPU quan està executant

una crida al sistema. Fins i tot quan el procés de més baixa prioritat estigui al mig d’un fork, tots els altres processos i esdeveniments s’hauran d’esperar que acabi.

Hi ha recursos de sistema limitats, com per exemple buffers, i si no n’hi ha de disponibles, qualsevol procés que en necessiti un s’haurà d’esperar.

Page 11: Linux i Temps Real

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

11

Una possible solució... Linux ja suporta un conjunt d’especificacions POSIX, que en

teoria permeten aconseguir temps de resposta més apropiats per a sistemes de T.R.

Crides per bloquejar pàgines de memòria per impedir que el sistema de Memòria Virtual les posi al disc, evitant les seves enormes latències.

Crides al planificador de processos perquè sempre executi primer els processos de temps real i en un ordre predible.

Page 12: Linux i Temps Real

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

12

Especificacions POSIX Els estudis mostren una certa millora en les latències. Té sistemes de comunicació de processos més ràpids que

els estàndard. Dóna tanta prioritat als processos de T.R. tant en temps de

CPU com en pàgines de memòria física que la resta del sistema se’n ressenteix.

Encara no és prou ràpid per moltes aplicacions. Molts dels problemes descrits anteriorment encara queden

pendents de resoldre.

Page 13: Linux i Temps Real

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

13

RTLinux Afegeix una capa de software entre el kernel i el controlador

d’interrupcions. Quan salta una interrupció, no la captura el kernel, sinó que

ho fa el subsistema RTLinux, ignorant les inhibicions d’aquestes.

Intenta que totes les crides dels processos RTLinux siguin no bloquejants.

Els processos RTLinux disposen de memòria compartida que els processos normals poden llegir i escriure.

Page 14: Linux i Temps Real

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

14

RTLinux Disposa d’un planificador propi que alterna entre els

processos de T.R. i el planificador normal de Linux. La major part del subsistema RTLinux són mòduls que es

poden carregar dinàmicament al kernel.

Page 15: Linux i Temps Real

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

15

RTLinux Flux de dades i control.

Controlador d’interrupcions

Kernel en Temps Real

LinuxProcessos T.R.

Processos Linux

Fifos en T.R.

Page 16: Linux i Temps Real

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

16

Una solució més general Actualment existeix un patch del kernel que el modifica

permetent que els processos de sistema més prioritaris tinguin la oportunitat d’apropiar-se de la CPU quan estiguin a punt per executar-se, si es compleixen certes condicions respecte a les exclucions.

També modifica el codi de retorn de les interrupcions, de manera que en retornar d’aquestes s’invoca el planificador de processos.

Page 17: Linux i Temps Real

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

17

Una solució conceptualment més senzilla però... Un altre patch consisteix en una idea molt senzilla, si hi ha

grans regions del codi del kernel que s’executen sense donar oportunitat als altres processos, perquè no “descansar” de tant en tant i deixar-los la CPU?

És molt senzill d’explicar, però és difícil localitzar aquestes zones del codi, sobretot en un kernel de milions de línies!

Si es canvia codi del kernel s’ha de tornar a fer tota la feina de localitzar aquestes regions i modificar el codi.

Page 18: Linux i Temps Real

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

18

Quin resultat donen? Les tres últimes solucions aconsegueixen uns resultats molt

bons, iguals o millors que els altres S.O. populars disponibles per a les plataformes Intel i compatibles.

Les latències gairebé sempre són de l’ordre de microsegons.

Page 19: Linux i Temps Real

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

19

El kernel actual Encara no s’han inclòs aquestes modificacions ni al kernel

estàndard de Linux ni a l’experimental. En qualsevol moment alguna de les dues últimes podria ser

afegida al kernel experimental. Per utilitzar-los es requereix un kernel força modern,

modificar el codi font (procés automàtic) i recompilar.

Page 20: Linux i Temps Real

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

20

Per què no s’han inclòs? Totes disminueixen el rendiment en moltes situacions,

encara que el milloren en altres. Com que modifiquen el codi de les exclusions poden

generar errors nous. Molta gent no considera que les capacitats de temps real

siguin una prioritat.

Page 21: Linux i Temps Real

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

21

Bibliografia http://www.kernel.org http://fsmlabs.com/community/