




已阅读5页,还剩34页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
分布式计算系统 参考书 1 分布式系统 原理与范型 DistributedSystems PrinciplesandParadigms AndrewS Tanenbaum著杨剑峰等译清华大学出版社2 分布式计算原理与应用 DistributedComputing PrinciplesandApplications 美 M L Liu著顾铁成王亚丽叶保留译清华大学出版社 第1章分布式计算简介 1 1分布式计算的定义 definitions 在分布式计算领域中 术语不太统一 其原因之一是发展太快 新思想不断出现 缺乏一组通用的术语 早期的计算是在单机上执行 叫单处理器或单机计算 采用单个CPU来执行应用程序 分布式系统 指通过网络互连 可协作执行某个任务的独立计算机集合 这些计算机称作松耦合计算机 分布式计算 指在分布式系统上执行的计算或处理 本书讨论运行独立计算机系统上 通过彼此协作 执行诸如网络服务 Web应用等计算的计算机程序的运行方法 1 2分布式计算历史发展 60年代开始 需求相似的作业作为一组以批处理方式通过计算机运行 并提出了缓冲 假脱机及多道程序等新的处理技术 为的是减少计算机的空间 时间 提高速度 70年代 产生了分时系统 为用户提供在不同地点共享并访问资源 分时是迈向分布式系统的第一步 80年代 是个人计算机与网络技术时代 90年代 是分布式系统时代 1 分布式系统的物理组成 分布式系统可以有不同的物理组成 一种是通过通信网络互链的个人计算机 一系列不仅共享文件系统和数据库系统 而且共享CPU周期的工作站 包括本地和远程进程 本地比远程有更高优先级 一个处理器池 终端不隶属于任何一个处理机 而且不论本地进程还是远程进程 所有资源得以真正的共享 另一种是用户把系统看成一个虚拟的单处理机而不是不同处理机的集合 分布式系统是无缝的 也就是说网络功能单元的接口很大程度上对用户不可见 2 推动分布式系统发展的因素 固有的分布式系统应用自然存在 应用广 性能 成本性能的提高和成本的降低 资源共享有效支持不同用户 硬软共享 灵活性和可扩展性 实用性和容错性 微电子技术提高生产价廉高速的PE 通信技术的提高高效的网络通信 用户的需求 1 3各种计算形式 1 3 1单机计算或集中式计算 类似于无盘工作站局域网 如图1 3 a 所示 大型机 终端 集中式计算 1 3 2 物理分布式存储器结构 类似于有盘工作站局域网 如图1 1 b 所示 1 3 3 通信模型的选择 不需要和物理系统连在一起 可以区分硬件呈现的物理共享和编程模型呈现的逻辑共享图1 2所示 本地存储器 CPU CPU 本地存储器 本地存储器 CPU 互连网络 图1 1 b 物理分布式存储器结构 1 3 4并行计算并行计算或并行处理这种计算形式与分布式计算相似但又不同 它采用多个处理器来并行执行单个程序 并行计算通常在一台多处理器计算机上执行 也可能通过网络上互连的多个计算机来执行并行处理 然而 这类并行处理需要非常复杂的分布式并行处理软件来支持 共享存储器 模拟消息传递 分布式共享存储器 消息传递 逻辑共享式 逻辑分布式 物理共享式 物理分布式 图1 2物理和逻辑共享式 分布式存储器的比较 1 4分布式计算的优缺点 优点 低廉的计算机价格和网络访问的可用性 资源共享 分布式计算体系反映了计算结构的现代组织形式 每个组织在面向网络提供共享的资源 可伸缩性 分布式计算有良好的伸缩性 对资源需求的增加可通过提供额外资源来有效解决 容错性 可以通过资源复制 或镜像 维持故障情形下的可用性 与单机比较 分布式计算提供了容错功能 缺点 多点故障 因涉及多台计算机 且依赖于网络进行通信 安全性能较差 1 5操作系统基础 1 5 1计算机程序和进程程序在计算机上 运行 或执行时被表示成一个进程 Process 在计算机中 一个进程由一个执行程序及其当前值 状态信息和操作系统用于管理该程序执行的资源组成 换言之 进程是仅在程序运行时才存在的动态实体 图1 4描述了进程生命周期内的状态迁移图 进程根据需要不断重复 就绪 执行 阻塞或结束 进程的简单状态迁移图 开始 就绪 阻塞 执行 结束 Java的三类应用小程序 1 应用程序2 小应用程序3 小服务程序图1 5所示的是Java独立应用程序 Java对象 计算机 Java虚拟机 图1 5Java独立应用程序 ASampleofasimpleJavaapplication M Liu1 8 02Importjava io ClassMyprogram Publicstaticvoidmain String args ThrowsIOException BufferedReaderkeyboard newBufferedReader new StringtheName System out prntln whatisyourname theName keyboard readLine System out prntln Hello theName System out prntln welcometocsc endmain endclass 图1 6所示的是Java小应用程序 小应用程序 Java虚拟机 Java对象 ASampleofasimpleJavaapplet M Liu1 8 02Importjava Applet Applet Importjava awt PublicclassMyAppletextendsApplet Publicvoidpaint Graphicsg setBackground color blue FontClaude newFont Arial Font BOLD 40 g setFont Claude g setColor Color yellow g drawString Helloworld 100 100 endPaint endclass P12 图1 7所示的是Java小服务程序 小服务程序 进程 请求 响应 具体程序在P12图1 7所示 1 5 2并发编程 分布式计算包括由多个并行执行进程组成的并发编程 常用的有以下三种类型 一是运行于多台计算机上的并发进程二是运行于单台计算机上的并发进程三是进程内并发编程1 父进程和子进程运行过程中一个进程可能会衍生附属进程或子进程 通过真实或虚拟多任务 源进程称为父进程 将和子进程一起并行执行 图1 9所示 一个父进程可以衍生出若干个子进程 父进程 子进程 一个进程可以衍生出若干个子线程 进程 主线程 子线程1 子线程2 图1 9进程内的并行处理 2 线程 并发执行线程可能导致竞争情况的发生 为避免发生竞争情况 在代码段中提供互斥机制 互斥算法 互斥机制可保证该代码段中的命令在同一时刻只能被一个线程执行 这样的代码段也称临界区 多线程程序设计也能防止竞争情况 称之为线程安全 开发复杂的线程安全程序需要一些高级编程技巧 3 Java线程 JVM支持多线程并发执行应用的运行 当JVM启动时 有一个线程调用某些类中的main函数 其他线程可由活动线程衍生 为支持线程编程 Java提供了一个Thread类和一个Runnable接口 在Java编程中 有两种创建新线程的方法 将类声明成类Thread的子类 该子类覆盖类Thread的run方法 当该子类的一个实例被创建和启动时 run方法中的代码将和main线程并行执行 声明一个实现Runnable接口类 该类将实现接口中的run方法 当该类的一个实例被创建时和启动时 run方法和main线程并行执行 图1 11展示了第一种方法 图1 12说明用第二种方法 PublicclassRunThreads Publicstaticvoidmain String args SomeThreadP1 newSomeThread 1 P1 static SomeThreadP2 newSomeThread 2 P2 static SomeThreadP3 newSomeThread 3 P3 static endclassRunThreads PublicclassSomeThreadextendThread intmyID SomeThread intid This myID id PublicvoidRun inti For i 1 i 11 i System out println Thread myID i endclassSomeThread 图1 11采用Thread的一个子类衍生3个线程的应用实例 PublicclassRunThreads2 Publicstaticvoidmain String args ThreadP1 newSomeThread newSomeThread2 1 P1 static ThreadP2 newSomeThread newSomeThread2 2 P2 static ThreadP3 newSomeThread newSomeThread2 3 P3 static endclassRunThread2 classSomeThread2implementsRunnable inmyID SomeThread2 intid This myID id PublicvoidRun inti For i 1 i 11 i System out println Thread myID i endclassSomeThread2 图1 12通过实现Runnable接口衍生3个线程 1 6网络基础 1 6 1协议在通信中协议是所有参与者都必须遵守的一套规程 在计算机通信中 协议必须被形式化定义和精确实现 每个协议规则都必须定义以下内容 数据交换如何编码 事件即发送 接收如何同步 需要强调的是协议只是一套规则 协议规范并不描述协议规则应该如何实现 例如超文本传输协议HTTP定义了Web浏览器进程和Web服务器进程间必须遵守的一些规则 任何与这些规则一致的Web服务器程序 无论采用何种语言或语法实现 都满足该协议需求 因此 协议与实现是不同的 1 6 2网络体系结构 1 开放系统互连体系 图1 13所示 OpenSystemInterconnect OSI 是将复杂的网络功能划分为七层 在数据通信及分布式计算中必须全部或部分提供这些功能 这是国际标准化组织提出的一种网络体系模型 应用层 表示层 会话层 传输层 网络层 数据连路层 物理层 应用层 表示层 会话层 传输层 网络层 数据连路层 物理层 图1 13OSI七层结构 2 Internet网络体系结构物理层提供数字信号传输功能 传输层提供向远程计算机上运行进程的数据报文传输功能 应用层为具体的WWW应用 应用层 传输层 Internet层 物理层 物理层 Internet层 传输层 应用层 图1 14Internet网络体系结构 1 6 3网络体系协议 在传输层有两种被广泛使用的协议 TCP TransmissionControlProtcol 传输控制协议 它提供面向连接的通信 UDP UerDatagramProtcol 用户数据报文协议 支持无连接通信 在应用层 FTP FileTransferProtcol 文件传输协议 SNMP SimpleNetworkMailProtocol 简单网络邮件协议 HTTP超文本传输协议等都是网络应用层的协议 TCP IP协议是包括该体系结构的Internet层和传输层的一套协议 1 6 4面向连接通信与无连接通信的比较 面向连接的通信中 一个连接可以是物理的 通过电缆 调制解调器等硬件连接 或逻辑的 软件仿真 建立在呼叫者和应答者之间的连接 无连接通信 不涉及到连接 任何时候数据都以报文形式发送 在TCP IP协议族的传输层 UDP是无连接协议 TCP是面向连接的协议 注意点 通信设施在某层采用面向连接 而在其他层即采用无连接方式 1 面向连接与无连接通信之间的对比图 面向连接的通信 无连接的通信 发送 接收 先建立连接 传输有序 一个数据包 图1 15 2 面向连接与无连接进程间通信比较 面向连接 无连接 地址 建立连接时定义 不须在随后的每个操作 发送或接收 时重新定义 在每个操作中都必须定义 连接开销 存在连接建立开销 不适用 地址解析开销 每个操作都不需要地址解析开销 每个操作中都存在地址解析开销 数据传输顺序 抽象连接允许IPC机制维护数据报文的传输顺序 缺乏连接使IPC机制很难维护传输顺序 协议 适合需要交换大量数据流 或大量反复交换的协议 适合在有限循环交换中交互少量数据的协议 1 6 5网络资源 网络资源 1 硬件设备 Internet主机 路由器及其它设备等 2 软件资源 电子邮件信箱 文件 Web文档等软件等 3 网络资源服务 运行在计算机上的特殊进程提供的WWW和文件传输服务 1 6 6主机识别和IP地址 1 从物理上看 Internet是由网络链路和计算机组成的一个巨型网状物 其拓扑如1 16所示 图1 16Internet拓扑 Internet主机 Internet主干网 网络 2 IP地址分配方案 在IPv4中 Internet上的每个主机都有一个用32位长的字符串惟一标识 32位长度所能容纳的地址总数为232 那就是说 32位长地址能容纳232 4294967296个地址 地址空间被分为5类 从A到E 如1 17所示 0 A类地址 1 0 B类地址 1 1 0 C类地址 1 1 1 0 1 1 1 1 组播地址 保留地址 字节0 字节1 字节2 字节3 图1 17IPv4地址方案 域名的层次结构 域名系统 DomainNameSystemDNS 的层次结构如下 根域 au ca com gov edu org 图1 18域名的层次结构 1 6 7通过协议端口识别进程 在网络应用中 数据必须被传递到运行于计算机上的特定进程 因此 需要一种命名方案来惟一标识每个进程 有许多方案能满足要求 一个可行的途径是利用操作系统为每个进程分配惟一进程标识符PID ProcessIdentifier Internet上的进程标识符协议包括使用逻辑实体名协议端口 ProtoclPort 在Internet体系结构的传输层使用TCP和UDP两个协议负责将数据调度到进程 每个协议都针对目标在每个主机上使用各自的端口号集合 在IPv4的TCP或UDP协议中 每个主机可有216个端口 端口号为 0 65535 如浏览Web站点时 通常使用目标主机上TCP端口号为80的进程来提供服务 1 6 9URLURL是统一资源定位符 它是一种命名方案 它遵循更为通用的统一资源识别符URI方案 URI是标识Web资源的一个缩写串 它包括文档 图象 可下载文件 服务和电子邮箱等 URI提供了一个统一方法 URL为名字空间惟一标识对象提供了一个非持久途径 在命名系统里 名字空间指系统提供的名字集 其格式为 1 可扩展名字服务可扩展名字服务XNS是由XNSORG公共信任组织管理的一个Internet名字服务 他是一个完全独立的开放论坛组织 允许用户使用一个通用地址来执行 所有类型的通信 电子邮件 电话 传真 Web页面等
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年虚拟现实行业技术创新与市场应用前景分析报告
- 2025年电子行业智能家居设备市场前景研究报告
- 2025年医疗科技行业远程医疗发展前景分析报告
- 2025年工业设计行业工业设计创新与应用前景研究报告
- 商场保洁安全作业培训总结课件
- 南京市2025江苏南京市产品质量监督检验院招聘编外工作人员11人笔试历年参考题库附带答案详解
- 云阳县2025二季度重庆云阳县事业单位考核招聘98人笔试历年参考题库附带答案详解
- 2025河北唐山瑞丰钢铁春季校园招聘招38人笔试参考题库附带答案详解
- 2025广东中山长虹电器有限公司招聘散件工艺工程师等岗位3人笔试参考题库附带答案详解
- 2025年福建福州市鼓楼区城投集团招聘18人笔试参考题库附带答案详解
- 冲压质量培训
- 2025年辽宁交投集团招聘笔试参考题库含答案解析
- 设备维护与保养手册
- 喷雾干燥塔操作规程模版(3篇)
- 《天疱疮诊断及治疗》课件
- 学校教代会代表换届选举方案
- 现代交换原理第二章
- 2024版工业润滑油销售协议范例版
- 企业级智能数据分析系统开发与服务合同
- 2024数据要素典型案例
- Unit 3 She has long hair. (教学设计)-2024-2025学年湘鲁版英语五年级上册
评论
0/150
提交评论