Let's take a quick review of all that we have learned about operating
systems in these lessons.
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.
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.
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.
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.
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.
Three common strategies for primary memory
allocation are Best fit, Worst fit, and First fit.
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.
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.