Task placement and selection of data consistency mechanisms for real-time multicore applications