Tokyo July, 2005
IntroductionIntroductiontoto
ACEACE
Bogdan Jeram([email protected])
European Southern Observatory
2
ALMA Project
Tokyo, July 2005 ALMA Common Software course
ACE Hardware
3
ALMA Project
Tokyo, July 2005 ALMA Common Software course
What is ACE
• Adaptive Communication Environment• freely available, open-source object-oriented (OO)
framework that implements many core patterns for concurrent communication software
• OS independent interface to OS services• Portable code• very lot of very useful functionality• TAO CORBA implementation based on ACE
4
ALMA Project
Tokyo, July 2005 ALMA Common Software course
ACS threads
• based on ACE threads
• integrated in ACS
• thread Manager
• See specific presentation and documentation
5
ALMA Project
Tokyo, July 2005 ALMA Common Software course
Protection/Locks Primitives
• ACE_Mutex– acquire()– release()– try_acquire()
• Several types of mutex:– ACE_Thread_Mutex– ACE_Recursive_Thread_Mutex– ACE_RW_Mutex (acquire_read, release_read)
– ACE_RW_Thread_Mutex
6
ALMA Project
Tokyo, July 2005 ALMA Common Software course
Synchronization
• implementation of Dijekstra’s “counting semaphores”
• ACE_Semaphores:– acquire()– release()– try_acquire()
7
ALMA Project
Tokyo, July 2005 ALMA Common Software course
ACE guard class
• improve application robustness
• constructor -> mutex acquired
• destructor -> mutex released
• ACE_Guard:– acquire()– release()– try_acquire()
8
ALMA Project
Tokyo, July 2005 ALMA Common Software course
ACE_Guard example
ACE_Recursive_Thread_Mutex m;
void write()
{ACE_Guard<ACE_Recursive_Thread_Mutex> guard(m);
// critical section
// explicitly: guard.release();
}
9
ALMA Project
Tokyo, July 2005 ALMA Common Software course
ACE strings
• ACE_CString:– Memory managment– Concatenation (using +)– Convention to C style string– …
• http://www.dre.vanderbilt.edu/Doxygen/Current/html/ace/classACE__String__Base.html
10
ALMA Project
Tokyo, July 2005 ALMA Common Software course
References
• ACE home page: http://www.cs.wustl.edu/~schmidt/ACE.html
• Several books
Top Related