I found this in “Understanding the Linux Kernel” (ULK). I believe I have seen a lot of analogies in computer science. But this one is “Simply the Best”. I am not going to put anything here except the original analogy in 4 sentences. Take a few seconds and try to see if this analogy could be the best you have ever seen.
- If a boss calls while the waiter is idle, the waiter starts servicing the boss.
- If a boss calls while the waiter is servicing a customer, the waiter stops servicing the customer and starts servicing the boss.
- If a boss calls while the waiter is servicing another boss, the waiter stops servicing the first boss and starts servicing the second one. When he finishes servicing the new boss, he resumes servicing the former one.
- One of the bosses may induce the waiter to leave the customer being currently serviced. After servicing the last request from the bosses, the waiter may decide to drop temporarily his customer and to pick up a new one.