第十五周课后总结

第十五周课后总结

4.4 并行程序设计

4.4.1 并行程序设计语言

并行程序设计语言是一种用于并行程序设计的语言,并行程序设计语言可分为显式并行语言和具有并行编译功能的串行语言。显式并行语言可以通过用传统串行语言加上并行语句进行扩充的办法形成,也可以设计一个全新的具有并行功能的语言。具有并行编译功能的串行语言从用户角度看是一个传统的串行语言,但它的编译程序可以将程序分解为并行执行的部分。并行编译的过程可分为三个阶段:词法和语法分析、优化以及并行代码生成。

4.4.2 并行程序设计语言的编译过程

源程序——>词法、语法分析——>程序优化——>并行代码生成——>超标量处理机/多处理机/多计算机

4.4.3 OpenMP

是一个编译器指令和库函数的集合,主要用于共享式存储计算机上的并行程序设计,OpenMP支持的编程语言包括C、C++和Fortran,支持OpenMP额编译器包括Sun Compiler、GNU Compiler和Intel Compiler等。OpenMP提供的这种对于并行描述的高层抽象降低了并行编程的难度和复杂度,这样程序员可以把更多的精力投入到并行算法本身,而非其具体的实现细节中,但是作为高层抽象,OpenMP并不适合需要复杂线程间同步和互斥的场合。

5.1 数据

5.1.1 数据的定义

用文字、数字、图形、图像、声音等方式对人、事件、事物等进行的描述
所有能输入计算机并能被计算机程序处理的符号的总称
数字、文本、音频、图形、图像和视频

5.1.2 数据和信息的区别

输入计算机的字母、数字等符号为数据
如果字母、数字等符号具有一定含义且能帮助人们完成某个动作或者作出决策,那么就称它们为信息

5.1.3 计算机常用的编码方式

1.ASCII
用7位(字节的最高位为奇偶校验位)表示的单字节编码系统,主要用于显示英语和其他西欧语言字符。共有128个字符,其中95个可打印字符,包括常用的字符、数字、标点符号等,另外还有33个控制字符。
2.扩展ASCII
确定了8位字长,需要128个附加的符号来补充ASCII
3.Unicode
目前用来解决ASCII字符集256个字符限制问题的一种比较常用的解决方案。Unicode协会建立了一个通用的编码系统,提供全面的字符集。在Unicode中每个字符或符号被定义成32位数字
4.UTF-8
是一种变长字节编码方式
5.GB-2312
GB-2312标准收录了6763个汉字,同时还收录了包括拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母在内的682个字符。
6.音频编码
声音是通过声波传递的连续变化的模拟信号,可以通过采样、量化、编码三个步骤将连续变化的模拟信号转换为数字编码
7.图像编码
人们试图对图像采用新的编码方法以减少表示存储图像所需要的数据量,这就是图像编码要解决的主要问题

5.2 数据结构

5.2.1 数据结构的定义

数据结构是程序中数据的一种组织方式,其目的是配合相应的算法编写出好的程序。数据结构在逻辑上的数据结构和物理上的数据结构之分。数据结构的主要研究对象是数据表示、数据逻辑结构与数据存储方式,以及对数据操作方法

5.2.2 数据的逻辑结构

1.集合
集合中的任何两个元素之间无逻辑关系
2.线性结构
线性结构是指数据结构中的数据元素存在一对一的关系,即有且只有一个起始数据元素没有前驱元素但有一个后继元素,有且仅有一个终端元素没有后继数据元素但由一个前驱元素,其他数据元素都有且仅有一个前驱数据元素和一个后继数据元素。
3.树形结构
树形结构是指结构中的元素之间存在着一对多的关系,即一个数据元素与另外多个数据元素有关系,具有分支、层次特性
4.图状结构
图状结构是指数据元素之间存在着多对多的关系

5.2.3 数据的物理结构

1.顺序结构
2.链式存储
3.索引存储

5.2.4 常见的数据结构

1.线性表
线性表是一个线性结构,它是一个含有n>=0个元素的有限序列,对于其中的元素有且只有一个起始数据元素没有前驱元素但有一个后继元素,有且仅有一个终端元素没有后继数据元素但由一个前驱元素,其他数据元素都有且仅有一个前驱数据元素和一个后继数据元素
2.栈
限定仅在表尾进行插入或删除操作的线性表,表尾端有着特殊的含义称为栈顶,表头端称为栈底。栈的修改是按后进先出的原则进行的,栈又被称作是后进先出的线性表
3.队列
一种特殊的线性表,仅允许在表的一段进行插入,在表的另一端进行删除,允许插入的一端被称为队尾,允许删除的一段称为队头。队列又称为先进先出的线性表
4.树
树是一种树形结构,是以分支关系定义的层次结构
5.图
图是由一组顶点和一组顶点之间的连线构成的一种抽象数据类型。图可分为有向图和无向图

