Operating System Components and Services, Continued

Tom Kelliher, CS42

Sept. 13, 1996


  1. Hardware

    1. Uniprocessor --- single CPU

    2. Multiprocessor --- multiple CPU's, shared memory

    3. Distributed system --- multiple CPU's, no shared memory (How is a hypercube classified?)

  2. Software

    1. Process (Job, Task) --- Activity generated by a program executed by a sequential processor. Single thread of control. Deterministic.

      Is this definition bullet-proof? Can a process be associated with more than one program? Can a program be associated to more than one process?

    2. Sequential Program --- program executed by a single process

    3. Parallel or Concurrent Program --- program executed by several processes

      If two people run vi, does that make vi a concurrent program? What is sharable there (this distinguishes concurrency, as does working toward a common goal)?

  3. O.S. Classification

    1. Based on interaction with the user

      1. Classical --- batch, timesharing

      2. Special Purpose --- database, real-time

    2. Based on number of jobs and processors

Example of Process Control --- Unix

Unix shell and commands. Foreground and background processes:

   while (!EOF)
      read cmd
      parse cmd
      fork cmd
      if (! background command)
         wait cmd


Pipeline: c1 | c2

set up environment and pipeline
fork c1
fork c2

Operating System Structures



Weak layering:


Traditional kernel:

MS Windows NT 4.0

Micro kernel:


A strictly layered system:

Virtual Machines

Lowest software level (between kernel and hardware) provides a virtual machine interface to multiple, independent kernels. IBM VM.

  1. Support for OS development alongside a production system.
  2. Virtual user/monitor mode, real user/monitor mode.
  3. How is a disk operation carried out?
  4. Virtual Machine is a simulation:
  5. How are physical devices (a disk) ``virtualized?''

Operating System Implementation

  1. Implementing OSs in HLLs:
  2. Running make to build a Unix kernel.
  3. BSD/OS boot procedure:
    1. BIOS.
    2. Boot block on 1st hard disk.
    3. /boot.
    4. /bsd.
    5. Autoprobing.
    6. init.
    See boot(8).

Thomas P. Kelliher
Fri Sep 13 09:31:42 EDT 1996
Tom Kelliher