精华内容
下载资源
问答
  • 计算机操作系统的用户接口

    千次阅读 2013-05-18 10:58:13
    计算机操作系统的用户接□  所谓操作系统的用户接口,就是操作系统提供给用户,使用户可通过它们调用系统服务的手段。  通常,操作系统是通过叫做应用编程接口API和操作命令两种方式向用户提供服务的。API和...

    计算机操作系统的用户接□

          所谓操作系统的用户接口,就是操作系统提供给用户,使用户可通过它们调用系统服务的手段。

      通常,操作系统是通过叫做应用编程接口API和操作命令两种方式向用户提供服务的。API和操作命令这两种用户接口与操作系统之间的关系如图1所示。

     操作系统的用户接口

                                                                                 图1 操作系统的用户接口

      操作命令接口又叫做操作接口或作业接口,它是用户在操作系统界面上以命令方式来操作和控制计算机的手段。

      在一般情况下,一个完整的操作系统在启动后就会提供一个供用户对计算机进行操作的界面。例如:DOS操作系统会在显示器上显示一个字符操作界面;Windows操作系统会显示一个图形界面。这样,用户就可以输入命令的方式来使用操作系统的某种功能。

      API又叫做编程接口,从使用的方式来看,它是在应用程序中以函数调用的方式来享用系统服务的。

      在比较完善的操作系统中,还提供了一些诸如汇编、编译、编辑等通用的系统软件供用户使用。这些程序虽然像应用程序一样是用来完成特定任务的程序,但由于这种特定任务具有某种程度的通用性(例如C编译器),所以它们还是属于系统软件范畴。为了与应用程序在名称上区分开来,就把它们叫做实用程序。

      于是,操作系统的一种可能的层次关系如图2所示。

    一种操作系统的层次关

     图2 一种操作系统的层次关系

      根据处理器执行操作系统提供的程序功能模块在操作系统中所处的层次,操作系统的运行状态还可分为两种:核心态和用户态。

      处于核心态的程序模块可使用处理器的特权指令,而非核心态的模块不可使用处理器的特权指令。因此,非核心态的模块在调用核心态模块时要使用一个叫做系统调用的特殊接口。

    展开全文
  • 本章通过跟踪hello程序的生命周期来开始对计算机系统进行学习。一个源程序从它被程序员创建开始,到系统上运行,输出简单的消息,然后终止。我们将沿着这个程序的生命周期,简要地介绍一些逐步出现的关键概念、...

    本章通过跟踪hello程序的生命周期来开始对计算机系统进行学习。一个源程序从它被程序员创建开始,到在系统上运行,输出简单的消息,然后终止。我们将沿着这个程序的生命周期,简要地介绍一些逐步出现的关键概念、专业术语和组成部分。

      好久没有更新博客了,从国庆节到现在一直在整理秋招的一些资料,简历模版,嵌入式软件面试知识点总结,秋招笔试题目整理,面经总结复盘等。一共整理了将近400页,16W字。顺便把百度网盘的资料也整理了下,到10.16才整理完(需要资料的在主页有我联系方式)。不得不说,整理资料是真的磨人性。

      接下来的计划是补充下操作系统和计算机组成原理相关的知识。从《深入理解计算机系统》这本书开始吧,系统学习下《深入理解计算机系统》这本书,还有9个Lab可以做下,以便加深理解。初步计划一周一章(不知道行不行),争取在放寒假前做完这些。

      我会把看书过程中一些重要的知识点,概念的理解以及做实验的详细过程都放在博客深入理解计算机系统专栏中。欢迎关注我的博客以便第一时间获取文章更新的内容。

      下面就是本书第一章的一个简单总结。

    源程序是如何存储的

    #include <stdio.h>
    int main()
    {
    	printf("hello,world\n");
    	return 0;
    }
    

      以上程序是我们通过文本编辑器创建的文本文件,保存为hello.c。源程序实际上就是一个由值0和1组成的位(又称为比特)序列,8个位被组织成一组,称为字节。每个字节表示程序中的某些文本字符。现代计算机都使用ASCII标准来表示文本字符。hello.c程序的ASCII文本字符如下所示。

    image-20201019170810469

      hello.c程序是以字节序列的方式储存在文件中的。

      hello.c的表示方法说明了一个基本思想:系统中所有的信息——包括磁盘文件、内存中的程序、内存中存放的用户数据以及网络上传送的数据,都是由一串比特表示的。区分不同数据对象的唯一方法是我们读到这些数据对象的上下文

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
    本文链接:https://blog.csdn.net/qq_16933601/article/details/109169750

    源程序到可执行文件的过程

      GCC编译器驱动程序读取源程序文件hello.c,并把它翻译成一个可执行目标文件hello。这个翻译过程可分为四个阶段:预编译,编译,汇编,链接。

    image-20201019171458969

    预编译

      在预编译的过程中,主要处理源代码中的预处理指令,引入头文件,去除注释,处理所有的条件编译指令(#ifdef,#ifndef,#else,#elif,#endif),宏的替换,添加行号,保留所有的编译器指令

    编译

      在预处理结束后,进行的是编译。编译过程所进行的是对预处理后的文件进行语法分析,词法分析,语义分析,符号汇总,然后生成汇编代码

    汇编

      汇编过程将汇编代码转成二进制文件,二进制文件就可以让机器来读取。每一条汇编语句都会产生一句机器语言。

    链接

      由汇编程序生成的目标文件并不能立即就被执行,其中可能还有许多没有解决的问题。例如,某个源文件中的函数可能引用了另一个源文件中定义的某个符号(如变量或者函数调用等);在程序中可能调用了某个库文件中的函数等等。所有这些问题,都需要经链接程序的处理方能得以解决链接程序的主要工作就是将有关的目标文件彼此相连接,也即将在一个文件中引用的符号同该符号在另外一个文件中的定义连接起来,使得所有的这些目标文件成为一个能够被操作系统装入执行的统一整体

    shell是什么

      shell是一个命令行解释器,它输出一个提示符,等待输入一个命令行,然后执行这个命令。如果该命令行的第一个单词不是一个内置的shell命令,那么 shell就会假设这是个可执行文件的名字,它将加载并运行这个文件。

    典型系统的硬件组成

    总线

      贯穿整个系统的是一组电子通道,称作总线。通常总线中传输的是固定长度的字节块,也就是字(word)。字中的字节数(字长)是一个基本的系统参数。不同系统字长不同。比如32位系统的字长为4个字节,64位系统的字长为8个字节。

    IO设备

      I/O(输入/输出)设备是系统与外部世界的联系通道。我们的示例系统包括四个I/O设备:作为用户输入的键盘和鼠标,作为用户输出的显示器,以及用于长期存储数据和程序的磁盘驱动器(简单地说就是磁盘)。

      每个IO设备都通过一个控制器或适配器与I/O总线相连。控制器和适配器之间的区别主要在于它们的封装方式。控制器是I/O设备本身或者系统的主印制电路板(通常称作主板)上的芯片组。而适配器则是一块插在主板插槽上的卡。无论如何,它们的功能都是在I/O总线和I/O设备之间传递信息

    主存

      主存是一个临时存储设备,在处理器执行程序时,用来存放程序和程序处理的数据。从物理上来说,主存是由一组动态随机存取存储器(DRAM)芯片组成的。从逻辑上来说,存储器是一个线性的字节数组,每个字节都有其唯一的地址(数组索引),这些地址是从零开始的。

    处理器

      中央处理单元(CPU),简称处理器,是执行存储在主存中指令的引擎。处理器的核心是一个大小为一个字的存储设备(或寄存器),称为程序计数器(PC)。在任何时刻,PC都指向主存中的某条机器语言指令(即含有该条指令的地址)。

    运行hello程序

      shell读取到我们从键盘输入的“./hello”后,计算机中的信息流向如下图红线所示:

      键盘->USB控制器->I/O总线->I/O桥->系统总线->寄存器

      寄存器->系统总线->I/O桥->内存总线->主存

      shell程序需要把用户输入的内容作为一个变量使用,而这个变量一定在内存中有个地址,所以它最终会到达内存。

    image-20201019191356753

      当我们在键盘上敲回车键时, shell程序就知道我们已经结東了命令的输入。然后shell执行一系列指令来加载可执行的hello文件,这些指令将hello目标文件中的代码和数据从磁盘复制到主存。数据包括最终会被输出的字符串“ hello,wor1d\n”。信息流向如下所示。

      磁盘->磁盘控制器->I/O总线->I/O桥->内存总线->主存

      这种访问数据的方式数据不会经过CPU,而是直接从磁盘到主存,这种方式称为DMA。DMA(直接存储器访问)有利于减轻CPU的负荷,使CPU可以在数据转移的同时做其它任务。

    image-20201019191522808

      加载完hello文件后,CPU将会开始从hello程序的主函数处执行指令。这些指令将“hello,world\n”字符串中的字节从主存复制到寄存器文件,再从寄存器文件中复制到显示设备,最终显示在屏幕上。信息流向如下图所示。

      主存->寄存器->系统总线->I/O桥->I/O总线->图形适配器->显示器

    image-20201019191644207

    高速缓存

      通过运行hello程序,我们可以知道,指令和数据需要多次在寄存器、主存、磁盘之间来回复制,这些复制其实就是开销,减慢了程序工作的速度。这个时候我们就需要高速缓存存储器(cache memory)来解决这个问题。

    image-20201019195237101

      L1高速缓存的容量可以达到数万字节,访问速度几乎和访问寄存器文件一样快。

      L2高速缓存容量为数十万到数百万字节,通过一条特殊的总线连接到处理器。进程访问L2高速缓存的时间要比访问L1高速缓存的时间长5倍,但是这仍然比访问主存的时间快5~10倍。

      L1和L2高速缓存是用一种叫做 静态随机访问存储器(SRAM) 的硬件技术实现的。

      高速缓存局部性原理:程序具有访问局部区域中的数据和代码的趋势。因此,高速缓存存储器作为暂时的集结区域,存放处理器近期可能会需要的信息

    存储设备的层次结构

      从上至下,设备的访问速度越来越慢、容量越来越大,并且每字节的造价也越来越便宜。寄存器文件在层次结构中位于最顶部,也就是第0级或记为L0。

    image-20201019200335061

      存储器层次结构的主要思想是上一层的存储器作为低一层存储器的高速缓存。因此,寄存器文件就是L1的高速缓存,L1是L2的高速缓存,L2是L3的高速缓存,L3是主存的高速缓存,而主存又是磁盘的高速缓存。

    操作系统管理硬件

      操作系统是应用程序和硬件之间插入的一层软件。所有应用程序对硬件的操作尝试都必须通过操作系统。

      操作系统有两个基本功能:(1)防止硬件被失控的应用程序滥用;(2)向应用程序提供简单一致的机制来控制复杂而又通常大不相同的低级硬件设备。

      操作系统通过几个基本的抽象概念(进程、虛拟内存和文件)来实现这两个功能:文件是对I/O设备的抽象表示,虚拟内存是对主存和磁盘I/O设备的抽象表示,进程则是对处理器、主存和I/O设备的抽象表示

    image-20201019201009252

    进程&线程

      进程是操作系统对一个正在运行的程序的一种抽象。在一个系统上可以同时运行多个进程,而每个进程都好像在独占地使用硬件。而并发运行,则是说一个进程的指令和另个进程的指令是交错执行的。

      上下文:操作系统保持和跟踪进程运行所需的所有状态信息(PC值,主存的内容等)。

      上下文切换:操作系统通过控制处理器在进程间切换以达到交错执行的目的。

      从一个进程到另一个进程的转换是由操作系统内核( kernel)管理的。内核是操作系统代码常驻主存的部分。内核不是一个独立的进程。相反,它是系统管理全部进程所用代码和数据结构的集合

    image-20201019203213287

    一个进程由多个称为线程的执行单元组成,每个线程都运行在进程的上下文中,并共享同样的代码和全局数据。多线程比多进程更容易共享数据,而且线程间切换所有的开销要远小于进程切换。

    虚拟内存

      虚拟内存是一个抽象概念,它为每个进程提供了一个假象,即每个进程都在独占地使用主存。每个进程看到的内存都是一致的,称为虚拟地址空间。

    image-20201019203450101

      上图将虚拟地址空间分为了若干个部分,并用箭头表示该部分的扩展方向。最下端地址为0,向上地址逐渐增长。每个部分作用如下:

       程序代码和数据: 存放可执行程序代码和代码中的全局变量。

      堆: 用于动态申请的内存变量,比如malloc函数申请的动态内存空间,可以向上扩展。

      共享库: 用于存放C语言库函数的代码和数据。本例中即printf的代码和数据。

      栈: 位于虚拟地址空间的顶部,用于函数调用、存放局部变量等。当我们调用一个函数时,栈会向下扩展,返回时,向上收缩。

      内核虚拟内存: 地址空间顶部的区域是为内核保留的。不允许应用程序读写这个区域的内容或者直接调用内核代码定义的函数。相反,它们必须调用内核来执行这些操作。对于一个64位的操作系统来说,用户空间为0-3G,内核空间为3G-4G。(用户空间和内核空间有何区别,见秋招资料整理中的嵌入式软件工程师笔试面试知识点总结)

    并发&并行

      并行:指在同一时刻,有多条指令在多个处理器上同时执行。所以无论从微观还是从宏观来看,二者都是一起执行的。

    img

      并发:指在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时执行的效果,但在微观上并不是同时执行的,只是把时间分成若干段,使多个进程快速交替的执行

    img

    多核处理器&多线程

      多核处理器:多核处理器是将多个CPU(称为“核”)集成到一个集成电路芯片上。如下图所示,微处理器芯片有4个CPU核,每个核都有自己的L1和L2高速缓存,其中的L1高速缓存分为两个部分——一个保存最近取到的指令,另一个存放数据。这些核共享更高层次的高速缓存,以及到主存的接口。

    image-20201019212750093

      超线程:超线程,有时称为同时多线程( simultaneous multi-threading),是一项允许一个CPU执行多个控制流的技术。举个例子,Intel Core i7处理器可以让每个核执行两个线程,所以一个4核的系统实际上可以并行地执行8个线程。

      养成习惯,先赞后看!如果觉得写的不错,欢迎一键三连,谢谢!

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
    本文链接:https://blog.csdn.net/qq_16933601/article/details/109169750

    展开全文
  • ATA(Advanced Technology Attachment, 高级技术附加装置)起源于 IBM,是一个单纯的磁盘驱动器接口,不支持其他的接口设备,适配的是 IDE(Integrated Drive Electronics,电子集成驱动器)磁盘驱动器。IDE 接口,...

    目录

    ATA(IDE)

    ATA(Advanced Technology Attachment, 高级技术附加装置)起源于 IBM,是一个单纯的磁盘驱动器接口,不支持其他的接口设备,适配的是 IDE(Integrated Drive Electronics,电子集成驱动器)磁盘驱动器。IDE 接口,也称为 PATA(Parallel ATA,并行 ATA)接口,意在把磁盘控制器和磁盘驱动器集成到了一起,这种做法减少了磁盘接口的电缆数目与长度,数据传输的可靠性得到了增强,磁盘制造起来也变得更容易,因为厂商不需要担心自己的磁盘驱动器是否与其它厂商的磁盘控制器兼容。对用户而言,磁盘安装起来也更为方便。

    IDE 具有价格低廉,兼容性强,性价比高,数据传输慢,不支持热插拔等特点,多用于家用产品中,也有部分应用于服务器。ATA、Ultra ATA、DMA、Ultra DMA 等接口都属于 IDE 硬盘。

    在这里插入图片描述
    在这里插入图片描述

    SATA 与 eSATA

    SATA(Serial ATA,串行 ATA),又叫串口磁盘,是一个串行点对点连接系统,支持热插拔,支持主机与每个磁盘驱动器之间拥有单独的连接路径,每个磁盘驱动器都可以独享全部带宽。SATA 在机柜内部连接外部设备,而 eSATA 是外置式的 SATA 接口。

    SATA 是一种完全不同于 Parallel ATA 的新型磁盘接口类型,由于采用串行方式传输数据而知名。相对于 Parallel ATA 而言,就具有非常多的优势。首先,SATA 以连续串行的方式传送数据,一次只会传送 1 位数据。这样能减少 SATA 接口的针脚数目,使连接电缆数目变少,效率也会更高。实际上,SATA 仅用四支针脚就能完成所有的工作,分别用于连接电缆、连接地线、发送数据和接收数据,同时这样的架构还能降低系统能耗和减小系统复杂性。其次,SATA 的起点更高、发展潜力更大,SATA 1.0 定义的数据传输率可达 150MB/s,这比目前最新的 Parallel ATA(即 ATA/133)所能达到 133MB/s 的最高数据传输率还高,而在 SATA 2.0 的数据传输率将达到 300MB/s,最终 SATA 将实现 600MB/s 的最高数据传输率。SATA 总线使用嵌入式时钟信号,具有更强的纠错能力,与 ATA 相比其最大的区别在于能对传输指令(不仅仅是数据)进行检查,如果发现错误会自动矫正,这在很大程度上提高了数据传输的可靠性。串行接口还具有结构简单、支持热插拔的优点。

    在这里插入图片描述
    在这里插入图片描述

    SCSI

    SCSI(Small Computer System Interface,小型计算机系统接口)是当前流行的用于服务器和微机的外部设备接口标准,目前的计算机基本都设置了 SCSI 接口,如果没有的话就需要一块专门的 SCSI 适配器卡,完成主机总线到 SCSI 总线的跨接,不同的主机总线对应不同的适配器。SCSI 设备与主机之间以 DMA 的方式传输数据库,SCSI 适配器中整合了主机通信的指令,降低了系统 I/O 处理对主机 CPU 的占用率。

    与 IDE 不同,IDE 接口是普通 PC 的标准接口,而 SCSI 并不是专门为硬盘设计的接口,是一种广泛应用于小型机上的高速数据传输技术。不仅可以控制磁盘驱动器,还可以控制磁带机、光盘、打印机和扫描仪等外设。由于设备中包括了控制器,设备的功能更复杂,因而称为智能外设。SCSI 接口具有应用范围广、多任务、带宽大、CPU 占用率低,以及热插拔等优点,但也拥有较高的价格。

    在这里插入图片描述
    在这里插入图片描述

    SAS

    SAS(Serial attached SCSI,串行 SCSI),向下兼容并行 SATA,两种运行相同的指令集,在物理连接接口上提供了对 SATA 的支持,即两者可以使用相类似的电缆。从接口标准上而言,SATA 是 SAS 的一个子标准,SAS 吸收了 FC(光纤通道)的特点,因此 SAS 控制器可以直接操控 SATA 硬盘,但是 SAS 却不能直接使用在 SATA 的环境中,因为 SATA 控制器并不能对 SAS 硬盘进行控制。

    在协议层,SAS 由 3 种类型协议组成,根据连接的不同设备使用相应的协议进行数据传输。其中 SSP(串行 SCSI 协议)用于传输 SCSI 命令,SMP(SCSI 管理协议)用于对连接的设备进行维护和管理,STP(SATA 通道协议)用于 SAS 和 SATA 之间数据的传输。在这 3 种协议的配合下,SAS 可以和 SATA 以及部分 SCSI 设备无缝结合。此外,与并行方式相比,串行方式能提供更快速的通信传输速度以及更简易的配置,SAS 的传输速率要比 SATA 快得多。SAS 为服务器和网络存储等应用提供了更大的选择空间。

    在这里插入图片描述
    Serial attached SCSI

    iSCSI

    iSCSI(Internet SCSI)是运行在 TCP/IP 网络上的 SCSI,iSCSI 使得标准的 SCSI 指令能够在 TCP/IP 网络上的主机与网络存储设备之间传送,也可以在系统之间传送。而 SCSI 协议只能访问本地的 SCSI 设备。
    在这里插入图片描述
    iSCSI 的工作原理:当 iSCSI Initiator(终端用户)发送一个请求后,操作系统会产生一个适当的 SCSI 指令和数据请求,SCSI 指令通过封装被加上了 TCP/IP 协议的包头,并支持在需要加密的时候执行加密处理。封装后的 SCSI 指令数据包得以在 Internet 上传送,以此突破了物理空间的限制。iSCSI Target(接收端)在收到这个数据包之后按照相反的步骤进行解析得出 SCSI 指令和数据请求,再交由 SCSI 存储设备驱动程序处理。因为 iSCSI 是双向的协议,所以 iSCSI Target 可以将数据(执行结果)返回给 iSCSI Initiator。

    FC

    FC(Fibre Channel,光纤通道),与 SCSI 接口一样,光纤通道最初也不是专为磁盘驱动器所设计的接口技术,而是专门为网络系统设计的。但随着存储系统对速度的需求日益增长,FC 才逐渐应用被到磁盘存储系统中。光纤通道磁盘是为提高多磁盘存储系统的速度和灵活性才开发的,它的出现大大提高了多磁盘系统的通信速度。FC 具有热插拔性、高速带宽、远程连接、连接设备数量大等特点,是为了服务器此类多磁盘系统环境而设计的,能够满足高端工作站、服务器、海量存储子网络、外设间通过集线器、交换机和点对点连接进行双向、串行数据通讯等系统对高数据传输率的要求。

    在这里插入图片描述

    RDMA

    RDMA(Remote DMA,远程直接内存访问)是一种新的内存访问技术,RDMA 让计算机可以直接存取其他计算机的内存,而不需要经过处理器耗时的处理。RDMA 将数据从一个系统快速移动到远程系统存储器中,而不对操作系统造成任何影响。RDMA 技术的原理及其与 TCP/IP 架构的对比如下图所示。

    在这里插入图片描述

    • InfiniBand(IB):从一开始就支持 RDMA 的新一代网络协议。由于这是一种新的网络技术,因此需要支持该技术的网卡和交换机。
    • RDMA 融合以太网(RoCE):一种允许通过以太网进行 RDMA 的网络协议。其较低的网络头是以太网头,其上网络头(包括数据)是 InfiniBand 头。这允许在标准以太网基础架构(交换机)上使用 RDMA。只有 NIC 应该是特殊的,并支持 RoCE。
    • 互联网广域 RDMA 协议(iWARP):允许通过 TCP 执行 RDMA 的网络协议。在 IB 和 RoCE 中存在功能,iWARP 不支持这些功能。这允许在标准以太网基础架构(交换机)上使用 RDMA。只有 NIC 应该是特殊的,并支持 iWARP(如果使用 CPU 卸载),否则所有 iWARP 堆栈都可以在 SW 中实现,并且丢失了大部分的 RDMA 性能优势。

    因此,RDMA 可以简单理解为利用相关的硬件和网络技术,服务器 1 的网卡可以直接读写服务器 2 的内存,最终达到高带宽、低延迟和低资源利用率的效果。如下图所示,应用程序不需要参与数据传输过程,只需要指定内存读写地址,开启传输并等待传输完成即可。

    在这里插入图片描述

    RDMA 的主要优势总结如下:

    • Zero-Copy:数据不需要在网络协议栈的各个层之间来回拷贝,这缩短了数据流路径。
    • Kernel-Bypass:应用直接操作设备接口,不再经过系统调用切换到内核态,没有内核切换开销。
    • None-CPU:数据传输无须 CPU 参与,完全由网卡搞定,无需再做发包收包中断处理,不耗费 CPU 资源。

    在这里插入图片描述
    这么多优势总结起来就是提高处理效率,减低时延。

    实际上 RDMA 并非最近几年才提出,事实上最早实现 RDMA 的网络协议 InfiniBand 早已应用到了高性能计算中。但是 InfinBand 和传统 TCP/IP 网络相比区别非常大,需要专用的硬件设备,承担昂贵的价格,并且会大大增加运维人力成本。

    目前支持以太网的 RDMA 协议主要是 RoCE(RDMA over Converged Ethernet)和 iWARP(Internet Wide Area RDMA Protocol),系统部同学通过性能、可用性等多方面的调研后,最终引入了 RoCE 网络。RoCE 和 InfiniBand 的性能基本相近,而且比 iWARP 产业生态更加健全,主流网卡厂商都已支持。除此之外,RoCE 网络在数据链路层支持标准以太网协议,在网络层上支持 IP 协议,因此可以无缝融合到现有的 IDC 环境中,部署方便;其次由于 RoCE 网络支持标准以太网和IP协议,更加方便运维,而且设备成本更低。

    NVMe

    近几年存储行业发生了翻天覆地的变化,半导体存储登上了历史的舞台。和传统磁盘存储介质相比,半导体存储介质具有天然的优势。无论在可靠性、性能、功耗等方面都远远超越传统磁盘。SSD 存储介质和接口技术一直处于不断向前发展和演进的过程。SSD 分为几个阶段,第一个阶段是 SATA SSD 或者 SATA/SAS SSD 为主导,这个阶段介质以 SLC 和 eMLC 为主。第二个阶段是 PCIe SSD,PCIe SSD 最大的问题是不标准,很多私有化协议各自为政,基于 FTL 位置不同主要分为 Host based SSD 和 Device base SSD。 直到 NVMe 时代才统一了接口和协议标准,NVMe 主要的产品形态有三大类。第一类是和 SATA/SAS SS D兼容的 U.2,第二类是和 PCIe 兼容的 SSD 卡,第三类消费级产品常用的 M.2。
    在这里插入图片描述
    目前常用的半导体存储介质是 NVMe SSD,采用 PCIe 接口方式与主机进行交互,大大提升了性能,释放了存储介质本身的性能。NVMe SSD 推进了数据中心闪存化进程。
    在这里插入图片描述
    NVM Express(NVMe,Non-Volatile Memory express,非易失性内存主机控制器接口规范),是一个逻辑设备的接口规范。他是与 AHCI 类似的、基于设备逻辑接口的总线传输协议规范(相当于通讯协议中的应用层),用于访问通过 PCI-Express(PCIe)总线附加的非易失性内存介质,虽然理论上不一定要求 PCIe 总线协议。

    此规范目的在于充分利用 PCI-E 通道的低延时以及并行性,还有当代处理器、平台与应用的并行性,在可控制的存储成本下,极大的提升固态硬盘的读写性能,降低由于 AHCI 接口带来的高延时,彻底解放 SATA 时代固态硬盘的极致性能。

    历史上,大多数 SSD 使用如 SATA、SAS 或光纤通道等接口与计算机接口的总线连接。随着固态硬盘在大众市场上的流行,SATA 已成为个人电脑中连接 SSD 的最典型方式;但是,SATA 的设计主要是作为机械硬盘驱动器(HDD)的接口,并随着时间的推移越来越难满足速度日益提高的 SSD。随着在大众市场的流行,许多固态硬盘的数据速率提升已经放缓。不同于机械硬盘,部分 SSD 已受到 SATA 最大吞吐量的限制。

    在 NVMe 出现之前,高端 SSD 只得以采用 PCI Express 总线制造,但需使用非标准规范的接口。若使用标准化的 SSD 接口,操作系统只需要一个驱动程序就能使用匹配规范的所有 SSD。这也意味着每个 SSD 制造商不必用额外的资源来设计特定接口的驱动程序。2015 年 11 月,发布了 “NVM Express 管理接口规范” (NVMe),为非用户组件和系统提供了带外管理。NVMe 提供了一个通用的基线管理功能,它可以跨越所有的 NVMe 设备和系统,以及实现可选特性的一致方法。命令包括查询和设置配置、获取子系统的健康、固件管理、命名空间管理、安全管理等。

    NVMe 的优势

    • 性能有数倍的提升;
    • 可大幅降低延迟;
    • NVMe 可以把最大队列深度从 32 提升到 64000,SSD 的 IOPS 能力也会得到大幅提升;
    • 自动功耗状态切换和动态能耗管理功能大大降低功耗;
    • NVMe 标准的出现解决了不同 PCIe SSD 之间的驱动适用性问题。

    目前 NVMe SSD 主流采用的存储介质是 NAND Flash。最近几年 NAND Flash 技术快速发展,主要发展的思路有两条:

    1. 通过 3D 堆叠的方式增加 NAND Flash 的存储密度;
    2. 通过增加单 Cell 比特数来提升 NAND Flash 的存储密度。

    纵观 SSD 发展,NVMe 的出现虽然对接口标准和数据传输效率上得到了跨越式的提升,但是存储介质目前主流还是基于 NAND Flash 实现。那再往前发展,存储介质应该怎么发展呢?Intel Optane(傲腾)系列硬盘通过实践证明 NVMe 和 SCM(Storage Class Memory)配对时才会显现更大的存储优势,在很多时候也把 SCM 称为 VNM,那时数据存储将会迎来重大飞跃,NVMe 的未来属于 SCM。它将建立在行业协议标准而不是专有技术之上。

    扩展阅读:《联通沃云虚拟机扩展内存技术的方法验证研究

    NVMe Over Fabrics

    NVMe 传输是一种抽象协议层,旨在提供可靠的 NVMe 命令和数据传输。为了支持数据中心的网络存储,通过 NVMe over Fabric 实现 NVMe 标准在 PCIe 总线上的扩展,以此来挑战 SCSI 在 SAN 中的统治地位。NVMe over Fabric 支持把 NVMe 映射到多个 Fabrics 传输选项,主要包括 FC、InfiniBand、RoCE v2、iWARP 和 TCP。

    NVMe Over Fabrics 使用 RDMA 或光纤通道(FC)架构等 Fabric 技术取代 PCIe 传输。如图所示,除了基于 RDMA 架构的传输包括以太网(ROCE),InfiniBand 和 iWARP,当然,采用基于原生 TCP(非 RDMA)传输也是可能的(截至 2018 年 7 月,TCP 技术仍在研发阶段)。
    在这里插入图片描述
    图中所示的 NVM 子系统是一个或多个物理结构接口(端口)的集合,每个单独的控制器通常连接到单个端口。多个控制器可以共享一个端口。尽管允许 NVM 子系统的端口支持不同的 NVMe 传输,但实际上,单个端口可能仅支持单个传输类型。NVM 子系统包括一个或多个控制器,一个或多个命名空间,一个或多个 PCI Express 端口,非易失性存储器存储介质,以及控制器和非易失性存储器存储介质之间的接口。

    详细资料请参考:

    • https://mp.weixin.qq.com/s/gl-RbUUtdtxK3o17nFNcxA
    • https://mp.weixin.qq.com/s/2LTuDRDGeSPefCJdWnLH7w

    InfiniBand 架构

    InfiniBand 是一种基于交换结构和点到点通信的 I/O 接口,是一种长缆线的连接方式,具有高速、低延迟的传输特性。InfiniBand 以极高的传输速度将服务器、存储设备和网络设备连接在一起。基于 InfiniBand 技术的网卡的单端口带宽可达 20Gbps,最初主要用在高性能计算系统中,近年来随着设备成本的下降,InfiniBand 也逐渐被用到企业数据中心。

    InfiniBand 由 4 中基本设备组成,包括主机通道适配器 HCA、目标通道适配器 TCA、交换机及路由器。其中 HCA 功能较强,具有微处理器,参与管理。TCA 功能比较简单。交换机和路由器是用于连接的设备。
    在这里插入图片描述
    为了发挥 InfiniBand 设备的性能,需要一整套的软件栈来驱动和使用,这其中最著名的就是 OFED(OpenFabrics Enterprise Distribution),基于 InfiniBand 的设备实现了 RDMA(Remote Direct Memory Access)。RDMA 的最主要的特点就是零拷贝和旁路操作系统,数据直接在外部设备和应用程序内存之间传递,这种传递不需要 CPU 的干预和上下文切换。OFED 还实现了一系列的其它软件栈:IPoIB(IP over InfiniBand)、SRP(SCSI RDMA Protocol)等,这就为 InfiniBand 聚合存储网络和互联网络提供了基础。OFED 现已经被主流的 Linux 发行版本支持,并被整合到微软的 Windows Server 中。
    在这里插入图片描述

    以太网光纤通道 FCoE

    就在大家认为 InfiniBand 是数据中心连接技术的未来时,10Gb 以太网的出现让人看到了其它选择,以太网的发展好像从来没有上限,目前它的性能已经接近 InfiniBand,而从现有网络逐渐升级到 10Gb 以太网也更易为用户所接受。

    FCoE(FiberChannel Over Ethernet)的出现为数据中心互联网络和存储网络的聚合提供了另一种可能。FCoE 可将传统的 FC 存储网络功能融合到以太网中,思路是将光纤信道直接映射到以太网线上,这样光纤信道就成了以太网线上除了互联网网络协议之外的另一种网络协议。FCoE 能够很容易的和传统光纤网络上运行的软件和管理工具相整合,因而能够代替光纤连接存储网络。虽然出现的晚,但 FCoE 发展极其迅猛。与 InfiniBand 技术需要采用全新的链路相比,企业 IT 更愿意升级已有的以太网。在两者性能接近的情况下,采用 FCoE 方案似乎性价比更高。

    大型数据中心利用 FCoE 等新技术将存储传输和 IP 传输融合到以太网连接上,而标准的 STP 将不再适合融合网络或超大型数据中心的扩展。随着 FCoE 采用率的提高,企业存储开始考虑加入 IP 网络上的其他协议,从存储的角度来看,TRILL 可以代替 STP。

    展开全文
  • I/O设备通过接口与总线相连接 主存、I/O设备从地址总线接收地址信息,从控制总线得到控制信号,通过数据总线与其他部件相连 控制部件从数据总线接收指令信息,一般是MAR–M–MDR–IR,从运算器部件接收指令转移地址...
    • 运算器连接着数据总线,通过数据总线向主存,I/O设备传输数据
    • I/O设备通过接口与总线相连接
    • 主存、I/O设备从地址总线接收地址信息,从控制总线得到控制信号,通过数据总线与其他部件相连
    • 控制部件从数据总线接收指令信息,一般是MAR–M–MDR–IR,从运算器部件接收指令转移地址,送出指令地址到地址总线,同时向其他部件提供控制信号。

    这么总结不如看前面的数据通路习题来的更为明确。

    http://blog.csdn.net/u011240016/article/details/52735093

    http://blog.csdn.net/u011240016/article/details/52738716

    这类知识点的学习中我感觉到,动手模拟比空想来的更快,更有效!

    以上。

    展开全文
  • 微型计算机基础第二章 80X80微型处理器第三章 汇编语言指令集第四章 汇编语言程序设计第五章 输入/输出系统第六章 中断系统第七章 微型计算机系统串行通讯第八章 并行I/O接口第九章 可编程定时/计数器课程意义汇编...
  • 计算机操作系统主要功能

    万次阅读 2018-02-20 16:08:39
    操作系统主要任务,是为多道程序... 1、处理机管理功能的本质:传统的多道程序系统中,处理机的分配和运行都是以进程为基本单位,因而对处理机的管理 可归结为对进程的管理;处理机管理的主要功能是创建和撤消...
  • 操作系统:第一章 计算机系统概述

    万次阅读 2020-10-27 20:41:04
    操作系统是计算机系统中最基本的系统软件,目标是向上层提供方便易用的服务。 操作系统是系统资源的管理者 提供的功能:处理机管理、存储器管理、文件管理、设备管理 目标:安全、高效 命令接口 联机命令接口:...
  • 【计算机组成原理】计算机系统概论

    千次阅读 多人点赞 2021-03-06 15:21:41
    计算机系统概论 主要内容: 一、基本知识 (1)计算机的分类 (2)计算机的发展 (3)计算机的性能指标 二、计算机系统简介 (1)硬件系统 ①硬件系统组成 ②主要硬件简介 (2)软件系统 (3)计算机系统的层次结构 三、电子...
  • 关于操作系统的引论——简单的计算机系统介绍

    千次阅读 热门讨论 2014-01-19 20:29:15
    操作系统,第一章是操作系统的引论,给第一章画了一张图后,发现引论讲主要计算机系统。引论从整体上介绍了整个计算机系统。    层次结构,如图:    软件的层次结构最多,也最复杂。其中...
  • 计算机的层次结构计算机系统的基本组成计算机硬件的基本组成计算机的软件与硬件的关系计算机的工作过程(指令执行的过程)3.计算机的性能指标 ==(重点)==二、计算机发展历程1.计算机硬件的发展2. 计算机的分类按...
  • 操作系统是计算机系统中最基本的系统软件,能控制和管理整个计算机系统的硬件与软件资源。 操作系统的基本特征包括并发、共享、虚拟和异步。并发和共享是操作系统两个最基本的特征。 操作系统的功能: 处理机管理:...
  • 计算机系统总线

    千次阅读 多人点赞 2016-11-08 11:56:05
    申明:这篇文章是我学习了哈尔滨工业大学计算机科学与技术系刘宏伟老师的mooc课程(参考教材为高教出版社出版的唐朔飞老师编写的《计算机组成原理(第二版)》)的课堂笔记整理,其中的截图来自刘宏伟老师上课的PPT...
  • 计算机系统结构的8个伟大思想

    千次阅读 2018-10-06 17:36:23
    摘抄自《计算机组成与设计—硬件/软件接口》 1. 面向摩尔定律的设计 计算机设计者面临的一个永恒问题就是摩尔定律(Moore’s Law)驱动的快速变化。摩尔定律指出单芯片上的集成度没18-24个月翻一番。摩尔定律是...
  • 计算机系统硬件基本组成

    千次阅读 2018-09-18 21:48:19
    计算机系统硬件基本组成 计算机系统是由硬件和软件组成的,它们协同工作来运行程序。...存储器是计算机系统中的记忆设备,分为内部存储器和外部存储器。内部存储器速度高、容量小,一般用于临时存放...
  • 计算机操作系统PPT

    热门讨论 2010-05-08 11:03:27
     操作系统是计算机系统中最基本的系统软件,它整个计算机系统软件占据中心地位。操作系统的作用是对计算机系统进行统一的管理和调度,提供各种强有力的系统服务,为用户创造既灵活又方便的使用环境。操作系统是...
  • 计算机系统中所存在的瓶颈

    千次阅读 2012-01-05 21:54:09
    。。大家都知道CPU是计算机的...影响计算机速度的因素是很多的,几乎组成计算机的每个环节都影响着计算机的速度! 。。 如果一台计算机的配置不合理就会产生“瓶颈”影响整个系统的速度。这就是著名的“木桶效应”
  • 深入理解计算机系统-笔记

    万次阅读 多人点赞 2017-12-14 13:00:43
    计算机系统漫游 程序  程序的生命周期从一个源程序(源文件)开始,即程序员利用编辑器创建并保存的文本文件,如文件名为hello.c的c语言程序。源程序是由0和1组成的位序列,8个位被组织成一组,称为字节。每个...
  • 嵌入式系统中常用的通信接口技术

    千次阅读 2018-09-02 16:10:01
    嵌入式系统中常用的通信接口技术 梦里流沙2011-11-24 嵌入式系统中微处理器要和很多外围设备连接通信,最简单来说,比如你要控制一块触摸屏,你要和触摸屏进行通信控制。这个通信接口可能要用I2C,也可能用SPI协议...
  • 一种计算机系统结构只可以一种计算机组成C.一种计算机组成只可以一种计算机实现D.同一系列机各种型号的机器具有相同的系统结构,以及相同的组成和实现技术2、关于RISC和CISC处理机的指令系统结构说法正确的...
  • 1.计算机系统的组成 一个完整的计算机系统由计算机硬件系统和软件系统两部分组成。如果仅硬件系统,计算机不能做任何意义的工作,硬件仅仅的建立了计算机的物质基础。如果要计算机硬件发挥作用,必须配置软件...
  • 【UNIX】什么是操作系统中接口

    千次阅读 2014-11-30 10:49:20
    接口这个名词在计算机中并不少见,生活着...这里就是一种生活接口,我们可以看得见的,但是在计算机中,当你编写一个程序时,为了简化编程,的编程库里面,调用一种已经统一封装好的函数库,我们这要通过调
  • 微型计算机原理与接口技术 第三版(张荣标)答案

    万次阅读 多人点赞 2019-12-30 18:49:33
    微型计算机原理与接口技术第三版答案 ...(1)微处理器,微型计算机和微型计算机系统三者何联系与区别? 答:微处理器是把原来的中央处理单元 CPU 的复杂电路(包括运算器和控制器)做一片或...
  • 计算机操作系统

    千次阅读 2020-04-06 10:54:43
    操作系统的主要功能是管理计算机系统中的( ) 选项: A:程序和数据 B:资源 C:作业 D:进程 答案: 【资源 】 2、单选题: 关于多道批处理操作系统,以下说法错误的是() 选项: A:可提高系统资源的利用率 B:可提高...
  • 计算机系统由软件与硬件组成 硬件: 是物理装置的总称、例如芯片、板卡、外设、电缆等都是计算机硬件 软件: 包括运行硬件上的程序和数据及其相关的文档。 程序: 是指挥计算机如何操作的一个指令序列、也就是说...
  • 计算机系统的五大层次结构 和 三种级别的语言
  • 计算机系统结构笔记

    千次阅读 2008-10-16 21:27:00
    猜得不错的活,该笔记应该是摘自高等教育自学考试教材《计算机系统结构》一书。第1章 计算机系统结构的基本概念(一)课程内容1.计算机系统的多级层次结构2.计算机系统结构、组成和实现3.软硬件的取舍与计算机系统的...
  • 第一章 计算机系统知识 计算机系统基础知识 计算机系统由硬件和软件组成。 计算机的基本硬件由运算器、控制器、存储器、输入设备和输出设备5大部件组成。 存储器分为内部存储和外部存储,前者速度高,容量小,...
  • 分布式系统接口如何保证幂等性

    万次阅读 2020-08-15 18:32:14
    分布式系统接口如何保证幂等性 接口幂等性 为了防止上述情况的发生,我们需要提供一个防护措施,对于同一笔支付信息如果我其中某一次处理成功了,我虽然又接收到了消息,但是这时我不处理了,即保证接口的 幂等性。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 334,541
精华内容 133,816
关键字:

在计算机系统中的接口主要有