Overview



a.out format



kernel file and memory formats



booting



I/O hardware



Device Controllers



Device Controller Example



Programming a Device Controller



Specific Example Device Controller



structure of I/O software



Device Drivers



device-independent software



user software I/O



deadlocks



conditions for deadlock



solutions for deadlock

  1. don't try too hard to avoid it. E.g. if the situation is really unlikely, and other things cause greater unreliability, don't waste effort trying to avoid deadlock
  2. prevent processes holding resources from waiting, e.g. by requesting all resources at once, or by failing (gracefully) any process whose request cannot be granted
  3. allocate all resources in a fixed order, e.g. all printers before all disk drives, and devices of one class in ascending order. This works if (a) all processes obey this, and (b) such an order can be defined
  4. if resource requests are known in advance, can compute in advance (using the Banker's algorithm whether granting a request would make the system unsafe, and therefore refusing or delaying the request
I cannot provide a creative commons license for this page because it includes an image I don't own. You may apply the creative commons license from Jan 25th to the text of this page, but not to the image.