Bio

I am a fourth year graduate student at University of North Carolina at Chapel Hill in the Department of Computer Science. I am a NSF Graduate Research Fellowship Program (GRFP) Fellow. I research real-time systems with a focus on synchronization and am advised by Dr. James Anderson in the Real-Time Systems Group.

Conference Publications

  1. Catherine E. Nemitz, Tanya Amert, and James H. Anderson, "Using Lock Servers to Scale Real-Time Locking Protocols: Chasing Ever-Increasing Core Counts", Proceedings of the 30th Euromicro Conference on Real-Time Systems , July 2018. Best Paper Award winner. [PDF]. Version with online appendices: [PDF]. Code: [Compressed tar file].
  2. Catherine E. Nemitz, Tanya Amert, and James H. Anderson, "Real-Time Multiprocessor Locks with Nesting: Optimizing the Common Case", Proceedings of the 25th International Conference on Real-Time and Network Systems, October 2017. Best Student Paper Award winner. [PDF]. Version with online appendices: [PDF]. Code: [Compressed tar file].
  3. Catherine E. Nemitz, "New Approaches to Contention-Sensitive Nested Locking in Real-Time Systems", Proceedings of the 11th Junior Researchers Workshop on Real-Time Computing, October 2017. [PDF].
  4. Catherine E. Nemitz, Kecheng Yang, Ming Yang, Pontus Ekberg, and James H. Anderson, "Multiprocessor Real-Time Locking Protocols for Replicated Resources", Proceedings of the 28th Euromicro Conference on Real-Time Systems, July 2016. [PDF]. Version with online appendices: [PDF].
  5. Catherine E. Jarrett, Bryan C. Ward and James H. Anderson. "A Contention-Sensitive Multi-Resource Locking Protocol for Multiprocessor Real-Time Systems", Proceedings of the 23rd International Conference on Real-Time and Network Systems, November 2015. [PDF]. Additional Graphs [PDF].

Teaching

I will be teaching an undergraduate course on real-time systems for the Fall 2018 semester. Below is a short summary, and the course webpage is here.

This introduction to real-time systems begins with grouping such systems under several fundamental classifications. We will develop a model to reason about these systems and cover a sampling of scheduling algorithms for uniprocessor systems. Of these algorithms, we will prove a test for each that ensures the desired system behavior. As a means of introducing some of the complexities in real systems, students will implement simulations of several scheduling algorithms. We will also cover limited preemption models and an introduction to multiprocessor scheduling. This course builds on the reasoning skills developed in COMP 283/MATH 381 and COMP 550, as well as knowledge of basic computer architecture covered in COMP 411. This course will also give an introduction to some basic concepts of operating systems.

Graduate Courses

Service and Activities