写点什么

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

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

关注

评论

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

文石BOOX Note Air与掌阅iReader Smart2 该怎么选?

暂存图片

而立

配置企业应用业务流程别头大,有工作流引擎就不怕

Marilyn

敏捷开发

JVM系列笔记 - 虚拟机栈

朱华

JVM

LAXCUS 大数据集群操作系统:一个分布式分时共享 E 级系统软件(五)

陈泽云

人工智能 数据库 大数据 操作系统

iOS性能优化 — 三、安装包瘦身

iOSer

ios 性能优化 编程语言 ios开发 安装包瘦身

独家揭秘 | 京东物流Elasticsearch大规模“迁移上云”实践

京东科技开发者

云计算

JMM 应用实例:单例模式

朱华

单例模式

mongodb源码实现系列-网络传输层模块实现二

杨亚洲(专注MongoDB及高性能中间件)

MySQL 数据库 mongodb 高性能 分布式数据库mongodb

中台架构下的DDD和落地实践

高鹏

业务中台 DDD 领域驱动模型DDD 中台架构 中台架构 DDDplus

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

wgl

极客大学架构师训练营

云原生2.0时代:开启应用定义基础设施新时代

华为云开发者联盟

容器 云原生

Go发起HTTP2.0请求流程分析(后篇)——标头压缩

Gopher指北

后端 HTTP2.0 Go 语言

这个应用魔方厉害了,让软件开发者效率提升10倍

华为云开发者联盟

软件开发 代码

让“物”能说会道,揭晓华为云IOT黑科技

华为云开发者联盟

物联网 华为云

1024丨奈学教育致敬程序员:‘3+2’战略发布会圆满落幕

古月木易

奈学教育

算法图解:如何用两个栈实现一个队列?

王磊

Java 数据结构 算法和数据结构

架构师训练营第一期 - 第五周课后作业

卖猪肉的大叔

一文快速入门分库分表中间件 Sharding-JDBC (必修课)

程序员小富

Java 分库分表

iOS touch事件点的获取

teoking

ios

架构师训练第五周 -编程语言实现一致性 hash 算法

郎哲158

环信入选2020在线教育视频云创新排行TOP10

DT极客

使用Hugo和GitHub搭建博客

Felix

GitHub GitHub Pages Blog Hugo

一文带你掌握Redis操作指南

华为云开发者联盟

数据库 存储

LeetCode题解:46. 全排列,回溯,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

Docker内部组件

混沌畅想

Docker 容器 运维

1024丨奈学教育致敬程序员:‘3+2’战略发布会圆满落幕

奈学教育

程序员 奈学教育

前端科普系列(5):ESLint - 守住优雅的护城河

vivo互联网技术

Java 大前端 代码仓库

两个程序员老友的会面

Learun

敏捷开发

标准的开发框架,对企业开发有多重要?

Philips

敏捷开发

架构师训练营第一期 - 第五周学习总结

卖猪肉的大叔

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