1 / 10

Introduction to ACE

Introduction to ACE. Bogdan Jeram (bjeram@eso.org) European Southern Observatory. ACE Hardware. What is ACE. A daptive C ommunication E nvironment freely available, open-source object-oriented (OO) framework that implements many core patterns for concurrent communication software

Download Presentation

Introduction to ACE

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. IntroductiontoACE Bogdan Jeram (bjeram@eso.org) European Southern Observatory Tokyo July, 2005

  2. ACE Hardware ALMA Common Software course

  3. 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 ALMA Common Software course

  4. ACS threads • based on ACE threads • integrated in ACS • thread Manager • See specific presentation and documentation ALMA Common Software course

  5. 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 ALMA Common Software course

  6. Synchronization • implementation of Dijekstra’s “counting semaphores” • ACE_Semaphores: • acquire() • release() • try_acquire() ALMA Common Software course

  7. ACE guard class • improve application robustness • constructor -> mutex acquired • destructor -> mutex released • ACE_Guard: • acquire() • release() • try_acquire() ALMA Common Software course

  8. ACE_Guard example ACE_Recursive_Thread_Mutex m; void write() { ACE_Guard<ACE_Recursive_Thread_Mutex> guard(m); // critical section // explicitly: guard.release(); } ALMA Common Software course

  9. 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 ALMA Common Software course

  10. References • ACE home page: http://www.cs.wustl.edu/~schmidt/ACE.html • Several books ALMA Common Software course

More Related