Serializability schedules: can someone help me understand it?
I just invented a lame example that might help.

Have you ever driven by a gas station while they are changing the prices?  (And the prices are big numerals that need to be taken down and new numbers put up.)

There can't be two guys changing the same price at the same time -- exclusive lock.

Everyone riding by can read the numbers -- shared lock (sort of).  But, if you want to get the price you saw, and don't want it to change before you pump your gas, it gets more complex.  You want the shared lock to prevent changing the price until you are finished with your "transaction" (filling your tank at the price you saw).

In my lame example, you can't really take out a shared lock, except with a "dirty read".  "Dirty read" is a flavor of "transaction isolation". 
 The price can change while after you see the price and before you pump your gas.  With a stronger isolation, you will get the price you saw.