Blinder: Partition-Oblivious Hierarchical Scheduling论文笔记

Blinder: Partition-Oblivious Hierarchical Scheduling

authors:Man-Ki Y oon, Mengqi Liu, Hao Chen, Jung-Eun Kim, Zhong Shao
Yale University

背景简介

随着现代计算和通信技术的进步,越来越多的趋势是将大量软件应用程序集成到高性能片上系统中,以降低通信和维护的复杂性,同时使它们能够有效地利用公共硬件资源。这种组合要求在集成系统级别上保留为单个子系统建立的属性。特别是对于安全要求较高的关键系统(如航空电子设备、汽车、工业控制系统),在不同临界级别的应用程序之间提供强大的隔离以限制它们之间的干扰是非常重要的,具体来说:保护高优先级应用程序(例如,数字驾驶舱中的仪表盘)来自较低优先级的仪表盘(例如,信息娱乐系统)的故障行为。由于先进的功能,单个子系统变得越来越复杂,这一点越来越具有挑战性。
子系统应用程序之间的隔离是通过资源分区的形式实现的。即:对程序的时间和空间进行划分。

  • 现在我们观察到传统的分层调度方案使得非法信息能够在应该彼此隔离的分区之间流动。由于共享CPU时间的多个线程可以协作影响一个应用的执行进度并推断其中的敏感信息,因此时间分区可以通过改变其时间行为形成算法隐蔽的时间通道。

动机

  • 由于传统的cpu时间分割机制无法从安全角度实现强的时间隔离;其他应用可以感知分区执行中的变化,这使得在时间利用率上彼此完全隔离的分区之间有一个称作算法隐蔽的定时通道。
  • 所以该文章提出了一种运行时算法,即使对手完全控制了分区的计时,该算法也使得分区对其他分区的不同行为不敏感,

算法隐蔽的时间通道

  • 算法隐蔽的时间通道(参见“Avoiding Timing Channels in Fixed-Priority Schedulers”)
  • 简单来讲就是:恶意代码可以利用调度子系统非法传输信息,并且可以通过信息泄露,将阻塞线程视为准备就绪。
  • 举例说明:
    Th线程的优先级大于t1,且t1,1的优先级大于t1,2。
  • 如图,当Th阻塞时,T2线程会比T1线程先运行。当Th未阻塞时,T1会比T2先运行。由于只要知道了消息到达的顺序,就有可能会泄露信息。所以当可以控制更高优先级的线程时,就有可能造成消息泄露。

Blinder介绍

  • 本文提出的工具Blinder(运行时调度转换工具),通过保证本地执行状态(即分区本地调度),并且不管全局状态如何变化,都可以保证调度的顺序和时间。以避免攻击者利用算法隐蔽的时间通道泄露信息。

  • 此外,它是模块化的,所以它不需要对全局和本地调度策略进行任何修改,因此可以应用于采用分层调度的各种现有系统。

  • 这篇论文不是一个新的调度规则,而是为当下系统的调度给出一些限制条件。例如:如果此时轮转到任务T1,如果T1此时的任务已提前完成且有其他就绪进程,则此时仍然不运行立刻运行就绪进程,而是通过该工具,对此时的就绪进程进行重新的再排队。通过这个策略,其他任务无法通过调度的时间来判断任务T1的执行情况。

举其中一个例子(算法隐蔽的时间通道)

Tr,2优先级大于tr,1

  • 当ts优先级>tr,存在这样的一种可能,简化模型之后例如:ts发送比特0和发送比特1的cpu使用时间长度不同,则通过tr1和tr2调度的顺序可以判断出ts发送的是什么比特。若发送比特0,tr1会比tr2先执行完成,反之亦然,最后通过tr1末尾的c的值来判断,就可以知道ts发送的比特是多少。

Blinder工具原理

  • 总的来说:使其不受全局和本地调度机制的影响。通过控制何时将任务引入分区来实现这一点。例如:规定task释放/运行 时间。举例:
    在这里插入图片描述
  • 如上图所示,由于更高优先级任务的到来,抢占了ti1的cpu时间,此时ti1剩余▲y的时间长度未运行,将后续的其他线程的时间长度全部后移一定的时间长度(该时间长度可通过延迟大小分别计算出来)即可。否则,ti2将在ti1后半段前先执行。从而可能导致信息泄露。总的来说,该工具实现了全局调度不会影响到本地调度的顺序,进而避免了信息泄露。

后续

  • 文章后续部分在讨论当面对多种复杂真实的调度情况时,该工具如何计算延迟的时间大小,以及演示了这个实时原型系统的部署,最后评估该工具的性能开销等等。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值