1. Trang chủ
  2. » Công Nghệ Thông Tin

Lecture Building reliable component-based systems - Chapter 15: Providing real-time services for cots

20 29 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 20
Dung lượng 383,63 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 1

Building Reliable Component­based  Systems

  Chapter 15 ­ Specification of Software Components

Chapter 15 Specification of Software Components

Specification of Software Components

Trang 2

Building Reliable Component­based  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 3

Building Reliable Component­based  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 4

Building Reliable Component­based  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 5

Building Reliable Component­based  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 6

Building Reliable Component­based  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 7

Building Reliable Component­based  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 8

Building Reliable Component­based  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 9

Building Reliable Component­based  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 10

Building Reliable Component­based  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 11

Building Reliable Component­based  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 12

Building Reliable Component­based  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 13

Building Reliable Component­based  Systems

  Chapter 15 ­ Specification of Software Components

Time Taken for System Operations

 Win32API Function Name  Time 

( secs)

SetPriorityClass()  ­  from  normal  to  real­time  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 14

Building Reliable Component­based  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 15

Building Reliable Component­based  Systems

  Chapter 15 ­ Specification of Software Components

Windows NT in a Real-Time Setting

Operator input

Incoming sensor data

Incoming video streams

Trang 16

Building Reliable Component­based  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 17

Building Reliable Component­based  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 18

Building Reliable Component­based  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 19

Building Reliable Component­based  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 20

Building Reliable Component­based  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

Ngày đăng: 15/05/2020, 22:03

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN