The cache coherency in particular makes the 42 operating system's job far easier. It also defines a procedure for starting up the 47 other processors. For any kernel to function in a sane manner it has to provide internal 52 locking and protection of its own tables to prevent two processes updating 53 them at once and for example allocating the same memory block. There are 54 two strategies for this within current Unix and Unixlike kernels. 55 Traditional Unix systems from the earliest of days use a scheme of 'Coarse 56 Grained Locking' where the entire kernel is protected by a small number of 57 locks only.
Some modern systems use fine grained locking.
Because fine 58 grained locking has more overhead it is normally used only on 59 multiprocessor kernels and real time kernels. No process running in 64 kernel mode will be pre-empted by another kernel mode process unless it 65 voluntarily sleeps. This ensures that blocks of kernel code are 66 effectively atomic with respect to other processes and greatly simplifies 67 many operations. A process in kernel mode may 69 disable interrupts on the processor and guarantee such an interruption will 70 not occur. The final guarantee is that an interrupt will not be pre-empted 71 by a kernel task.