版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第十四讲网络与分布式处理华软软件工程系第9、10章主要章节本讲内容网络分布式处理主要内容教学要求本章目的:以Linux为例讲述操作系统中网络功能的实现。教学目标:TCP/IP体系结构;Linux操作系统网络实现结构;套接字及缓冲;设备接口。重点与难点:Linux网络功能的结构。专业术语:套接字,网络协议,套接字地址族网络协议简介任意两个计算机系统之间的通信,必须有较高的协调性。为了在复杂的网络环境中实现它,人们采用了分层次的方法将任务划分成若干可实现的子模块,分层排列实现。网络协议简介各层的功能如下:应用层:用户访问网络的接口层。向用户进程提供网络服务。主机间两个进程的通信表示层:将欲交换的数据从适合于某一用户的抽象语法变换为适合在OSI内部使用的传送语法。实质上就是数据格式的转换。此外还有加密、压缩。会话层:负责主机中两个进程之间的通信过程进行管理。双工、半双工。多连接,断点续传。运输层:为不同系统内的用户进程建立端到端的连接。进行差错控制、流量控制。传送单位为报文,对网络透明网络层:为互联网上的不同主机提供通信。任务:选择适合的路由,使发方运输层传来的分组(包)能按地址找到目的主机。数据链路层:在两个邻近节点间无差错地传送以帧frame为单位的数据。物理层:透明地传递比特流。网络协议简介而从Internet发展起来的TCP/IP协议由于其高效、适用成了事实上的工业标准。其协议栈如图15.1所示。Linux网络的分层结构在操作系统实现上网络数据从用户进程传到网络设备要经过四个层次:网络应用进程、套接字层、协议层、物理设备。Linux的套接字及其缓冲区套接字在网络中的地位套接字对用户应用程序的编程来说是一个网络接口。用户进程通过套接字来跟网络打交道。Linux的套接字及其缓冲区套接字的作用socket位于协议之上,屏蔽了不同网络协议之间的差异;socket是网络编程的入口,它提供了大量的系统调用,构成了网络程序的主体;在Linux系统中,socket属于文件系统的一部分,网络通信可以被看作是对文件的读取,使得我们对网络的控制和对文件的控制一样方便。Linux的套接字及其缓冲区Linux套接字的层次通信领域中,存在多种套接字类型,不同的套接字类型称为“地址族”。每种地址族拥有自己的通信寻址方法。Linux采用将INET套接字地址族抽象成BSD套接字接口,方便移植。Linux的套接字及其缓冲区套接字通信数据结构BSD套接字层用于网络连接的数据结构是socket{}(在include/linux/net.h中)。应用程序通过一个socket的文件描述符与BSD套接字中的一个socket相对应。对socket结构进行操作的函数有sock_alloca(申请和释放一个套接字,在(net/socket.c中)、socket_file_ops(文件系统传递过来的操作,在(net/socket.c中)INET套接字层用于包存放和调度的数据结构是sock(在include/net/sock.h中)。TCPClient开始生成套接字接通形成等待队列接受连接请求取得地址生成套接字开始接通开始传输等待客戶端的连接建立连接
readwrite处理请求TCPServerTCPsocket
开始传输socket()bind()listen()accept()socket()connect()Linux网络协议的实现建立连接创建socket根据网络协议初始化socketsocket管理连接控制和数据信息OS定义动作将一个socket管理的数据通过传输层、网络层、物理层的协议传输通过另一端的物理层、网络层、传输层上达监听数据的应用程序下面通过一段程序表明系统如何建立连接。Linux网络协议的实现撤销连接通过sys_close()函数最终调用sock_close()实现撤销连接。数据发送应用层(通过write发送)BSD套接字层(write对应sys_write())INET套接字层(inet_sendmsg())从INET层到IP层(通过ip_queue_xmit实现数据传输过程由INET层到IP层的切换)硬件层(调用dev_queue_xmit将数据从设备中送出。)Linux网络协议的实现Linux的网络设备接口结构发送数据到设备时,设备驱动程序负责将来自协议层的网络缓冲区发送到物理介质,并接收硬件产生的应答信号。从设备接收数据时,设备驱动程序接收来自网络介质的数据帧,并把它转换到能被网络协议识别的网络缓冲区中,然后把它传递给netif_rx()函数。该函数把数据帧传递到网络协议层进一步处理。Linux的网络设备接口设备注册网络接口的注册有两种方式:内核初始化和模块方式初始化内核初始化内核启动的方式是指在系统引导内核,启动操作系统的时候完成网络接口初始化,并注册存在的网络接口,使之在系统启动结束后网络接口能被自动使用。模块方式初始化微内核(Microkernel)体系结构,微内核结构只给内核分配一些最基本的功能,如进程创建和删除、内存地址空间管理、进程间通信和最基本的调度。其他的服务由运行在用户模式下的进程提供,这些进程也称为服务进程。将内核和服务分开。单一(Monolithic)体系结构,将所有操作系统功能模块集中在一起编译成一个二进制代码。运行速度快和性能好,但扩展性差。Linux采用模块机制的单一体系结构。Linux的网络设备接口第二部分分布式处理第16章分布式处理主要内容教学要求本章目的:本章介绍分布式操作系统相关处理过程及概念。教学目标:客户/服务器计算;分布式消息传递;集群。重点与难点:客户/服务器计算;集群。专业术语:分布式系统,中间件,远过程调用,进程迁移,集群分布式操作系统将大量计算机通过网络连接在一起,以获得极高的运算能力和数据共享的系统称为分布式系统(DistributedSystem)。能使分布式计算机系统中若干台计算机相互协作完成一个共同任务的系统软件称为分布式操作系统(DistributedOperatingSystem)分布式操作系统特点:统一的操作系统。处理机资源共享。计算任务能方便地从一台主机迁移到另一台主机上运行。透明性。各主机地理位置对用户是透明的。自治性。各台主机都处于平等的地位,没有主从关系。分布式系统的主要优点是:可以使用许多较低成本的主机,通过分布计算获得较高的运行性能由于拥有较多分布在各地的主机,个别主机发生故障时,整个系统仍能工作。客户/服务器计算分布式环境的客户
/服务器模式典型客户/服务器结构客户/服务器计算分布式环境的客户
/服务器模式数据库应用的客户/服务器结构客户/服务器计算分布式环境的客户
/服务器模式客户/服务器负载分布方式客户/服务器计算三(多)层浏览器/服务器结构随着互联网的应用,由客户/服务器方式逐渐发展出了客户/中间层服务器/后端服务器的模式,即n-Tier模式。客户/服务器计算中间件为了克服客户/服务器或多层结构带来的复杂性,使得程序能以相同的方式跨越各种平台在任何位置都能访问数据,需要一种在应用程序与通信软件及操作系统之间的接口和协议。实现这种接口和协议的软件即为中间件(middleware)。如:数据库服务采用结构化查询语言提供一种标准化方式。中间件分客户端和服务器端组建,但都基于消息传递或远过程调用两种通信方式。分布式进程通信分布式消息传递分布式进程通信分布式消息传递分布式进程通信远过程调用远过程调用实际上是消息传递方法的一种改进形式。远过程调用RPC(remoteprocedurecall)使得不同机器上的进程采用简单的过程调用和返回进行交互,其过程调用用于访问远程服务。这种方法的普及是因为:过程调用在单机系统中已被广泛使用,为用户熟悉和掌握。分布式系统中的远过程定义了明确的调用接口,在编译时可静态地检查类型匹配错误。远过程调用具有精确定义的标准接口,便于自动生成应用的通信代码。远过程调用具有精确定义的标准接口,开发者编写的客户机端或服务器端的通信模块易于移植。分布式进程通信远过程调用远过程调用的整体结构分布式进程通信远过程调用远过程调用机制例如:CALLP(X,Y)进程迁移概念进程迁移是指由进程原来运行的机器(源主机或生产机)向目标机器(备机)传送足够数量的有关该进程的信息,使该进程能在另一机器上执行。进行进程迁移一般用于如下情况:预期机器发生故障负载均衡改善通信性能充分利用专有功能的计算机进程迁移进程迁移机制进程迁移由源主机的分布式系统实施,并需得到目标机器操作系统的紧密协同共同完成。由谁启动进程迁移取决于迁移的目的,如果是利用某计算机专有功能,则由进程迁移自己。除此之外的迁移目的,无论是处于负载均衡,还是改善通信性能,或是避免故障,所有这些迁移则由操作系统中监视系统情况的进程启动迁移。当一个进程被迁移时,需要作如下工作:进程迁移进程迁移机制
当一个进程被迁移时,需要撤销源机器上的进程,并在目标机器上创建它。由于这是进程映像的移动,而不是复制,所以是将进程映像(至少是进程控制块PCB)移到目标机上。这个进程如果正在与其它进程通信,如发送了消息、信号等,则需对这些连接一起进行修改。可能的话需要迁移进程的整个地址空间,这样做的好处是源系统不再需要记录和跟踪进程的剩余部分,便于迁移进程在目标机顺利工作。但地址空间太大则付出的代价太高。一般仅迁移进程在主存中的部分,而在虚拟地址空间的其他部分仅当需要时才进行传输,这样可以减少传输量。此外也还需要考虑访问远程文件的次数。在进程整个生命期内,源系统需维持进程的页表或段表等实体,以提供远程页的支持。如果被打开的文件是和被迁移进程在同一台源主机中,而且已由该进程锁住进行互斥访问,那么应与进程一起迁移。当如果进程是临时性迁移,文件是返回再用,那就不必迁移该文件。进程的开销需要一定的时间(几分钟)。进程由双方系统的监管进程协商后,才进行迁移进程的发送和接收。分布式环境下的互斥及死锁概念分布式系统中资源的管理方法分布式集中管理:每个资源均由本地主机惟一的一个管理者管理资源的完全分布管理:每个资源由位于不同节点上的资源管理者共同来管。资源管理算法应满足以下条件:应保证每个资源在任何时候最多被一个进程所占有,即保证互斥分配。不应使有些进程长期或无限期等待,即不应产生饥饿和死锁情况。各资源管理者在协商中处于平等地位。分布式环境下的互斥及死锁逻辑钟分布式系统中每台机器拥有自己的一个时钟,但时钟由于物理上的原因不可能完全一样,每个时钟的速度也是不一样的,导致这些时钟的时间不一致。逻辑时间:是指所关心的只是不同事件之间的顺序,而不是真的要求得到物理时间。保证逻辑时间正确的算法分布式环境下的互斥及死锁互斥算法集中式算法。用一个进程作为协调者,任何进程需要访问临界区时都向协调者发送消息请求,协调者每次只让一个进程进入临界区。分布式算法。任何进程要进入临界区需要向所有其他进程发送消息,消息中包含当前时间、自己的进程号。其他进程做如下判断:如果接收进程不准备进入临界区,也不在临界区中,直接回答发送者以OK。如果接收进程在临界区中,暂时不回答。如果接收进程也想要进入临界区,那么比较自己发送的消息中的时间与接收到的消息中的时间。令牌环算法分布式环境下的互斥及死锁死锁分布式系统常用四种解决方案:鸵鸟算法。其实就是忽略不管,一旦死锁发生,用户自己重启系统。死锁检测预防死锁(deadlockprevention)。死锁避免(deadlockavoidance)。集群概念集群(Cluster)是分布式系统的一种,是目前较热门的领域。它是由一组互联的主机(节点)构成统一的资源,通过相应软件协调工作的计算机机群。优点:可伸缩性:可由两台主机构成,也可由数百台主机高可用性:每台节点机都是自治的,所以一个节点的故障不影响整个系统。能自动进行容错处理。高性价比:以非常低的加个,获得与一台大型计算机相匹配或更高的性能。集群集群技术的分类按集群提供的功能分:基于双机系统的集群,利用硬件的方式来提高系统的可用性。基于负载均衡(LoadBalance)的集群:用户访问一个地址,但实际上后台有若干个服务器在提供服务。基于并行计算的集群:集群系统的各个节点共同执行一个单一应用。按存储结构分:不共享磁盘的集群共享磁盘的集群集群集群技术的分类集群Beowulf集群Beowulf不仅是软件,它是一种将普通计算机构建成
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年湖北省当阳市《行测》考试考前冲刺试卷含答案详解【突破训练】
- 2026-2027学年八年级上学期道法 第三单元测试卷(人教海南版)
- 疼痛相关试题及答案解析
- 呼叫中心服务员班组评比强化考核试卷含答案
- 沼气物管员基础操作水平考核试卷含答案
- 2026年台前县公务员招聘笔试备考题库及答案解析
- 2026年德化县公务员招聘考试备考试题及答案解析
- 2026年商河县事业单位人员招聘笔试备考试题及答案解析
- 2026铜陵高新同盛金属材料有限公司公开招聘财务岗位1人考试参考题库及答案详解
- 2026年建宁县事业单位人员招聘笔试参考题库及答案解析
- 职工上下班途中交通安全培训
- 高二数学开学第一课(高教版2023修订版)-【开学第一课】2025年春季中职开学指南之爱上数学课
- 上海学前教育课程指南
- 先天性心脏病介入封堵术护理
- 现代(HYUNDAI)N300系列变频器使用说明书
- 人际交往与人际沟通
- 大学生创新创业基础(创新创业课程)完整全套教学课件
- 彩钢板房安装合同
- 第二届北京市全民国防知识技能大赛知识考试总题库(含答案)
- 注射用艾普拉唑钠-临床用药解读
- 上海市小升初英语单词表
评论
0/150
提交评论