Exercises, Chapter 1: Overview, Flynn and McHoes, Understanding Operating Systems, Second Edition, PWS Publishing Co. (1997)

Exercise 1:  Name five current operating systems and the computers or configurations each operates.
UNIX:  System developed by Bell Labs, GE, and MIT to be portable and simple.  It is a derivative of MULTICS.  It is available on a wide variety of machines.  This is the operating system most common in computer science, engineering, scientific, institutional computer services, and networking environments.
Solaris by SUN Microsystems is a commercial UNIX tailored for Internet using TCP/IP.  This runs on SUN SPARC Stations and Intel machines.
Linux is a commercial UNIX system for Intel-compatible systems.
AIX:  IBM UNIX operating system that runs on the IBM RS/6000 series workstations.
Windows 3.1 / 3.11 / 95 / 98 / NT / 2000 :  The operating systems by Microsoft most common for the Intel-compatible (formerly IBM-compatible) microcomputers (Personal Computers).
MacIntosh OS:  The proprietary operating system by Apple Corp. for the Apple MacIntosh microcomputers.  It has its genesis with the Xerox Star system, which Apple first introduced with its MacIntosh Lisa in 1984.
VAX/VMS: Digital Equipment Corporation operating system for VAX machines.
IBM/MVS: IBM proprietary system for IBM mainframes.
HASP:  1970s operating system for IBM 360/65.
CP/M: late 1970s and early 1980s operating system for Z80-based microcomputers.

Exercise 2:  Name the five key concepts about an operating system that you think a user needs to know and understand.

  1. User Command Interface
  2. Processor Manager
  3. Memory Manager
  4. Device Manager
  5. File Manager

Exercise 3:  Explain the impact of the evolution of computer hardware with respect to the evolution of operating systems software.

As experience with a combination of hardware and software matures, users and engineers gain new visions of what they would like to do next. New hardware is usually paralleled by operating system and system software development. Fielding of new systems results in user and operator feedback that leads to operating system and system software improvement. Innovative users try equipment and software for applications not envisioned by the hardware and software vendors.  Successes lead to additional sales and use, which leads to further supporting software development.  If there is perceived economic benefit, the hardware vendor will seek ways to adapt to the new needs without necessarily sacrificing basic capabilities.  Often this consists of creating a more efficient interface.

Exercise 4:  Explain the fundamental difference between interactive, batch, and real-time systems.

An interactive system permits a user to issue commands to the operating system and receive a rapid response.  The user may make inputs to a program or process that is being executed, which alters the progress of the execution.

In a non-interactive system, the user must predefine all inputs.  Once the program is invoked, it completes execution without opportunity of intervention from the user.  Some time-sharing systems (including GE Time Share) permitted program editing interactively, but ran the programs non-interactively.  Scheduling and executing groups of  non-interactive programs together is called batch-mode.

A real-time system is one that receives inputs when submitted and /or provides outputs that can be used almost immediately.  Real-time systems are systems that accept input and respond "fast enough".  Real time systems have delays between receiving inputs and producing outputs, even if these delays are measured in nanoseconds.  It is necessary that a real time system can complete one processing cycle between each new input.  A real time system must also respond fast enough to meet demands placed on it.  A real-time system may monitor patterns of inputs to predict the appropriate output at a specific point in time.  A real-time system for a numerically controlled lathe does not have to be as fast as a real-time system in some multiple input signal processing applications.

Exercise 5:  List three situations that might demand a real-time operating system and explain why.

Real-time operating systems are designed to handle stochastic events.

Real-time systems are found in systems such as numerically controlled machinery in a manufacturing plant, or a control system for a mobile object.  Software in such systems implement concepts from the discipline called Automatic Control.  This discipline is usually a sub-discipline of electrical engineering.

A seismic recording and analysis system is often a real-time system.

The air traffic control system is a combination of a real-time system with an interactive system.

Exercise 6:  Give an example of an organization that might find batch-mode processing useful and why.

The U.S. Census Bureau needs to batch process census data.  You need to wait until the data is all collected before you do the final analysis.

A payroll department in a company preparing monthly pay checks can simplify its operation by using pre-established cut-off dates for information to permit efficient processing of the payroll transactions.

An engineering firm design department may consider producing final design drawings in a batch job.  At this point in time, all the available latest information has to be brought together for planning the production lay-out and advance ordering of materials.

Exercise 7:  Briefly compare active and passive multiprogramming.

Passive multiprogramming is characterized by event generated interrupts that cause task switching.  These events are usually the result of a program-initiated action, such as sending a record to an output device, or dividing by zero.

Active multiprogramming is characterized by time generated interrupts that cause task switching.  The time interrupt is generated by a system clock monitored by the operating system.

Exercise 9:  Draw a system flowchart illustrating the steps performed by an operating system as it executes the instruction to back up a disk on a single-user computer system.  Begin with the user typing the command on the keyboard and conclude with the display of the result on the monitor.

Answers will vary.  The purpose of the question is to get you thinking about details of what has to happen.  For the rest of the course, we will be filling in the details.

The value of the pyramid model is that it is a useful reminder of the various functions that need to be done.  The difficulty with the pyramid model is it implies that these functions are done independently.  Instead, there is a coordinating function that is done by the operating system.  You can visualize this as what goes on inside the pyramid rather than just at the nodes of the pyramid.  The nodes of the pyramid can be thought of as management tables with associated routines to make entries into the tables, extract entries from the tables, etc.  These are objects which are used by the operating system.

The Device Manager allocates the keyboard to act as the user's input device to the User Command Interface.

User types the command into keyboard:  BACKUP DiskA to DiskB.

The Device Manager senses inputs interrupt from the keyboard and passes these to the User Command Interface.

The User Command Interface decodes the keyboard input and initiates the disk copy utility to begin the disk backup.

The File Manager locates the utility program.

The Memory Manager allocates memory to the utility program.

The Device Manager allocates the disk containing the utility program to the Command Interpreter portion of the User Command Interface to retrieve the utility program.

The Processor Manager loads the program counter for the disk copy utility program which initiates execution of the disk copy utility.

The Memory Manager allocates memory for buffer space for temporary storage of data read from disk A while waiting for storage onto disk B.

The Device Manager polls disk A to determine if a disk is in the drive. If no disk is in the drive, it issues a drive mount request. If a disk is in the drive, it sends a success signal to the utility program. The Device Manager polls disk B to determine if a disk is in the drive. If no disk is in the drive, it issues a drive mount request. If a disk is in the drive, it sends a success signal to the utility program.

Until there is no more data to read from disk A, the utility program for copying a disk directs the Device Driver to fetch data from disk A and place it into the buffer.

The Process Manager directs the Device Driver to fetch data from the buffer and send it to disk B.

The Device Driver tells the utility program that all of disk A has been read into the buffer.

The Device Manager closes disk A.

The utility program directs the Device Manager to flush the buffer contents to disk B.

The Device Manager closes disk B.

The Memory Manager deallocates buffer memory.

The utility program tells the Processor Manager that the copy procedure is done.

A lot more detail can be added to this.