Petru rezolva problema in lift, urcand spre birou. Aici il intampina colegul lui Radu.

“Am rezolvat problema”, spune fericit Petru. “Nu a fost deloc dificila, data viitoare poate gasesti una mai buna!”

“Lasa asta!”, exclama Radu. “Avem o problema reala, trebuie sa ma ajuti”.

 

C. Sincronizare

Radu lucreaza la un nou proiect pentru care are nevoie sa sincronizeze perfect 2 procese. Foloseste un script care porneste cele 2 procese, insa executia se realizeaza serial (porneste un proces, apoi urmatorul) asa incat cele 2 procese nu incep simultan. Mai exact, procesul 1 este pornit la un moment t1 si procesul 2 este pornit la t2, unde t1 < t2.

Fiecare process poate sa fie programat sa astepte un interval de timp pana sa inceapa executia si ambele au acces la ceasul sistemului.

Poate Radu sa gaseasca o strategie prin care operatiile realizate de cele 2 procese sa inceapa simultan ?

Nota: Nu se cunoaste exact diferenta de timp t2-t1, deci solutia imediata: procesul 1 asteapta un interval de timp t2-t1 pana la executie nu este corecta.

Sursa: problema originala (inspirata dintr-o situatie reala – credit: David P.)

 

 

Peter solves the problem in the elevator, going up to the office. Here is where his colleague Radu greets him.

"I have solved the problem," Peter says happily. "It was not difficult at all, think to a better one next time!"

"Not now!" sais Radu. "We have a real problem, you need to help me."

 

C. Synchronization

Radu works on a new project for which he needs to perfectly synchronize 2 processes. He uses a script that starts the 2 processes, but the execution is done serially (first starts a process, then starts the second), so the 2 processes do not start simultaneously. More specifically, process 1 starts at a time t1 and process 2 starts at t2, where t1 < t2.

Each process can be programmed to wait for some time before the actual execution starts and both processes have access to the system clock.

Can Radu find a strategy by which the actual execution of the two processes begin simultaneously?

Note: The exact time difference t2-t1 is not known, so the immediate solution: process 1 waits a time interval t2-t1 until execution is not correct.

Source: original problem (inspired by a real scenario – credit: David P.)

Vezi comentarii
Logheaza-te in site pentru a trimite solutii si comentarii
szabozoltan

"Mai exact, procesul 1 este pornit la un moment t1 si procesul 2 este pornit la t2, unde t1"

Propoziția nu e terminată.


ruxandra

Multumesc, a fost e eroare : t1 este mai mic decat t2.


ruxandra

Atentie! Diferenta intre timpp t1 si t2 nu este mereu aceasi, timpii t1 si t2 depinzand de mici intarzieri aparute din cauze aleatoare (e.x.: tehnice, incarcare, etc.). 


bburlacu

cele doua procese pot comunica intre ele?


ruxandra

In situatia reala nu. Pentru rezolvarea problemei insa, este o prezumtie pe care o poate face rezolvitorul.