Predictable Interrupt Management and Scheduling in the Composite Component-Based System

Predictable Interrupt Management and Scheduling in the Composite Component-Based System
复制标题

基于复合组件的系统中的可预测中断管理和调度

DOI:
10.1109/rtss.2008.13
复制
发表时间:
2008
期刊:
2008 Real-Time Systems Symposium
影响因子:
--
通讯作者:
R. West
R. West
中科院分区:
--
文献类型:
--
作者:
Gabriel Parmer;R. West

文献摘要

被引文献

相似文献

本文提出了一种复合构件系统中用户级调度层次的设计方法。这样做的动机是围绕着设计一个既可靠又可预测的系统,并且可以根据特定应用程序的需求进行配置。不受信任的应用程序开发人员可以安全地开发服务和策略,这些服务和策略被隔离在内核外部的保护域中。为了确保可预测性,复合需要对用户空间服务实施定时控制。此外,它必须提供一种方法,通过这种方法可以及时处理异步事件,如中断,而不会危及系统。为此,我们描述的功能组合,允许用户定义的调度策略组合的中断和任务管理的目的。由于需要同步对共享数据结构(例如,调度队列),而不允许不可信代码禁用中断或使用锁定存储器总线的原子指令。此外,需要有效的向上调用机制来根据特定于策略的优先级传递异步事件通知,而不需要过度求助于调度器。我们将展示如何在复合解决这些问题,通过比较几个层次的调度策略,管理任务和中断,他们依赖。研究表明,如何实现有保证的差异化服务,作为处理来自网络设备的I/O请求的一部分,同时避免活锁。微基准测试表明,在复合系统中实现和调用用户级编译器的成本与其他系统相当,甚至更低,线程切换速度是Linux的两倍多。
This paper presents the design of user-level scheduling hierarchies in the composite component-based system. The motivation for this is centered around the design of a system that is both dependable and predictable, and which is configurable to the needs of specific applications. Untrusted application developers can safely develop services and policies, that are isolated in protection domains outside the kernel. To ensure predictability, composite needs to enforce timing control over user-space services. Moreover, it must provide a means by which asynchronous events, such as interrupts, are handled in a timely manner without jeopardizing the system. Towards this end, we describe the features of composite that allow user-defined scheduling policies to be composed for the purposes of combined interrupt and task management. A significant challenge arises from the need to synchronize access to shared data structures (e.g., scheduling queues), without allowing untrusted code to disable interrupts or use atomic instructions that lock the memory bus. Additionally, efficient upcall mechanisms are needed to deliver asynchronous event notifications in accordance with policy-specific priorities, without undue recourse to schedulers. We show how these issues are addressed in Composite, by comparing several hierarchies of scheduling polices, to manage both tasks and the interrupts on which they depend. Studies show how it is possible to implement guaranteed differentiated services as part of the handling of I/O requests from a network device while avoiding livelock. Microbenchmarks indicate that the costs of implementing and invoking user-level schedulers in composite are on par with, or less than, those in other systems, with thread switches more than twice as fast as in Linux.