Study Notes on Operating Systems

About the Presentations

  • The presentations cover the objectives found in the opening of each chapter.

  • All chapter objectives are listed in the beginning of each presentation.

  • You may customize the presentations to fit your class needs.

  • Some figures from the chapters are included.

  • A complete set of images from the book can be found as part of the Instructor Resources.

Course Technology

  • Publisher: CENGAGE Learning™

  • Title: Understanding Operating Systems

  • Edition: Seventh Edition

  • Chapter: 1

  • Topic: Introducing Operating Systems

Learning Objectives

  • After completing this chapter, you should be able to describe:

    • Innovations in operating systems development

    • The basic role of an operating system

    • The major operating system software subsystem managers and their functions

    • The types of machine hardware on which operating systems run

  • Continuing with the objectives:

    • The differences among batch, interactive, real-time, hybrid, and embedded operating systems

    • Design considerations of operating systems designers

Introduction

  • Definition of Operating Systems:

    • Manage computer system hardware and software.

  • Focus of the text:

    • What they are

    • How they work

    • What they do

    • Why they do it

  • This chapter briefly describes the workings of operating systems.

What Is an Operating System?

  • Computer system consists of:

    • Software (programs)

    • Hardware (tangible machine/electronic components)

  • Definition of an operating system:

    • The chief software component managing all hardware and software.

    • Controls:

    • Every file, device, section of main memory, and moment of processing time.

    • Who can use the system and how the system is used.

Operating System Software

  • Composed of four essential subsystem managers:

    • Memory Manager

    • Processor Manager

    • Device Manager

    • File Manager

  • Each manager:

    • Works closely with other managers

    • Performs a unique role

User Interface

  • Allows users to issue commands to the operating system.

  • Manager tasks include:

    • Monitoring the system’s resources continuously.

    • Enforcing policies determining:

    • Who gets what, when, and how much

    • Allocating resources (when appropriate)

    • Deallocating resources (when appropriate)

Network Manager

  • Coordinates services for multiple systems to function cohesively.

  • Manages shared network resources:

    • Memory space, processors, printers, databases, applications, etc.

Main Memory Management

  • Manages main memory (Random Access Memory - RAM).

    • Requires a constant flow of electricity to hold data.

  • Responsibilities include:

    • Checking validity and legality of memory space requests.

    • Reallocating memory for more usable space.

    • Deallocating memory to reclaim it.

    • Protecting memory occupied by the operating system.

  • Read-Only Memory (ROM):

    • Critical when the computer is powered on.

    • Holds firmware: programming code for loading the operating system after turning on power.

    • Non-volatile and retains contents after power is turned off.

Processor Management

  • Allocate Central Processing Unit (CPU):

    • Tracks process status, referred to as a program’s “instance of execution.”

    • Functions similarly to a traffic controller for processes.

  • When a process finishes or the maximum computation time expires:

    • The Processor Manager reclaims the CPU and allocates it to the next waiting process.

    • Complexity increases with computers having multiple CPUs.

Device Management

  • Manages connection with available devices:

    • Printers, ports, disk drives, etc.

  • Responsibilities include:

    • Choosing the most efficient resource allocation method based on scheduling policy.

    • Identifying each device uniquely.

    • Starting device operations when appropriate.

    • Monitoring device progress.

    • Deallocating devices when no longer needed.

File Management

  • Responsible for tracking every file in the system:

    • Data files, program files, compilers, application programs, etc.

  • Responsibilities include:

    • Enforcing user/program resource access restrictions through predetermined access policies.

    • Controlling user/program modification restrictions (e.g., read-only, read-write).

    • Allocating space for a file on secondary storage.

    • Efficiently retrieving files.

Network Management

  • Included in operating systems with networking capability.

  • Authorizes users to share resources across the network.

  • Overall responsibility encompasses every aspect of network connectivity, including:

    • Devices, files, memory space, CPU capacity, etc.

User Interface

  • This portion of the operating system allows direct interaction with users.

  • Two primary types of user interfaces:

    • Graphical User Interface (GUI):

    • Accepts input from a pointing device with varied menu options, desktops, and formats.

    • Command Line Interface (CLI):

    • Requires keyboard-typed commands displaying on a monitor with strict requirements for accuracy, syntax, and command combinations.

