(Latest Revision: 
Sun Sep  8 19:51:00 PDT 2002
)  
Chapter One (A) -- Introduction -- Lecture Topics
-  For some operating systems EFFICIENCY (mainframes and mini's) is the
     primary goal.  
 -  In other cases the primary goal is CONVENIENCE to the user (Personal
     Computers).  
 -  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
     queueing system.  
 -  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
     operating systems.  
 -  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
     scheduling choices.  
 -  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,
     concurrency management.  
 -  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
     memory.  
 -  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.