计算机系统概述
计算机系统是有数据管理计算机硬件软件以及网络组成的系统。其分为硬件和软件两部分,硬件有物理层面的机械,电子元器件等实体构成,而软件有可以细分为系统软件和应用软件,系统软件是指支持应用软件运行,为用户开发应用软件提供支撑的软件,如操作系统。
计算及硬件组成
计算机组成结构源于冯诺依曼计算机接口,其将计算机结构分为5部分,分别为控制淡云,算数逻辑单元,存储器,输入设备和输出设备,但现实的硬件构成通常将控制单元和运算单元集成为一体作为处理器(CPU),输入设备和输出设备被作为一体,再次划分为总线,接口和外部设备。
处理器
进过长期发展,CPU位宽由四位发展为六十四位,添加了多级缓存和多种通信总线和接口,内核由单核发展位多核,异构多核(各个CPU核心性能不一致,满足不同性能需求的任务)和众核处理器(有相较于多核更多的CPU核心,更好的处理并行任务)等。
位宽值得是一次能处理多少bit的数据,CPU位宽可以进一步理解为寄存器位宽,因为CPU实际工作时是通过寄存器临时存储数据。除了CPU位宽外,还有数据总线尾矿,地址总线位宽,指令集位宽等,分别限制了不同功能的数据大小。
处理器的指令集按照复杂程度可以分为复杂指令集(CISC)和精简指令集(RISC)。复杂指令集的指令通常是复合操作,指令数量大,而精简指令每个指令都代表一个最小的基本操作,指令数量小。
CISC以intel和amd的x86为代表,RISC则是以ARM为代表。RISC 已经成为计算机指令集发展的趋势,几乎所有后期出现的指令集均为RISC 架构。
典型的处理器系统结构如图所示
指令部件通过MMU(内存管理单元)和缓存来CPU处理外部数据,整个过程包括:
- 从内存等存储设备中取得相应的软件代码指令并完成译码和控制操作
- 控制存取部件从存储设备中取得新的数据
- 控制寄存器组为运算器准备有关寄存器数据
- 准备好结果寄存器,控制整型、浮点、向量等运算部件开展运算。
- 运算部件、寄存器单元、存取部件将执行结果通知完成部件,并在完成部件中完成结果的排队
- 由完成部件向指令部件反馈执行结果,控制指令的顺序执行、跳转等时序。
存储器
存储器的硬件结构可以分为SRAM、DRAM、NVRAM、Flash、EPROM、Disk等。计算机的存储系统采用分层结构设计,按照与处理器的物理距离可以分为四个层次。
-
片上缓存:在处理器核心中直接集成的缓存,一般为SRAM 结构,实现数据的快速读取。它容量较小,一般为16kB~512kB, 按照不同的设计可能划分为一级或二级。
-
片外缓存:在处理器核心外的缓存,需要经过交换互联开关访问,一般也是由SRAM构成,容量较片上缓存略大,可以256kB~4MB。按照层级被称为 L2Cache或 L3Cache,或者称为平台 Cache(PlatformCache)
-
主存(内存):通常采用DRAM 结构,独立存在,通过总线与处理器连接。随着断电,其中的数据也会消失
-
外存(磁盘、硬盘):访问速度较慢,容量大,可持久化存储数据。不同的介质类型容量有所不同,如 Nor Flash容量一般在MB级别,磁盘容量则在G和TB级别。外存能够在掉电后保持数据,但并非所有介质都能够永久性保存数据,每种介质都有一定的年限,如Flash外存的维持数据的年限在10年左右,光盘年限在数年至数十年,磁盘年限在10年以上,磁带年限为30年以上。
总线
总线(Bus)是指计算机部件之间遵循某一特定协议实现数据交换的形式,即以一种特定格式和控制逻辑实现数据传输。按照总线在计算机的位置可以分为内总线、系统总线和外部总线。
- 内总线:用于各类芯片内部互连,也可称为片上总线 (On-Chip Bus)或片内总线。
- 系统总线:用于计算机内各个部件之间的连接,计算机发展位多总线结构后,其含义有所变化,狭义的系统总线仍未不见之间的总线,广义上,嘉颖宝航计算机系统内有系统总监再次级连的总线,常被称为局部总线。
- 外部总线:用户计算机主板和外部设备之间的连接,活着计算机系统之间互联的总线,常被称为通信总线。
总线之间通过桥 (Bridge)实现连接,它是一种特殊的外设,主要实现总线协议间的转换。
总线的性能指标常见的有总线带宽(单位时间内能够传输数据的速率,等于位宽乘以频率)、总线服务质量QoS(一种资源管理机制,我也不太懂)、 总线时延(发送数据到接受数据的时间间隔)和总线抖动(在一定环境下,发送的数据到达接收方的时间同总线时延的偏差)等。
计算机总线存在许多种类,常见的有并行总线和串行总线。并行总线主要包括 PCI、PCle 和 ATA(IDE)等,串行总线主要包括 USB、SATA、CAN、RS-232、RS-485、RapidIO 和以太网等。
总线位宽代表着总线一次能够传输多少bit的数据,并行总线就是一个bit位需要一个信号线来传输数据,换句话说一个64位的总线,同时需要64个信号线来传输数据才能完全利用位宽。并行总线就是一个信号线来传输,一次给他对应位宽的数据,而不是占用一个位宽。
接口
接口是指同一计算机不同功能层之间的通信规则。计算机接口有多种,常见的包括显示类接口 (HDMI、DVI 和 DVI等),音频输入输出类接口(TRS、RCA、XLR 等),网络类接口(RJ45、FC等),PS/2接口, USB 接口, SATA 接口, LPT 打印接口和RS-232接口等。此外,像离散量接口与 A/D 转换接口等这类接口一般属于非标准接口,而是随需求而设计。
对于总线而言,一种总线可能存在多种接口,比如,以太网总线可以通过RJ-45或同轴电缆与之连接, PCle总线则具有多种形态的接口实现连接。
外部设备
常见的外部设备包括键盘、鼠标、显示器、扫描仪、摄像头、麦克风、打印机、光驱、各型网卡和各型存储卡/盘等一切和计算机主题功能无关的计算机设备。
计算机软件
早期的计算机软件和计算机程序 (Computer Program)的概念几乎不加区别,后来计算机软件的概念在计算机程序的基础上得到了延伸。计算机软件是指计算机系统中的程序及其文档,是计算任务的处理对象和处理规则的描述。任何以计算机为处理工具的任务都是计算任务。处理对象是数据(如数字、文字、图形、图像和声音等,他们只是表示,而无含义)或信息(数据及有关的含义)。处理规则一般指处理的动作和步骤,文档是为了便于了解程序所需的阐述性资料。
软件系统是指在计算机硬件系统上运行的程序、相关的文档资料和数据的集合。用于扩充计算机功能,提高计算机效率,其通常分为系统软件和应用软件两大类。
系统软件
系统软件是为整个计算机系统服务的通用软件,他对计算机系统的资源进行管理,并为用户使用和其他应用软件的运行提供环境。根据系统软件的功能不同,可以分为操作系统,程序设计语言翻译系统,数据库管理系统,网络软件等。
操作系统
操作系统是计算机资源的管理者,其拥有对计算机系用的最高的操作权限。其通常由操作系统内核(进程管理(任务管理)、存储管理、文件管理和设备管理等功能的那些软件模块)和其他配套软件(括图形用户界面程序、常用的应用程序(如日历、计算器、资源管理器和网络浏览器等)、实用程序(任务管理器、磁盘清理程序、杀毒软件和防火墙等)以及为支持应用软件开发和运行的各种软件构件(如应用框架、编译器和程序库等))组成。其主要作用有三个:
- 管理计算机中运行的成语和分配各种软硬件资源。
- 为用户提供友善的操作界面。
- 为应用程序的开发和运行提供平台。
除了上述3个方面的作用之外,操作系统还具有辅导用户操作(帮助功能)、处理软硬件错误、监控系统性能、保护系统安全等许多作用。总之,有了操作系统,计算机才能成为一个高效、可靠、通用的数据处理系统。
操作系统的特性:
-
并发性:即使是单核cpu,但只要有操作系统的存在,操作系统会将cpu资源在多个程序之间切换,使宏观上有多个程序同时执行。(详情可见操作系统多进程切换流程)
-
共享性:操作系统中的资源(包括硬件资源和信息资源),可以被多个并发执行的进行共享使用。
-
虚拟性:虚拟性是指操作系统中的一种管理技术,它是把物理上的一个实体变成逻辑上的多个对应物,或把物理上的多个实体变成逻辑上的一个对应物的技术。采用虚拟技术的目的是为用户提供易于使用且方便高效的操作环境。
-
不确定性:由于硬件资源有限,进程数量很多,所以进程的执行过程是不确定的。
操作系统的分类:
-
批处理操作系统:批处理操作系统就是一次处理多个程序的操作系统,批处理操作系统分为单道批处理和多道批处理。单道批处理操作系统就是cpu一次只执行一个程序,并且必须执行完毕之行下一个,多道批处理操作系统就是多个程序之间通过时间分片切换执行,和分时操作系统不同的是,多道批处理提供的时间分片和 I/O 等待的调度机制是为了最大化系统资源利用率。
-
分时操作系统:将cpu资源按时间分片,每次分配给不同的程序一个时间片。时间分片的目的是提高交互性,快速响应。目前市面上的主流的window,mac,linux操作系统都可以归类于分时操作系统
-
实时操作系统:其主要功能是对外来信息能够进行快速处理,其分为实时控制系统和实时信息处理系统,实时控制系统主要用于生产过程的自动控制,如果数据自动采集,导弹的制导系统等。实时信息处理系统主要用于实时信息处理,如果飞机订票系统。
-
网络操作系统:网络操作系系统是指计算机能放便而有效的共享网络资源。
-
分布式操作系统:锁哥分散的计算机经连接而成的计算机系统。
-
微型计算机操作系统:微型计算机操作系统简称微机操作系统,常用的有 Windows、Mac OS、Linux。
-
嵌入式操作系统:嵌入智能设备的操作系统。
数据库
存储数据的功能是由外存提供,而高效组织村树数据的规则则是由数据库定义,其内部不仅定义数据的存储规则,也描述各个数据之间的关系。早期的数据库主要分为层次式数据库,网络式数据库和关系型数据库。目前最常见的数据库是关系型数据库和非关系性数据库。根据数据库的存储体系,还可以分为关系性数据库,键值数据库,列存储数据库,文档数据库和搜索引擎数据库等类型。
- 关系性数据库:把数据结构归位简单的二元关系,对数据的操作建立在多个关系表中。
- 键值数据库:非关系性数据库,使用简单的键值存储数据。
- 列存储数据库:一列为一个数据,也就是传统的关系性数据库行和列倒过来。
- 文档型数据库:通过文档的方式存储数据,数据格式可以是XML,JSON,BSON等格式。
- 搜索引擎数据库:搜索引擎数据库是应用在搜索引擎领域的数据存储形式,由于搜索引擎会爬取大量的数据,并以特定的格式进行存储,这样在检索的时候才能保证性能最优。
关系型数据库设计的特点及方法:
数据库设计是指对于一个给定的应用环境构造最优的数据库结构。数据库设计包括结构特性和行为特性两个方面数据库设计的特点有:从数据结构即数据模型开始,并以数据模型为核心展开,这是数据库设计的一个主要特点;静态结构设计与动态行为设计分离;试探性;反复性和多步性。
目前已知的数据库设计方法可分为4类,即直观设计法,规范设计法,计算机辅助设计法和自动化设计法。常用的有基于3NF的设计方啊,基于实体联系(E-R)模型的数据库设计方法,机遇视图概念的数据库设计方啊,面向对象的关系数据库设计方法、计算机辅助数据库设计方法、敏捷数据库设计方法等。
(1)基于3NF(第三范式)的设计方法:这个设计方在是在完成需求分析和初步表结构后,进一步确保数据库的设计是符合三种范式的,其中分别为:
- 第一范式:确保表中的各个字段都是原子性的。
- 第二范式:确保每个非主键属性完全依赖于主键,消除部分依赖,对于符合主键,确保非主属性不依赖依赖于主键的一部分;
- 第三范式:确保每个非主属性不传递依赖于主键,消除传递依赖,这意味着非主属性之间不行改存在依赖关系。
在确保这三个范式的前提下,进而确定主键,外键和表关系。这种方法可以减少数据库沉余,逻辑清晰。缺点是数据过于分散,查询复杂,设计复杂。
(2)基于实体联系(E-R)模型的数据库设计方法:在明确需求后,需要根据确定需求中提到的实体对象,如学生,老师,书本,课程等,确定每个实体的属性,实体之间的关系,根据这些属性和关系,进而设计出表的字段,以及表和表之间的关系。进而绘制E-R图,在进一步细化。在根据E-R图设计关系性数据库的表结构。优点是指关移动,缺点是对于复杂的形同,E-R会变得非常复杂,难于管理。
第三范式主要着重于数据库设计的逻辑结构设计阶段,而E-R图则着重于概念结构设计阶段。
关系性数据库设计的基本步骤:
数据库设计分为需求分析、概念结构设计、逻辑结构设计、物理结构设计、应用程序设计和运行维护6个阶段,如图所示。
- 需求分析阶段的任务是明确用户对系统的需求,包括数据需求和围绕这些数据的业务处理需求。
- 数据库概念结构设计是在明确了需求后,建立信息模型,并按照选定的数据库,将其转换为数据的逻辑结构,这一步也叫数据建模。采用E-R 方法的数据库概念结构设计可分为三步:设计局部 E-R 模型、设计全局E-R 模型以及全局 E-R 模型的优化。
- 逻辑结构设计是在概念结构设计基础上进行的数据模型设计,可以是层次、网状模型和关系模型。逻辑结构设计阶段的主要任务是确定数据模型,将E-R 图转换为指定的数据模型,确定完整性约束,确定用户视图。
- 数据库在物理设备上的存储结构与存取方法称为数据库的物理结构。数据库的物理结构设计是对已确定的数据库逻辑结构,利用 DBMS(数据库管理系统) 所提供的方法、技术,以较优的存储结构和数据存取路径、合理的数据存放位置以及存储分配,设计出一个高效的、可实现的数据库物理结构。
分布式数据库:
分布式数据库体系结构是指将数据分散存储在多个物理位置(通常是不同的计算机或服务器)上的数据库系统。分布式数据库的特点是数据的集中控制性、数据独立性、数据冗余可控性、场地自治性和存取的有效性。
我国在多年研究与开发分布式数据库及制定《分布式数据库系统标准》中,提出了把分布式数据库抽象为4层的结构模式,如图所示。这种结构模式得到了国内外一定程度的支持和认同。
(1)全局外层:全局外层主要负责于用户和外部应用程序的交互,他提供统一的接口供外部使用。
(2)全局概念层:全局概念层负责管理和维护多个数据库之间的关系,确保数据的一致性和完成行,协调跨节点工作。
(3)局部概念层:负责当前节点的数据的组织和访问,确保节点上的数据和全局概念层的一致性,处理当前节点的事物。
(4)局部内层:实际的数据库。
文件系统
文件是具有符号名的一组相关信息集合。文件是一种抽象机制,他隐藏了硬件和实现细节,提供了将信息保存在外存上而且便于以后读取的手段。一个文件包含文件体和文件说明两个部分,文件体是文件真实的内容,文件说明是操作系统为了管理文件所用到的信息,包括文件名,文件类型,文件存储地址,文件长度,访问权限,建立时间和访问时间等。
文件系统是操作系统中实现了未见统一管理的一组软件和相关数据集合,文件系统的存在使用户可以根据文件名获取文件内容而非地址;提供统一的用户接口,使得不同设备上提供同样的接口,放便用户操作和编程;控制多个程序可以并发读写文件;限制不同用户对文件的权限;优化性能;能够验证文件完整性,有一定修复能力;
按照文件的性质和用途可以将文件分为系统文件(操作系统运行所必需的文件,包含操作系统内核、驱动程序、配置文件等),库文件(可以被多个程序共享使用的函数和资源)和用户文件(用户创建和使用的文件);按照信息保存期限分类可以将文件分为临时文件、档案文件和永久文件;按照文件的保护方式可以将文件分为只读文件、可执行文件和不保护文件;UNIX系统将文件分为普通文件、目录文件和设备文件(特殊文件);目前常用的文件系统类型有FAT、VFAT、NTFS、Ext2 和 HPFS 等。
文件的结构和组织
对于用户看到的文件结构,我们称其为文件的逻辑结构,用户无需知道文件的实际存储方式,只需要根据逻辑结构进行使用即可,逻辑结构也可以进一步细分为普通的记录式文件和无结构的流式文件,也就是字节流。
而文件的实际存储结构分为多种方式:
-
连续结构:直接将一个文件存储在一块连续的地址中(无论是内存还是外存,采用这种方式存储都会造成存储空间利用率低,产生碎片问题)。
-
链接结构:将文件存储在不连续的物理块中,每个物理块记录了下一部分文件所在物理块的地址。
-
索引结构:依旧将文件存储在不连续的物理块中,通过一个索引表来记录一个文件所有物理块所在的地址,索引表过大时会导致一个物理块无法容纳索引表,进而存储索引表仍然需要多个物理块,索引表的存储也有链接结构和索引结构两种存储方式。
索引结构和操作系统的页式内存管理非常相像
文件的存取方法和存储空间的管理
(1)文件的存取方法
文件的存取方法只读写文件存储器上,文件所涉及所有物理块的方法,通常有顺序读取和随机读取两种方法。
(2)文件存储空间的管理方法
空闲区表:文件系统可以通过维护空闲区表来记录连续的空闲物理块,每个连续的空闲物理块,被称作一个空闲区。空闲区表中记录了序号,空闲区中第一个空闲块的地址,以及空闲区有多少空闲块,大概结构如下图。
位示图:通过Bitmap数据结构,通过bit保存所有物理块的状态。
空闲块链:每个空闲块保存下一个空闲物理块的指针。
成组链接法:UNIX 系统采用该方法。将若干个物理块作为一组,每个组第一个物理块记录了当前组的所有物理块是否空闲,以及下一组有多少空闲块。
文件的共享与保护
常见的文件的链接方式有两种,硬连接和符号连接。其中硬连接是指多个文件名直接指向文件地址(删除时必须删除所有的硬连接),而符号链接则是原本文件的映射。
文件系统通过控制用户对文件存取控制来保护文件安全。实现方法主要有:
- 存取控制矩阵:通过文件名和文件用户作为行和列,记录权限为一个二维矩阵。
- 存取控制表:存取控制矩阵由于太大往往无法实现,改进的办法是按用户对文件的访问权力的差别对用户进行分类,这就是存取控制表,存取控制表记录了那个分类的用户,分别有哪些权限。UNIX 系统把用户分成三类:文件主、同组用户和其他用户,每类用户的存取权限为可读、可写、可执行以及它们的组合。
- 用户权限表:另一种改进方法是,以用户或用户组为单位,将用户可存取的用户存入表中。
- 密码:不再区分用户,通过密码访问文件。
网络协议
定义:网络中的计算机与计算机进行通信时,为了能够实现数据的正常发送与接收必须要遵循的一些事先约定好的规则(标准或约定),在这些规程中明确规定了通信时的数据格式、数据传送时序以及相应的控制信息和应答信号等内容。常用的网络协议包括局域网协议 (LAN)、 广域网协议 (WAN)、 无线网协议和移动网协议。互联网使是 TCP/IP 协议。
中间件
位于操作系统之上,应用软件之下,在其中起承上启下作用的软件称之为中间件。教材中称中间件的作用是为应用软件和操作系统之间提供了标准化接口和协议。我认为这种说法不够准确,中间件的作用应该是对操作系统功能调用的一种封装,或者说对操作硬件功能的一种封装,并提供接口,目的是为了解决应用软件开发过程中面对的一些问题,并不仅仅是提供操作系统的标准化接口。C++语言已经提供了完善的系统调用函数,如果仅仅是为了更方便的系统调用,无需使用C++再次开发一款软件,也就是中间件。
中间件相关的知识在工作中经常涉及,较为熟悉。教材中提到的一些我也并不认同,这里不做赘述。
软件构件(组件化开发)
构件又称为组件,实际上就是对一些可复用的代码进行封装,或为了解决某些问题或需求的一组代码的封装。比如说前端的UI组件库,后端一些工具类,都可以被称为软件构件。构件通外向外部提供统一的接口,来让外部调用构件的功能。
随着软件构件技术的发展,人们开始尝试利用软件构件进行搭积木式的开发,即构件组装模型。在构件组装模型中,当经过需求分析定义出软件功能后,将对构件的组装结构进行设计,将系统划分成一组构件的集合,明确构件之间的关系。在确定了系统构件后,则将独立完成每一个构件,这时既可以开发软件构件,也可以重用已有的构件,当然也可以购买或选用第三方的构件。构件是独立的、自包容的,因此架构的开发也是独立的,构件之间通过接口相互协作。构件组装模型的一般开发过程如图所示。
构件组装模型的优点:系统的扩展变得更加容易;重用良好的构件,降低软件开发成本;构件的粒度较整个系统更小,因此安排开发任务更加灵活;
构件组装模型也有明显的缺点:对构件的设计需要经验丰富的架构设计师;在考虑软件的重用度时,往往会对其他方面做出让步,如性能等;程序员需要熟练地掌握构件,增加了研发人员的学习成本;第三方构件库的质量会最终影响到软件的质量;
商用构件的标准规范:当前,主流的商用构件标准规范包括对象管理组织 (Object Management Group,OMG) 的CORBA、Sun 的J2EE 和 Microsoft的DNA。
(1)CORBA:CORBA(公共对象请求代理架构)主要分为3个层次:对象请求代理、公共对象服务和公共设置。最底层的对象请求代理,通过代理目标对象(分布式服务的一个节点)的网络请求和响应,定义接口规范的方法,实现不同服务,甚至不同语言之间的通信交互,是分布对象系统中的“软总线”;公共对象服务提供了更多的服务封装,其中包括命名服务,事件服务和安全服务等等;最上层的公共设施则定义了构件框架,提供可直接为业务对象使用的服务,规定业务对象有效协作所需的协定规则。
(2)在 J2EE 中,SUN 给出了完整的基于Java语言开发面向企业分布的应用规范。其中,在分布式互操作协议上, J2EE 同时支持远程方法调用 (Remote Method Invocation,RMI)和互联网内部对象请求代理协议 (Internet Inter-ORB Protocol,IIOP)。
(3) DNA 2000 是 Microsoft在推出Windows 2000 系列操作系统平台的基础上,在扩展了分布计算模型以及改造BackOffice系列服务器端分布计算产品后发布的新的分布计算架构和规范。
通过购买商用构件(平台)并遵循其开发标准来进行应用开发,是提高应用软件开发效率的常见选择。
应用软件
应用软件是指为某类应用需要或解决某个特定问题而设计的软件,如图形图像处理软件、财务软件、游戏软件和各种软件包等。在企事业单位或机构中,应用软件发挥着巨大的作用,承担了许多计算任务,如人事管理、财务管理和图书管理等。按照应用软件使用面的不同,可进一步把应用软件分为专用的应用软件和通用的应用软件两类。
**通用软件:**常见的通用软件分文字处理软件、电子表格软件、媒体播放软件、网络通信软件、个人信息管理软件、演示软件、绘图软件、信息检索软件和游戏软件等。这些软件设计得很精巧,易学易用,在用户几乎不经培训就能普及到计算机应用的进程中,它们起到了很大的作用。
**专用软件:**专用软件是按照不同领域用户的特定应用要求而专门设计开发的,如超市的销售管理和市场预测系统、汽车制造厂的集成制造系统、大学教务管理系统、医院信息管理系统、酒店客房管理系统等。这类软件专用性强,设计和开发成本相对较高,主要是机构用户购买,因此价格比通用应用软件贵得多。
嵌入式系统及软件
嵌入式系统是将信息处理过程和物理过程紧密结合的专用计算机系统,简单来说就是通过嵌入式代码处理信息,并将信息转化为实际的物理行为。嵌入式软件则是运行在物理器件中的程序,或者开发这些程序的工具。
嵌入式系统组成和特点
一般嵌入式系统由嵌入式处理器、相关支撑硬件、嵌入式操作系统、支撑软件以及应用软件组成。
- 嵌入式处理器:嵌入式系统需要伴随物理器件在不可预料的环境下工作,与一般的处理器相比,其必须肯呢个抵抗恶劣的环境。因此其除了一般处理器的低功耗,体积小外,还工艺还可以分为民用、工业和军用三个档次。
- 相关支撑硬件:相关支撑硬件是指除嵌入式处理器以外的构成系统的其他硬件,包括存储器、定时器、总线、 IO接口以及相关专用硬件。基于ARM 处理器的嵌入式计算机硬件组成图如图所示。
-
嵌入式操作系统:与传统操作系统不同的是,嵌入式操作系统应具备实时性、可剪裁性和安全性等特征。
-
支撑软件:支撑软件是指为应用软件开发与运行提供公共服务、软件开发、调试能力的软件,支撑软件的公共服务通常运行在操作系统之上,以库的方式被应用软件所引用。
-
应用软件:应用软件是指为完成嵌入式系统的某一特定目标所开发的软件。
根据嵌入式系统的应用背景及其在应用中所起作用,嵌入式系统应具备以下特性:
-
专用性强。嵌入式系统面向特定应用需求,能够把通用CPU 中许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统的小型化。
-
技术融合。嵌入式系统将先进的计算机技术、通信技术、半导体技术和电子技术与各个行业的具体应用相结合,是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。
-
软硬一体软件为主。软件是嵌入式系统的主体,有IP核。嵌入式系统的硬件和软件都可以高效地设计,量体裁衣,去除冗余,可以在同样的硅片面积上实现更高的性能。
-
比通用计算机资源少。由于嵌入式系统通常只完成少数几个任务。设计时考虑到其经济性,不能使用通用 CPU, 这就意味着管理的资源少,成本低,结构更简单。
-
程序代码固化在非易失存储器中。为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存在磁盘中。
-
需专门开发工具和环境。嵌入式系统本身不具备开发能力,即使设计完成以后,用户通常也不能对其中的程序功能进行修改,必须有一套开发工具和环境才能进行开发。
-
体积小、价格低、工艺先进、性能价格比高、系统配置要求低、实时性强。
-
对安全性和可靠性的要求高。
嵌入式系统的分类
根据不同用途可将嵌入式系统划分为嵌入式实时系统和嵌入式非实时系统两种,而实时系统又可分为强实时 (Hard Real-Time)系统和弱实时 (WeakReal-Time)系统。如果从安全性要求看,嵌入式系统还可分为安全攸关 (Safety-Critical 或 LifeCritical)系统和非安全攸关系统。
( 1 ) 实时系统(Real-Time System,RTS)。实时系统是指能够在指定或者确定的时间内完成 系统功能和外部或内部、同步或异步时间做出响应的系统。也就是说,系统计算的正确性不仅取决于程序的逻辑正确性,也取决于结果产生的时间,如果系统的时间约束条件得不到满足,将会发生系统错误。
( 2 ) 安全攸关系统(Safety-Critical System)。安全攸关系统也称为安全关键系统或者安全生命关键系统 (Life-Critical System), 是指其不正确的功能或者失效会导致人员伤亡、财产损失等严重后果的计算机系统。
嵌入式软件的组成及特点
嵌入式系统的最大特点就是系统的运行和开发是在不同环境中进行的,通常将运行环境称为“目标机”环境,称开发环境为“宿主机”环境,人们把嵌入式系统分为硬件层、抽象层、操作系统层、中间件层和应用层等5层
-
硬件层:硬件层主要是为嵌入式系统提供运行支撑的硬件环境,其核心是微处理器、存储器 (ROM、SDRAM、Flash 等)、I/O 接口 (A/D、D/A、I/O 等)和通用设备以及总线、电源、时钟等。
-
抽象层。在硬件层和软件层之间为抽象层,主要实现对硬件层的硬件进行抽象(Hardware Abstract Layer,HAL),为上层应用(操作系统)提供虚拟的硬件资源;板级支持包(Board Support Package,BSP)是一种硬件驱动软件,它是面向硬件层的硬件芯片或电路进行驱动,为上层操作系统提供对硬件进行管理的支持。
-
操作系统层:和计算机软件操作系统一样,主要负责各种硬件资源管理和调度。
-
中间件(Middleware)层:依旧和计算机软件一样。件可分为服务中间件、集成中间件、数据中间件、消息中间件和安全中间件等5类。在嵌入式系统中,比较常用的中间件产品有嵌入式数据库、 OpenGL 图形图像处理软件、 JAVA 中间件、虚拟机 (VM)、DDS/CORBA 和 Hadoop 等。
-
应用层:应用层是指嵌入式系统的具体应用,主要包括不同的应用软件。
嵌入式软件的主要特点有:可裁剪性(各个模块独立,能够增减功能)、可配置型(根据配置修改功能)、强实时性、安全性、可靠性、高确定性(所有行为符合预期)。
安全攸关软件的安全性设计
美国电气和电子工程协会 (IEEE)将安全攸关软件定义为:“用于一个系统中,可能导致不可接受的风险的软件”。例如航空航天、轨道交通、核工业等等。NASA 8719.13A 给出了软件安全 (Safety)的定义,即“在软件生命周期内,应用安全性工程技术,确保软件采取积极的措施提高系统安全性,确保降低系统安全性的错误,使其减少或控制在一个风险可接受的水平内”
1982年由RTCA 和 EUROCAE 正式发布了 DO-178 版,这是民用航空机载软件开发中安全保证的一个里程碑。1992年发布的Do-178第三版 ( B版)称为Do-178B。 现在, DO-178B 早就成了国际公认的民用航空机载软件的开发标准。一架民用飞机(相对军用飞机而言)不经过“民航标准体系”的适航认证,是不可以飞行的。而这个“民航标准体系”中,针对机载软件适航认证的,就是 DO-178B 标准。经过再次完善和补充,2011年形成了DO-178C 标准,它将工具鉴定、基于模型的开发验证技术、面向对象的技术和形式化验证技术纳入适航验证中。
DO-178B 给予了以下3方面的指导:
- 软件生命周期过程的目标
- 为满足上述目标要进行的活动
- 为证明上述目标已经达到的证据,也叫软件生命周期数据
在DO-178B 中,目标、过程、数据是软件适航的基本要求。
- 目标:DO-178B 标准规定了软件整个生命周期需要达到的66个目标。在DO-178B 中,根据软件在系统中的重要程度将软件的安全等级分为 A~E 五级,不同安全等级的软件,需要达到目标要求不同。
-
过程:DO-178B 标准把软件生命周期分为“软件计划过程”“软件开发过程”和“软件综合过程”,其中软件开发过程和软件综合过程又分别被细分成4个子过程。
(1)软件计划过程
(2)软件开发过程:软件开发过程又包括了软件需求过程、软件设计过程、软件编码过程、集成过程(将代码嵌入目标机)
(3)软件综合过程:对成品进行测试,包含了软件验证过程、软件配置管理过程、软件质量保证过程、审定联络过程4个子过程。
(4)审定联络过程:它包含了软件研制单位与合格审查机构之间建立交流和沟通的所有活动。
-
数据:DO-178B 把软件生命周期中产生的文档、代码、报表、记录等所有产品统称为软件生命周期数据。
CMM 能力成熟度模型是1994年由美国国防部与卡内基-梅隆大学的软件工程研究中心以及美国国防工业协会共同开发和研制的,其目的是帮助软件企业对软件工程过程进行管理和改进,增强开发与改进能力,从而能按时、不超预算地开发出高质量的软件,同时也用于采办方评估和选择软件供应商。2002年推出了能力成熟度模型集成 (CMMI),把开发模型CMMIDev、 服务模型CMMI-SVC、 采购模型CMMI-ACQ、 人力模型P-CMM 等多个领域能力成熟度模型集成到一个框架中去。DO-178 与 CMMI 是目前承担安全攸关软件开发企业最为关注的两个标准,二者的主要区别如下。
(1)CMMI 是从过程改进的视角,对软件开发的技术与管理提出要求,覆盖了从个人、项目及组织三个层次的要求,更关注组织整体软件能力提升。 DO-178 是从适航审定视角,对软件开发的技术与管理过程提出要求,更关注项目软件质量对于安全性的影响。所以DO-178 覆盖的过程范围比 CMMI 少,比如DO-178C 对于项目监控过程、风险管理过程、培训过程等并没有提出明确要求。
(2)CMMI 主要由实践组成,实践是各行业最佳实践的抽象(去环境、方法)提炼,而DO-178C 过程主要由目标、活动与数据组成,活动虽不代表具体工作步骤,但活动要求比较具体,并且对过程输出(数据)提出了明确要求,结合DO-178 的配置管理过程,对数据管理与控制的要求也较为具体。
(3)CMMI 是集成了系统、软件和硬件等视角,所以在内容和措辞上必须兼顾多个场景,容易产生歧义。而DO-178 聚焦软件,更容易为件工程师所理解(不代表容易做到)。总之, DO-178 比CMMI 的目标更清晰,要求更具体,而且是针对安全攸关软件的。这两个标准都侧重于要求,而不是具体方法和步骤。对一个企业而言,不仅要关注一个项目的成功,还要在多个项目中持续获得成功,而且是商业成功(包括质量、进度、成本等),这就需要建立更为系统的软件过程体系,在这一点上CMMI 更有指导性。过程改进思想的本质是过程不断丰富和优化的过程,在这个过程中需要融合不同标准与方法的要求以及实践中的经验与教训的总结。
计算机网络
发展历程
纵观计算机网络发展,其大致经历了诞生、形成、互联互通和高速发展等4个阶段。
-
诞生阶段:20世纪60年代中期,第一代计算机网络是通过单个计算机和多个终端组成的飞机订票系用,也就是多个显示器用一个主机。
-
形成阶段:第二代计算机网络通过通信线路连接多个主机,线路通过接口报文处理机(IMP)转接,构成了通信子网。
-
互通互联阶段:到了20世纪70年代至90年代。第三代计算机网络具有统一的网络体系结构并遵守国际标准的开放式和标准化网络。ARPANET(高级研究计划局网络,在20世纪60年代末开发的第一个分组交换网络,被广泛认为是现代互联网的前身。)兴起后,计算机网络发展迅猛。由于没有统一的标准,不同厂商的产品之间互联很困难,因此产生了两种国际通用,的最重要的体系结构TCP/IP 体系结构和国际标准化组织的OSI体系结构。
-
高速发展阶段:20世纪90年代至今的第四代计算机网络,由于局域网技术发展成熟,出现光纤及高速网络技术,整个网络就像一个对用户透明的庞大的计算机系统,发展为以因特网 (Internet)为代表的互联网。
计算机网络包含数据通信,资源共享,管理及中华,分布式处理,负载均衡的功能。
计算机网络相关指标
-
性能指标: 多个不同方面来度量计算机网络的性能。
(1)速率:速率是指每秒传输多少比特速率,单位是b/s。
(2)带宽:带宽有两种含义,一种是一个信号具有的频带宽度,表示一个信号所包含的各种不同频率成分所占据的频率范围。一种是计网络通信线路传输数据的能力。
(3)吞吐量:吞吐量表示单位时间内通过某个网络的数据量。
(4)时延:时延是指数据从网络的一段传送到另一端所需的时间。
(5)往返时间(RTT):它表示从发送方发送数据开始,到发送方收到来自接收方的确认总共经历的时间。
(6)利用率:利用率有信道利用率和网络利用率两种。信道利用率指信道被利用的概率(即有数据通过),通常以百分数表示。完全空闲的信道利用率是零。网络利用率是全网络的信道利用率的加权平均值
-
非性能指标:费用、质量、标准化、可靠性、可扩展性、可升级性、易管理性和可维护性等非性能指标与前面介绍的性能指标有很大相关性。
通信技术
计算机网络是利用通信技术将数据从一个结点传送到另一结点的过程。通信技术是计算机网络的基础。这里所说的数据,指的是模拟信号和数字信号,它们通过信道来传输。
信道可分为物理信道和逻辑信道。物理信道由传输介质和设备组成,根据传输介质的不同,分为无线信道和有线信道。逻辑信道是指在数据发送端和接收端之间存在的一条虚拟线路,可以是有连接的或无连接的。逻辑信道以物理信道为载体
- 信道
信息传输就是信源(消息的发出者)和信宿(消息的接受者)通过信道收发消息的过程。信源发出信息,发信机负责将信息转换(对信息进行编码和调制)为适合在信道上传输的信号,受心机将信号转化(进行解调和译码)为信息,发送给信宿。
信道容量就是信道的最大传输速率,可通过香农公式计算得到。
C 代表信道容量,单位是 b/s;B 代表信号带宽,单位是H z;S代表信号平均功率,单位是W;N 代表噪声平均功率,单位是 W;S/N 代表信噪比,单位是d B (分贝);
提升信道容量可以使用比较大的带宽,降低信噪比也可以使用比较小的带宽,升高信噪比。
- 信号转换
发信机进行的信号处理包括信源编码、信道编码、交织、脉冲成形和调制。相反地,收信机进行的信号处理包括解调、采样判决、去交织、信道译码和信源译码:
(1)信源编码:通过压缩编码将模拟信号转换为数字信号。
(2)信道编码:通过增加冗余信息,解决信号、噪声干扰导致的误码问题
(3)交织:按照顺序将数据打乱,接收端在根据顺序复原,这样连续的误码就会变成零星的误码,信道译码就可以解决了。
(4)脉冲成形:为了减小带宽需求,需要将发送数据转换成合适的波形,这就是脉冲成形。
(5)调制:调制是将信息承载到满足信号要求的高频载波信号的过程。
- 复用技术和多址技术
在一条信道上只传输一路数据的情况下,只需要经过信源编码、信道编码、交织、脉冲成形、调制之后就可以发送到信道上进行传输了;但如果同时传递多路数据就需要复用技术和多址技术。
(1)复用技术:复用技术是指在一条信道上同时传输多路数据的技术,如TDM时分复用、FDM频分复用和CDM码分复用等。ADSL使用了 DM的技术,语音的上行和下行占用了不同的带宽。
(2)多址技术:多址技术是指在一条线上同时传输多个用户数据的技术,在接收端把多个用户的数据分离(TDMA 时分多址、 FDMA 频分多址和CDMA 码分多址)。
多路复用技术是多址技术的基础,多址技术还涉及信道资源分配算法, Walsh 码分配算法等。
- 5G通信技术
作为新一代的移动通信技术,5G 的网络结构、网络能力和应用场景等都与过去有很大不同,其特征体现在以下方面。
(1)基于OFDM优化的波形和多址接入;
(2)实现可扩展的OFDM间隔参数配置;
(3)OFDM 加窗提高多路传输效率;
(4)灵活框架设计;
(5)大规模MIMO;
(6)毫米波;
(7)频谱铜像;
(8)先进的信道编码设计;
网络技术
网络通常按照网络的覆盖区域和通信介质等特征来分类,可分为局域网 (LAN)、 无线局域网 (WLAN)、 城域网 (MAN)、 广域网 (WAN) 和移动通信网等。
- 局域网(LAN)
局域网是指有限的地理区域内,将计算机通过传输介质,互联成计算机组。常见的局域网拓扑结构有星状结构、树状结构、总线结构和环形结构。
- 星状结构:每个设备都和中心节点相连,传输速度快,结构简单,但可靠性低,中心节点故障会导致整个网络瘫痪。
- 树状结构:每个设备会和多个子设备相连,子设备还会继续和多个子设备相连,树状结构无回路。结构简单,节点故障会导致其子设备之间无法通信。
- 总线结构:所有设备由一根总线连接,总线的负载能力尤其物理性能决定,总线故障会导致所有设备无法通信。
- 环形结构:所有设备首尾相连形成环状结构,信息按照固定方向单向流动,任一结点的故障将导致整个网络瘫痪。不便于扩充,系统响应时间长,通信效率低。
- 网状结构:网状结构下,任何两个设备都有一条通信线路,可靠性高,但成本高。
以太网是一种计算机局域网组网技术。它规定了包括物理层的连线、电信号和介质访问层协议的内容。在以太网链路上的数据包被称作以太帧,其结构如图所示。
- DMAC:目的终端的MAC 地址,
- SMAC:源MAC 地址
- Length/Type:大小为2字节,其值大于1500时代表该数据帧的类型(比如该帧是属于哪个上层协议的数据单元);若小于1500,则代表该数据帧的长度。
- DATA/PAD:代表具体数据,以太网数据帧的长度必须大于64字节(根据半双工模式下最大距离计算获得的),如果数据长度加上帧头不足64字节,需要在数据部分增加填充内容。
- FCS:帧校验字段,用于判断该数据帧是否出错。
当Length/Type取值大于1500的时候,MAC 子层可以根据 Length/Type的值直接把数据帧提交给上层协议,由上层协议进行分帧处理。这种结构为当前较为流行的Ethernet_II协议,大部分计算机都支持这种结构。
数据帧最小帧长由于CSMA/CD 算法限制,不足64字节需要高层协议进行填充,上限可以灵活设置,通常为1500字节。规定最小帧长是为了防止帧数过小,导致发送方已经发送完成,接收方也没有收到,导致误认为线路空闲,造成数据冲突。
以太网对传输局路没有严格限制,有线路质量等因素决定。
当交换机端口流量超过了他本身的处理能力时就会造成延时增加或丢包率和重传率增加。所以以太网技术会进行流量控制。在半双工模式下,以太网会采用反压技术实现流量控制,具体来说当接收方缓存即将溢出时,会发送一个模拟碰撞信号,来通知发送方减慢速度。在全双工模式下,数据可以双向传播,不存在碰撞机制,这是就需要一个特殊的空指针——PAUSE帧,当急哦啊还击检测到缓冲区即将溢出时,会发送PAUSE帧给发送端,发送端接收到后会在规定时间内停止发送数据。
2. 无线局域网(WLAN)
无线局域网 WLAN(Wireless Local Area Networks)利用无线技术在空中传输数据、话音和视频信号。在WLAN 中,通常使用的拓扑结构主要有3种形式:点对点型、 HUB 型和全分布型。
- 点对点型:通过单频或扩频微波电台、红外发光二极管、红外激光的等发发,连接两个固定的有线LAN网段。
- HUB型:有一个中心节点HUB,和若干外围节点组成。
- 完全分布型:完全分布结构目前还无具体应用,仅处于理论探讨阶段。
3. 广域网(WAN)
广域网是一种将分布于更广区域(比如一个城市、一个国家甚至国家之间)的计算机设备联接起来的网络。通常是电信部门负责组建、经和管理,并向社会公众提供通信服务。
广域网由通信子网与资源子网组成。通信子网主要是由一些通信结点设备和连接这些设备的链路组成。通信结点设备负责网络中数据的转发,其链路用于承载用户的数据,一般分为传输主干链路和末端用户线路。广域网的通信子网可以利用公用分组交换网、卫星通信网和无线分组交换网来构建,将分布在不同地区的局域网或计算机系统互连起来,达到资源共享的目的。资源子网是指网络中实现资源共享功能的设备及其软件的集合。资源子网主要指网络资源设备,如信息服务或业务服务器、用户计算机、网络存储系统、独立运行的网络数据设备、网络上运行的各种软件资源、数据资源等。
4. 城域网
城域网是在单个城市范围内所建立的计算机通信网,简称 MAN(Metropolitan AreaNetwork)。 由于采用有源交换元件的局域网技术,网络中传输时延较小,它的传输媒介主要采用光缆,传输速率在100 Mb/s 以上。 MAN 基于一种大型的LAN, 通常使用与 LAN 相似的技术,但MAN 的标准称为分布式队列双总线DQDB(Distributed Queue Dual Bus),即 IEEE802.6。DQDB 是由双总线构成,将加入MAN 的所有计算机都连接起来。如果说局域网或广域网通常是为了一个单位或系统服务的,那么城域网则是为整个城市而非某个特定部门服务。
5. 移动通信网
看不懂
组网技术
网络设备及其工作层级
基本的网络设备有集线器、中继器、网桥、交换机、路由器和防火墙等。
- 集线器:讲一个端口的数据发送给其他端口,其还有一个特殊的上联端口,用来连接其他集线器或路由设备。
- 中继器:中继器是局域网互连设备,工作于OSI体系结构的物理层,它接收并识别网络信号,然后再生信号,将其发送到网络的其他分支上。为了保证中继器正常工作,需要保证每一个分支中的数据包和逻辑链路协议相同。此外,中继器可以用来连接不同物理介质,并在各种物理介质中传输数据包。
- 网桥:网桥工作于OSI体系的数据链路层。 OSI模型数据链路层以上各层的信息对网桥来说是透明的。网桥包含了中继器的功能和特性,不仅可以连接多种介质,还能连接不同的物理分支,如以太网、令牌网,能将数据包在更大的范围内进行传送。
- 交换机:交换机是一种工作在OSI七层协议中的数据链路层,为接入交换机的任意两个网络结点提供独享的转发通路,将从一个端口接收的数据通过内部处理转发到指定端口。交换机具备自动寻址和交换的功能,同时具有避免端口冲突、提高网络吞吐的能力。
- 路由器:路由器工作在OSI体系结构中的网络层,它可以在多个网络上交换和路由数据包。路由器可通过在相互独立网络中交换路由信息以生成路由表来达到数据包的路径选择。路由表包含网络地址、连接信息、路径信息和发送代价等属性。路由器通常用于广域网或广域网与局域网的互连。
- 防火墙(Firewall):防火墙是网络中一种重要设备,通过在设置若干安全规则实现对进出网络的数据进行监视和过滤。在网络中通常采用硬件防火墙。硬件防火墙是指把防火墙程序做到芯片里面,由硬件执行这些功能,能减少CPU 的负担,使路由更稳定。
网络协议
开放系统互连模型:开放系统是指遵从国际标准的、能够通过互连而相互作用的系统。系统之间的相互作用只涉及系统的外部行为,而与系统内部的结构和功能无关。OSI/RM 是一种分层的体系结构,参考模型共有7层,每一层都在它的下层提供的服务基础上提供更高级的增值服务,而最高层提供能运行分布式应用程序的服务。由低层至高层分别为物理层(Physical Layer)、数据链路层 (Datalink Layer)、网络层 (Network Layer)、传输层 (Transport Layer)、会话层 (SessionLayer)、表示层 (Presentation Layer)和应用层 (ApplicationLayer)。
对于OSI七层模型的每一层都有不同的协议,统称为OSI协议,每一个 OSI协议都详细地规定了特定层次的功能特性。
TCP/IP协议集:TCP/IP主要特性为逻辑编址,路由选择,域名解析,错误检测和流量控制,以及对应用的支持。其主要包括因特网协议(IP)、传输控制协议(TCP)、用户数据包协议(UDP)、虚拟终端协议(TELNET)、文件传输协议(FTP)、电子邮件传输协议(SMTP)、网上新闻传输协议(NNTP)和超文本传送协议(HTTP)等8个。不同于OSI协议集,TCP/IP协议集网络协议模型分为网络接口层、网际层、传输层和应用层4层。
交换技术
人们日常使用的计算机通常就是通过交换机接入网络的。交换机功能包括:
- 集线功能:提供大量可供线缆连接的端口,成为一个星状拓扑结构的中心节点。
- 中继功能:在转发帧时重新产生不失真的电信号。
- 桥接功能:在内置的端口上使用相同的转发和过滤逻辑。
- 隔离冲突域功能:将部署好的局域网分为多个冲突域,而每个冲突域都有自己独立的带宽,以提高交换机整体宽带利用效率。
基本交换原理:交换机通过内部维护的,记录mac地址与改地址对应的交换机端口的映射关系的,mac地址表。将数据帧直接由源地址到目标地址。交换机需要实现功能如下:
- 转发路径学习:根据数据帧中的mac地址建立与交换机的端口映射。
- 数据转发:根据地址表将数据转发到对应端口。
- 数据泛洪:如果目标mac地址不存在映射端口,则向所有端口进行转发。
- 链路地址更新:mac地址表会每隔一定时间更新一次。
生成树协议(STP)解决了链路环路问题。
路由技术
路由功能由路由器提供,主要包括:
- 异种网络互连:具有不同子网协议的网络互连;
- 子网协议转换:不同子网间包括局域网和广域网之间的协议转换;
- 数据路由:将数据从一个网络根据路由规则转发到另一个网络;
- 速率适配:利用缓存和流控协议进行适配;
- 隔离网络:防止广播风暴,实现防火墙;
- 报文分片和重组:超过接口的MTU 报文被分片,到达目的地之后的报文被重组;
- 备份、流量控制:如主备线路的切换和复杂流量控制等。
路由原理
路由工作在OSI七层协议中的网络层,将一个网络接口的数据包根据器目标地址,转发到下一个地址。路由中维护转发所需的路由表,路由表可以人工配置,也可以根据协议自动生成。
路由协议:小规模局域网中,路由规则可以人为配置,单大型网络中,无法人为配置每一个路由的转发规则。这时就需要通过路由协议自动学习其他路由器的网络,并在网络拓扑发生改变后自动更新路由表。路由协议通过路由器之间共享信息,确定其他路由器的路径,以此来创建路由表。
路由协议可以分为内部网关协议(IGP)和外部网关协议(EGP)两类。
内部网关协议:在一个自治系统AS(Autonomous System)内运行的路由协议称为内部网关协议 (Interior Gateway Protocol)。内部网关协议可以划分为两类:距离矢量路由协议和链路状态路由协议。距离矢量路由协议采用的是距离向量算法; IS-IS和OSPF采用的是链路状态算法。对于小型网络,采用基于距离向量算法的路由协议易于配置和管理,且应用广泛,但在面对大型网络时,不但其固有的环路问题变得更难解决,所占用的带宽也迅速增长,以至于网络无法承受。因此对于大型网络,采用链路状态算法的 IS-IS和 OSPF 更为有效,并得到广泛应用。。
外部网关协议:在AS之间的路由协议称为外部网关协议(Exterior Gateway Protocol,EGP)。外部网关协议最初采用的是EGP。EGP 是为简单的树形拓扑结构设计的,随着越来越多的用户和网络加入Internet,给 EGP 带来了很多局限性。为了摆脱EGP局限性,IETF边界网关协议工作组制定了标准的边界网关协议 (BGP)。
网络工程
1.网络规划
网络规划是网络建设的首要环节,也是至关重要的步骤,同时也是系统性过程。网络规划需要以需求为导向,兼顾技术和工程可行性。网络规划包括网络需求分析、可行性分析以及对现有网络的分析(需对现有网络进行优化升级时)。
2.网络设计
网络设计是在网络规划基础上设计一个能解决用户问题的方案。网络设计包括网络总体目标确定、总体设计原则确定以及通信子网设计,设备选型,网络安全设计等。
3.网络实施
网络实施是依据网络设计结果进行设备采购、安装、调试和系统切换(需对原有系统改造升级时)等。网络实施具体包括工程实施计划、网络设备验收、设备安装和调试、系统试运行和切换、用户培训等。
计算机语言(没用)
机器语言:由1和0组成的二进制串,由操作码和操作数两部分组成(一堆定义,记不住)。
汇编语言:用英文字母代替机器语言。有3种语句:指令语句(经过汇编程序换成成机器指令)、伪指令语句(让汇编程序做一些事情)和宏指令语句(类似于函数,封装重复调用)。
高级语言:C、C++、Java、VB、C#、Python、Ruby等
建模语言:UML,说了一堆,根本看不懂。
形式化语言:一样不懂
多媒体
1. 概述
媒体 (Media)是承载信息的载体,即信息的表现形式(或者传播形式),如文字、声音、图像、动画和视频等。按照 ITU-T建议的定义,媒体可分为感觉媒体、表示媒体、显示媒体、存储媒体和传输媒体。
- 感觉媒体(Perception Medium):用户接触信息的感觉形式,如视觉、听觉和触觉等。
- 表示媒体(Representation Medium):指的是信息的表示形式,如图像、声音、视频等。
- 表现媒体(Presentation Medium):表现和获取信息的物理设备
- 存储媒体(Storage Medium):用于存储表示媒体的物理介质
- 传输媒体(Transmission Medium):指传输表示媒体的物理介质,如电缆、光缆和电磁波等。
媒体包括硬件,软件,以及人类感受,而多媒体就是将其利用计算机技术结合起来,组合成一个相关系统,多媒体系统通常由硬件和软件组成。硬件主要包括计算机主要配置和外部设备以及与各种外部设备的控制接口。多媒体软件主要包括多媒体驱动软件、多媒体操作系统、多媒体数据处理软件、多媒体创作工具软件和多媒体应用软件等。
2. 多媒体关键技术
1.视音频技术
视频技术包括视频数字化和视频编码技术两个方面。视频数字化是将模拟视频信号转换为数字信号。视频编码技术是将数字信号编码为视频信号。
音频技术包括音频数字化、语音处理、语音合成及语音识别4个方面。
(1)视音频编码:编解码器指的是能够对一个信号或者一个数据进行变换的设备或程序。在很多多媒体数据流中,往往需要同时包含音频数据和视频数据,这种编码后的封装是通过视频文件格式来实现的,如常见的*.mpg、.avi、.mov、mp4、.rm、*ogg和 *tta等。
(2)视音频压缩方法:压缩方法总体可以分为有损压缩和无损压缩。无损压缩是指压缩前和解压缩后数据完全一致。无损压缩多数采用RLE行程编码算法。有损压缩则会在压缩过程中丢失一些人眼和人耳不敏感的信息。
2.通信技术
通信技术通常包括了数据传输信道技术和数据传输技术。数据传输信道是指通信的物理介质,包括同轴电缆、双绞线、光纤、越洋海底电缆、微波信道、短波信道、无线通信和卫星通信等。数据传输技术是指在物理介质上如何组织、传送数据的方法,包括基带传输、频带传输及调制技术、同步技术、多路复用技术、数据交换技术、编码、加密、差错控制技术和数据通信网、设备、协议等。
3.数据压缩技术
数据压缩的算法非常多,不同特点的数据有不同的数据压缩算法(也就是编码方式),按类别分主要存在以下3类。
(1)即时压缩和非即时压缩。即时/非即时压缩的区别在于信息在传输过程中被压缩还是信息压缩后再传输。即时压缩一般应用在影像、声音数据的传送中。即时压缩常用到专门的硬件设备,如压缩卡等。
(2)数据压缩和文件压缩。数据压缩是专指一些具有时间性的数据,这些数据常常是即时采集、即时处理或传输的。而文件压缩是指对将要保存在磁盘等物理介质的数据进行压缩。
(3)无损压缩与有损压缩。无损压缩是利用数据的统计冗余进行压缩,通常无损压缩的压缩比比较低。而有损压缩是利用了人类对视觉、听觉对图像、声音中的某些频率成分不敏感的特性,允许压缩的过程中损失一定的信息。
4.虚拟现实 (VR) 增强现实 (AR) 技术
VR/AR 技术发展至今,虽然被广泛应用,其主要关键技术还有待深入研究,这些关键技术
主要包括:
(1)数据采集与优化传输技术。数据采集主要解决如何获取光照、火焰、动态地形等自然现象的数据问题,通常用3种设备获取,即全向相机、高速摄像机和激光设备。优化数据传输技术是要满足低功耗、低延时、高效率等特点,保证数据传输的可靠性。
(2)交互与情形实时再现技术。交互技术的接触方式可分为力觉反馈和触觉反馈两种。力觉反馈是指借助操作控制杆的反作用力效果将虚拟物体的运动轨迹转换成真实物体的机械运动;触觉反馈是指通过手戴3D 数据手套获取手掌和手指的形态和温度等信息,来满足用户对虚拟物体的移动、抓取和触摸等操作。情形实时再现包含了跟踪定位技术、高效可靠的渲染技术和逼真的显示技术等。
系统性能
性能指标
1.计算机的性能指标
评价计算机的主要性能指标有时钟频率(主频)、运算速度、运算精度、内存的存储容量、存储器的存取周期、数据处理速率 (Processing Data Rate,PDR)、吞吐率、各种响应时间、各种利用率、 RASIS 特性(即可靠性(Reliability)、可用性 (Availability)、可维护性(Serviceability)、完整性和安全性 (Integrity and Security))、平均故障响应时间、兼容性、可扩充性和性能价格比。
2.路由器的性能指标
评价路由器的主要性能指标有设备吞吐量、端口吞吐量、全双工线速转发能力、背靠背帧数、路由表能力、背板能力、丢包率、时延、时延抖动、 VPN 支持能力、内部时钟精度、队列管理机制、端口硬件队列数、分类业务带宽保证、 RSVP、IP DiffServ、CAR 支持、冗余、热插拔组件、路由器冗余协议、网管、基于Web 的管理、网管类型、带外网管支持、网管粒度、计费能力/协议、分组语音支持方式、协议支持、语音压缩能力、端口密度、信令支持。
3.交换机的性能指标
评价交换机所依据的性能指标有交换机类型、配置、支持的网络类型、最大ATM 端口数、最大SONET 端口数、最大FDDI 端口数、背板吞吐量、缓冲区大小、最大MAC 地址表大小、最大电源数、支持协议和标准、路由信息协议 (RIP)、RIP2、开放式最短路径优先第2版、边界网关协议 (BGP)、 无类别域间路由 (CIDR)、 互联网成组管理协议 (IGMP)、 距离矢量多播路由协议 (DVMRP)、 开放式最短路径优先多播路由协议 (MOSPF)、 协议无关的多播协(PIM)、 资源预留协议 (RSVP)、802.1p优先级标记,多队列、路由、支持第3层交换、支持多层(4~7层)交换、支持多协议路由、支持路由缓存、可支持最大路由表数、 VLAN、 最大VLAN 数量、网管、支持网管类型、支持端口镜像、 QoS、 支持基于策略的第2层交换、每端口最大优先级队列数、支持基于策略的第3层交换、支持基于策略的应用级QoS、 支持最小/最大带宽分配、冗余、热交换组件(管理卡、交换结构、接口模块、电源、冷却系统)、支持端口链路聚集协议、负载均衡。
4.网络的性能指标
评价网络的性能指标有设备级性能指标、网络级性能指标、应用级性能指标、用户级性能指标和吞吐量。
5.操作系统的性能指标
评价操作系统的性能指标有系统上下文切换、系统响应时间、系统的吞吐率(量)、系统资源利用率、可靠性和可移植性。
6.数据库管理系统的性能指标
衡量数据库管理系统的主要性能指标包括数据库本身和管理系统两部分,有数据库的大小、数据库中表的数量、单个表的大小、表中允许的记录(行)数量、单个记录(行)的大小、表上所允许的索引数量、数据库所允许的索引数量、最大并发事务处理能力、负载均衡能力、最大连接数,等等。
7.Web 服务器的性能指标
评价Web 服务器的主要性能指标有最大并发连接数、响应延迟和吞吐量。
性能设计
1.性能调整(学完数据库原理进行补充)
当系统性能降到最基本的水平时,性能调整由查找和消除瓶颈组成。对于数据库系统,性能调整主要包括CPU/ 内存使用状况、优化数据库设计、优化数据库管理以及进程/线程状态、硬盘剩余空间、日志文件大小等;对于应用系统,性能调整主要包括应用系统的可用性、响应时间、并发用户数以及特定应用的系统资源占用等。在开始性能调整之前,必须做的准备工作有识别约束、指定负载、设置性能目标。在建立了性能调整的边界和期望值后,就可以开始调整了,这是一系列重复的、受控的性能试验,循环的调整过程为收集、分析、配置和测试。
2.阿姆达尔解决方案
阿姆达尔 (Amdahl)定律是指计算机系统中对某一部件优化后,对系统整体效率的影响大小。原因主要取决于这个部件使用的频率,或所占总执行时间的比例。阿姆达尔定律定义了采用特定部件所取得的加速比。计算公式是优化前时间除以优化后时间。
假设可优化部分所占时间占总系统的比例为P,那么不可优化部分为1 - P,可优化部分时间为T x P,不可优化部分时间为T x (1 - P)。假设可以优化N倍,那么优化后的时间为( T x P ) / N + T x (1 - P) ,而加速比为优化前除以优化后,也就是S = T / [ ( T x P ) / N + T x (1 - P) ],最终可以的得到如下公式。
通过这个公式,我们可以得到,即使优化倍率无限大,优化效果仍然收到可优化比例的影响,而可优化比例对整体影响更大。
性能评估(学习完测试进行补充)
性能评估是为了一个目的,按照一定的步骤,选用一定的度量项目,通过建模和实验,对一个系统的性能进行各项检测,对测试结果做出解释,并形成一份文档的技术。性能评估的一个目的是为性能的优化提供参考。
1.基准测试程序
大多数情况下,为测试新系统的性能,用户必须依靠评价程序来评价机器的性能。下面列出了4种评价程序,它们评测的准确程度依次递减:真实的程序、核心程序、小型基准程序和合成基准程序。
把应用程序中用得最多、最频繁的那部分核心程序作为评价计算机性能的标准程序,称为基准测试程序 (benchmark)。基准测试程序有整数测试程序Dhrystone、 浮点测试程序 Linpack、Whetstone基准测试程序、 SPEC 基准测试程序和 TPC 基准程序。
2.Web 服务器的性能评估
在Web 服务器的测试中,反映其性能的指标主要有:最大并发连接数、响应延迟和吞吐量等。
常见的Web 服务器性能评测方法有基准性能测试、压力测试和可靠性测试。
3.系统监视
进行系统监视的方法通常有3种方式:一是通过系统本身提供的命令,如UNIX/Linux 中的W、ps、last,Windows中的 netstat等;二是通过系统记录文件查阅系统在特定时间内的运行状态;三是集成命令、文件记录和可视化技术,如 Windows 的Perfmon应用程序。