University of Kansas Douglas Niehaus Information and Telecommunication Technology Center Electrical Engineering and Computer Science Department University.

Slides:



Advertisements
Similar presentations
Vassal: Loadable Scheduler Support for Multi-Policy Scheduling George M. Candea, Oracle Corporation Michael B. Jones, Microsoft Research.
Advertisements

Real Time Versions of Linux Operating System Present by Tr n Duy Th nh Quách Phát Tài 1.
Department of Computer Science and Engineering University of Washington Brian N. Bershad, Stefan Savage, Przemyslaw Pardyak, Emin Gun Sirer, Marc E. Fiuczynski,
Introduction CSCI 444/544 Operating Systems Fall 2008.
Model for Supporting High Integrity and Fault Tolerance Brian Dobbing, Aonix Europe Ltd Chief Technical Consultant.
Extensibility, Safety and Performance in the SPIN Operating System Department of Computer Science and Engineering, University of Washington Brian N. Bershad,
Chapter 13 Embedded Systems
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
Chapter 13 Embedded Systems Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design Principles,
SEDA: An Architecture for Well-Conditioned, Scalable Internet Services Matt Welsh, David Culler, and Eric Brewer Computer Science Division University of.
1 Soft Timers: Efficient Microsecond Software Timer Support For Network Processing Mohit Aron and Peter Druschel Rice University Presented By Jonathan.
INTRODUCTION OS/2 was initially designed to extend the capabilities of DOS by IBM and Microsoft Corporations. To create a single industry-standard operating.
I/O Hardware n Incredible variety of I/O devices n Common concepts: – Port – connection point to the computer – Bus (daisy chain or shared direct access)
ITTC IAB 4/7/05 1 Dr. Douglas Niehaus © 2005 Information and Telecommunication Technology Center Industrial Advisory Board Meeting April 7, 2005 Douglas.
Threads 1 CS502 Spring 2006 Threads CS-502 Spring 2006.
Chapter 13 Embedded Systems
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 3: Processes.
Experience with K42, an open- source, Linux-compatible, scalable operation-system kernel IBM SYSTEM JOURNAL, VOL 44 NO 2, 2005 J. Appovoo 、 M. Auslander.
Process Concept An operating system executes a variety of programs
CprE 458/558: Real-Time Systems
1 Chapter 13 Embedded Systems Embedded Systems Characteristics of Embedded Operating Systems.
Chapter 4: Threads. 4.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Chapter 4: Threads Overview Multithreading Models Threading Issues.
Chapter 13 Embedded Operating Systems Eighth Edition By William Stallings Operating Systems: Internals and Design Principles.
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
EMBEDDED SOFTWARE Team victorious Team Victorious.
Performance Evaluation of Real-Time Operating Systems
Dreams in a Nutshell Steven Sommer Microsoft Research Institute Department of Computing Macquarie University.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 15 Slide 1 Real-time Systems 1.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
0 Deterministic Replay for Real- time Software Systems Alice Lee Safety, Reliability & Quality Assurance Office JSC, NASA Yann-Hang.
What is Concurrent Programming? Maram Bani Younes.
University of Kansas Electrical Engineering Computer Science Jerry James and Douglas Niehaus Information and Telecommunication Technology Center Electrical.
Eric Keller, Evan Green Princeton University PRESTO /22/08 Virtualizing the Data Plane Through Source Code Merging.
Tittle:Real Time Linux
DCE (distributed computing environment) DCE (distributed computing environment)
Recall: Three I/O Methods Synchronous: Wait for I/O operation to complete. Asynchronous: Post I/O request and switch to other work. DMA (Direct Memory.
Model-Driven Analysis Frameworks for Embedded Systems George Edwards USC Center for Systems and Software Engineering
Real-Time Operating Systems for Embedded Computing 李姿宜 R ,06,10.
Multiprocessor and Real-Time Scheduling Chapter 10.
Real-Time Linux Evaluation NASA Glenn Research Center Kalynnda Berens Richard Plastow
1 Scheduling The part of the OS that makes the choice of which process to run next is called the scheduler and the algorithm it uses is called the scheduling.
Reference: Ian Sommerville, Chap 15  Systems which monitor and control their environment.  Sometimes associated with hardware devices ◦ Sensors: Collect.
Advanced Design and System Patterns The Microkernel Pattern.
I/O Computer Organization II 1 Interconnecting Components Need interconnections between – CPU, memory, I/O controllers Bus: shared communication channel.
Real-Time, Clocking, and Porting (My Job ) Determining the Real Time Capabilities of various Operating Systems. Writing code to support Real Time Clocking.
BridgePoint Integration John Wolfe / Robert Day Accelerated Technology.
Chapter 4: Multithreaded Programming. 4.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts What is Thread “Thread is a part of a program.
Department of Computer Science and Software Engineering
Real-Time Operating System Design
For a good summary, visit:
Interrupts and Exception Handling. Execution We are quite aware of the Fetch, Execute process of the control unit of the CPU –Fetch and instruction as.
Embedded Real-Time Systems Processing interrupts Lecturer Department University.
Software Architecture of Sensors. Hardware - Sensor Nodes Sensing: sensor --a transducer that converts a physical, chemical, or biological parameter into.
Experimental Software Engineering Course for Training Practitioners in Embedded Real-Time Systems Real-Time Systems LAB, School of Electronic Engineering,
REAL-TIME OPERATING SYSTEMS
OPERATING SYSTEM CONCEPT AND PRACTISE
Module 12: I/O Systems I/O hardware Application I/O Interface
Threads vs. Events SEDA – An Event Model 5204 – Operating Systems.
OPERATING SYSTEMS CS3502 Fall 2017
Chapter 5: Threads Overview Multithreading Models Threading Issues
Process Management Presented By Aditya Gupta Assistant Professor
Real-time Software Design
What is Concurrent Programming?
Embedded Operating Systems
Midterm Review Brian Kocoloski
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
Chapter 4: Threads.
Group Scheduling in System Software
Chapter 3: Process Management
Presentation transcript:

University of Kansas Douglas Niehaus Information and Telecommunication Technology Center Electrical Engineering and Computer Science Department University of Kansas Current Research Efforts in Real-time and Embedded Systems

University of Kansas Overview Real-time and Embedded Systems KURT-Linux Real-Time in Linux Component support for embedded configuration HW/SW Co-Design for Real-Time Future Integrated HW/SW Implementation Environment Group Scheduling Distributed Real-Time and Embedded Services

University of Kansas Real-Time and Embedded Systems Change many of the assumptions underlying conventional computer system design Real-time requires finer resolution time keeping and resource allocation because they must control when actions occur Precise control of events on real-time line When a computation executes is part of its correctness Execution time predictions are required in many cases Embedded systems are often special purpose Application semantics differ widely Specialized & Restricted semantics  specialized programming models No single programming model is best match for all application semantics  multiple models or lowest common denominator Majority of all computers (80%+) are embedded, increasing number must satisfy real-time constraints

University of Kansas Collaborators Douglas Niehaus Real-time, distributed, programming environments, systems David Andrews Real-time, embedded, architecture, HW design, sensor webs Jerry James Distributed, programming environments and models, formal methods Perry Alexander Formal Methods Rosetta (Modeling) Engineering of Computer Based Systems

University of Kansas KU Real-Time (KURT) Linux Long term effort to improve the suitability of Linux for real-time applications Modification for real-time within Linux Not a separate underlying executive as RTLinux and RTAI Three parts Time keeping and event scheduling (UTIME) KURT programming model Interrupt service (recent extension) Linux patch size is minimized

University of Kansas UTime: Time Keeping & Event Scheduling Portable High Resolution API Time Standard: Pentium Time Stamp Counter –CPU clock (nanosecond) resolution Next Event Interrupt: microsecond resolution –PC timer Chip (8159) or Pentium PIC Useful in its own right Often used without KURT component Starting point of Linux High Resolution Timers Project Multiple Platforms StrongARM, XScale/FPGA SBC, AMD Elan (x86+), Power PC (PPC) Virtex II Pro SBC (future) Time Standard and Next Event Interrupt methods vary

University of Kansas Data Streams Resolution of performance data must exceed that of the desired system behavior, not true of most aggregate data General method for representing and gathering data related to system status and performance Originally conceived for OS performance data (DSKI) Generalized to application programs (DSUI) Applications present significant interface challenges Data sources: Several types, multiple groupings Data Stream is generated by selected data sources Users choose which data sources to activate for a given experiment Configuration options on some data sources

University of Kansas DSKI Control and Data Flow

University of Kansas KURT: Programming Model Simple: explicitly designate execution intervals Using UTIME capabilities for time keeping and next event scheduling Primary Interface: Cyclic real-time execution plan Cyclic schedule repeats until deleted or replaced Easy to implement periodic computations Used to provide CPU percentage in a specific usage pattern (ANTS) Useful to guarantee event response times KURT module can switch dynamic schedules RTSS Scheduling server builds and submits new schedules in response to computation requests Conventional Linux Scheduler for non-real-time tasks Dynamically generated events in general timer queue

University of Kansas Basic KURT Architecture Hardware UTime KURT Programming Model OS User RT Scheduling Service Application Logging DSKI Plan Scheduler

University of Kansas Programming Model Framework Single programming model insufficient for the full range of real-time and embedded systems’ semantics Recent KURT-Linux extensions support creation of multiple components and configuration selection Scheduling decision functions Programming models Interrupt handling semantics System architects can select among existing components or implement their own Set of selected components determines system behavior

University of Kansas Programming Model Framework Hardware UTime OS User Logging DSKI Schedulers S1 S2S3S4S5 KURT Programming Models M1 M2M3M4M5 AAAAAAAA Real-TimeNon-Real-Time Interrupts DF1 DF2

University of Kansas Improving Interrupt Handling As Fast As Specified Rather than as fast as possible Interrupt handling currently manifests as noise in many RT programming models Interrupts are “always” enabled Handler notes which interrupts occurred Interrupt Decision function decides when handlers run Existing interrupt handlers supported for compatibility Exposes concurrency among interrupt handlers Currently one semaphore, but could be per-driver or per-data structure

University of Kansas Kernel Handler-Without ISR Mods

University of Kansas Kernel Handler – With ISR Mods

University of Kansas HW/SW Co-Design Supporting OS Functions Moving low level OS functions into hardware can: Increase quality of service, while Decreasing system overhead, and Increasing accuracy/predictability Several stages of CPU  FPGA migration Targets: Time Keeping and Event Scheduling (working) Event Queue (current) Thread scheduling (future) Interrupt Processing (future)

University of Kansas CPU-FPGA Cooperation for OS Support CPU FPGA JiffySub-Jiffy Time Standard Next Event INTR Jiffy Match Sub-Jiffy Match Memory Event Data Thread Data Event Queue Thread Scheduling Interrupt Subsystem

University of Kansas Conclusion System support for real-time and embedded programming environments is lacking in many ways KURT-Linux development has improved programming model support in several ways and improvement is continuing along several paths Current and future proposals in several areas DARPA PCES II award beginning now

University of Kansas Future Extend and generalize interrupt processing Minimize interrupt response time Parameterize speed/generality tradeoffs Modularize interrupt decision function –EDF for as fast as specified FPGA support HW/SW Co-Design programming environment NSF E&HS Proposal Group Scheduling DARPA PCES II Award Middleware System State Information Service Data Streams extension for OS and application state data DARPA PCES II Award

University of Kansas Future: HW/SW Co-Design Programming Integrated HW/SW programming environment Computations can flow easily across the HW/SW boundary FPGA based threads of computation have a simple standard interface for I/O and control Standard atomic semaphore operations are key CPU  FPGA FPGA  CPU Programming model will (largely) conceal support for a thread by CPU or FPGA HW/SW support choice can move later in the design and implementation flow

University of Kansas Future: Group Scheduling Generalized decision procedure for choosing a process (thread) to run next Linux uses one decision function and one group Our approach Decision function chooses among group members Threads are members of one or more groups Groups can be members of groups Decision Tree Start at the top and continue running group decision functions until next thread selected Should be able to integrate thread and interrupt scheduling in the operating system: fully integrated computation scheduling

University of Kansas More Information KURT-Linux Home Page: Data Streams Home Page: My Home page: Several Posters in ITTC Lobby