The research goal of Operating Systems and Distributed Computing Lab (OSDC Lab) is to explore and extend real-time system theories and techniques to solve various problems that may arise in real world applications. Currently, OSDC Lab is especially interested in (1) real-time system design and analysis, (2) operating system kernel design and optimization, (3) software engineering approaches to real-time and embedded systems, and (4) various software issues in automotive systems.
(1) Real-time system design and analysis
We are trying to develop effective methods and implementation techniques for mission-critical real-time systems. Specifically, we are exploring real-time system design methodology, real-time scheduling theory and schedulability analysis, fault detection and recovery for cyber-physical systems (CPS).
- Real-time software design and verification methodology
- Real-time scheduling algorithms and schedulability analysis for multiprocessors
- OS-level fault detection and recovery in CPS (Cyber Physical Systems)
(2) Operating system kernels
We are working on various operating system issues including RTOS design and implementation, scalable multiprocessor OS architectures, memory management for low end embedded systems, power saving techniques, files systems and storage performance optimization with flash memory.
- RTOS design and implementation for small embedded systems including wearable and/or IoT devices
- A scalable operating system architecture that can support hundreds and more processor cores
- Memory management schemes for low end systems with limited physical memory (virtual memory, caching, swapping, OOM, and LMK)
- Power management via ACPI and DVFS in the Linux kernel.
(3) Software engineering for real-time and embedded systems
Traditional software engineering approaches do not adequately address how to handle timing constraints of real-time systems and hardware-related issues found in embedded systems. To overcome such limitation, OSDC Lab is adapting and extending existing software engineering theory and techniques for real-time and embedded systems.
- Timing-aware requirements engineering, modeling, design, and analysis
- SPL (Software Product Line) and variability management for real-time systems
- Parallel real-time software architecture design and performance optimization from an architectural perspective
- Model-based test automation (automatic test case generation and execution)
(4) Software design and optimization for automotive systems
With the growing use of ECUs (electronic control units) in automobiles, automotive software is becoming increasingly complex. To address this challenge, we are investigating various software issues in automotive systems.
- SWC mapping to ECU, runnable-to-task mapping, task priority assignment, IVN (in-vehicle network) scheduling
- AUTOSAR software architecture and design for multicore ECUs
- Soft error detection and recovery for software reliability and safety
- OSEK operating system design and implementation