- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三章 进程 线程 客户端-服务器系统的进程组织 分布式系统的代码迁移 一、线程 1、基本概念-进程与线程 进程:执行中的程序 多任务处理系统-虚拟处理器-进程-进程表。 线程:与进程相似,可以看作程序的一部分在虚拟处理器上的执行。 区别:进程概念大,彼此隔离并自动受OS保护;线程概念小,彼此之间的共享与冲突等问题需要应用程序来处理。 多任务OS怎么使用CPU? 基本概念-多线程 多线程——一个进程中运行多个线程 多线程技术的优点: 解决进程阻塞问题 可以使用并行操作技术 软件工程方面的考虑 多线程技术的两个重要问题 通信 同步 线程的三种实现方式: 纯粹的用户级线程 优点:线程环境上下文切换高效 缺点:对引起阻塞的系统调用的调用将引起整个进程的阻塞 操作系统内核级的线程 优点:解决了阻塞问题 缺点:变成了进程,丧失了线程的优势 用户级线程和内核级的混合,又称为轻量级进程 基本概念-线程的实现方式 2、分布式系统中的线程 分布式系统使用多线程的主要目标: 透明性 性能 广域网的分布式系统的通信延迟问题 线程的阻塞可以不阻塞所属的进程,非常适合隐藏分布式系统通信延迟。 典型的例子是web浏览器。隐藏通信延迟的方法是启动通信后立即进行其他工作。采用多线程技术的web浏览器客户端有两个主要优点: 每个线程独立获取页面的不同数据。 当服务器是多台时,各线程可以并发获取页面数据。 分布式系统中的线程 分布式系统中多线程技术的优势,主要在于服务器端体现。典型的例子:文件服务器。 多线程技术的作用总结:能够保留顺序处理的思路,而且在使用阻塞性的系统调用时,仍然能达到并行处理的目的。 模型 特征 多线程 并行,使用导致阻塞的系统调用 单线程进程 非并行,使用导致阻塞的系统调用 有限状态机 并行,使用非阻塞的系统调用 构建服务器的三种方式 以分发器/工作者模型组织的多线程服务器 二、客户端-服务器系统的进程组织 客户端的目标 分布式系统的透明性 用户界面,与用户交互 一些客户端也有部分处理和数据级的工作 客户端软件与分布透明性: 访问透明性:客户端存根 定位、迁移、重定位透明性:命名 故障透明性:可由客户端中间件完成,如Web浏览器 复制透明性:客户端决定向哪个或者那些资源副本发送请求 1、客户端 2、服务器——组织结构 两种方式 请求 请求 请求 线程 线程 线程 请求 请求 请求 线程 线程 线程 守护线程 重复服务器:自己处理请求。 并发服务器:将请求传递给特定的线程或者进程,自己继续等待下一个请求。 服务器——访问端点 访问端点——客户端联系服务器的地方 协议 网络地址 端口 端口 通常服务器进程监听一个网络端口,端口号可以: 协议或应用程序规定 使用统一分配的约定端口,如HTTP和FTP 名字与地址的映射——命名服务器 服务器——进程启动与退出 启动 服务器进程先启动,并一直被动等待 守护进程动态派生服务器进程 Unix的inetd守护进程 退出(时间与方式) 自动退出——任务执行完毕 用户手工干预 采用控制数据(带外数据)传输控制信息 ftp——21端口传控制信息,20端口传数据 服务器——状态相关性 状态无关 不保存客户状态信息,也不将自己状态通知客户。 Web服务器 状态相关 保存客户端信息,并对其进行维护。 文件服务器: 保存一个表,表中的条目是用户-文件对,记录用户对文件的访问权限。 优劣 状态无关:实现简单,不灵活 状态相关:灵活,服务器负担重,复杂 三、分布式系统的代码迁移 1、是什么 代码迁移:在不同的机器之间传递程序 迁移的基本形态: 静态——简单 动态——复杂,传递正在执行中的代码 分布式系统中,代码迁移一般是以进程迁移的方式进行。任务复杂且开销庞大。 最复杂的迁移——异构系统的代码迁移 2、为什么 首要的是性能 将进程迁移到负载轻的机器 负载分布算法 减少通信量 例:大型数据库使用存储过程 将服务器的一部分迁移到客户端 并行处理 Web搜索引擎 其次是灵活性 代码在不同的机器上移动,可以动态地配置分布式系统。 3、迁移模型 进程的三个段 代码段——程序指令 资源段——外部资源的指针 执行段——当前执行状态量 从启动迁移分 发送者启动迁移 接受者启动迁移 迁移模型 从强弱程度上分 弱可移动性迁移——只传输代码段和某些初始化数据,传输过来的程序总是以初始状态重新开始执行。 迁移过去的代码有两种执行方式 由目标进程执行 创建单独的进程执行 例:Java applet 强可移动性迁移——除传输代码段和数据外,还传输执行段。 进程移植:先中止进程,移到另一台机器上继续执行。 进程克隆 代码迁移的不同方法 4、代码迁移与本地资源 迁移的一个重要问题:不同的资源在不同的机器环境下差别很大,例如: TCP端口 打印
文档评论(0)