Operating Systems Overview
Operating Systems Overview
(CS5433)
By
• Program execution
– OS handles scheduling of numerous tasks required to
execute a program
• System access
– System resources (CPU, Memory, etc)
• Accounting
– Collect usage statistics and monitoring
OS Kernel
Evolution of Operating Systems
• Operating systems will evolve over time:
– Hardware upgrades plus new types of hardware
e.g., Multi-/Many-core Processors
– New services and increasing application
demands
– Improved functionality and bug-free software
– Operating System (Objectives/Functions)
– The Evolution of Operating Systems
– Major Achievements
– Modern Operating Systems
– Microsoft Windows Overview
– UNIX Systems
– Linux
Evolution of Operating Systems
• Historical Milestones:
1. Serial Processing
2. Simple Batch Systems
3. Multiprogrammed batch systems
4. Time Sharing Systems
1. Serial Processing
• No Operating System (1940’s to mid 1950’s)
– Direct interaction to computer hardware (using
machine language)
• Timer
– Prevent a job from monopolizing system
• Privileged instructions
– Only executed by the monitor
– E.g., IO (How a program does the IO?)
2. Kernel Mode
– Monitor executes in kernel mode
– Privileged instructions may be executed,
– All memory accessible.
3. Multi-programmed Batch System
• CPU often idle (in early Batch OS)
– Even with automatic job sequencing.
• Time Slicing:
– When control was passed to a user:
• User program and data loaded
• Clock generates interrupts about every 0.2 sec
• At each interrupt OS gained control and, may
assign processor to another user
CTSS Operation - Example
• Example:
– Four Jobs (and their size in memory words)
1. Job1: 15000
2. Job2: 20000
3. Job3: 5000
4. Job4: 10000
CTSS Operation - Example
Problems and Issues
• Multiple jobs in memory must be protected
from each other’s data
Major Advances:
1. Processes Management
2. Memory Management
3. Information Protection and Security
4. Scheduling and Resource Management
Process
• Fundamental to the structure of OS’s
• A process is:
– A program in execution
– An instance of a running program
– The entity that can be assigned to and executed
on a processor
– A single sequential thread of execution, a
current state, and an associated set of system
resources.
Components of a Process
• A process consists of:
– An Executable program
– Associated data needed by the program
– Execution context of the program (or “process
state”)
Multi-programming environment
System Interaction
System Interaction
System Structure (Hierarchal View)
• View system as a series of levels
Multi-
programming
Single
Process
Hardware
Level
– Operating System (Objectives/Functions)
– The Evolution of Operating Systems
– Major Advances
– Modern Operating Systems
– Microsoft Windows Overview
– UNIX Systems
– Linux
Different Architectural Approaches
Design elements of a modern Operating System:
1. Microkernel Architecture
2. Multithreading
3. Symmetric Multiprocessing
4. Distributed Operating Systems
5. Object-Oriented Design
1. Microkernel Architecture
1. Most early OS are a monolithic kernel
– Most OS functionality resides in the kernel.
• Thread
– Dispatchable unit of work
– Executes sequentially, and is interruptible
• Availability
– Failure of a single processor does not halt the
system
• Incremental growth
– Additional processors can be added
User
Interface
Traditional UNIX
Kernel
Modern UNIX Kernel