Multi-core architectures have received significant interest as thermal and power consumption problems limit further increase of speed in single-cores. In the multi-core research community a considerable amount of work has been done on real-time multi-core scheduling algorithms where it is assumed tasks are independent. However, synchronization of dependent tasks executing on multi-cores has not received as much attention, even though typical real-time systems in practice include tasks that share resources. In this paper we propose a synchronization protocol for hierarchically scheduled multi-core systems, and we present a comparison between the presented protocol and existing multi-core synchronization protocols. The presented protocol groups dependent tasks that directly or indirectly share mutually exclusive resources into independent components. Within a component dependent tasks use classical uniprocessor synchronization protocols, such as the Stack-based Resource allocation Prot...