Hello World, nice to meet you! Let me introduce myself. I am a 2nd year Ph.D. student and a German Fulbright fellow. Before coming to UNC, I attended Technische Universität Berlin. My first year at UNC was funded by Fulbright, now I am employed as a research assistant by my adviser Professor Dr. James H. Anderson.
My research interests include Multiprocessor Real-Time Systems, Real-Time Operating Systems, and Operating Systems in general. As part of my research, I contribute to LITMUSRT, a real-time extension for the Linux kernel. To obtain trace data from real-world systems, I developed Feather-Trace, a very low-overhead tracing toolkit for Intel x86 compatible CPUs.
In December 2006, Hennadiy Leontyev and I participated in the international CiberMouse@RTSS2006 programming contest. The challenge was to program a (simulated) robot that would find a beacon in an unknown (and unstructured) maze and return to the start position in the face of real-time constraints, sensor noise, and competing agents. Our agent, “Ramses the Rat”, won the competition!
I'd be very happy to hear from you if you have comments or questions. Just send an email to bbb >>AT<< cs.unc.edu.
- B. Brandenburg and J. Anderson, “A Comparison of the M-PCP, D-PCP, and FMLP on LITMUSRT”, in submission, April 2008. [PDF|PS]
- B. Brandenburg and J. Anderson, “An Implementation of the PCP, SRP, D-PCP, M-PCP, and FMLP Real-Time Synchronization Protocols in LITMUSRT”, in submission, March 2008. [PDF|PS]
- A. Block, B. Brandenburg, J. Anderson, and S. Quint, “An Adaptive Framework for Multiprocessor Real-Time Systems”, Proceedings of the 20th Euromicro Conference on Real-Time Systems, to appear, 2008. [PDF|PS]
- B. Brandenburg, J. Calandrino, A. Block, H. Leontyev, and J. Anderson, “Real-Time Synchronization on Multiprocessors: To Block or Not to Block, to Suspend or Spin?”, Proceedings of the 14th IEEE Real-Time and Embedded Technology and Applications Symposium, pp. 342-353, April 2008. [PDF|PS]
- B. Brandenburg, A. Block, J. Calandrino, U. Devi, H. Leontyev, and J. Anderson, “LITMUSRT: A Status Report”, Proceedings of the Ninth Real-Time Linux Workshop, pp. 107-123, November 2007. [PDF|PS]
- A. Block, H. Leontyev, B. Brandenburg, and J. Anderson, “A Flexible Real-Time Locking Protocol for Multiprocessors”, Proceedings of the 13th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications, pp. 47-57, August 2007. [PDF|PS]
- B. Brandenburg and J. Anderson, “Feather-Trace: A Light-Weight Event Tracing Toolkit”, Proceedings of the Third International Workshop on Operating Systems Platforms for Embedded Real-Time Applications, pp. 19-28, July 2007. [PDF|PS]
- B. Brandenburg and J. Anderson, “Integrating Hard/Soft Real-Time Tasks and Best-Effort Jobs on Multiprocessors”, Proceedings of the 19th Euromicro Conference on Real-Time Systems, pp. 61-70, July 2007. [PDF|PS]
- I am the “Real-Time Lunch Czar” for Fall 2007 and Spring 2008. Real-Time Lunch is a weekly seminar held by the UNC Real-Time Group. As the “Czar”, I am responsible for scheduling and organizing the talks.
- I am also the Fall 2007 “Systems Tea Czar”. Systems Tea is a weekly seminar by the systems community at UNC. The current schedule can be found at http://www.cs.unc.edu/~jeffay/dirt/systea.
- Google was so kind to make me one of their ambassadors in Fall 2007 and Spring 2008.
Spring 2008
Fall 2007
- COMP 633 High Performance Computing.
- COMP 790-95 Introduction to Computer Security.
- COMP 991-062 Reading and Research (with Dr. Anderson).
Spring 2007
- COMP 735 Distributed Algorithms.
-
COMP 790-042 Advanced OS Implementation.
In this class, we studied and hacked on the FreeBSD operating system. That was a fun class! - COMP 790-078 Multiprocessor Real-Time Systems.
-
COMP 991-062 Reading and Research (with Dr. Anderson).
Feather-Trace was designed and implemented in this class.
Fall 2006
- COMP 750 Algorithm Analysis.
- COMP 790-062 Real-Time Operating Systems.
- COMP 665 Images, Graphics & Vision.
I take great interest in Free and Open Source Software (FOSS), the FOSS community, and support its ideals. Projects that I contribute to and code that I write that I consider to be potentially of use or interest to others is made available here.
Projects
- The LITMUSRT project develops and maintains a patch on
top of Linux that enhances the vanilla kernel with multiprocessor
real-time scheduling and synchronization algorithms. It is our group's
main development and evaluation platform for applied research
multiprocessor real-time research. The code is licensed under the GPL
2.
Project homepage -
Feather-Trace is a very low-overhead static tracing
toolkit for the Intel x86 platform. The core part is distributed
under a BSD license. The included Linux kernel patch is licensed under the GPL 2.
Project homepage
Misc. Code
Simple Grep Shell
The Simple Grep Shell (gsh) is a thin layer around GNU grep. Use it to save time when you search through a given set of files a lot. It comes with its own query history. Have a look at the screen shot to get a better idea.I use grep a lot. It is a great tool for navigating large software packages such as the Linux kernel. However, using grep directly from the shell can become tedious if you repeatedly execute many queries on the same set of files. Also, relying on the shell's history for recalling common or similar searches is somewhat cumbersome.
The Simple Grep Shell solves both problems by offering a simple, specialized shell for invoking grep. Once started for a set of files, the user can repeatedly enter search queries, and even recall prior searches (thanks to libreadline). You can pass any command line options that GNU grep understands to gsh — they will be transparently passed to grep.
gsh is written in Python and released under the BSD license.
screen shot - download scriptGRUB Boot Kernel Selector
Simple shell script to update the default choice in GRUB's menu.lst file. Use it to avoid human error when updating remote machines late at night.If you happen to be switching the default choice in the GRUB bootloader menu.lst file a lot (for example, if you frequently update the kernel on a remote machine), then you might appreciate this little script. It provides a shell-based dialog to select a new default entry based on the ones already present in the config. It is even so nice to leave a backup of your original config, just in case anything goes wrong. ;-)
Released under the BSD license.
screen shot - download script
Once I get around to cleaning up some of the stuff I have sitting around I will post some more.