Novel techniques for controlling a processor's clock frequency so as to prevent overheating are disclosed. The invention attempts to maximizes the processing speed of the processor while preventing overheating. In a preferred embodiment, the invention monitors a processor's activity and its temperature. When there is no activity for the processor, a slowed clock frequency is used, thereby saving power and lowering the thermal heat produced by the processor. On the other hand, when there is activity for the processor, a fast clock frequency is used. However, when prolonged activity (i.e., sustained fast clock frequency) causes the processor's temperature to become dangerously high for proper operation, the clock frequency is reduced so as to maintain processing speed at a reduced speed while preventing overheating. The invention may be implemented as an apparatus or a method.