Now using atomics than the spinlock to protect concurrent changes of private data.
We only follow a single process, thus two processes won't even use the same scheme structure.
Only thing that is shared between execution paths is the tick counters. Instead of using spinlock, fault callback now atomically increments the current_tick_faults counter, while the timer handler atomically xchg's it with 0 (That is, extract its value and place 0 atomically).
I've done this as I caused a deadlock after Ctrl+C while zip was compressing kernel for a couple of minutes. Probably I've holded a lock somewhere when Ctrl+C'd, so now using atomics only.