Operating Systems
Introduction to
        Operating System (OS)
         What is an Operating System (1)?
    •   A modern computer consists of:
         One or more processors
         Main memory
         Disks
         Printers
         Various input/output devices.
    •   Managing all these varied components
        requires a layer of software – the
        Operating System (OS).
2                    A. Frank - P. Weisberg
           What is an Operating System (2)?
    • An Operating System is a program that acts as
      an intermediary/interface between a user of a
      computer and the computer hardware.
    • OS goals:
      –   Control/execute user/application programs.
      –   Make the computer system convenient to use.
      –   Ease the solving of user problems.
      –   Use the computer hardware in an efficient manner.
3                       A. Frank - P. Weisberg
    Where does the OS fit in?
4         A. Frank - P. Weisberg
              Services provided by an OS
    • Facilities for program creation
      – editors, compilers, linkers, debuggers, etc.
    • Program execution
      – loading in memory, I/O and file initialization.
    • Access to I/O and files
      – deals with the specifics of I/O and file formats.
    • System access
      – resolves conflicts for resource contention.
      – protection in access to resources and data.
5                      A. Frank - P. Weisberg
             Operating System Types
    • Multiuser – Two or more users work with the
      computer at the same time
    • Multitasking – Two or more processes running
      at the same time.
    • Multithreading – Two or more parts of the
      same process running at the same time.
6
     Why are Operating Systems Important?
    • Important to understand and know how to correctly
      use when writing user applications.
    • Large and complex systems that have a high
      economic impact and result in interesting problems
      of management.
    • Few actually involved in OS design and
      implementation but nevertheless many general
      techniques to be learned and applied.
    • Combines concepts from many other areas of
      Computer Science: Architecture, Languages,
      Data Structures, Algorithms, etc.
7                     A. Frank - P. Weisberg
    • Motivation for Operating Systems (OS)
    • Introduction
      – What's an Operating System?
      – Computer/Operating System Overview
      – Evolution of Operating Systems
      – Functional/Protection Aspects
      – Operating System Structures
8                 A. Frank - P. Weisberg
    Computer Hardware Organization
9            A. Frank - P. Weisberg
             Computer System Components
     1. Hardware – provides basic computing resources
        (CPU, Memory, I/O devices, Communication).
     2. Operating System – controls and coordinates
        use of the hardware among various application
        programs for various users.
     3. System & Application Programs – ways in which
        the system resources are used to solve computing
        problems of the users (Word processors, Compilers,
        Web browsers, Database systems, Video games).
     4. Users – (People, Machines, other computers).
10                      A. Frank - P. Weisberg
     Hierarchical view of computer system
11              A. Frank - P. Weisberg
     Static View of System Components
12            A. Frank - P. Weisberg
     Dynamic View of System Components
13             A. Frank - P. Weisberg
     Layers of a Computer System
                 End
                 User
                                     Programmer
           Application
            Programs
              Utilities                   Operating-
                                           System
         Operating-System                 Designer
        Computer Hardware
14          A. Frank - P. Weisberg
                What Operating Systems Do
     • Depends on the point of view.
     • Users want convenience, ease of use and good performance
        – Don’t care about resource utilization.
     • But a shared computer such as mainframe or minicomputer
       must keep all users happy.
     • Users of dedicate systems such as workstations have dedicated
       resources but frequently use shared resources from servers.
     • Handheld computers are resource poor, optimized for usability
       and battery life.
     • Some computers have little or no user interface, such as
       embedded computers in devices and automobiles.
15                         A. Frank - P. Weisberg
              Views of an Operating System
     •    There are three classical views (in literature):
         1. Resource Manager – manages and allocates
            resources.
         2. Control program – controls the execution of user
            programs and operations of I/O devices.
         3. Command Executer – Provides an environment
            for running user commands.
     •    But one more modern view: the Operating
          System as a Virtual Machine.
