Harini Ramaprasad

Ph.D., Computer Science

Profile Picture

I am a Teaching Full Professor in the Department of Computer Science and the Director of Undergraduate Programs in the College of Computing and Informatics of the University of North Carolina at Charlotte.

Curriculum Vitae


Doctor of Philosophy

July 2008

Master of Science

May 2006

Bachelor of Science

September 2001

Computer Science

Bangalore University

Professional Experience

Teaching Full Professor

August 2020 - present

Department of Computer Science

University of North Carolina at Charlotte

Director of Undergrad Programs

July 2019 - present

College of Computing and Informatics

University of North Carolina at Charlotte

Assistant Chair

August 2017 - June 2019

Department of Computer Science

University of North Carolina at Charlotte

Teaching Associate Professor

August 2014 - July 2020

Department of Computer Science

University of North Carolina at Charlotte

Assistant Professor

August 2008 - August 2014

Department of Electrical and Computer Engineering

Southern Illinois University Carbondale


My research interests are in the areas of real-time/embedded systems, cyber-physical systems, operating systems and Computer Science education.

Real-Time / Embedded Systems

An embedded system is a combination of computer hardware and software that is designed to achieve specific functionality. Most embedded systems contain tasks or programs that have both logical and temporal constraints. Embedded systems with temporal constraints are referred to as real-time embedded systems, or simply real-time systems. Real-time systems may be broadly classified into two types, namely hard-real-time systems and soft-real-time systems. Hard-real-time systems are those in which tasks must strictly adhere to deadlines and failure to meet deadlines have severe consequences (e.g., aircraft control systems, emergency life support systems, etc). On the other hand, soft-real-time systems are those in which tasks may occasionally miss deadlines and missed deadlines result in decreased Quality-of-Service or QoS (e.g., multimedia applications, game stations and video streaming applications). An embedded system that contains hard-real-time, soft-real-time and non-real-time tasks is referred to as a mixed-criticality system. Real-time systems must ensure robustness, safety and determinism. Failing to meet any one of these requirements may result in undesirable (in soft-real-time systems) and/or severe (in hard-real-time and mixed-criticality systems) consequences. To ensure determinism and schedulability, real-time systems require a-priori knowledge of the worst-case execution times (WCETs) of all tasks.

Static Timing Analysis

Static timing analysis is considered a viable approach for calculating upper bounds on the WCET of a task. Static timing analysis models the architectural components of a computing system in order to obtain the time taken by the longest path identified in a given task. Architectural features such as out-of-order pipelines and caches cause unpredictability in timing analysis, leading to overly pessimistic estimates of the WCET of a task. One such feature that is particularly hard to model is the data cache.

Single Task Analysis

In this work, a data cache analyzer framework known as the Cache Miss Equations framework was enhanced. The new framework provides three fundamental enhancements over the original one and thus relaxes certain constraints that the original framework imposed on tasks.

This data cache analysis framework was integrated into an existing static timing analyzer framework that calculates the WCET of a task.

[Publications: RTAS 2005]

Preemptive systems

Real-time systems typically have multiple tasks, each with a unique priority, executing in a preemptive environment. In analyzing such systems, three important questions are answered.

[Publications: RTAS 2006, RTSS 2006, TECS 2010]

Tasks with Critical Sections

Some real-time tasks may have regions where they use shared resources that are non-premptable. Traditionally, such tasks have been scheduled completely non-preemptively to simplify timing analysis. This suffers from the downside of decreased schedulability. A methodology to make only critical sections non-preemptive regions (NPRs), but keep legal preemptions was proposed and implemented. This framework was enhanced to support resource-sharing policies such as the Priority Inheritance Protocol (PIP) instead of making critical sections non-preemptive. This framework may be used as a means to identify what method is suitable for what sets of tasks.

[Publications: RTAS 2008, RTAS 2009]

Aperiodic Job Handling in Cache-Based Real-Time Systems

