Hi /g/.
Can anyone explain to me how timers in computers work and/or what the NOOP instruction does?
Let's say a processor is running at 49,161 MIPS, does that mean that if I tell it to do something in 5 minutes or at a specific time it just keeps running 49,000M NOOP instructions and checks whether the next scheduled time has arrived to execute something? Why doesn't it burn up? What does the NOOP do?
Also, how would one implement a scheduler that runs a task at some time (e.g. cron in unix-based OSes or the Task Scheduler in Windows)?
Thanks dudes
>>55631705
>Hi /g/.
>Can anyone explain to me how timers in computers work and/or what the NOOP instruction does?
Timers are interrupts. NOOPs are "no operation". They are typically used when no work needs to be done or you're waiting for a reg forward from later in the pipeline.
>Let's say a processor is running at 49,161 MIPS, does that mean that if I tell it to do something in 5 minutes or at a specific time it just keeps running 49,000M NOOP instructions and checks whether the next scheduled time has arrived to execute something? Why doesn't it burn up? What does the NOOP do?
No, it sets an interrupt which fires at the specified time. That stops the processor and jumps to the exception handler.
>Also, how would one implement a scheduler that runs a task at some time (e.g. cron in unix-based OSes or the Task Scheduler in Windows)?
Not sure what you're asking.
>>55631743
Ok, but then how does the interrupt's timer work? How is that "counting" the time?
>>55631751
There are two ways. In software, most OS have a sys call for timers and sleeping. You just make a sys call and the processor pits that thread to sleep for the specified time.
In hardware, you have a reg that holds "ticks". These increment atomically each clock cycle and is usually tied to processor frequency