Alexei lebedev
This presentation is the property of its rightful owner.
Sponsored Links
1 / 21

Linux i Temps Real PowerPoint PPT Presentation


  • 88 Views
  • Uploaded on
  • Presentation posted in: General

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ó.

Download Presentation

Linux i Temps Real

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Alexei lebedev

Alexei Lebedev

Linux i Temps Real


Qu s un s o de 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ó.

  • 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.


Qu aporta

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).


Tipus de temps real

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.


Com mesurar ho

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.


Linux s un s o de temps real

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.


Doncs per qu fer un seminari sobre linux

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.


Per qu linux es comporta aix

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.


Per qu linux es comporta aix1

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.


Per qu linux es comporta aix2

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.


Una possible soluci

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.


Especificacions posix

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.


Rtlinux

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.


Rtlinux1

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.


Rtlinux2

RTLinux

  • Flux de dades i control.


Una soluci m s general

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.


Una soluci conceptualment m s senzilla per

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.


Quin resultat donen

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.


El kernel actual

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.


Per qu no s han incl s

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.


Bibliografia

Bibliografia

  • http://www.kernel.org

  • http://fsmlabs.com/community/


  • Login