NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

面向多核异构硬件的多内核操作系统 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:282296
用户头像

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

关注

评论

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

训练营第三周作业 1

仲夏

极客大学架构师训练营

组合模式程序案例

天天向上

极客大学架构师训练营

架构师训练营第 3 周课后练习

叶纪想

极客大学架构师训练营

架构师训练营第三周总结

月殇

极客大学架构师训练营

架构训练营第三周作业

Geek_ce484f

极客大学架构师训练营

架构师1期第三周总结

FG佳

极客大学架构师训练营

第二讲 作业一

mm马

极客大学架构师训练营

第 3 周 作业

Pyr0man1ac

第三周第一题

sean

单例

scorpion

week-3-part1 手写单例模式

陈龙

训练营第三周作业 2

仲夏

极客大学架构师训练营

第三周第二题

sean

架构师训练营第三次作业

月殇

极客大学架构师训练营

LeetCode题解:49. 字母异位词分组,数组排序,JavaScript,详细注释

Lee Chen

大前端 LeetCode

「架构师训练营」第三周课后练习

L

Week 3 作业 01

Croesus

架构师训练营 第三周作业

郎哲158

「架构师训练营」第三周课后练习

L

架构师训练营第 1 期 -Week3 - 课后练习

鲁大江

php 单例模式 极客大学架构师训练营 go单例模式

架构师训练营第 1 期第 3 周作业

owl

极客大学架构师训练营 组合模式 Go 语言

第 3 周 代码重构 80!80!80!

Pyr0man1ac

第三周作业

龙卷风

极客大学架构师训练营

架构师训练营第 3 周学习总结

netspecial

极客大学架构师训练营

week-3-part2 学习总结

陈龙

架构师训练营第二周作业

尹斌

架构师1期3周作业

FG佳

极客大学架构师训练营

架构师训练营第三周学习总结-设计模式

郎哲158

学习 极客大学架构师训练营

第三周作业及笔记

橘子皮嚼着不脆

第二讲 学习总结

mm马

极客大学架构师训练营

架构训练营第三周作业

Geek_ce484f

极客大学架构师训练营

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