Let's take a quick review of all that we have learned about operating systems in these lessons.

  1. In the introduction, we saw that software can be roughly divided into two groups: application software and system software. Operating systems are a type of system software that allow applications to interface with computer hardware. Four major categories of operating systems are batch, timesharing, personal computing, and dedicated.

  2. Resources are any objects that can be allocated within a system, and the operating system is responsible for managing them. Some resources such as primary memory can be space-multiplexed while other resources such as the CPU must be time-multiplexed.

  3. A process is an executing program. Since most computers allow multiple processes to execute simultaneously, the operating system must manage the order in which they execute. Three examples of process scheduling algorithms are First Come First Serve, Round Robin, and Shortest Process Next.

  4. Synchronization involves the orderly sharing of system resources by processes. The operating system must ensure that mutually exclusive access is granted to a processes using a critical resource. One way to do this is through the use of semaphores, software flags which indicate whether a critical resource is available.

  5. Three conditions are necessary for deadlock to occur in a system: (1) mutual exclusion, (2) hold-and-wait, and (3) no preemption. By attacking one of these three conditions, modern operating systems handle deadlock problems.

  6. Three common strategies for primary memory allocation are Best fit, Worst fit, and First fit.

  7. Virtual memory allows systems to execute programs which exceed the size of primary memory by dividing programs into sections called pages which can be loaded into sections of memory called page frames. Policies for determining which pages to load and remove from memory include Random Replacement, First In First Out, Second Chance, Least Recently Used, and Least Frequently Used.

  8. The file manager is responsible for maintaining secondary storage. Storage blocks in secondary storage can be managed using one of at least three methods: Contiguous Allocation, Linked Allocation, and Indexed Allocation.