The UNIX clock/timer interrupt

The book The Design of the Unix Operating System speaks of a clock or timer that is used in scheduling. The clock generates interrupts that update priority information for processes and preempt processes in a round-robin fashion. It's apparent that this "clock" is not the same thing as the CPU clock, since is only generates 50 to 100 signals every second, as opposed to millions or billions of pulses a second. It's also apparent that it's not the same thing as the mechanism that keeps track of the date - that is to say, the number of seconds since midnight before January 1, 1970. So what exactly is it? Is it a pulse generator? Does it store a value that increments? Is it synced with the CPU clock somehow? How does it work? And how can it be "reset"?

The IBM PC has had a pulse generator/timer from the beginning (which also used to drive the PC speaker.) In the olden days, before LSI, it was its own separate chip attached to the data bus. It was very flexible, but generally configured to generate hardware interrupts at 18ms intervals. This hardware interrupt is an IRQ, pretty much hardwired into the CPU, causing it to stop whatever it's doing and jump to a hardwired location in RAM. The OS can do whatever it pleases with that interrupt by putting code in that location.

The hardware is going to be very different on non-PC architectures but the idea is the same, a pulse generator wired to the CPU.

If you're really curious about historical PC architecture, and have a bent towards electronics, I suggest The 8088 book. The 8088 as much as anything else is responsible for why the PC is the way it is.