Kĩ thuật lập trình - Chapter 15: Specification of software components
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
20 trang |
Chia sẻ: huyhoang44 | Lượt xem: 565 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Kĩ thuật lập trình - Chapter 15: Specification of software components, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Chapter 15Specification of Software Components Page Building Reliable Component-based Systems Chapter 15 - Specification of Software ComponentsOverviewIntroduction Windows NT as a real-time OS Real-time features of windows NT Observations and recommendations Windows NT in a real-time setting Summary Page Building Reliable Component-based Systems Chapter 15 - Specification of Software ComponentsIntroductionWindows 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”? Page Building Reliable Component-based Systems Chapter 15 - Specification of Software ComponentsWindows NT as a Real-Time OSThe 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. Page Building Reliable Component-based Systems Chapter 15 - Specification of Software ComponentsWindows NT Priority Structure InterruptsDeferred Procedure Calls (DPC)Time CriticalNAHighestAbove NormalNormalBelow NormalLowestNAIdle31262524232216150Time CriticalNormal ForegroundNormal BackgroundBelow Normal IdleIdle ThreadReal-Time Priority ClassDynamic-Time Priority ClassesDecreasing PriorityPage Building Reliable Component-based Systems Chapter 15 - Specification of Software ComponentsSchedulingPriority based preemptive scheduling:The highest priority active task is chosen for execution possibly interrupting the execution of another task. Base priorityREALTIME: non-degradable prioritiesNORMAL/HIGH can be delayedFor this reason the latter priority classes are commonly referred to as dynamic classes. Page Building Reliable Component-based Systems Chapter 15 - Specification of Software ComponentsDeferred Procedure CallInterrupt 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. Page Building Reliable Component-based Systems Chapter 15 - Specification of Software ComponentsReal-Time Features of Windows NTEmpirical Characterization of NT’s Features which affect Real-Time ActivitiesThe 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”. Page Building Reliable Component-based Systems Chapter 15 - Specification of Software ComponentsExperiment 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. Page Building Reliable Component-based Systems Chapter 15 - Specification of Software ComponentsExperiment 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. Page Building Reliable Component-based Systems Chapter 15 - Specification of Software ComponentsExperiment 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. Page Building Reliable Component-based Systems Chapter 15 - Specification of Software ComponentsExplaining the ObservationsThe 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. Page Building Reliable Component-based Systems Chapter 15 - Specification of Software ComponentsTime Taken for System Operations Win32API Function Name Time (msecs)CreateProcess() 2600SetPriorityClass() - from normal to real-time priority class 240SetPriorityClass() - for all others combinations 125SetThreadPriority() - for a thread to set its own priority 9SetThreadPriority() - for a thread to set priority of another thread of the same process 10QueryPerformanceCounter() - to obtain the current time-stamp 6Page Building Reliable Component-based Systems Chapter 15 - Specification of Software ComponentsObservations and RecommendationsPotential blocking timeIf 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. Page Building Reliable Component-based Systems Chapter 15 - Specification of Software ComponentsWindows NT in a Real-Time SettingOperator inputIncoming sensor dataIncoming video streamsPage Building Reliable Component-based Systems Chapter 15 - Specification of Software ComponentsDesign of the Real-Time Application Efficiency through threads Achieving periodicityHeart beat is a highest prio processPeriodically enables user-level threadsUser-level threads can execute for 1 time unit onlyPage Building Reliable Component-based Systems Chapter 15 - Specification of Software ComponentsSoftware Architecture of Industrial Control Prototype ProducerReceiverConsumerBufferHeartbeat TiHeartbeat TiAcknowledgementOperator inputOperator ackRealVideoPage Building Reliable Component-based Systems Chapter 15 - Specification of Software ComponentsSoftware 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:ReceiverConsumerOperator inputOperator ackPage Building Reliable Component-based Systems Chapter 15 - Specification of Software ComponentsSummary 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. Page Building Reliable Component-based Systems Chapter 15 - Specification of Software ComponentsSummary ContinuedHowever: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 Page Building Reliable Component-based Systems Chapter 15 - Specification of Software Components
Các file đính kèm theo tài liệu này:
- 15_chapterwc_1331.ppt