Title: Dreams in a Nutshell
1Dreams in a Nutshell
- Steven Sommer
- steve_at_mpce.mq.edu.au
Microsoft Research Institute Department of
Computing Macquarie University
2Overview
- 1. Background
- 2. Dreams Model
- 3. Overrun
- 4. Implementation
3Dreams
- Distributed Real-time Extensions with Application
to Multimedia Systems - Extend conventional operating systems to support
distributed real-time applications - Paradigm preserving
4Key Paradigm Differences
- Multiple competing applications
- Temporal protection
- Absence of a priori knowledge
- Different kinds of applications
- Subsystems (servers)
- Interrupts
- Dynamic distribution
52. The Dreams Model
- Transient Periodic Processes
- Periodic Invocations
- Specified
- Period
- Deadline
- Execution Time
6The Dreams Model
6
73. Overrun Concepts
- System guarantee
- A real-time task will receive its reserved
resources between each invocations start-time
and deadline - A task which consumes its reserved capacity
without completing has overrun - Only overrun tasks can miss their deadlines
- Task continues in overrun state
- Overrun tasks receive refreshed resources at the
start of their next period
8Scheduling and Overrun
Waiting
Invocation Completion
Invocations Start Time
Scheduled Thread
Runnable
Invocation Overrun
Overrun Try
Overrun
Overrun Leave
8
9Sample Schedule
Process Period Reservation Av. Execution
Time first scheduled T1 100 20
20 70 T2 250 110
100 70 T3 1000 440
400 480
. 10ms
0 100 200 300
400 Time ID 01234567890123456789012345678901234567
890123456789 ---- 4500 1 .......RC........RC.....
...RC........RC........R1O 4500 2
.......SR2222222C...............R22222R22C........
4500 3 33333333........R3R333333333R3333........
R333333.R 5000 1 .......C.........R1O..RC...R1C.
......R1O..C....R1O 5000 2 .......R2222222C......
..........R22222.R22C....... 5000 3
33333333.......R33.R33C.........................SR
5500 1 .......C.........R1O.......C.........R1O
.......C.. 5500 2 .......R2222222C...............
.R22222.R22C....... 5500 3 33333333.......R33.R33
33333R33333.........R3333R33
Legend(S)tart(time) (R)un (scheduled)
(C)ompleted (O)verrun Multiple
104. Implementation
- Windows NT 3.51 implementation
- Minimal impact on
- Non-real-time execution
- Existing operating system code
- Programming paradigm
11Dreams Client
Win32 Client
Applications
Protected subsystems (servers)
Dreams Subsystem
Win32 Subsystem
User mode
Kernel mode
Executive
System services
I/O manager
Virtual Memory Manager
Security Reference Monitor
Local Procedure Call
Object Manager
Process Manager
File systems
Cache manager
Device drivers
Kernel
Network drivers
Hardware abstraction layer
Message Passing / Shared Memory
System Trap
11
12Dreams Subsystem Memory Space
Dreams Client Application Memory Space
Reservation Manager
Application Process
Real-Time Thread Manager
API Call
Dreams DLL
Procedure call via named pipes
Blocking Access
Non real-time priority
Shared Data Area Requests / Process Table
Create Thread
Real-time priority
Non blocking access
Real-Time Thread
Real-Time Scheduler Enforcer
Non blocking communication
API Call
Periodic Invocation
Dreams DLL
Shared Memory
Kernel Call
Window NT Kernel
Scheduling via NT Priority Control
Kernel Mode Dreams
12
13Implementation Experience
- Dreams extensions in a subsystem
- Meet implementation goals
- Simpler development, modification, and testing
- Priority inheritance
- Useful in all operating systems (not just
real-time) - Performance improvement
- Two tiered scheduler (with priority inheritance)
- Hides scheduling complexities
- Simpler scheduling
- Simpler schedulability model
- Simpler timing and enforcement
14Summary
- Background
- Dreams Model
- Overrun
- Implementation
15Sample Schedule
Process Period Reservation Av. Execution
Time first scheduled T1 100 20
20 70 T2 250 110
100 70 T3 1000 440
400 480
. 10ms
0 100 200 300
400 Time ID 01234567890123456789012345678901234567
890123456789 ---- 4500 1 .......RC........RC.....
...RC........RC........R1O 4500 2
.......SR2222222C...............R22222R22C........
4500 3 33333333........R3R333333333R3333........
R333333.R 5000 1 .......C.........R1O..RC...R1C.
......R1O..C....R1O 5000 2 .......R2222222C......
..........R22222.R22C....... 5000 3
33333333.......R33.R33C.........................SR
5500 1 .......C.........R1O.......C.........R1O
.......C.. 5500 2 .......R2222222C...............
.R22222.R22C....... 5500 3 33333333.......R33.R33
33333R33333.........R3333R33
Legend(S)tart(time) (R)un (scheduled)
(C)ompleted (O)verrun Multiple