We present a task model for adaptive real-time tasks in which a task's execution rate requirements are allowed to change at any time. The model, variable rate execution (VRE), is an extension of the rate-based execution (RBE) model. We relax the constant execution rate assumption of canonical real-time task models by allowing both the worst case execution time (WCET) and the period to be variable. The VRE model also supports tasks joining and leaving the system at any time. A schedulability condition for the VRE task model is presented that can be used as an on-line admission control test for the acceptance of new tasks or rate changes. Finally, a VRE scheduler was implemented in Linux as a loadable module, and several experiments demonstrate its correctness and analyze the overhead.