1 / 13

Semnale Real-Time Posix 1.B

Semnale Real-Time Posix 1.B. Prep.Drd.Aritoni Ovidiu. Cuprins. Introducere -Real-Time, Posix, semnal Semnale Real-time - Functionalitatea semnalelor Mascarea semnalelor Trimiterea semnalelor Tratarea semnalelor Un exemplu Bibliografie. Introducere. Real-Time

mayda
Download Presentation

Semnale Real-Time Posix 1.B

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Semnale Real-Time Posix 1.B Prep.Drd.Aritoni Ovidiu

  2. Cuprins • Introducere -Real-Time, Posix, semnal • Semnale Real-time - • Functionalitatea semnalelor • Mascarea semnalelor • Trimiterea semnalelor • Tratarea semnalelor • Un exemplu • Bibliografie

  3. Introducere • Real-Time • Un sistem real-time este un sistem in care timpul de raspuns, timpul de intoarcere al unui rezultat este important si este proiectat pentru aplicatii real-time. În principal, sistemele de operare real-time sunt folosite mai ales pentru capacitatea lor de răspuns ridicată, decât pentru volumul total de muncă pe care îl pot efectua. • Aceste sisteme sunt folosite în general pentru echipamente embedded precum telefoane mobile, roboţi industriali, sau echipamente de cercetare ştiintifica.

  4. Introducere • POSIX • Pentru dezvolatrea de aplicatii este necesara definirea unor anumite standarde. POSIX (Portable Operatin System for Computer Environment) defineste interfata intre sistemul de operare si aplicatii. • Standardul este dezvoltat de IEEE si promoveaza portabilitatea codului sursa nefiind obligatoriu ca sistemul de operare suport sa fie un sistem UNIX. • Posix a trecut prin mai multe versiuni,dar ceea ce ne intereseaza este doar versiunea Posix 1.B, deeoarece contine extensiile Real-Time.

  5. Introducere • Semnalul • Un semnal reprezintă un scurt mesaj trimis unui proces la apariţia unui eveniment. • Semnale pot fi de doua tipuri: - Semnale standard: Semnalele standard nu sunt pastrate in cozi,si din aceasta cauza unele evenimente pot fi pierdute; aceste semnale nu sunt prioritizate - Semnale Real-Time: Semnalele Real-time sunt pastrate in cozi, astfel incat evenimentele nu sunt pierdute; sunt tratate in ordinea prioritatii; Registrul de semnale disponibile pentru o alicatie este extins.

  6. Semnale Real-time • Linux suporta 32 de semnale real-time, numerotate incepand de la 32 (SIGRTMIN) pana la 63 (SIGRTMAX). Programele ar trebui sa se refere la semnalele real-time folosind intotdeauna notatia SIGRTMIN+n. • Spre deosebire de semnalele standard, semnalele real-time nu au un scop,sau un inteles predefinit: intregul set de semnale real-time poate fi folosit pentru scopuri definite de aplicatii. • Actiunea de default pentru un semnal real-time netratat (unhandled),este sa termine procesul care primeste semnalul. • Daca doua semnale, un semnal standard si un semnal real-time, asteapta pentru un proces, Posix nu specifica nimic despre care dintre ele va fi ‘livrat’ primul. Linux,ca de altfel multe alte inplememtari, da prioritate semnalelor standard in acest caz.

  7. Semnale Real-time • Caracteristici: • Mai multe instante ale unui semnal real-time pot fi pastrate intr-o coada (queued). • Daca semnalul este trimis folosind sigqueue(2), atunci o valoare aditionala,suplimentara (chiar un intreg sau un pointer), poate fi trimisa impreuna cu semnalul. Semnale real-time multiple sunt lansate, sau emise, in aceeasi ordine in care au fost trimise. • Daca mai multe semnale real-time diferite sunt trimise unui proces, atunci ele sunt emise,lansate incepand cu semnalul care are cel mai mic numar

  8. Functionalitatea semnalelor • Semnalele POSIX corespund unui mecanism special de control al execuţiei proceselor. Acest mecanism constă în transmiterea unor mesaje speciale proceselor de către sistemul de operare. Semnalele pot fi considerate un fel de întreruperi software, deoarece mecanismul de generare şi tratare a lor este asemănător cu cel specific întreruperilor. • Ele sunt folosite nu atât pentru transmiterea de informaţii între procese, cât pentru controlul şi sincronizarea execuţiei proceselor.

  9. Mascarea semnalelor • Semnalele pot fi mascate sau blocate pe durata tratării unui semnal. Un proces poate stabili un filtru pentru semnalele pe care doreşte să le blocheze. • Mascarea unui semnal este diferită de ignorarea semnalului. • Apeluri sistem utile pentru blocarea semnalelor: • #include <signal.h> int sigaction(int signum, const struct sigaction *act,struct sigaction *oldact); int sigprocmask(int how, const sigset_t *set,sigset_t *oldset); int sigpending(sigset_t *set); int sigsuspend(const sigset_t *mask);

  10. Exemplu • Exemplul ales ilustrează modalitatea de sincronizare prin semnale a execuţiei a două procese aflate în relaţia părinte-fiu. Cele două procese trebuie să afişeze alternativ un mesaj, respectând o ordine bine stabilită: mai întâi procesul părinte, apoi procesul fiu, apoi din nou părintele şi aşa mai departe.

  11. Trimiterea semnalelor • Apelurile sistem care au ca efect trimiterea unui semnal către un proces:   #include <sys/types.h> #include <signal.h> int kill(pid_t pid, int semnal); int raise(int semnal); int sigqueue(pid_t pid, int semnal,   const union sigval valoare); union sigval { int   sival_int;       void* sival_ptr; };

  12. Tratarea semnalelor • Semnalele pot fi prinse, ignorate, blocate, deblocate, tratate si chiar mai mult decat atat. Semnalele in POSIX sunt destul de puternice. Semnalele real-time care sunt definite de POSIX 1.b sunt foarte utile,deoarece pot ‘duce’ date’, pot fi stocate intr-o coada (aceasta garantand livrarea lor catre un proces anume), si sa fie prioritizate. • Exista trei modalităţi: -tratare implicită, stabilită în mod automat de către sistemul de operare, având în mod normal ca efect terminarea execuţiei procesului; -ignorare, având ca efect continuarea execuţiei procesului ca şi când semnalul nu ar fi apărut; -tratare explicită, având ca efect execuţia unei funcţii specificată de către utilizator.

  13. Bibliografie [1]http://www.mitre.org/work/tech_papers/tech_papers_00/obenland_posix/obenland_posix.pdf [2]http://homepages.cwi.nl/~aeb/linux/man2html/man7/signal.7.html [3]http://www.ctr.unican.es/publications/mgh-1993a.pdf [4]http://www.ctr.unican.es/publications/mgh-1993a.pdf [5]http://www.lynuxworks.com/products/posix/signals.php3 [6] http://en.wikipedia.org/wiki/POSIX [7]]http://www.lynuxworks.com/products/posix/posix.pdf [8] http://labs.cs.utt.ro/labs/so/html/so7.html [9]http://www.upm.ro/~cbogdan/Bogdan_Crainicu/Sisteme_Operare/Laborator/Procese/Linux/signal/signals.pdf [10]https://os.obs.utcluj.ro/SO/Laborator/10.Semnale%20Linux.htm [11]http://node1.yo-linux.com/cgi-bin/man2html?cgi_command=signal(7) [12]http://www.cs.purdue.edu/homes/li/cs690Z/Outline/Schroll_chapter6.pdf [13] http://users.utcluj.ro/~somodi/so2/lab10.html

More Related