A Technique for Adaptive Scheduling of Soft Real-Time Tasks