While most of the normal operation in a real-time system is modeled using time-driven, hard-deadline sporadic tasks, event-driven behavior is modeled using aperiodic jobs with soft or no deadlines. To provide good Quality-of-Service for aperiodic jobs in the presence of sporadic tasks, aperiodic servers were introduced. Aperiodic servers act as a sporadic task and reserve a quota periodically to serve aperiodic jobs. The use of aperiodic servers in systems with caches is unsafe because aperiodic servers do not take into account, the indirect cache-related preemption delays that the execution of aperiodic jobs might impose on the lower-priority sporadic tasks, thus jeopardizing their safety. To solve this problem, we propose an enhancement to the aperiodic server that we call a Cache Delay Server. Here, each lower-priority sporadic task is assigned a delay quota to accommodate the cache-related preemption delay imposed by the execution of aperiodic jobs. Aperiodic jobs are allowed to execute at their assigned server priority only when all the active lower-priority sporadic tasks have a sufficient delay quota to accommodate it. Simulation results demonstrate that a Cache Delay Server ensures the safety of sporadic tasks while providing acceptable Quality-of-Service for aperiodic jobs.

[Publications: RTCSA 2013]

Real-Time Support for Multi-Core Architectures

Single core processor designs have reached a clock frequency wall due to area and power considerations, leading to designs with multiple processors on a single chip, known as chip multiprocessors or simply multicore processors. As real-time embedded systems integrate more and more functionality, they are demanding increasing amounts of computational power that can only be met by deploying multicore architectures. The use of multicore architectures with on-chip memory hierarchies and shared communication infrastructure in the context of real-time systems poses several research challenges. In general, there are two broad classes of multi-core real-time scheduling algorithms, namely global and partitioned approaches. A global policy assumes that tasks may be migrated among cores while a partitioned policy allocates tasks to cores statically. Semi-partitioned scheduling strategies form a middle ground between these two approaches. By making most tasks non-migrating (partitioned), runtime migration overhead is minimized. On the other hand, by allowing some tasks to migrate among cores, schedulability of task sets may be improved.

Mechanisms for Task Migration on Multi-Core Architectures

Migration of tasks among cores (necessary in global and semi-partitioned scheduling) reduces time predictability of tasks due to cache warm-up overheads while increasing traffic on the Network-on-Chip (NoC) interconnect. In order to improve time predictability of real-time tasks in the presence of task migrations, novel micro-architectural migration mechanisms with bounded migration overheads are proposed.

[Publications: LCTES 2009, LCTES 2011, CASES 2012, TECS 2014]

Policies for Task Migration on Multi-Core Architectures

A semi-partitioned policy for predictably scheduling periodic hard-real-time tasks using locked cache migration on a Network-on-Chip (NoC) based multicore architecture is proposed. As many tasks as possible are statically partitioned onto cores. The remaining tasks are allowed to migrate in a predetermined manner among a preselected subset of cores to improve task set schedulability. A dynamic-priority policy for scheduling memory accesses on the NoC and a location-aware partitioning policy that takes explicit advantage of this NoC scheduling policy to improve the efficiency of task allocation.

[Publications: ECRTS 2012, SIES 2014, RTS 2015]

Cyber-Physical Systems

A Cyber-Physical System (CPS) is composed of distributed computational elements, connected via a computer network, that monitor and control switched physical systems interconnected by physical infrastructures. A fundamental challenge in the design and analysis of a CPS is the lack of common semantics across the components. This challenge is addressed by employing a novel approach that composes the correctness of the components instead of their functionality using a conjunction of non-interfering logical invariants.

[Publications: ICCPS 2013, COMPSAC 2013, SEAA 2014]

Mixed-Criticality Systems

