Sun Sep 8 19:51:00 PDT 2002
Chapter One -- Introduction -- Lecture Topics
- For some operating systems EFFICIENCY (mainframes and mini's) is the
- In other cases the primary goal is CONVENIENCE to the user (Personal
- STABILITY is a goal to think about too.
- In still other cases a delicate balance between CONVENIENCE and
EFFICIENCY is pretty important (workstations).
- OS as GOVERNMENT
- OS as RESOURCE ALLOCATOR -- this relates to the model of an OS as
- OS as CONTROL PROGRAM
- It is not feasible to use computer hardware directly. Software is
required to act as an intermediary between user and hardware. The OS
can be viewed as a collection of services that are needed in common by
all or most programs.
- It's important to realize that by learning about the history of
operating systems, you get better at understanding current operating
systems and the future of operatings systems. In other words, it's
(probably) relevant to you the student to know about the history of
- Important themes in OS development:
- Interrelationship of hardware development with OS development
- The manner in which the quest for greater CPU utilization drove
the development of operating systems.
- Earliest operating systems were simple job-sequencers. Batching
reduced set-up time. Disk drives allowed for a job pool and more
- Multiprogramming was development pushed into existence by the need for
greater CPU utilization. A "QUANTUM LEAP" in sophistication of the OS
was required -- e.g. context switching, memory management, scheduling,
- Time-sharing was a "natural" follow-on to multiprogramming that
allowed a return to "interactive" computing.
- Time-sharing tends to make greater demands for swapping and virtual
- Traditional time-sharing requires implementing a file system -- not
the same as just the ability to write and read disk sectors.
- At first security and protection was a low priority for personal
computers. Now that networked and multitasking personal computers are
common, security and protection has become a high priority.
- Discuss how worms and viruses are rendered less powerful in
environments where there is good file protection and secure separation
of user privileges.
- Multiprocessor systems have hardware that offers certain advantages --
increased throughput; economy of scale through sharing of memory,
peripherals, and power supplies; increased reliability; fault
tolerance; and graceful degradation. However it is quite a challenge
to design an operating system for a multiprocessor, especially a
(desirable) completely symmetric system. "Virtually all modern
operating systems ... now provide support for SMP."
- Many computers are now intended to remain connected to a network and
function either primarily as servers or clients. Operating system
designs have been adapted to optimize the performance of such
computers -- network operating systems and distributed operating
systems. This is an active area of operating system research today.
- Clustered systems are a form of redundancy that provides fault
tolerance. Cluster technology is an area of active development.
- Operating systems for real-time applications have special
requirements. "A real-time system has well-defined, fixed time
constraints. Processing must be done within the defined
constraints, or the system will fail." Keep in mind that "real-time"
is not just about being able to do things quickly. Consider
the requirements of a computing system that plays a video -- each
frame is supposed to appear and disappear at a certain "objective"
time -- a time as measured "out there" in the world of the audience.
The system fails if it changes a frames too late or too soon.
- It is interesting to notice when the same OS problem "pops up" in
different eras. Currently programmers for handheld computers are
struggling to work with a very limited physical memory of perhaps as
little as 512KB. This same problem was faced by programmers of the
early mainframes, the early PC's, and embedded systems.
- Feature migration -- "... the features developed for a large mainframe
system have moved to microcomputers over time.