In this chapter, the following content will be discussed: Introduction, windows NT as a real-time OS, real-time features of windows NT, observations and recommendations, windows NT in a real-time setting, Summary.
Trang 1Building Reliable Componentbased Systems
Chapter 15 Specification of Software Components
Chapter 15 Specification of Software Components
Specification of Software Components
Trang 2Building Reliable Componentbased Systems
Chapter 15 Specification of Software Components
Overview
Introduction
Windows NT as a real-time OS
Real-time features of windows NT
Observations and recommendations
Windows NT in a real-time setting
Summary
Trang 3Building Reliable Componentbased Systems
Chapter 15 Specification of Software Components
Introduction
Windows NT is presented from the perspective of real-time constraints
Address the following questions:
What type of applications can use Windows NT, as is? Can the unpredictable parts of NT be “masked”?
Trang 4Building Reliable Componentbased Systems
Chapter 15 Specification of Software Components
Windows NT as a Real-Time OS
The original design of NT was based on a micro-kernel, common to many real-time operating systems
During the evolution a limited number of real-time
features have been incorporated:
IDLE, NORMAL, HIGH and REALTIME
The REALTIME priority class is available as a support for real-time applications
The base priority for the REALTIME class includes
levels 16 to 31 Levels 17 to 21 and 27 to 30 are
currently not used by the scheduler
Trang 5Building Reliable Componentbased Systems
Chapter 15 Specification of Software Components
Windows NT Priority Structure
Interrupts Deferred Procedure Calls (DPC)
Time Critical NA Highest Above Normal Normal Below Normal Lowest NA Idle
31
26 25 24 23 22
16 15
0
Time Critical Normal Foreground
Normal Background Below Normal
Idle Idle Thread
Trang 6Building Reliable Componentbased Systems
Chapter 15 Specification of Software Components
Scheduling
Priority based preemptive scheduling:
The highest priority active task is chosen for execution possibly interrupting the execution of another task
Base priority
REALTIME: non-degradable priorities
NORMAL/HIGH can be delayed
For this reason the latter priority classes are commonly
referred to as dynamic classes
Trang 7Building Reliable Componentbased Systems
Chapter 15 Specification of Software Components
Deferred Procedure Call
Interrupt service routine (ISR)
Deferred procedure call (DPC)
DPCs are queued in the system DPC queue, in a first in first out (FIFO) manner
Separation of ISR and DPC
Allows quick response to any further interrupts, The priority structure at the interrupt level is not maintained in the DPC queues
A DPC is not preemptable by another DPC,
A DPC be preempted by an (unimportant) interrupt
Trang 8Building Reliable Componentbased Systems
Chapter 15 Specification of Software Components
Real-Time Features of Windows NT
Empirical Characterization of NT’s Features which affect Real-Time Activities
The first set of experiments was targeted toward the behavior of threads at REALTIME priority class and their effect on the I/O Subsystem, and visa versa
To this end, we used two threads with the same thread priority in the REALTIME class, one performing I/O and another, a CPU-intensive thread, performing a
continuous “for loop”
Trang 9Building Reliable Componentbased Systems
Chapter 15 Specification of Software Components
Experiment 1
To study the effect on keyboard and mouse I/O, the I/O thread was made to read from the keyboard/mouse.
When the CPU-intensive thread was running, no I/O activity was observed
After the CPU-intensive thread completed, all the keyboard inputs were processed
This showed that the CPU-intensive real-time thread essentially shuts out keyboard/mouse I/O even when this I/O is from/to a real-time thread
Trang 10Building Reliable Componentbased Systems
Chapter 15 Specification of Software Components
Experiment 2
To study the effect on disk I/O, the I/O thread was made
to write a file with 40,000 64-bit values
The time-stamps for the I/O and CPU-intensive activities were found to be interleaved, this indicating time-sharing between the two threads
This showed that a CPU-intensive real-time thread did not shut out disk I/O
Trang 11Building Reliable Componentbased Systems
Chapter 15 Specification of Software Components
Experiment 3
To study the effect on network I/O, the I/O thread was
made to read data from a remote server using Windows Sockets API
The time-stamps for the two activities were found to be interleaved, this indicating time-sharing between the two threads
This showed that a CPU-intensive real-time thread has
no adverse impact on network I/O
Trang 12Building Reliable Componentbased Systems
Chapter 15 Specification of Software Components
Explaining the Observations
The I/O manager sends the request in the form of an I/O request packet (IRP) to the device driver The driver starts the I/O operation
The device completes the I/O operation and interrupts The device driver then services the interrupt (This involves execution of ISR and queuing of a DPC.)
The I/O manager completes the I/O request
Trang 13Building Reliable Componentbased Systems
Chapter 15 Specification of Software Components
Time Taken for System Operations
Win32API Function Name Time
( secs)
SetPriorityClass() from normal to realtime priority
class
240
SetPriorityClass() for all others combinations 125 SetThreadPriority() for a thread to set its own priority 9
SetThreadPriority() for a thread to set priority of
another thread of the same process
10 QueryPerformanceCounter() to obtain the current
Trang 14Building Reliable Componentbased Systems
Chapter 15 Specification of Software Components
Observations and Recommendations
Potential blocking time
If processes or threads are performing network or disk I/O, the effect of system-wide FIFO DPC queues may
lead to unbounded response times.
If the duration of I/O activity in a given period can be
characterized, it may be possible to compute the
response times conservatively
One should not depend on the Windows NT scheduler
to achieve correct “fair sharing” behavior in cases
where screen, keyboard and mouse interactions are at the same level of priority as the other real-time
CPU-intensive tasks
Trang 15Building Reliable Componentbased Systems
Chapter 15 Specification of Software Components
Windows NT in a Real-Time Setting
Operator input
Incoming sensor data
Incoming video streams
Trang 16Building Reliable Componentbased Systems
Chapter 15 Specification of Software Components
Design of the Real-Time Application
Efficiency through threads
Achieving periodicity
Heart beat is a highest prio process
Periodically enables user-level threads
User-level threads can execute for 1 time unit only
Trang 17Building Reliable Componentbased Systems
Chapter 15 Specification of Software Components
Software Architecture of Industrial Control Prototype
Producer
Heartbeat Ti
Heartbeat Ti
Acknowledgement
Operator input
Operator ack
Real Video
Trang 18Building Reliable Componentbased Systems
Chapter 15 Specification of Software Components
Software Architecture of Industrial Control Prototype
Besides the Heartbeat timer at each node, the main
entities at the remote server are:
Producer Acknowledgment
The main entities at the operator workstation are:
Receiver Consumer Operator input Operator ack
Trang 19Building Reliable Componentbased Systems
Chapter 15 Specification of Software Components
Summary
Using HIGH or REAL_TIME priority alone significantly reduces the variability in response times, without any observable degradation in system performance, so:
IF the application tasks do not monopolize the CPU for long durations,
AND there is sufficient CPU capacity, THEN using these priority assignments may be sufficient to meet the performance requirements of these processes – even when I/O is involved
Trang 20Building Reliable Componentbased Systems
Chapter 15 Specification of Software Components
Summary Continued
However:
IF the periodic workload per process is high,
or
IF a process is a COTS application whose workload varies,
THEN it will be necessary to impose some additional controls on the amount of time allocated to a task
Our findings indicate that a scheduling approach
combined with an admission