16                       A. Frank - P. Weisberg
                      1. Resource Manager
     • Resource Manager:
        – Manages and protects multiple computer resources: CPU,
          Processes, Internal/External memory, Tasks, Applications,
          Users, Communication channels, etc…
        – Handles and allocates resources to multiple users or
          multiple programs running at the same time and space
          (e.g., processor time, memory, I/O devices).
        – Decides between conflicting requests for efficient and fair
          resource use (e.g., maximize throughput, minimize
          response time).
     • Sort of a bottom-up view.
17                          A. Frank - P. Weisberg
     OS as a Resource Manager
18        A. Frank - P. Weisberg
                  2. Control Program
     • Control Program:
       – Manages all the components of a complex
         computer system in an integrated manner.
       – Controls the execution of user programs and
         I/O devices to prevent errors and improper
         use of computer resources.
       – Looks over and protects the computer:
         Monitor, Supervisor, Executive, Controller,
         Master, Coordinator ….
     • Sort of a black box view.
19                   A. Frank - P. Weisberg
               3. Command Executer
     • Command Executer:
       – Interfaces between the users and machine.
       – Supplies services/utilities to users.
       – Provides the users with a convenient CLI
         (Command Language Interface), also called
         a Shell (in UNIX), for entering the user
         commands.
     • Sort of a top-down view.
20                  A. Frank - P. Weisberg
          Modern view: Virtual Machine (1)
     • Operating System as a Virtual Machine:
       – An interface between the user and hardware that
         hides the details of the hardware (e.g., I/O).
       – Constructs higher-level (virtual) resources out of
         lower-level (physical) resources (e.g., files).
       – Definition: OS is a collection of software
         enhancements, executed on the bare hardware,
         culminating in a high-level virtual machine that
         serves as an advanced programming environment.
          • virtual machine = software enhancement = extended
            machine = abstract machine = layer = level = ring.
21                       A. Frank - P. Weisberg
     Modern view: Virtual Machine (2)
22            A. Frank - P. Weisberg
            Definition of Operating System
     • There is no universally accepted definition.
     • “Everything a vendor ships when you order an
       operating system” is good approximation but
       varies widely.
     • “The one program running at all times on the
       computer” is the Kernel.
     • Everything else is either a system program
       (ships with the operating system) or an
       application program.
23                   A. Frank - P. Weisberg
     One Kernel Point of View
24        A. Frank - P. Weisberg
                 What is the OS/Kernel?
     • Is the Operating System just the Kernel (not
       the utilities and application programs)?!
     • The Command Line Interface (CLI) (or
       command layer/interpreter or shell) allows
       direct command entry by the user.
     • The shell used to be in the kernel but now is a
       (first between equals) utility outside of it:
       – Easy to change/debug
       – Many of them (sh, bsh, csh, ksh, tcsh, wsh, bash)
       – Possible to switch between them (chsh)
25                     A. Frank - P. Weisberg
          UNIX Shell and Utilities
                                                    User
     Utilities                              Shell
                 Kernel
          Hardware
26                 A. Frank - P. Weisberg
             CLI is the User OS Interface
     CLI allows direct command entry:
       – Sometimes implemented in kernel, sometimes by
         systems program.
       – Sometimes multiple flavors implemented – shells.
       – Primarily fetches a command from user and
         executes it.
       – Sometimes commands built-in, sometimes just
         names of programs; if the latter, adding new
         features doesn’t require shell modification.
27                     A. Frank - P. Weisberg
     UNIX System Layout
28      A. Frank - P. Weisberg
     General UNIX Architecture (1)
29           A. Frank - P. Weisberg
          General UNIX Architecture (2)
                       Other application programs
                       nroff       sh        who
            cpp                                     a.out
                                Kernel
                                                            date
          comp
     cc                         Hardware
            as                                               we
                 ld                                grep
                           vi           ed
                      Other application programs
30                       A. Frank - P. Weisberg