Subversion Repositories shark

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

FSF demo for S.Ha.R.K

test1.c:

This demo shows the main feature of service contract implementation.

A set of 4 threads is created using the pthread standard functions.
At the beginning, these threads run without temporal restrictions 
and they don't respect any deadline.

Two service contracts are initialized and set

fsf_initialize_contract(&contract1);
fsf_initialize_contract(&contract2);
fsf_set_contract_basic_parameters(&contract1,&budget1,&period1,NULL,NULL,FSF_DEFAULT_WORKLOAD);
fsf_set_contract_basic_parameters(&contract2,&budget2,&period2,NULL,NULL,FSF_DEFAULT_WORKLOAD);

whit the button 'q','w','e' you can respectively 
negotiate contract for a server

[err = fsf_negotiate_contract(&contractX,&serverY);]

'q' -> negotiate contract1 for server1
'w' -> negotiate contract2 for server2
'e' -> negotiate contract1 for server3

now with button '1','2','3','4' you can bind the thread to a server

[err = fsf_bind_thread_to_server(serverY,jZ);]

'1' -> bind thread1 to server1
'2' -> bind thread2 to server2
'3' -> bind thread3 to server3
'4' -> bind thread4 to server2

threads will start to respect the assigned budget. It's possible
to bind more threads to one server. The local scheduler specified in the
contract define how the threads will get the server resources.

With '5','6','7','8' the thread is unbind from the server

[err = fsf_unbind_thread_from_server(jZ);]

With 'r','t','y' a server is removed

[err = fsf_cancel_contract(&server2);]