Remember - midterm discussion tomorrow night at 8:30pm, same room as class. And with that, here's the shortest feedback followup ever. I guess deadlocks aren't the most interesting thing in the world, even if I do throw in some Reservoir Dogs pictures. What's the reserve rate for the Fed? http://www.e-analytics.com/bonds/fed18.htm Whoever said the reserve requirement for banks being 10% was correct. In fact, many of you said this on the feedback. Mea culpa. I guess it shows my age that I remember when the Fed reserve requirements were lower. Note, however, that it seems that certain types of accounts don't count - savings, CDs, etc. How many different resources are there, and why isn't it possible to number them all offline (for use with dynamic avoidance)? One could presumably number all resources offline. You'd probably want each file to have its own number, and each device to have its own number, etc. The problem isn't with the numbering, but rather, with the process of trying to grab them in the right order. Imagine a compiler that tries to do this - it would have to list out all of the files to compile, all of their headers, etc., etc., before starting to do any work. Likewise, imagine a program that reads input from the user or a script about what files to copy/delete/move/rename - it wouldn't know what to do until it got the data. Does ignoring deadlocks work acceptably? For some classes of applications, the answer might be yes. Earlier versions of one of the network drivers on Linux seemed to have a deadlock, but the chance of it being triggered was tied to the rate of traffic. So, most people with a DSL connection into their house only have short bursts of 1 Mbit/sec of traffic. I could somewhat regularly lock up my system when stress-testing it with about 80 Mbit/sec of traffic. However, most people can't even generate that much traffic, and were immune from the deadlock that was lurking. How do you fix priority inversion? Since it's caused by the low-priority process grabbing a lock that the high-priority process needs, the simplest way of "fixing" the problem is to detect it and then schedule the low-priority process instead of the high-priority process. Another way of "fixing" it is to periodically randomly pick a process to run instead of using strict priority. The former's probably preferred from an elegance standpoint.