5.3 算法

5.3.1 算法的定义

是指由基本的运算及规定的运算顺序所构成的完整的解题步骤
1.一个算法可以有一个输入或多个输入,也可以没有输入
2.一个算法有一个或多个输出,其中输出就是算法最终所求的结果
3.一个算法必须在执行有穷步骤之后结束并且每一步步骤都可在有穷时间内完成
4.算法的每一个步骤都应当是确定定义的,即算法的每一个步骤都不能有二义性
5.算法的每一个步骤都能有效地运行

5.3.2 算法示例
5.3.3 定义动作
5.3.4 细化
5.3.5 泛化

5.4 数据库

5.4.1 数据库的定义及特点

1.数据结构化:数据库里的数据并不是杂乱无章、毫不相干的,它们具有一定的组织结构,属于同一集合的数据具有相似的特征
2.数据共享性高,冗余度低,易扩充:数据不再面向某个特定的应用程序,而是面向整个系统,数据可以被多个用户、多个应用程序共享使用
3.数据独立性高:用户的应用程序与数据库的逻辑结构是相互独立的,即当数据的逻辑结构发生改变时,用户程序也可以不改变
4.数据由数据库管理系统统一管理和控制

5.4.2 数据库的体系结构

1.三级模式
概念模式是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图,是数据库系统模式结构的中间层,既不涉及数据的物理存储细节和硬件环境,又与具体的应用程序、所使用的应用开发环境及开发语言无关。
外模式也称用户模式,它是对数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示
内模式也称存储模式,一个数据库只有一个内模式,它是滴数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。
2.二级映射
(1)外模式/概念模式映射
(2)概念模式/内模式映射

5.4.3 数据库模型

1.层次模型
2.网状模型
3.关系模型

5.4.4 关系的操作及结构化查询语言

插入删除更新选择

5.4.5 数据库管理系统

1.硬件:指允许物理上存取数据的计算机硬件系统
2.软件:指允许用户存取、维护和更新物理数据的程序
3.数据:数据库中的数据存储在物理存储设备上,数据是独立于软件的一个实体。
4.用户:最终用户:直接从数据库中获取信息的用户,分为数据库管理员和普通用户
应用程序:数据库中的数据的其他使用者就是应用程序
5.规程:数据库管理系统的一个构成部分,它必须是被明确定义、并由数据库用户遵循的规程或规则的集合

5.4.6 主流数据库

1.Oracle数据库:能够在所有主流平台上运行,支持所有的工业标准,可以使用户选择最合适的解决方案,提供了图形用户界面和命令行的操作方式,支持多用户、大数据量的工作负荷,适合于作为大型和超大型应用系统的数据库
2.Microsoft SQL Server数据库:比较适合小型、中型或大型应用程序的后台数据库,但只能在Windows上运行
3.MySQL数据库:一个开放源代码的小型关联式数据库管理系统,具有体积小、速度快、总体拥有成本低、源代码开放等特点
4.Sybase数据库:具备跨平台能力,操作较复杂,同时提供图形用户界面和命令行的操作方式
5.DB2数据库:支持各种机型及操作系统环境,支持面向对象编程,并具有强大的开发和管理工具

5.5 数据中心

5.5.1 数据中心的定义

数据中心是在一个屋里空间内实现数据集中处理、存储、传输、交换、管理的一整套复杂的设施。它不仅包括计算机系统和其他与之配套的设备,还包含冗余的数据通信连接、环境控制设备、监控设备以及各种安全装置
数据中心是一种能够容纳多个服务器以及通信设备的多功能的建筑物,这些设备具有相同的环境要求与安全需求,便于维护而集中放置。

5.5.2 数据中心的组成

从功能上可以分为核心计算机机房和其他支持空间
计算机机房是指用于电子信息处理、存储、交换,以及传输设备的安装、运行和维护的建筑空间
支持空间是计算机机房外部专用于支持数据中心运行的设施和工作空间

5.5.3 新一代数据中心

1.传统数据中心和新一代数据中心示例
2.传统数据中心的困惑:数据量急剧膨胀,能耗压力,管理压力,高可用性压力,合规压力,业务连续性压力
3.新一代数据中心简介:绿色环保,虚拟化和云计算,整合,模块化,灵活性

你可能感兴趣的:(导论课后总结)