- TextdokumentWhy Multi-Threading Should No Longer Be a DIY Job(Tagungsband des FG-BS Frühjahrstreffens 2022, 2022) Timm, Jannes; Rellermeyer, Jan S.Parallel and concurrent design has become paramount to achieving good performance in the era of multi-socket and multi-core architectures. Thread pools often play a crucial role in system software but finding the right number of threads is a tedious task, which often falls on the users to fine-tune this parameter. The best setting is not only different per application, but can also vary with the workload. We believe this decision should be made at the level of the operating system and offered as a service to benefit from metrics the kernel collects on the application performance. In this paper, we present a first step towards this vision in the form of a self-adaptive thread pool which uses OS-metrics to automatically control the optimal number of threads over time.
- TextdokumentPerformance is not Boolean: Supporting Scalar Configuration Variables in NFP Models(Tagungsband des FG-BS Frühjahrstreffens 2022, 2022) Friesel, Daniel; Spinczyk, OlafNon-functional properties (NFPs) such as memory requirements, timing, or energy consumption are important characteristics of embedded software systems and software product lines (SPLs) in general. Both during system design and at runtime, the goal is to optimize resource utilization (and, thus, NFPs) by appropriate system configuration or orchestration. NFP models, learned from benchmarks of various SPL configurations, allow for the prediction of these properties, thus enabling NFP-aware software configuration and runtime decisions. However, many existing approaches for automated learning of NFP models limit their scope to boolean variables. We argue that this is no longer sufficient: NFP models must accommodate scalar variables to achieve suitable accuracy when faced with today’s highly configurable software systems and variable workloads. To this end, we evaluate four regression tree-based NFP modeling approaches on eight use cases, and examine model complexity and model accuracy. We find that models with support for scalar variables achieve up to three times lower mean model error when predicting configurations that were not part of the training set. At the same time, the complexity of scalar and boolean-only models is nearly the same; only benchmarking becomes more time-intensive due to the need to explore scalar variables. We conclude that scalar-enabled models provide increased accuracy almost free of charge, and recommend using them when generating NFP models for embedded systems and workloads with scalar configuration variables.
- TextdokumentDMA Security in the Presence of IOMMUs(Tagungsband des FG-BS Frühjahrstreffens 2022, 2022) Schwarz, Christian; Reusch, Viktor; Planeta, MaksymFaulty, vulnerable or malicious PCIe devices can harm a system through DMA. IOMMUs can act as a security mechanism to protect against this problem by restricting the memory that is accessible via DMA. Unfortunately, there are methods to bypass the IOMMU restrictions. This paper is a survey over the currently existing bypasses and their feasibility. Current systems might be exploited from any untrusted source of DMA, which includes peripheral PCIe devices, virtual machines using SR-IOV, and even RDMA network cards, which enable remote attacks. Key strategies for the attacks presented here are Rowhammer, cache side-channels, and the exploitation of weaknesses in device drivers, e.g., for network cards, or protocols like PCIe or Ethernet OAM. An attacker can potentially achieve denial of service, the reading of confidential data, and even arbitrary code execution. Fortunately, there are some precautions to reduce the risks for affected systems.
- TextdokumentSmartOS: An OS Architecture for Sustainable Embedded Systems(Tagungsband des FG-BS Frühjahrstreffens 2022, 2022) Scheipel, Tobias; Batista Ribeiro, Leandro; Sagaster, Tim; Baunach, MarcelThe number of embedded devices is growing, and so are the concerns about dependability and sustainability. However, the life-span of modern devices is commonly very short, due to their lack of long-term maintainability in both hardware and software. This yields an increased amount of e-waste, as the individual devices are commonly very cheap and can therefore easily be replaced in case of (partial) obsolescence. In this work, we show an operating system architecture which is designed to make embedded systems more sustainable and prepared for long-term use. To do so, we implement a general basic architecture alongside extended concepts and special features within the operating system. Our approach is based on hardware/software co-design and the opportunity to update software as well as hardware in a modular way at runtime. Therefore, logic reconfiguration of the host platform, dynamic software composition and integration, as well as formal methods for verification and portability are supported.