Fixed-priority scheduling of real-time systems using utilization bounds