限时领|《AI 百问百答》专栏课+实体书(包邮)! 了解详情
写点什么

面向多核异构硬件的多内核操作系统 Barrelfish

  • 2011-07-11
  • 本文字数:1124 字

    阅读完需:约 4 分钟

近日,微软与 ETH Zurich 研究团队发布了 Barrelfish 的源代码,Barrelfish 是个面向未来多核异构硬件的多内核操作系统。

当今的操作系统已经可以用在多处理器与多核硬件上了,但人们在最初设计时却并没有考虑到多核,这样他们就无法用在未来 10 年间将会出现的拥有几百个核心的异构硬件之上。主要问题在于共享内存的概念以及因访问由锁保护的相同数据时所引发的争夺。这正是 Barrelfish 所要解决的问题。

Barrelfish 是由微软研究院与瑞士 ETH Zurich 计算机科学系系统小组共同进行的一项操作系统研究,该项研究开始于2007 年,目的在于重新开始,完全摆脱现有操作系统的各种限制。团队计划构建一个概念OS,提供大量的多核支持,并且可以安装在新的兼容硬件上而无需进行移植。

Barrelfish 使用了多内核的概念,如下图所示:

Barrelfish 研究员 Rebecca Isaacs 解释到:

我们可否提出一种参考模型,指示该如何组织操作系统么?这正是多内核所要完成的事情。该模型描绘了这样一种概念:将操作系统组织为一种分布式系统。我们在每个节点上复制操作系统状态,运行在每个核心上的操作系统实例会彼此发送消息。Barrelfish 就是多内核模型的一种实现方式。

在 ACM Symposium 2009 发表的论文“The Multikernel: A new OS architecture for scalable multicore systems”( PDF )概要介绍了 Barrelfish 的 3 个设计原则:

  1. 显式进行内核间的通信
  2. 保持 OS 结构的硬件中立性
  3. 复制状态而非共享状态

首席研究员 Paul Barham 对这 3 个原则进行了解释

在通常的多处理器操作系统中,所有处理器都会通过共享内存操纵同样的基于内核的结构。由于所有处理器都有缓存,因此每个处理器的缓存中都会拥有大量的内核数据结构。即便每个内核都认为它所操纵的是相同的数据结构,但实际上硬件需要保持大量操作系统数据结构的一致性。 缓存一致性协议很难扩展到大量的处理器上。操作系统编写者必须得仔细考虑当执行某项操作时需要在处理器间复制哪些内核状态。在更新时,哪些处理器需要知道这一点?哪些数据需要进入到其他核心当中。多内核的想法就是明确指出所有这些通信模式,这样就不必预测需要移动机器中的哪些缓存线了,你在每一个处理器上运行独立的内核,在变更时,你显式地向所有其他核心发送一条描述该变更的消息即可。相比于使用线程的共享内存程序来说,这更像是个分布式系统。

Barrelfish 最初运行在 x86-64 位与 ARM 多处理器硬件之上,最近又增加了对 Intel Single Chip Cloud (一个拥有 48 个核心的研究型微处理器)与 Beehive( PDF ,构建在单独的 FPGA 之上的多核计算机)的支持,

Barrelfish 的源代码最近发布在了Mercurial 上,基于 MIT Open Source 许可

查看英文原文: Barrelfish Is a Multikernel OS for Multicore Heterogeneous Hardware

2011-07-11 09:282519
用户头像

发布了 88 篇内容, 共 269.3 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

week7-性能优化

未来已来

第 07 周 性能压测(响应时间和吞吐量变化)

Airship

极客大学架构师训练营

第11周作业

paul

密码学,心底的凉暖

X.F

密码学

【架构师训练营 1 期】第十一周学习总结

诺乐

架构师训练营 2 期 Week07 总结

话题讨论 | 遇到的印象最深的开源项目

soolaugust

话题讨论

Week_11 总结

golangboy

极客大学架构师训练营

KMP —— 字符串分析算法

三钻

算法 大前端 KMP

话题讨论 | 2020就要结束了,你最想对自己说的是什么

soolaugust

话题讨论

从一次不佳的小组讨论展开

sherlockq

CSS flex 排版与动画 — 重学 CSS

三钻

CSS 大前端 排版 Flex

Spring 源码学习 08:register 注册配置类

程序员小航

Java spring 源码 源码阅读

week02

ルンルン

腾讯iOA与绿盟、天融信完成产品互认证,助力零信任市场协同发展

8张图带你了解大型应用架构演进历程

Silently9527

架构 互联网架构设计

Week_11 作业

golangboy

极客大学架构师训练营

训练营 - 第11周

袭望

【架构师训练营 1 期】第十一周作业

诺乐

话题讨论 | 2021要来了,你对未来的一年有什么期待

soolaugust

话题讨论

腾讯牵头零信任产业标准工作组正式发布零信任联盟标准

架构师训练营第 1 期 - 第 10 周 - 命题作业

wgl

第十一周 作业

熊桂平

极客大学架构师训练营

第十一周 学习总结

熊桂平

极客大学架构师训练营

ShardingSphere RAW JDBC 分布式事务 Narayana XA 代码示例

Java 数据库 分布式事务 ShardingSphere

话题讨论 | 未来十年,你认为哪门语言将要脱颖而出

soolaugust

话题讨论

架构训练营第七周作业

一期一会

性能测试 Go 语言

与前端训练营的日子 --Week06

SamGo

学习

架构师训练营第 11 周学习笔记

郎哲158

架构师训练营 11 周作业

郎哲158

week7-作业二:根据当周学习情况,完成一篇学习总结

未来已来

面向多核异构硬件的多内核操作系统Barrelfish_微软_Abel Avram_InfoQ精选文章