Embedded Multicore processing for Mobile Communications Real-time Contracts and Thread Profiling York Jack Whitham.

Slides:



Advertisements
Similar presentations
10 Software Engineering Foundations of Computer Science ã Cengage Learning.
Advertisements

1 Bölgesel Rekabet Edebilirlik Operasyonel Programı’nın Uygulanması için Kurumsal Kapasitenin Oluşturulmasına Yönelik Teknik Yardım Technical Assistance.
Introduction CSCI 444/544 Operating Systems Fall 2008.
RUN: Optimal Multiprocessor Real-Time Scheduling via Reduction to Uniprocessor Paul Regnier † George Lima † Ernesto Massa † Greg Levin ‡ Scott Brandt ‡
Chapter 5 CPU Scheduling. CPU Scheduling Topics: Basic Concepts Scheduling Criteria Scheduling Algorithms Multiple-Processor Scheduling Real-Time Scheduling.
Introduction to Operating Systems CS-2301 B-term Introduction to Operating Systems CS-2301, System Programming for Non-majors (Slides include materials.
ECE 526 – Network Processing Systems Design Software-based Protocol Processing Chapter 7: D. E. Comer.
RT Reading Group Meeting 06/27/2002 Veljko Krunic.
Review: Process Management Objective: –Enable fair multi-user, multiprocess computing on limited physical resources –Security and efficiency Process: running.
Memory Management 2010.
Cs238 CPU Scheduling Dr. Alan R. Davis. CPU Scheduling The objective of multiprogramming is to have some process running at all times, to maximize CPU.
Chapter 11 Operating Systems
The new The new MONARC Simulation Framework Iosif Legrand  California Institute of Technology.
Java ThreadsGraphics Programming Graphics Programming: Java Threads.
Enhancing the Platform Independence of the Real-Time Specification for Java Andy Wellings, Yang Chang and Tom Richardson University of York.
CprE 458/558: Real-Time Systems
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment, Enhanced Chapter 8: Implementing and Managing Printers.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment Chapter 8: Implementing and Managing Printers.
Chapter 51 Threads Chapter 5. 2 Process Characteristics  Concept of Process has two facets.  A Process is: A Unit of resource ownership:  a virtual.
ArcGIS Workflow Manager An Introduction
Introduction to Parallel Programming MapReduce Except where otherwise noted all portions of this work are Copyright (c) 2007 Google and are licensed under.
Invitation to Computer Science 5th Edition
Real-Time Software Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
Lecture 5 – Gantt Chart GANTT Charts Constructing GANTT Charts
1 I-Logix Professional Services Specialist Rhapsody IDF (Interrupt Driven Framework) CPU External Code RTOS OXF Framework Rhapsody Generated.
Chapter 5 – CPU Scheduling (Pgs 183 – 218). CPU Scheduling  Goal: To get as much done as possible  How: By never letting the CPU sit "idle" and not.
EEL Software development for real-time engineering systems.
Processes and OS basics. RHS – SOC 2 OS Basics An Operating System (OS) is essentially an abstraction of a computer As a user or programmer, I do not.
Processes and Threads CS550 Operating Systems. Processes and Threads These exist only at execution time They have fast state changes -> in memory and.
Scheduling policies for real- time embedded systems.
Joseph Cordina 1/11 The Use of Model-Checking for the Verification of Concurrent Algorithms Joseph Cordina Department of C.S.&A.I.
Chapter 7 Operating Systems. Define the purpose and functions of an operating system. Understand the components of an operating system. Understand the.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
G.Corti, P.Robbe LHCb Software Week - 19 June 2009 FSR in Gauss: Generator’s statistics - What type of object is going in the FSR ? - How are the objects.
Process by Dr. Amin Danial Asham. References Operating System Concepts ABRAHAM SILBERSCHATZ, PETER BAER GALVIN, and GREG GAGNE.
Ernest Cachia University of Malta “Real-Time System Development” Slide No. 1 of part 3 n What about jitter? To calculate jitter one should have data regarding.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Memory: Relocation.
Operating Systems David Goldschmidt, Ph.D. Computer Science The College of Saint Rose CIS 432.
OPERATING SYSTEM SCHEDULING FOR EFFICIENT ONLINE SELF- TEST IN ROBUST SYSTEMS PRIDHVI RAJ RAMANUJULA CSc 8320.
Resource Mapping and Scheduling for Heterogeneous Network Processor Systems Liang Yang, Tushar Gohad, Pavel Ghosh, Devesh Sinha, Arunabha Sen and Andrea.
Quantitative Project Risk Analysis 1 Intaver Institute Inc. 303, 6707, Elbow Drive S.W., Calgary AB Canada T2V 0E5
2013/12/09 Yun-Chung Yang Partitioning and Allocation of Scratch-Pad Memory for Priority-Based Preemptive Multi-Task Systems Takase, H. ; Tomiyama, H.
1 Memory Management Chapter 7. 2 Memory Management Subdividing memory to accommodate multiple processes Memory needs to be allocated to ensure a reasonable.
Java Thread and Memory Model
Operating Systems CSE 411 CPU Management Sept Lecture 10 Instructor: Bhuvan Urgaonkar.
CS- 492 : Distributed system & Parallel Processing Lecture 7: Sun: 15/5/1435 Foundations of designing parallel algorithms and shared memory models Lecturer/
Department of Computer Science and Software Engineering
Xiao Liu 1, Yun Yang 1, Jinjun Chen 1, Qing Wang 2, and Mingshu Li 2 1 Centre for Complex Software Systems and Services Swinburne University of Technology.
CSCI1600: Embedded and Real Time Software Lecture 24: Real Time Scheduling II Steven Reiss, Fall 2015.
Silberschatz and Galvin  Operating System Concepts Module 5: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Multiple-Processor.
6.1 CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Multiple-Processor Scheduling Real-Time Scheduling Algorithm Evaluation.
Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  What Operating Systems Do  Computer-System Organization  Computer-System Architecture  Operating-System Structure.
Threads. Readings r Silberschatz et al : Chapter 4.
Memory Management OS Fazal Rehman Shamil. swapping Swapping concept comes in terms of process scheduling. Swapping is basically implemented by Medium.
Ensieea Rizwani An energy-efficient management mechanism for large-scale server clusters By: Zhenghua Xue, Dong, Ma, Fan, Mei 1.
Onlinedeeneislam.blogspot.com1 Design and Analysis of Algorithms Slide # 1 Download From
1.  System Characteristics  Features of Real-Time Systems  Implementing Real-Time Operating Systems  Real-Time CPU Scheduling  An Example: VxWorks5.x.
SMP Basics KeyStone Training Multicore Applications Literature Number: SPRPxxx 1.
1 Uniprocessor Scheduling Chapter 3. 2 Alternating Sequence of CPU And I/O Bursts.
Resource Optimization for Publisher/Subscriber-based Avionics Systems Institute for Software Integrated Systems Vanderbilt University Nashville, Tennessee.
Basic Concepts Maximum CPU utilization obtained with multiprogramming
Spark on Entropy : A Reliable & Efficient Scheduler for Low-latency Parallel Jobs in Heterogeneous Cloud Huankai Chen PhD Student at University of Kent.
Virtual Memory Networks and Communication Department.
CSI 400/500 Operating Systems Spring 2009
Real-time Software Design
Chapter 8: Memory management
Outline Module 1 and 2 dealt with processes, scheduling and synchronization Next two modules will deal with memory and storage Processes require data to.
EE 472 – Embedded Systems Dr. Shwetak Patel.
Operating Systems : Overview
Operating Systems : Overview
Presentation transcript:

Embedded Multicore processing for Mobile Communications Real-time Contracts and Thread Profiling York Jack Whitham

2 Threads and Applications A thread is an execution context. An application is a collection of threads. Not shown: a task (a memory space shared by one or more threads).

3 Thread Utilisation Each thread has an associated utilisation U. utilisation U – the amount of CPU resource required by the thread. C = execution time estimate T = thread period York’s work attempts to ensure that every application receives the CPU resource that it needs. How? Contracts and Servers.

4 What is a contract? A contract specifies the CPU resources needed by an application. 1-1 relationship between contracts and applications. Contracts are generated by the CG tool (made in York) based on the requirements of an application (thread utilisation data).

5 What is a server? A server represents a virtual CPU offering a guaranteed utilisation to a group of threads. Server utilisation = A physical CPU can be partitioned into two or more servers.

6 CG (contract generator) tool The CG tool aims to efficiently partition a system: – Always allocate dedicated CPUs to each application (or component) whenever possible. – Otherwise, try to use as few servers as necessary. CG tool input: – For each thread: Thread ID and Thread Utilisation The CG tool groups threads according to their utilisation: – CG places threads into groups. – Whenever the total utilisation of a group of threads U total satisfies Threshold_L <= U total <= Threshold_H, a dedicated CPU is required. – Otherwise, a server with a utilisation of U total (probably with some margin) will be used. CG tool output: – One contract for each application.

7 Contract Negotiation Negotiation determines which servers should run on each CPU in order to satisfy contracts. Negotiation may fail if insufficient CPU resources are available to schedule the servers. A contract (generated by CG) contains the following information: 1. Number of dedicated CPUs required. 2. Thread allocation to these CPUs. 3. Number of servers required. 4. The utilisation of each server. 5. Thread allocation to each servers.

8 Example of Negotiation

9 CN (contract negotiation) tool The CN tool (developed in York) assigns CPU resources in order to satisfy contracts. CN tool input: – Number of available CPUs (N). – User-specified shortest period of any server (T). CN tool algorithm: – Allocate dedicated CPUs first (must be less than N). – Use First-Fit-Decreasing-Utilisation algorithm to allocate servers (of all contracts) to the remaining CPUs and see whether they are schedulable. CN tool output – for each CPU: – Set of threads (and priorities) to run on this CPU. – Set of servers (and priorities) to run on this CPU. – Server periods (deadline = period) and budgets. – IDs of threads that will run under a specific server (including priorities).

10 Results CPU time is guaranteed to each server. – Note that this is not a hard real-time guarantee for each thread. Synchronisation and communication between threads are not supported in the current version but they will be added soon. Contracts require utilisation data for each thread: To use contracts, L4 and LOBA must support the concept of a server. C = execution time estimate T = thread period

11 Obtaining utilisation data York has extended L4 with a thread profiling tool called “csamon”. The tool dumps live thread execution statistics from L4. We can use it to calculate the utilisation of each thread. We can also use it to visualise what is happening inside the system.

12 csamon We need your help with “csamon”. We have to test it with VAST. We need utilisation data for LTE and other parts of the system. Download “csamon” from York: Instructions on the web. Patches can be applied to L4 snapshots from Dresden.

13 Todo: Server support A server is a group of threads that share an execution time budget. CN gives a budget and period to each server. The budget is smaller than the period. When the execution time budget of a server is exhausted, the threads in that server cannot run until the budget is replenished at the end of the period. In order to use contracts, L4 and LOBA must be aware of servers.

14 Research work from York Time-predictable access to dynamic data from C programs. – As discussed in October - tasks on MPcore/Cortex-A9 are not time- predictable in a hard real-time sense; how could this be improved? – What’s the problem? Data caches Shared memory Heuristic optimisations in each CPU e.g. branch prediction. Replace data cache with data scratchpad/tightly coupled memory? – Creates a problem for dynamic data structures. No problem if all variables are local or global, but what about malloc in C, and new in Java/C++?

15 Research work from York New scratchpad technology is required. – Initial simulator and Microblaze implementations working. – Data cache can be entirely replaced by a time-predictable component which can store dynamic data structures. – Details - – Automatically applied to SPEC and Mibench software with good results in many cases, but some programs need to be modified to make best use of the new technology. – Two conference papers in submission, one technical report published, downloadable software and HDL on website. Future work: more analysis and development required!

16 Summary York has developed a contracts model and three tools (CG, CN, csamon). York has done some research into time-predictable memory. York needs the utilisation data for the threads in the finished system. York must work with Dresden to implement support for servers in L4 and LOBA. More information about contracts and servers: – See emuco-wp2 mailing list archive for 18 th June 2009.

17 Prof. Dr. Ing. Attila Bilgic Ruhr-Universität Bochum Institute for Integrated Systems Universitätsstrasse 150 D Bochum GERMANY ICT-eMuCo is a European project supported under the Seventh Framework Programme (7FP) for research and technological development Project Coordination: Jack Whitham / Yang Chang / Neil Audsley