Real time Operating System
A real-time operating system (RTOS) is a
multi-tasking operating system intended for
real time applications. Such applications
include embedded systems (programmable
thermostats, household appliance
controllers, mobile telephones), industrial
robots, spacecraft ,etc.
They perform on-line processing with
specified time constraints.
In these systems, a transaction accesses
and updates the file quickly to affect the
original decision.
Real-Time Systems
Control of laboratory experiments
Process control plants
Robotics
Air traffic control
Telecommunications
Military command and control systems
What is an operating system?
Operating system --is a program that controls
the execution of application programs and
implements an interface between the user of a
computer and the computer hardware
Narrow view of a computer and OS
Traditional computer with applications running on it (e.g.
PCs, Workstations, Servers)
Broad view of a computer and OS
Anything that needs to manage resources (e.g. router OS,
embedded devices, cell phones ...)
Two key OS functions
Abstract Machine
Hides details of the underlying hardware
Provides common API to applications and
services
Simplifies application writing
Resource Manager
Controls accesses to shared resources
CPU, memory, disks, network, ...
Allows for global policies to be implemented
Why is abstraction important?
Without OSs and abstract interfaces, application
writers must program all device access directly
load device command codes into device registers
handle initialization, recalibration, sensing, timing etc for
physical devices
understand physical characteristics and layout
control motors
interpret return codes etc
Applications suffer severe code bloat!
very complicated maintenance and upgrading
writing this code once, and sharing it, is how OS began!
Providing abstraction via system
calls
Application
Operating
System
Video Card
Monitor
CPU
Memory
Disk
Network
Printer
Providing abstraction via system
calls
Application
System Calls: read(), open(), write(), mkdir(), kill() ...
Device
Mgmt
Operating
System
Protection
File System
Video Card
Monitor
CPU
Network
Comm.
Memory
Disk
Process
Mgmt
Security
Network
Printer
OS as a resource manager
Sharing resources among applications across
space and time
Scheduling (time sharing a resource)
Allocation (time or space sharing a resource)
Making efficient use of limited resources
improving utilization
minimizing overhead
improving throughput/good put
Protecting applications from each other
enforcement of boundaries
The OS is just a program!
The OS is a sequence of instructions that the
CPU will fetch/decode/execute
How can the OS cause application programs to run?
How can the OS switch the CPU to run a different
application and later resume the first one?
How can the OS maintain control?
In what ways can application code try to seize control
indefinitely (ie. cheat)?
And how can the OS prevent such cheating?
How can applications programs cause the OS to run?
How can the OS invoke an
application?
Somehow, the OS must load the address of the
applications starting instruction into the PC
The computer boots and begins running the OS
OS code must be loaded into memory somehow
fetch/decode/execute OS instructions
OS requests user input to identify application file
OS loads application file (executable) into memory
OS loads the memory address of the applications starting
instruction into the PC
CPU fetches/decodes/executes the applications instructions
How can OS guarantee to
regain control?
What if a running application doesnt make a
system call and hence hogs the CPU?
OS needs interrupts from a timer device!
OS must register a future timer interrupt before it
hands control of the CPU over to an application
When the timer interrupt goes off the interrupt
hardware jumps control back into the OS at a prespecified location called an interrupt handler
The interrupt handler is just a program (part of the OS)
The address of the interrupt handlers first instruction
is placed in the PC by the interrupt h/w