Sisteme de Operare - Semnale - Simulare Dronometru

Imagine preview
(9/10 din 1 vot)

Acest laborator prezinta Sisteme de Operare - Semnale - Simulare Dronometru.
Mai jos poate fi vizualizat un extras din document (aprox. 2 pagini).

Arhiva contine 2 fisiere doc, c de 2 pagini (in total).

Iti recomandam sa te uiti bine pe extras si pe imaginile oferite iar daca este ceea ce-ti trebuie pentru documentarea ta, il poti descarca.

Fratele cel mare te iubeste, acest download este gratuit. Yupyy!

Domenii: Calculatoare, Sisteme de Operare

Extras din document

PROBLEMA:

16. Sa se scrie un program care simuleaza un cronometru.

La pornirea programului se initializeaza timpul cu valoarea 0.

La primirea semnalului SIGUSR1 va afisa timpul intermediar. La primirea semnalului SIGUSR2 se va opri.

ASPECTE TERORETICE:

Pentru efectuarea simularii unui cronometru am folosit apelul sistem signal, care primind unul din semnalele SIGALARM, SIGUSR1, SIGUSR2 duce la rezolvarea problemei.

PREZENTAREA SOLUTIEI:

Pentru inceput am implementat o functie(rutina_alarm) care doar incrementeaza un contor, aceasta functie fiind apelata la un interval de timp de o secunda (datorita apelului sistem alarm(1)).

Functia rutina_sigusr1 este apelata de catre sistem, atunci cand acesta primeste semnalul SIGUSR1 prin apelul sistem signal(SIGUSR1,rutina_sigusr1)

- acesta apeland functia rutina_sigusr1 ca fiind o rutina de tratare a semnalului SIGUSR1.

Functia rutina_sigusr2 opreste cronometrul, astfel seteaza valoarea secundelor la 0.

- aceasta rutina de tratare (functie) se apeleaza de sistem, cand acesta primeste semnalul SIGUSR2 prin apelul sistem signal(SIGUSR2,rutina_sigusr2);

Cu ajutorul apelului alarm(1) se porneste un timer care dupa o secunda, da controlul semnalului SIGALARM, acesta avand ca rutina de tratare, functia de la inceput: rutina_alarm

Pentru ca, cronometrul sa functioneze continuu se foloseste o bucla (while(1)) si apelul sistem pause() care asteapta un semnal pentru o secunda, astfel:

- sistemul trimite semnalul SIGALARM si timpul incrementeaza

Fisiere in arhiva (2):

  • c.c
  • Semnale.doc

Alte informatii

Acest programel mic simuleaza un cronometru real, care la primirea unui semnal SIGUSR1 din linia de comanda (kill -SIGUSR1 PID) afiseza timpul intermediar la care a ajuns cronometrul, iar la primirea semnalului SIGUSR2 cronometrul se reseteaza.