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