Cache-Aware Partitioned EDF Scheduling for Multi-Core Real-Time Systems