Most dynamic real-time scheduling algorithms are open-loop in nature meaning that they do not dynamically adjust their behavior using the performance at run-time. When accurate workload models are not available, such a scheduling can result in a highly underutilized system based on an extremely pessimistic estimation of workload. In recent years, "closed-loop" scheduling is gaining importance due to its applicability to many real-world problems wherein the feedback information can be exploited efficiently to adjust system parameters, thereby improving the performance. In this paper, we first propose an open-loop dynamic scheduling algorithm that employs overlap in order to provide flexibility in task execution times. Secondly, we propose a novel closed-loop approach for dynamically estimating the execution time of tasks based on both deadline miss ratio and task rejection ratio. This approach is highly preferable for firm real-time systems since it provides a firm performance guarantee. We evaluate the performance of the open-loop and the closed-loop approaches by simulation and modeling. Our studies show that the closed-loop scheduling offers a significantly better performance (20% gain) over the open-loop scheduling under all the relevant conditions we simulated.