• 2013.03-多核操作系统-梁荣晓-多核操作系统发展综述


    Time

    2020.11.13

    Summary

    Research Objective

    多核操作系统

    Problem Statement

    1. 多核处理器发展,操作系统发展滞后。
    2. 传统多核操作系统难以适应多核处理器的发展趋势
      2.1 传统操作系统往往通过锁来保护共享数据,随着 CPU 核数的增加,进入内核的线程也会随之增加,对锁的竞争将更为激烈,影响系统的整体性能。
      2.2 核数增加时,传统多核操作系统一般通过创建更细粒度的锁来增加内核的并发性,而调整锁粒度是一项异常复杂的工作。
    3. 限制可扩展性的根本因素——锁与共享内存

    Method(s)

    利用分布式设计思想,采用分布式优化处理传统多核操作系统的结构和功能,将多核硬件划分为不同子系统,降低各子系统之间的耦合度,提高多核操作系统可扩展性。

    1. 改进传统宏内核架构
    2. 基于功能分布思想,不同的核划分为不同的功能
    3. 设计数据分布式多核操作系统
    4. Corey操作系统
      在Linux基础上修改操作系统接口实现的,设计目标是针对当前主流的Cache一致性 SMP 多核处理器。
      设计思想是:应用程序控制数据的共享(通过应用程序对内核间共享资源的控制, 减少多核之间不必要的资源传递与更新,以达到更高效利用多内核的目的)
      Corey在Linux中增加了3个新接口:
    • 地址范围,允许应用程序编程时决定私有地址与共享地址的范围;
    • 核心,允许应用程序制定特定的核心执行;
    • 共享对象,允许应用程序决定哪个对象对其它核心可见。
    1. 功能分布式多核操作系统
      不同核心(Core)所使用的内核(Kernel)可以是宏内核或微内核
    2. FOS
      一种面向多核与云计算的操作系统,对待提供单一系统映像(SSI,Single System Image),具有良好的兼容性以及可扩展性。
      设计原则:
    • 空间复用取代时间复用,在命名空间中进行调度,调度的资源是多个核;
    • 操作系统分界成特定的服务,各服务分布在各服务器中,彼此通过消息传递进行通信;
    • 错误自动检测与处理

    Evaluation

    Conclusion

    Notes

    1. 传统多核操作系统采用宏内核(Macro Kernel)又称大内核(Monolithic Kernel)架构,其中以Linux和Windows为代表

    Words

    1. Core 核心(指的是硬件层面的CPU)
    2. Kernel内核 (指的是软件层面的操作系统)

    Terminology

    1. 宏内核
      解释1:使用单一数据结构,内核本身提供大多数系统服务,此架构的特性是整个内核程序是一个单一二进制可执行文件,在内核态以监管者模式(Supervisor Mode)来运行。
      解释2:宏内核被视作为运行在单一地址空间的单一的进程,内核提供的所有服务,都以特权模式,在这个大型的内核地址空间中运作,这个地址空间被称为内核态(kernel space)。它通常是以单一静态二进制文件的方式被存储在磁盘,或是缓冲存储器上,在引导之后被加载存储器中的内核态,开始运作。
    2. 对称多处理器(SMP)
      在SMP中所有的处理器都是对等的, 它们通过总线连接共享同一块物理内存,这也就导致了系统中所有资源(CPU、内存、I/O等)都是共享的,当我们打开服务器的背板盖,如果发现有多个cpu的槽位,但是却连接到同一个内存插槽的位置,那一般就是SMP架构的服务器。
    3. 非均匀访问存储模型(NUMA Non-uniform memory access)
      非统一内存访问架构(英语:Non-uniform memory access,简称NUMA)是一种为多处理器的电脑设计的内存架构,内存访问时间取决于内存相对于处理器的位置。在NUMA下,处理器访问它自己的本地内存的速度比非本地内存(内存位于另一个处理器,或者是处理器之间共享的内存)快一些。
    4. 异构多核处理器
      由一个或者多个主核以及其他从核组成

    Sentence

    TimtLine

  • 相关阅读:
    LTE-TDD随机接入过程(3)-RAR(MSG2)以及MSG1的重传
    《javascript设计模式》读书笔记一(接口)
    数据结构——算法之(033)(两个有序单链表合并为一个有序的单链表)
    利用redis和php-resque实现后台任务
    最能毁掉程序猿健康的几件事
    springMVC4(11)使用注解完毕数据格式化
    Linux
    Linux
    Linux
    Fluent_Python_Part4面向对象,11-iface-abc,协议(接口),抽象基类
  • 原文地址:https://www.cnblogs.com/call-me-dasheng/p/13970915.html
Copyright © 2020-2023  润新知