Embedded real-time applications such as Avionics and Automotive systems are increasingly using multi-core platforms. Such systems have strict certification requirements of subsets of their functionality, which result in strict temporal constraints on those subsets, while other subsets may have less strict requirements. Migrating such mixed criticality systems from single-core to multi-core platforms is challenging because application/component isolation and freedom from interference among them must be guaranteed. Safe and efficient, architecture-aware mapping and scheduling of system components (e.g., partitions, tasks, etc. as relevant to a particular domain) on the multiple cores is at the center of any scheme to migrate such systems from single-core to multi-core platforms. We propose, develop and evaluate a unified framework to automate the mapping and scheduling process with the consideration of several architectural and application level requirements/constraints (e.g., communication and cache conflicts among system components, constraints prohibiting the allocation of certain system components on the same core, etc.)

[Publications: RTNS 2018]

Real-Time Execution of Graphics Processing Units

Graphics Processing Units (GPUs) are computational powerhouses that were originally designed for accelerating graphics applications. In recent years, there has been a tremendous increase in support for general purpose computing on GPUs (GPGPU). GPU based architectures provide unprecedented magnitudes of computation at a fraction of the power used by traditional CPU based architectures. As real-time systems integrate more and more functionality, GPU based architectures are very attractive for their deployment. However, in a real-time system, predictability and meeting temporal requirements are much more important than raw performance. While some realtime jobs may benefit from the performance that all cores of the GPU can provide, most jobs may require only a subset of cores in order to successfully meet their temporal requirements. We propose to study concurrent scheduling of soft-real-time jobs on a GPU based platform.

[Publications: RTAS 2014]


My teaching interests are in the areas of operating systems, computer networks, real-time systems, compiler construction, object-oriented programming, computer architecture, software systems design and implementation and database systems.

Teaching Methodology

I strongly believe that active learning improves student engagement and student learning. As such, I have adopted numerous active learning techniques in all my classes, resulting in fully flipped versions of the classes. I have worked on and continue to work on significantly adapting existing techniques to my own classroom setting and to the unique context of students here at UNC Charlotte.

Below are the key aspects of engaged pedagogy and active learning that I have incorporated into my teaching:

Pre-class lecture videos: Due to the passive nature of listening to someone else talk, students often zone-out during long in-class lectures. Since there is no rewind in real life, this means that they may not have a good learning experience. Lecture videos allow students to go over lecture material at their own pace, make notes, go back & forth as needed, etc. I have created my own lecture videos for all my classes. This helps me provide content specifically relevant to my classes and lends the course material a personal touch. I strive to keep my lecture videos short (on an average, 10-15 minutes long) and to the point.

Forcing functions to assess preparation: Experience has taught me that simply flipping a class does not automatically guarantee success, especially since students may not (yet) be receptive to taking increased, proactive responsibility for their learning. It is essential to ensure that students complete pre-class preparation (e.g., watching lecture videos, reading textbook, etc.) by using forcing functions. In collaboration with two other colleagues, I have extensively researched and tried different formats of forcing functions. In-class observations suggest that there is a significant increase in the level of student preparation because of our forcing functions.

Interactive quizzes: Even though students are expected to be prepared for class, jumping directly into application-oriented activities can leave students at a loss. I use interactive tools such as Clickers/Poll Everywhere for in-class quizzes at the beginning of class. Students discuss concepts they learned through pre-class lecture material in groups and answer quiz questions. The interactive nature of these quizzes provides a great way to initiate discussions.

In-class activities: I have designed numerous in-class activities that give students hands-on application-oriented experience on relevant course concepts. Students work on these activities in lightweight teams [Latulipe et al., SIGCSE 2015].

Low-stakes tests: Research has shown that having one or two comprehensive, high-stakes tests can result in significant stress and grade pressure for students. To alleviate this, all my courses have 3-4 tests with lower individual stakes.

Professional skills development: Apart from learning technical content, it is vital that students learn team-work/collaboration skills, social skills of engagement with their peers, timeliness, etc. In all my classes, a small portion of the overall course grade is associated with the demonstration of these professional skills.

Recent courses



Refereed journal publications

Refereed conference publications

Refereed posters / work-in-progress papers

Non-refereed / invited conference papers

Contact Information


9201 University City Blvd
Woodward Hall 410 D
Charlotte, NC 28223