Cooperation Issues

  • No single manager operates in isolation; each element of an operating system performs individual tasks while interacting harmoniously with other managers.

  • Precision is required for smooth operation, and complexity increases with networking.

Cloud Computing

  • Involves using Internet-connected resources for processing, storage, or other operations.

  • The operating system's role includes:

    • Managing all local resources

    • Coordinating data transfer to/from the cloud efficiently.

An Evolution of Computing Hardware

  • Hardware comprises physical machines and electronic components, including:

    • Main Memory (RAM):

    • Stores data/instructions and executes them.

    • Central Processing Unit (CPU):

    • Controls interpretation and execution of instructions.

    • Initiates storage, data manipulation, and input/output operations.

    • Input/Output Devices (I/O devices):

    • Include peripheral devices: printers, disk drives, CD/DVD drives, keyboards, etc.

Moore’s Law

  • Proposed by Gordon Moore in 1965:

    • Each new processor chip is compared to its predecessor, yielding twice as much capacity within 18-24 months.

Types of Operating Systems

  • Classified into five categories:

    • Batch

    • Interactive

    • Real-time

    • Hybrid

    • Embedded

  • Distinguishing features include:

    • Response time

    • Method of data entry into the system.

Detailed Types of Operating Systems

  • Batch Systems:

    • Jobs are entered as a whole and in sequence.

    • Inputs traditionally relied on punched cards or tape.

    • Efficiency measured in throughput.

  • Interactive Systems:

    • Allow multiple jobs to run concurrently.

    • Provide faster turnaround than batch systems but slower than real-time systems.

    • Introduced for quick turnaround of debugging programs using complex algorithms to share processing power.

  • Real-time Systems:

    • Emphasize reliability for time-critical environments (e.g., spacecraft, medical systems).

    • Two types:

    • Hard real-time systems: face total failure if deadlines are missed.

    • Soft real-time systems: experience performance degradation upon missed deadlines.

  • Hybrid Systems:

    • Combine batch and interactive methods, accepting and running batch programs in the background.

  • Network Operating Systems:

    • Special software allowing users to perform tasks using minimal local resources, often incorporating cloud computing capabilities.

    • Wireless networking is a standard feature in devices like cell phones and tablets.

  • Embedded Systems:

    • Computers integrated into other products (e.g., automobiles, pacemakers).

    • Requirements include executing specific programs, non-interchangeability, and a small kernel with flexible capabilities.

Brief History of Operating Systems Development

  • 1940s: Computers operated by programmers at the main console.

    • Errors required stopping the processor to make corrections, leading to poor machine utilization.

    • Notable mention of the first computer bug by Dr. Grace Hopper (a moth).

  • 1950s: Second generation of operating systems emerged.

    • Introduction of job scheduling, categorized programs for batch processing.

    • Introduction of human computer operators to facilitate machine operation.

    • Improvements in I/O devices (like tape drives) contributed to efficiency.

  • 1960s: Multiprogramming was introduced, allowing multiple programs to share CPU resources, alongside strategies like active and passive multiprogramming.

  • 1970s: Encountered challenges with newer, faster CPUs, leading to the development of virtual memory systems to address physical limitations.

  • 1980s: System functions began to be integrated with hardware (firmware); multiprocessor systems emerged, enabling parallel execution.

    • Rise of personal computers and high-speed communications gave way to distributed systems.

  • 1990s: Demand for Internet capabilities grew, leading to increased networking and tighter security measures.

    • Multimedia applications necessitated enhanced power and flexibility in operating systems.

  • 2000s: The focus shifted to flexibility, reliability, and speed, with developments like virtual machines enabling simultaneous OS management and multicore processors.

  • 2010s: Expansion of mobile and wireless technologies with the advent of multicore processors.

Design Considerations

  • Common goal:

    • Maximize resource usage (memory, processing, devices, and files)

    • Minimize downtime.

  • Factors included in development:

    • RAM resources

    • CPUs: number and type available

    • Peripheral devices: variety connected

    • Networking capability

    • Security requirements.

Conclusion

  • Overview of the function of operating systems.

  • The evolution of operating systems has enabled them to manage complex computers and systems effectively.

  • The operating system designer's role encompasses choosing optimal policies to match environmental needs.