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.