作業系統 Operating System 第六單元 分散式系統

Slides:



Advertisements
Similar presentations
1 中 间 件 技 术中 间 件 技 术. 2 第 1 章 中间件产生背景及分布式计算环境 主要内容 开放系统 互操作性 中间件.
Advertisements

姓名:柴伟龙 学号: 指导老师:邹立杰 姓名:柴伟龙 学号: 指导老师:邹立杰 2012 毕业论文 ( 设计 ) 答辩.
加強輔導課程家長簡介會 時間: 9 月 30 日(二) 晚上 : 6:45 至 8 : 00 地點:禮堂.
數學社群 教學分享 和平國小 陳淑渟老師 數學社群 教學分享 和平國小 陳淑渟老師. 小一常發生的 學習困難 定位板的應用 序數的學習 困難與教學 突破 主題大綱.
第 3 章操作系统基础 3.1 操作系统概述 3.2 操作系统的功能模块 3.3 典型操作系统概述.
5·20 学生营养日 勤工办 学生营养日来历 1989 年成立的中国学生营养促进会在营养学家于 若木的主持下,结合世界卫生组织 2000 年人人享 有卫生保健的战略目标,制定了 1991 年至 2000 年 10 年学生营养工作计划。其中确定每年 5 月 20 日 为中国学生营养日。其目的在于广泛、深入宣传.
第四章 文学类文本阅读 增分突破一 金手一指,让你做好情节作 用分析题.
---- 考前心理辅导讲座 郧阳科技学校 孙许俊
2013届高考复习方案(第一轮) 专题课件.
专题19 自然灾害与防治.
人生格言: 天道酬勤 学院:自动化与电气工程学院 班级: 自师1201 姓名:刘 威.
職務法庭與 法官退場機制 行政訴訟及懲戒廳報告
计算机文化基础教学课件 计算机网络基础.
C语言程序设计 李伟光.
教學經驗分享 吳毅成 國立交通大學資訊工程系 2012年4月.
高雄市小港區海汕國民小學 第一期校舍新建工程 工程現況簡報
整理者:建德市新安江第一小学 秦爱军 食品包装上的信息.
中国科学技术大学 肖 明 军 《网络信息安全》 中国科学技术大学 肖 明 军
南美洲 吉林省延吉一高中 韩贵新.
2011年广西高考政治质量分析 广西师范大学附属外国语学校 蒋 楠.
限时综合强化训练 限时综合强化训练.
大理 你一生不能不到的地方 组员:施绍敏 韩水仙 李佳丽 张仲媛.
岳阳市教学竞赛课件 勾股定理 授课者 赵真金.
第6章 计算机网络基础.
《电子商务师实验室》 电子商务交易模式之“B2C”.
请同学们思考下列问题:.
營建自動化 -營建管理資訊化 授課老師:劉俊杰 副教授 中華民國89年9月27日.
第7章 事务管理 事务管理(transaction management): 恢复——保证事务在并发执行时满足ACID准则的技术。
1 实验目的 观察单缝夫琅和费衍射现象,加深对夫琅和费衍射理论的理解。
命题及其关系 命题.
命题与四种命题 高二数学 选修2-1 第一章 常用逻辑用语.
第4讲 充分条件和必要条件.
面向海洋的开放地区——珠江三角洲 山东省高青县实验中学:郑宝田.
B F C D G E B E A 下图是沿20°经线所作的地形剖面示意图
增分突破二 准确概括传主形象,深入分析传主的人格魅力和品质特征
计算机系统安全 第10章 常用攻击手段.
第七章 电子政府的支撑技术 制作人:王 静.
勾股定理 说课人:钱丹.
“服务器服务于Internet”报告会 倪光南 1999年7月6日
潘爱民 北京大学计算机科学技术研究所 组件技术——最后一讲 潘爱民 北京大学计算机科学技术研究所
当一回消费者 泰安高新区北店子小学 刘清艳.
证券投资基金 投资121 06号余煜欢 09号陈秋婷 33号陈柔韵 08号潘晓峰 10号曾杰 34号谭锐权.
CORBA 簡介 郭 俊 博 中華大學資訊工程研究所 平行與分散實驗室
作業系統 第二十章 分散式系統實例.
狂賀!妝品系同學美容乙級通過 妝品系三甲 學號 姓名 AB 陳柔諺 AB 陳思妤 AB 張蔡婷安
網路基本概念 本章主要是為讀者建立有關網路的基本知識, 作為後續章節的基礎。首先我們會說明網路的基本概念, 接著介紹網路的各種類型與相關的作業系統, 最後則是介紹 OSI 與 DoD 等兩種網路模型, 讓讀者能進一步了解網路運作的方式。
第五章 信息与系统集成技术 概述 数据流集成技术 信息流集成技术 信息管理集成技术 流程重组与业务流程集成 企业门户集成 企业集成架构
分布式对象标准介绍 企业要构建多层分布式系统,必须遵循分布式标准,基于什么样的标准将直接影响到企业应用系统的开放性和可扩展性。目前业界分布式对象技术主要有三种架构标准: Microsoft的COM/DCOM/COM+ OMG组织的 CORBA。 Sun Microsystems的Enterprise.
信息存储与管理 国家天文台 (科技处)信息与计算中心.
TCP/IP基本原理 第九章 文件传输.
在一定程度上 人类的思维产生于 简单个体之间的相互作用 ——Marvin Minsky.
第4章 商务逻辑层及其技术.
人教版数学四年级(下) 乘法分配律 单击页面即可演示.
第六次全国人口普查 近期数据处理工作部署 夏雨春 2010年12月28日.
第12章 计算机病毒防范技术 本章学习目标: 掌握病毒的分类与特征 掌握病毒检测与防范的基本知识 了解计算机病毒防范技术的发展趋势
第一节 相关概述 第二节 积差相关系数 第三节 其他相关系数
企业级分布式应用平台 —— Orbix 2000 CTO 张 恂 博讯科技(上海)有限公司 2001年3月.
作業系統 Operating System 第四單元 檔案系統
计算机网络概述 计算机网络原理与技术.
第七章  事业单位支出的核算      §第一节  支出概述     §第二节  拨出款项     §第三节  各项支出     §第四节  成本费用.
第五章 相交线与平行线 三线八角.
第二章 基于CORBA的分布式平台 苗启广 计算机学院.
Welcome 实验:筷子提米.
第一部分 数字电路 第4章 组合逻辑电路 主讲教师:喻红.
導 論 教學投影片.
第四章:相互作用 第1节:重力与重心.
线段 射线 直线.
美丽的旋转.
方格紙上畫正方形.
大學學群學類卡 林宏茂 中壢高中 李欣樺 振聲高中.
Presentation transcript:

作業系統 Operating System 第六單元 分散式系統 嵌入式軟體設計培訓班 作業系統 Operating System 第六單元 分散式系統 薛智文 Chih-Wen Hsueh cwhsueh@csie.ntu.edu.tw, x322, DTH 322 http://www.csie.ntu.edu.tw/~cwhsueh/ 96 October 慶齡中心

大綱 概述 行程管理 記憶體系統 檔案系統 輸出/輸入 分散式系統 簡介 硬體結構 作業系統結構 行程 排程 同步與死結 行程相關實作 記憶體管理 虛擬記憶體 記憶體管理實作 檔案系統 檔案系統簡介 檔案系統實作 檔案系統實例 輸出/輸入 輸出/輸入系統 大量儲存結構 系統服務常式 分散式系統 分散式系統簡介 分散式檔案系統 分散式協調 分散式系統實例 01:16 /257

第六單元 分散式系統 分散式系統簡介 分散式檔案系統 分散式協調 分散式系統實例 01:16 /257

分散式系統 第六單元 分散式系統 第十七章 分散式系統簡介

第十七章 分散式系統簡介 簡介 系統優點 系統缺點 系統架構 系統通訊 遠端服務 設計考量 摘要 01:16 /257

簡介 分散式系統,定義上是將多部獨立的電腦系統以網路匯集起來,讓使用者感覺就像是在使用一部獨立的電腦系統 分散式系統具備以下幾個特性 提供方便的使用者介面,讓使用者感覺就像是在使用一部高效能的電腦 各個獨立的電腦系統間必須要有穩固可靠的溝通網路 有效率地分配工作與系統資源 提供保護機制,避免系統資源被非法使用者存取 01:16 /257

分散式系統示意圖 伺服器 伺服器 檔案伺服器 印表機 網路 伺服器 檔案伺服器 掃描器 個人電腦 個人電腦 個人電腦 01:16 /257

系統優點 分散式系統建置所需要的成本較大型電腦低 分散式系統具有分散式處理的能力,可以加快系統整體的運算速度 分散式系統的可靠度較佳,系統中若有電腦損壞或無法執行,系統不致於因此而癱瘓 分散式系統的擴展能力佳,分散式系統不敷使用時,可以加入電腦來達到擴充系統功能的目的 01:16 /257

系統缺點 專為分散式系統設計的軟體並不多見,因此軟體的支援較少 不穩定或是無法負擔訊息的傳遞量的網路是分散式系統的致命傷 分散式系統中的安全問題較為重要,也較難維護 01:16 /257

第十七章 分散式系統簡介 簡介 系統架構 網路式作業系統 分散式作業系統 系統通訊 遠端服務 設計考量 摘要 01:16 /257

系統架構 分散式系統上的作業系統大致上可分為兩大類 網路式作業系統(Network OS) 分散式作業系統 (Distributed OS) 01:16 /257

網路式作業系統 (1) 網路式作業系統通常是架構在區域網路或廣域網路 網路作業系統最主要目的有兩個 將多部電腦連接起來,以增進整體的效能 可以互相分享資源 網路式作業系統可以將擁有不同作業系統的多個電腦系統環境彼此用網路連接起來,同時加入一些功能來增進整體效能並分享彼此資源 01:16 /257

網路式作業系統 (2) 網路式作業系統包含以下與分散式作業系統不同的特點 每部電腦擁有自己的作業系統,不是整個分散式作業系統的一部分 每個使用者在自己的電腦工作,當要使用遠端資源時,必須先遠端登錄,才能使用遠端資源 使用者在不同電腦間進行檔案搬移時,必須特別下指令來進行 網路式作業系統是透過網路將各個電腦連接起來,因此如果其中有某部電腦壞掉,也許會導致一些使用者無法繼續工作 01:16 /257

分散式作業系統 (1) 分散式作業系統與網路式作業系統的硬體架構類似,一般也是架構在 LAN 或 WAN 上 分散式作業系統的設計理念與網路式作業系統有以下幾點不同 每部電腦各執行一個分散式作業系統或整個分散式作業系統的一部分 每個使用者使用系統上的遠端資源就像是使用自己的內部資源一般 整個系統的檔案管理由作業系統統一處理,使用者不必知道檔案的實體存放在哪裡、搬移時要下哪些指令 分散式作業系統中某部電腦不能工作時,不會因此有任何一位使用者必須終止工作 01:16 /257

分散式作業系統 (2) 分散式作業系統還有三種不同的設計特性 資料遷移 運算遷移 行程遷移 將目前工作上所需要的部分資料傳送到電腦,以後如需要另一部分資料時,再把該部分資料傳輸過來 將要用到的資料一次全部傳到電腦處理 運算遷移 系統傳送運算內容,而不傳送完整的原始資料 行程遷移 將行程遷移到別部電腦執行,可增進系統的整體效能 01:16 /257

第十七章 分散式系統簡介 簡介 系統架構 系統通訊 定址 阻隔 緩衝 可靠性 封包傳送 遠端服務 設計考量 摘要 01:16 /257

系統通訊 在分散式系統中,不同電腦行程間也必須有相互溝通的機制 主從架構模式是最常見的溝通方式 分散式系統上實作系統通訊,有以下問題必須注意 定址 阻隔 緩衝 可靠性 01:16 /257

主從架構示意圖 網路 要求 回應 客戶端 伺服端 01:16 /257

定址 基本上有三種方法可以達成定址的目的 第一種是利用<電腦編號,行程編號>,也就是電腦編號加行程編號的機制來達到定址的功能 第二種是讓行程從一個很大的範圍中挑選一個號碼,然後廣播通知彼此的位址 第三種是利用一部名稱伺服器記錄各個行程在系統中的位址,當需要溝通時,再向名稱伺服器詢問對方的位址 01:16 /257

三種定址的做法 (1) 1 2 伺服端 客戶端 (a) 1.送要求訊息到<電腦編號,行程編號> 2.回應給<電腦編號,行程編號> 3 4 (b) 1.廣播找尋伺服端位址 2.廣播自己的位址 1 2 3.送要求訊息給伺服端 4.回應給客戶端 01:16 /257

三種定址的做法 (2) 4 3 客戶端 伺服端 (c) 1.向名稱伺服器詢問伺服端位址 2.名稱伺服器回應 3.送要求訊息給伺服端 4.回應給客戶端 名稱伺服器 1 2 01:16 /257

阻隔 所謂阻隔就是在送訊息時,行程會被暫停,等到訊息被核心送出去後,行程才會繼續執行 非阻隔則是行程在送訊息時,只要在訊息被拷貝到核心的緩衝區後,送訊息的行程就可以繼續執行 非阻隔的做法有一個缺點,就是可能會有緩衝區中的訊息還沒傳送出去就被覆蓋掉了 01:16 /257

阻隔與非阻隔的示意圖 1 1 2 2 3 3 時間 4 4 5 5 6 (a) (b) 1.行程執行 1.行程執行 2.將行程暫停並將控制權交給核心 2.將行程暫停並將控制權交給核心 3.訊息複製到核心 3.訊息複製到核心 4.核心將訊息傳送出去 4.喚醒行程 5.行程繼續執行 5.喚醒行程 6.行程繼續執行 01:16 /257

緩衝 緩衝是行程間傳送訊息的重要機制,設置緩衝區可大幅減少訊息傳送的複雜度與出錯機率 擁有緩衝區的系統,系統核心會有一個緩衝區儲存傳送到的訊息。當接收者要接收訊息時,再呼叫接收訊息函式從緩衝區拿出所需要的訊息 對於一個沒有緩衝區的系統,接收者會被阻隔,當傳送者的訊息到達後,核心馬上將訊息複製給接收者,並解除接收者的阻隔狀態 01:16 /257

緩衝區與非緩衝區機制示意圖 傳送者 核心 接收者 網路 客戶端 伺服端 緩衝區 訊息 01:16 /257

可靠性 主從架構的另一個問題是訊息可能在傳送的過程中遺失,基本上有三種解決的方式 第一種方式是假設訊息一定會傳送到,而且就算訊息遺失也沒關係 第二種方式是加入確認機制,確認機制是指伺服端收到客戶端訊息後會回送一個確認訊息,表示伺服端確定收到訊息 第三種方法則是阻隔傳送訊息的行程,直到伺服端收到訊息並做完處理再回應給客戶端,被阻隔的行程於收到訊息後才能繼續執行 01:16 /257

較具可靠性的兩種機制示意圖 1 2 3 4 客戶端 伺服端 (a) (b) 1.客戶端送要求訊息到伺服端 1.客戶端送要求訊息到伺服端 4.客戶端送 ACK 給伺服端 1 2 3 4 客戶端 伺服端 (a) 1.客戶端送要求訊息到伺服端 2.伺服端送 ACK 給客戶端 3.伺服端回應給客戶端 (b) 2.伺服端回應給客戶端 3.客戶端送 ACK 給伺服端 1.客戶端送要求訊息到伺服端 01:16 /257

封包傳送 (1) 客戶端與伺服端相互傳遞的訊息長度大小不一,為了簡化系統設計,通常是設計為傳送固定大小的訊息,這個固定大小的訊息就稱為封包 封包的傳送可能發生封包碰撞的問題發,所以電腦間必須要有機制來解決封包碰撞的問題 CSMA/CD 令牌傳遞 訊息槽位 01:16 /257

封包傳送 (2) 封包傳送路徑也是一個重要問題,路由表的建立與維護有以下三種常用的方法 固定路由 虛擬路由 動態路由 兩個行程經網路建立起連線後,兩個行程間持續相互傳送訊息的這段期間內,一般會有以下三種訊息交換模式 線路交換 訊息交換 封包交換 01:16 /257

第十七章 分散式系統簡介 簡介 系統架構 系統通訊 遠端服務 遠端程序呼叫模型 動態連結 設計考量 摘要 01:16 /257

遠端服務 遠端服務的模式是本地端的行程呼叫使用遠端電腦所提供的服務,遠端電腦收到這些訊息後,就開始執行所提供的服務,並將結果回傳 執行遠端服務也可以像呼叫函式一樣,也就是有一套機制幫忙處理底層的訊息傳遞,就可以簡化遠端服務系統的開發,這樣的機制稱為遠端程序呼叫 01:16 /257

遠端程序呼叫模型 RPC 的設計理念基本上是想要讓執行遠端服務也像呼叫內部函式一樣簡單 stub分成客戶端 stub 與伺服端 stub,是用來處理 RPC 模式中參數傳遞、訊息交換、與錯誤處理等工作的函式 stub 將參數包裝成適合傳送的封包型態,稱為整碼 (marshal) stub 從接收的封包中將回傳值解開,稱為反整碼 (unmarshal), 理碼 Skeleton 負責將訊息解開,還負責將回傳的資料也包裝成封包並傳回客戶端 01:16 /257

RPC 機制示意圖 核心 呼叫函式 函式回傳 整碼 反整碼 遠端服務 客戶端stub (stub) 伺服端stub (skeleton) 客戶端電腦 伺服端電腦 01:16 /257

動態連結 當客戶端要使用某個伺服端中的服務時,必須要先知道伺服端的位址才能與伺服端溝通,這個過程稱為連結 動態連結讓客戶端不必事先知道伺服端的位置,在要使用 RPC 前,再詢問伺服端目前的位址 優點 客戶端不用事先知道伺服端的位址 缺點 客戶端向連結器詢問與向連結器註冊的額外負擔 01:16 /257

第十七章 分散式系統簡介 簡介 系統架構 系統通訊 遠端服務 設計考量 通透性 彈性 可靠性 效能 延展性 摘要 01:16 /257

通透性 通透性最主要的議題是在如何讓分散式系統的使用者感覺像是在使用單處理器系統 通透性可以分成五大類 位址通透性 遷移通透性 複製通透性 並行通透性 平行通透性 01:16 /257

彈性 (1) 彈性是指修改或增加系統功能時的難易程度 設計一個分散式作業系統基本上有兩派做法 作業系統的核心為巨核心 作業系統的核心為微核心 檔案伺服器 行程管理 使用者 使用者 巨核心 微核心 微核心 微核心 網路 網路 01:16 /257

彈性 (2) 微核心只包含了最基本的功能 採用微核心最大的好處是系統可以高度模組化 低階的行程管理與排程機制 行程間互相溝通同步的機制 記憶體管理機制 低階的輸出/輸入功能 採用微核心最大的好處是系統可以高度模組化 01:16 /257

可靠性 可靠性就是當系統中的一部電腦停止運作時,原本執行中或尚未執行的工作可以由其他電腦接手,不致於影響整個系統運作 可以由幾個方面來評估一個系統的可靠性 系統是否可自動備份資料 安全性 錯誤容忍度 01:16 /257

效能 評估一個系統的效能的方法 增加系統額外附加功能或局部效能時,可能會產生降低系統整體效能的現象 反應時間 系統整體資源的使用效率 01:16 /257

延展性 若額外加入一些電腦,即可提升效能,不用大幅更改整個系統的軟硬體配置,則表示此分散式系統具有相當不錯的延展性 一個分散式系統越能符合以下三個原則,就越可以達到高延展性 某部電腦發生錯誤時,不會使整個系統停止運作 各個電腦只需要知道局部的資訊就可以運作 沒有工作會使用到全域時脈 01:16 /257

摘要 (1) 分散式系統可以簡單定義為是一種聚集多個獨立電腦的系統 相較於單處理器系統,分散式系統擁有更好的可靠度與運算能力,但是也多了額外的問題必須解決 電腦間網路連結 行程間訊息傳遞的安全性 分散式系統上的作業系統分為兩大類 網路式作業系統 分散式作業系統 01:16 /257

摘要 (2) 在分散式系統中,主從架構的模式是最常見的溝通方式,分散式系統在使用此架構時,必須考量許多因素 定址 阻隔 緩衝區 可靠性 封包傳遞 RPC 的想法就是要讓執行遠端服務也可以像呼叫本地函式一樣簡單,動態連結的做法是實現 RPC 的重要概念 01:16 /257

摘要 (3) 分散式系統所需考量到的其他因素 通透性 彈性 效能 可靠性 延展性 01:16 /257

分散式系統 第六單元 分散式系統 第十八章 分散式檔案系統

第十八章 分散式檔案系統 系統設計 檔案服務介面 目錄服務介面 命名通透 檔案共享 系統實作 快取 檔案複製 摘要 01:16 /257

系統設計 分散式檔案系統的重點就是將各部電腦的儲存裝置整合在一起 分散式檔案系統架構中有兩個重要的概念 檔案服務 檔案伺服器 分散式檔案系統必須讓使用者感覺上是在使用傳統的集中式檔案系統 典型的分散式檔案系統服務可以分為兩部份 目錄服務 01:16 /257

檔案服務介面 分散式檔案系統是使用存取控制清單來記錄所有可以使用此檔案的使用者 檔案服務可分為上兩類 上傳/下載模式,系統只提供讀取檔案和寫入檔案 遠端存取模式,伺服端提供大量的檔案操作功能 01:16 /257

上傳/下載與遠端存取模式示意圖 客戶端 伺服端 檔案傳到客戶端 檔案 當客戶端確定寫入檔案時,檔案才回傳給伺服端 所有修改動作皆在客戶端完成 (a) 上傳/下載模式 所有修改動作皆在客戶端完成 (b) 遠端存取模式 修改檔案是藉由大量的操作訊息通知伺服端,由伺服端代為完成 01:16 /257

目錄服務介面 (1) 目錄服務介面主要是提供建立與刪除目錄、檔案命名與改名、檔案搬移等功能 集中式檔案系統中的目錄介面可在目錄下建立子目錄而形成樹狀結構 在分散式環境下檔案很可能分散在不同電腦上,所以分散式檔案系統的目錄結構又更為複雜 01:16 /257

集中式檔案系統與分散式檔案系統示意圖 A B C D E 1 2 (a) 集中式檔案系統 (b) 分散式檔案系統 伺服器 A 伺服器 B (a) 集中式檔案系統 (b) 分散式檔案系統 伺服器 A 伺服器 B 計數器 01:16 /257

目錄服務介面 (2) 是否要讓所有客戶端都看到相同的目錄結構是設計分散式目錄服務時一個重要議題 基本上有兩種做法 一種做法是讓客戶端看到相同的目錄結構 另一種做法是讓客戶端看到不同的目錄結構 01:16 /257

分散式目錄服務示意圖 (c)顯示不同的目錄結構 A B C D E F G 客戶端2 檔案伺服器2 (a)兩部檔案伺服器 根目錄 檔案伺服器1 客戶端1 客戶端1 01:16 /257

命名通透性 (1) 命名通透性就是檔案的命名(包含路徑)是否會影響檔案系統的設計 分散式檔案系統中設計目錄結構有以下二種考量 位置通透性 檔案路徑並不會顯示出檔案伺服器的實際位置 位置獨立性 當檔案實際所在位置搬移時,不必更改檔案路徑也可以使用原本的檔案 01:16 /257

命名通透性 (2) 在分散式檔案系統中實作檔案和目錄命名有三種常用的方法 掛載遠端檔案系統到本地端檔案目錄結構中 電腦名稱加上路徑名稱 系統將所有資源整合起來,使用統一的目錄結構,讓所有電腦看到的會是相同的目錄結構 01:16 /257

檔案共享 (1) 集中式檔案系統中允許檔案共享,並且利用檔案指標來達成 分散式檔案系統只要客戶端沒有檔案快取的機制、並且將檔案的操作都集中到同一部伺服器中處理,就可模擬成集中式檔案系統的操作方式 01:16 /257

檔案共享 (2) 在分散式檔案系統中,對於檔案共享問題所提出的幾種解決方法 UNIX 語意 Session 語意 Immutable 語意 不可分割交易 01:16 /257

集中式與分散式檔案系統 示意圖 A B C de defg 行程 1.寫入f 2.寫入g 3.讀取 原始的檔案 2.寫入fg 客戶端1 檔案伺服器 客戶端2 (a) 集中式檔案系統 1.讀取de 3.讀取de (b) 分散式檔案系統 01:16 /257

第十八章 分散式檔案系統 系統設計 系統實作 檔案與目錄結構 服務形式 快取 檔案複製 摘要 01:16 /257

系統實作 在實作分散式檔案系統時,必需考慮以下的問題 檔案與目錄架構 服務形式 快取 檔案取代 檔案一致性 01:16 /257

檔案與目錄結構 (1) 解決檔案與目錄結構的有兩種做方 將檔案服務和目錄服務整合在一起,由單一個伺服器作檔案及目錄服務,所有使用者都與這個伺服器溝通 檔案服務與目錄服務分開在不同的伺服器,當有檔案操作的要求時,先跟提供目錄服務的伺服器查詢,再利用這個編號資料跟檔案伺服器溝通 01:16 /257

檔案與目錄結構 (2) 系統如果是使用目錄服務與檔案服務分開的做法 ,系統可以有二種做法查詢的方式 反覆查詢的方式 主動查詢的方式 系統採用快取的機制,把最近查詢的檔案資訊儲存在快取中,之後如有對相同檔案的操作,即可馬上回應檔案資訊 01:16 /257

反覆與主動查詢方式示意圖 目錄伺服器 /A/ 查詢 /A/B/C/g.txt /B/C/g.txt 回應/B/C/ 客戶端 /B/ 查詢 回應檔案資訊 (a)反覆查詢方式 (b)主動查詢方式 /B/C/g.txt 01:16 /257

服務形式 檔案服務可分為兩類 具備狀態服務的優點與不具狀態服務的比較表 具備狀態服務 不具狀態服務 具備狀態服務的優點 不具狀態服務的優點 檔案操作訊息較短 容錯能力較佳 系統效能較佳 不需特殊的開檔和關檔 可預讀資訊 伺服器不用維護狀態紀錄 如一的操作較容易達成 可開檔案數目無限 可將檔案上鎖 客戶端當機不影響系統運作 01:16 /257

第十八章 分散式檔案系統 系統設計 系統實作 快取 快取機制 快取一致性 檔案複製 摘要 01:16 /257

快取 傳統的集中式檔案系統中,採用快取是為了降低磁碟 I/O 次數,以此達到提昇系統效能的目的 分散式檔案系統中,採用快取主要是降低網路傳輸的負擔 01:16 /257

快取機制 (1) 快取的基本想法是將伺服器或客戶端的主記憶體或是客戶端磁碟當成快取,把最近使用過的檔案存入 使用快取降低伺服器的磁碟 I/O 次數和網路傳輸的負擔 客戶端和伺服端較常採用主記憶體當作快取 主記憶體快取會比磁碟快取有效率得多。 使用主記憶體當快取,客戶端就可以不需要磁碟 伺服端用主記憶體當快取可減少磁碟 I/O 次數 01:16 /257

客戶端/伺服器的架構 伺服器 主記憶體 伺服器磁碟 客戶端 客戶端磁碟 (選擇性的) 網路 01:16 /257

快取機制 (2) 採用快取有二個衍生的問題必須解決 快取的基本單位是什麼 如何處理快取被填滿的問題 01:16 /257

快取一致性 處理快取一致性的問題大致有四種方法 中控 關寫 延寫 寫穿 伺服端統一處理同步的問題 關檔時才傳送更新訊息給伺服端 延遲傳送更新訊息給伺服端 寫穿 每次寫檔立即傳送更新訊息給伺服端 01:16 /257

第十八章 分散式檔案系統 系統設計 系統實作 快取 檔案複製 基本概念 複製方法 摘要 01:16 /257

檔案複製 檔案複製功能可以增加分散式系統的 可靠性 系統效能 雖然系統必須提供更多的儲存空間來存放這些多餘的檔案複本,但是在許多的分散式系統中仍會提供檔案複製的功能 01:16 /257

基本概念 提供檔案複製的服務主要理由如下 檔案複製的服務可增加系統的可靠性及系統效能 複製檔案到不同電腦存放可以增加系統的可靠性 系統中若某部檔案伺服器毀損,因檔案已經備份到另一部檔案伺服器,所以程式仍然能使用檔案 可以分擔檔案伺服器的負擔 檔案複製的服務可增加系統的可靠性及系統效能 01:16 /257

複製方法 有三種處理檔案複製的方法 程式自行處理檔案複製 延遲式的檔案複製 利用群組的方式達到檔案複製功能 檔案複製時,目錄伺服器會記錄檔案在各個伺服器上取得的檔案識別代號,讓客戶端或系統知道這些檔案被複製到什麼地方 01:16 /257

各種檔案複製形式與目錄伺服器上的複製檔案識別代號表 (1) FS1 FS2 FS3 客戶端 檔案伺服器 (a) 客戶端式的檔案複製 (b) 延遲式的檔案複製 01:16 /257

各種檔案複製形式與目錄伺服器上的複製檔案識別代號表 (2) 群組 FS1 dis.txt pda.txt 1.33 1.52 1.22 1.87 3.22 4.11 檔案名稱 檔案識別代號 FS1 FS2 FS3 (d) 目錄伺服器 客戶端 FS2 FS3 (c) 群組式的檔案複製 01:16 /257

摘要 (1) 分散式檔案系統能讓多使用者共享網路上的儲存裝置,並對這些儲存裝置作有效的管理 檔案共享是檔案系統所提供的一個重要功能,但是這個功能會引發一致性的問題,目前有幾個解決方法 UNIX 語意 session 語意 immutable 語意 不可分割交易 01:16 /257

摘要 (2) 實作分散式系統時必須考量的議題 採用快取,則需要解決快取所引發的問題 檔案系統要使用具備狀態服務還是不具狀態服務 系統是否採用快取 採用快取,則需要解決快取所引發的問題 中控 關寫 延寫 寫穿 01:16 /257

摘要 (3) 檔案複製的功能有三種處理方法 客戶端式 延遲式 群組式 01:16 /257

分散式系統 第六單元 分散式系統 第十九章 分散式協調

第十九章 分散式協調 事件順序 先發生於 全域排序 互斥 推選演算法 不可分割交易 並行控制 死結處理 摘要 01:16 /257

事件順序 單處理器系統中可以輕易地解決同步問題 分散式環境下,每個電腦擁有各自的時脈,所以沒辦法根據時脈來決定事件發生的先後順序 號誌 監督程式 分散式環境下,每個電腦擁有各自的時脈,所以沒辦法根據時脈來決定事件發生的先後順序 分散式系統只能利用事件彼此的相依性來決定事件發生的先後順序 01:16 /257

先發生於 分散式的環境下不容易定出統一的時脈,所以利用事件彼此的相依性,也就是所謂「先發生於」的關係 此方法依據以下三種狀況來定義事件發生的先後關係 如果 a 和 b 是同一個行程的事件,而且 a 在 b 之前執行,則 a→b 如果 a 是某個行程傳送訊息的事件,而 b 是另一個行程接收此訊息的事件,則 a→b 如果 a→b 且 b→c,則a→c 01:16 /257

事件關係圖 決定各事件的關係如下 P1→Q2 Q1→S1 Q1→P3 R2→S3 Q1→S3 R1→S3 (因為Q1→S1且S1→S3) (因為R1→R2且R2→S3) 行程P 行程Q 行程R 行程S P1 P2 P3 Q1 Q2 R1 R2 S1 S2 S3 時間 送訊息 01:16 /257

全域排序 分散式系統中達成全域排序,可以將系統中每個事件都附上一個時間戳記 系統所有事件的時間戳記定義完後,即可以依此排列出全域的排序 遇到不同行程的事件擁有相同的時間戳記,則可以利用行程識別代號決定順序 01:16 /257

全域排序示意圖 20 50 80 時間 行程P P1 P2 P3 20 40 60 行程Q Q1 Q2 Q3 (a) 20 50 80 時間 51 71 行程Q Q1 Q2 Q3 (b) 20 50 80 時間 行程P P1 P2 P3 20 51 81 行程Q Q1 Q2 Q3 (c) 01:16 /257

第十九章 分散式協調 事件順序 互斥 推選演算法 不可分割交易 並行控制 死結處理 摘要 集中式演算法 分散式演算法 令牌環演算法 01:16 /257

互斥 互斥就是多個行程同時想要使用同一個資源時,但這個資源一次只允許一個行程使用 分散式系統或集中式系統常使用臨界區的作法來避免多個行程同時使用同一個資源或資料 數種演算法可處理分散式系統中解決互斥的問題 集中式演算法 分散式演算法 令牌環演算法 01:16 /257

集中式演算法 (1) 在分散式系統中要達到互斥的功能,最直接的方法就是模擬成單處理器系統,將互斥的資源集中管理,也就是選擇其中一個行程當協調者來管制臨界區的進出 集中式演算法可以保證互斥的條件,讓同一時間之內只有一個行程進入臨界區,並保證不會有行程發生飢餓現象 集中式演算法也有缺點,當協調者不能運行時,其他行程會因此無法進入臨界區 01:16 /257

集中式演算法 (2) 集中式演算法範例 行程 P1 送一個<REQUEST> 的訊息給協調者 Pc 協調者 Pc 回覆 <OK> 訊息給行程 P1 行程 P2 發 <REQUEST> 的訊息給協調者 Pc Pc 會回覆 <NO> 的訊息給行程 P2 行程 P1 離開臨界區並傳送 <RELEASE> 的訊息給協調者 Pc 協調者 Pc 便會送 <OK> 訊息給行程 P2 01:16 /257

集中式演算法 (3) P1 P2 P3 Pc <REQUEST> <NO> <OK> <RELEASE> (a) (b) (c) 01:16 /257

分散式演算法 (1) 分散式演算法是將決定權分散到整個系統,整個演算法的基本想法是建立在已知事件的全域排序基礎上 當行程要進入某個臨界區時,互相傳遞的訊息至少要 2 (n-1) 個,所以演算法執行起來相當複雜且緩慢 此演算法適用在小型且穩定的分散式系統上 01:16 /257

分散式演算法 (2) P1 P2 P3 (P3,C1,5) <OK> (a) 行程P1送 <REQUEST> 訊息 (b) 行程P3送 <REQUEST>訊息 (c) 行程P2送 <OK> 訊息 (d) 行程P1送 <OK> 訊息 (P1,C1,10) 01:16 /257

令牌環演算法 (1) 令牌環演算法是利用令牌的概念來達到互斥的功能,在分散式系統中有一個令牌在行程間互相傳遞,拿到令牌的行程才能進入臨界區 這個演算法有兩個問題必須解決 如果令牌在傳送的途中遺失或是毀損了,必須要建立另一個新的令牌 如果系統中某一個行程出了問題無法運作,令牌勢必無法順利傳遞,必須馬上重建一個新的令牌傳遞環狀結構 01:16 /257

令牌環演算法 (2) P4 P5 P6 P7 P1 P2 P3 網路 令牌傳遞方向 (a)所有行程的網路連接實際狀況 (b)令牌傳遞的環狀結構 01:16 /257

第十九章 分散式協調 事件順序 互斥 推選演算法 強勢演算法 環狀演算法 不可分割交易 並行控制 死結處理 摘要 01:16 /257

推選演算法 二種選出一個行程擔任協調者的演算法 強勢演算法 環狀演算法 01:16 /257

強勢演算法 (1) 強勢演算法的步驟如下 行程 P 送推選訊息給所有行程編號比行程 P 高的行程 01:16 /257

強勢演算法 (2) P1 P5 P4 P3 P2 行程 推選 反對 當選 (a) 行程 P2 送推選訊息 (b) 行程 P3 和行程 P4 送 反對訊息 (c) 行程 P3 和行程 P4 送推選訊息 (d) 行程 P4 送反對訊息 (e) 行程 P4 送當選訊息 01:16 /257

環狀演算法 (1) 環狀演算法的步驟如下 當任何的行程發現協調者不再運作,就送出推選訊息,訊息內會包含一個行程編號的列表,並將自己的行程編號加入這個列表 當任何的行程收到這個推選訊息,也會將自己的行程編號加入列表,然後將此訊息傳給下一個行程 如果遇到傳送給下一個行程卻沒有回應的情況,則傳送給再下一個行程。 如果行程發現自己的行程編號已經在推選訊息的列表上,則此行程從列表上找出編號最大的行程當協調者,並把這個當選訊息傳送出去 01:16 /257

環狀演算法 (2) 推選訊息列表 P1 P2 P3 P7 P4 P6 P5 2, 3, 4, 5, 6, 1 2 2, 3 行程2發現協調者停止運作,則開始發送推選訊息 01:16 /257

第十九章 分散式協調 事件順序 互斥 推選演算法 不可分割交易 並行控制 死結處理 摘要 兩段式交付協定 兩段式交付協定的錯誤處理 01:16 /257

不可分割交易 不可分割交易的觀念是程式中不可分割的程式單元中的所有操作必須全部正確執行完畢,否則整個不可分割的程式單元都不執行 分散式系統是利用一部電腦當交易協調者,維持整個系統中的各個不可分割交易的執行 兩段式交付協定是用來實現不可分割交易最簡單的分法 01:16 /257

兩段式交付協定 (1) 執行兩段式交付協定時,交易協調者與每個執行不可分割交易的站台都會維持一份理論上不會損毀的紀錄表 當交易協調者準備要開始進行交付運作,可選擇兩段式交付協定來進行 兩段式交付協定的好處就是錯誤發生時,可以利用紀錄表,得知錯誤發生時不可分割交易是在什麼狀態,以決定如何回復此錯誤 01:16 /257

兩段式交付協定 (2) 將<READY>訊息寫入紀錄表中,然後將訊息送出。 將<COMMIT>訊息寫入紀錄表中。 將<PREPARE>訊息寫入紀錄表中,然後將訊息送出。 收集所有的回應 將<COMMIT>訊息寫入紀錄表中,然後將訊息送出。 站台A 站台B 交易協調者 第1段 第2段 01:16 /257

兩段式交付協定的錯誤處理 兩段式交付協定主要有二種錯誤的狀況會發生 網路發生錯誤 協調者發生錯誤 處理交易的站台發生錯誤 可看成是與該網路相連的站台發生錯誤 形成網路分割, 在沒有協調者的分割選出新協調者,等到網路復原後再決定新協調者的去留 01:16 /257

協調者發生錯誤 若有站台記錄著<COMMIT, T> 若有站台記錄著<ABORT, T> 若不是每個站台都有<READY, T> 則交易已交付完畢 若有站台記錄著<ABORT, T> 則交易必須被終止 若不是每個站台都有<READY, T> 與其等到協調者恢復運作再決定,不如直接終止交易 若以上都不是, 則所有站台都有 <READY, T> 要等到協調者恢復運作才能確定 01:16 /257

處理交易的站台發生錯誤 若最後狀態是 <COMMIT, T>,則此交易必須重作。 若最後狀態是 <ABORT, T>,則此交易必須回復。 若最後狀態是 <READY, T>,則必須詢問協調者。 如果回覆是 <COMMIT, T>,則此交易必須重作。 如果回覆是<ABORT, T>,則此交易必須回復。 萬一協調者也出問題而沒有回應 則詢問附近的站台目前交易 T 的狀況,再決定回復或重作。 如果紀錄表中沒有任何關於交易 T 的紀錄 表示此站台在回應協調者 <PREPARE, T> 訊息之前就發生錯誤,所以協調者必定已經終止交易 T,此交易必須回復。 01:16 /257

第十九章 分散式協調 事件順序 互斥 推選演算法 不可分割交易 並行控制 上鎖 樂觀並行控制 時間戳記 死結處理 摘要 01:16 /257

並行控制 並行控制演算法是為了使多個交易可以同時進行,並且控制到同時執行的各個交易間不會互相干擾 並行控制演算法主要有三種 上鎖 樂觀並行控制 時間戳記 01:16 /257

上鎖 上鎖機制是將正在被使用的資源上鎖,其他行程想要使用被鎖住的資源,則必須等到正在使用的行程釋放該資源後才能使用它 雙相上鎖協定可在單處理器系統中針對單一行程處理上鎖問題外,也可以用在分散式系統中 只能序列化,無法解決死結 雙相上鎖協定的機制分為兩階段 第一階段,行程只能要求將資源上鎖 第二階段,此時行程只能釋放資源 01:16 /257

雙相上鎖示意圖 上升階段 下降階段 時間 上鎖資源數目 01:16 /257

樂觀並行控制 樂觀並行控制讓各個行程想要使用資源時就去使用,若發生任何問題,只要事後再處理就好 樂觀並行控制解決資源發生衝突其中的一個做法是持續不斷地追蹤檔案的使用狀況 樂觀並行控制最大的好處是不會發生死結 樂觀並行控制的缺點是發生衝突時,會使得有些交易必須撤回 01:16 /257

時間戳記 時間戳記的方法就是先將交易的發生順序定義出來 時間戳記的方法有不會發生死結的好處 讀取或寫入檔案都按照這個順序,就表示一切都沒問題 發生不按照順序的狀況,則要等待或終止交易 時間戳記的方法有不會發生死結的好處 時間戳記因為實作起來相當複雜,所以還需要進一步改進其實作的方法,如加上硬體配合 01:16 /257

時間戳記的各種狀況 tr(A) t w(A) t(B) (a)允許寫檔 (e)允許讀檔 tw(A) ttemp(D) (b)允許寫檔 (f)交易B等待 t r(C) t w(C) (c)終止交易B (g)終止交易B t temp(C) (d)終止交易B (h)終止交易B 已交付 嘗試 B 嘗試寫檔 B 嘗試讀檔 01:16 /257

第十九章 分散式協調 事件順序 互斥 推選演算法 不可分割交易 並行控制 死結處理 死結預防 死結偵測 摘要 01:16 /257

死結處理 分散式系統有以下三種最常被拿來解決死結問題的方法 死結預防 死結偵測 死結避免 死結避免的方法因為必須先知道所有行程可能使用的資源,因此在單處理器系統或分散式系統都是少被採用 01:16 /257

死結預防 (1) 死結預防的方法是小心地設計系統,讓系統連造成死結的機會都沒有,以達到預防死結的目的 分散式系統中,最常使用時間戳記來預防死結,而利用時間戳記的死結預防方法有兩種 等 - 撤 (wait-die) 搶 - 等 (wound-wait) 01:16 /257

死結預防 (2) 第一種方法 : 等 - 撤 此方法是建立在行程不可搶先的前提下 舊行程要求使用一個資源,而此資源被另一個較新的行程使用,此時舊行程必須等待 一個新行程要求的資源被一個舊行程佔用,則新行程將會被撤回 舊行程 10 新行程 20 要求資源 擁有資源 (a) (b) 等待 撤回 繼續 01:16 /257

死結預防 (3) 第二種方法 : 搶 - 等 此方法是利用行程搶先的做法 一個舊行程要求使用另一個被較新行程佔用的資源,此時就允許舊行程搶先新行程的資源,而新行程就會被撤回 一個新行程要求的資源被一個舊行程佔用,則新行程將會等待 舊行程 10 新行程 20 要求資源 擁有資源 (a) (b) 搶先 等待 撤回 繼續 01:16 /257

死結偵測 (1) 死結偵測演算法是不斷偵測系統中是否發生死結,如果發生,則會刪除一個或數個佔用資源的行程,以解決死結的狀況 等候圖 圓圈表示行程的編號 箭頭表示行程在等待所指圓圈內編號的行程所佔有的資源 死結偵測是利用等候圖來判斷,若等候圖內有循環出現時,則表示有死結發生 01:16 /257

死結偵測 (2) 分散式系統有二種方法將等候圖組合起來,以分析死結的狀況 集中式死結偵測 分散式死結偵測 01:16 /257

死結偵測 (3) 集中式死結偵測 但可能會發生假循環的現象,讓協調者誤會因發生死結,而作一些不必要的動作 選擇一個行程當死結偵測協調者,負責組合所有的部分等候圖,如果發現有循環發生,則會中止一個或數個行程來解除死結 但可能會發生假循環的現象,讓協調者誤會因發生死結,而作一些不必要的動作 利用時間戳記的方法可以改善假循環的現象 01:16 /257

假循環的資源等候圖 1 2 3 4 (a) A機器電腦等候圖 (b) B機器電腦等候圖 (c) 全區全域等候圖 (d) 假循環等候圖 01:16 /257

死結偵測 (4) 分散式死結偵測 為了判斷分散式系統是否發生死結,必須多加入一個虛擬的行程 P,加入的原則如下 分散式死結偵測方法則不使用死結偵測協調者,而是讓系統中的各個電腦偵測檢查是否在全域等候圖中有循環發生 為了判斷分散式系統是否發生死結,必須多加入一個虛擬的行程 P,加入的原則如下 如果電腦本身的等候圖中有行程正在等待其他電腦的行程,則加入一個虛擬的行程 P,並加入一個箭頭指向行程 P 如果電腦本身的等候圖中的行程掌握某資源,使得其他電腦等候圖的行程等待,也加入一個虛擬行程 P,並加個箭頭從行程 P 指到該資源 01:16 /257

分散式死結偵錯的資源等候圖 P1 P2 P2 P4 P2 P4 P1 P3 P3 P3 A 電腦等候圖 B 電腦等候圖 (c) A、B 電腦的全域等候圖 (a) A、B 電腦的局部等候圖 P1 P2 P2 P4 P’ P’ P3 P3 A 電腦等候圖 B 電腦等候圖 (b) A、B 電腦的局部等候圖 01:16 /257

摘要 (1) 分散式系統中,要判斷兩個事件的先後順序較為困難,所以利用「先發生於」的關係來判斷 分散式環境中的互斥,有三種處理的方法 集中式演算法 分散式互斥演算法 令牌環演算法 本意介紹兩個選擇新協調者的方法 強勢演算法 環狀演算法 01:16 /257

摘要 (2) 本章詳細介紹不可分割交易常用的兩段式交付協定,以及三種並行控制的方法 上鎖 樂觀並行控制 時間戳記 01:16 /257

摘要 (3) 本章主要介紹死結預防和死結偵測兩種方法 死結預防有兩種演算法 死結偵測有兩種方法 等 - 撤 搶 - 等 集中式死結偵測 分散式死結偵測 01:16 /257

分散式系統 第六單元 分散式系統 第二十章 分散式系統實例

第二十章 分散式系統實例 Java RMI CORBA 網路檔案系統 摘要 RMI架構 RMI伺服端程式設計 RMI客戶端程式設計 01:16 /257

Java RMI Java 在 JDK1.1 之後提供了 RMI 的機制,將複雜的資料結構傳遞問題交由 RMI 機制處理。 與 RPC 的基本概念相同,透過網路執行遠端伺服器上的程式,並取回執行結果。 RMI 強調物件導向,可以將一個物件序列化,也就是將物件轉換成一連串的位元組而當成參數傳遞。 RMI 程式必須用 Java 撰寫,較缺乏彈性。 01:16 /257

RMI 架構 RMI 採用三層式架構。 stub/skeleton 層 遠端參考層 傳輸層 傳輸層 skeleton stub 應用程式 客戶端 伺服端 遠端參考層 01:16 /257

RMI 呼叫遠端物件流程圖 以客戶端呼叫遠端物件的 Check_out(object, object) 函式為例。 客戶端 伺服端遠端物件 Check_out(object N,object M) { //相關程式碼 return val; } stub skelketon 布林回傳值 A、B參數、Check_out() 名稱及相關資訊 整碼 反整碼 flag = Server.Check_out(A,B) 01:16 /257

RMI 伺服端程式設計 (1) 步驟一:定義遠端物件的服務介面,透過這個介面,客戶端才能呼叫遠端物件的函式。 必須繼承自 java.rmi.Remote 介面。 必須定義遠端物件的方法,並且宣告會發出 RemoteException 的例外事件,用來截取可能發生的例外事件。 以 javac 指令將服務介面編譯成位元組碼。 01:16 /257

RMI 伺服端程式設計 (2) 步驟二:實作遠端介面,也就是撰寫遠端物件函式的程式碼。 必須宣告欲實作的介面。 必須繼承自 UnicastRemoteObject 類別。 必須宣告 RemoteException 例外事件。 將遠端物件編譯成位元組碼。 步驟三:以 rmic 指令產生 stub 和 skeleton 程式。 步驟四:將 RMI 註冊處啟動,並啟動遠端物件向其註冊。 步驟五:啟動伺服器程式。 01:16 /257

RMI 客戶端程式設計 步驟一:呼叫 System.setSecurityManager() 作安全上的限制,避免客戶端的環境被惡意破壞。 步驟三:呼叫遠端物件的函式。 01:16 /257

第二十章 分散式系統實例 Java RMI CORBA CORBA架構 ORB簡介 物件服務 網路檔案系統 摘要 01:16 /257

CORBA CORBA 是 OMG(Object Management Group)組織所提出的物件導向分散式工作環境標準。 基於物件導向的觀念與使用,加強了軟體的可攜性、可重用性、以及可交互運作性。 許多廠商推出各種符合 CORBA 標準的產品,可以用來輕易地發展分散式程式。 01:16 /257

CORBA 架構 CORBA 的基本定義裡,介面用來定義物件的型態;伺服端為一個或多個介面的物件實作;客戶端可以透過 ORB 呼叫伺服端物件所提供的函式。CORBA 的架構中包含 ORB 介面 介面定義語言 客戶端 IDL stubs 靜態 IDL skeletons 動態請求介面 介面保存庫 動態 skeleton 介面 實作保存庫 物件調適器 01:16 /257

CORBA 架構示意圖 ORB 核心(IIOP) 客戶端 伺服端物件實作 實作 保存庫 動態請求介面DII 靜態 IDL stub ORB skeleton 動態 skeleton 請求, DSI 物件 調適器 介面 保存庫 ORB 核心(IIOP) 01:16 /257

ORB 簡介 ORB 可以視為一種物件匯流排,讓客戶端的應用程式傳送要求給本地端或遠端的物件,並且接收執行後所傳回的結果。 客戶端不需要知道應用程式與這些物件之間的溝通協調方式。 讓物件可以在執行期間才尋找所要呼叫的物件,並且呼叫物件提供的服務。 具有能靜態與動態地呼叫遠端物件、高階程式語言互通性、動態查詢系統資訊、本地端/遠端的通透性 、內建安全機制交易與程式擴充性高等優點。 01:16 /257

ORB 架構示意圖 客戶端 stubs 伺服端 skeletons CORBA IIOP ORB C C++ smalltalk Ada COBOL Java IDL 客戶端 stubs 伺服端 skeletons CORBA IIOP ORB 01:16 /257

物件服務 OMG 於 1995 年提出 COSS 規格,定義了以下的物件服務支援物件的使用與實作。 名稱服務 並行控制服務 事件服務 永久性物件服務 生命週期服務 外部服務 交易服務 01:16 /257

名稱服務 名稱服務提供了將名稱連結到一個物件的能力,提供一個標準化介面,讓客戶端可以依照物件名稱而找到該物件的位置。 目的都是提供客戶端方便快速地連接一個伺服端物件程式。 ORB 仰賴名稱服務機制將名稱對應到物件,並以這個物件找到其物件實作所在的位置。 可以提供非物件導向設計的客戶端透過 ORB 要求一個物件實作。 01:16 /257

名稱服務機制的流程 4. 利用物件參考找到物件實作 名稱伺服器 3. 回應物件位置 物件實作 客戶端 < name1 , obj_ref1> < name2 , obj_ref2> < name3 , obj_ref3> … 客戶端 2. resolve(name) 3. 回應物件位置 4. 利用物件參考找到物件實作 1. bind(name , obj_reference) 物件實作 01:16 /257

第二十章 分散式系統實例 Java RMI CORBA 網路檔案系統 摘要 網路檔案系統簡介 網路檔案系統實作 網路檔案系統協定 01:16 /257

網路檔案系統簡介 網路檔案系統是一個分散式檔案系統。 可以讓執行在 LAN 或 WAN 環境下的電腦共享一個檔案系統。 網路檔案系統伺服器可以分享一個或多個目錄給客戶端存取,被分享的目錄會記錄在 /ext/exports 的檔案中。 客戶端使用網路檔案系統伺服器提供的目錄及檔案前,必須先掛載這些目錄,之後這些目錄將變成客戶端目錄結構的一部分。 可以節省下許多的硬體花費。 01:16 /257

網路檔案系統優點 具備存取通透性 具備地點通透性 具備錯誤通透性 具備效能通透性 具備遷移通透性(部分) 在本地端存取遠端檔案就像是使用存取本地端的系統呼叫 具備地點通透性 客戶端使用的檔案路徑不會顯示出檔案伺服器的實際位置 具備錯誤通透性 不管雙方發生任何錯誤,都不會影響對方的正常運作 具備效能通透性 伺服器負擔大量變化時,不至太大影響客戶端的檔案操作 具備遷移通透性(部分) 伺服端檔案系統 位址更動時,客戶端不用更改設定,還是可以使用該檔案系統 01:16 /257

網路檔案系統缺點 不具備複製通透性 不具備同步通透性 擴充性不佳 複製通透性: 雖然客戶端看起來只有一份檔案,但是實際上檔案系統可能將檔案複製多份放在不同位置 不具備同步通透性 同步通透性: 檔案系統可以自動處理一個檔案同時被多個客戶端使用並修改 擴充性不佳 由於缺乏複製通透性,做資源調整時,會受到限制;檔案分享的好處將會被該伺服器所能提供的最大負載所限制 01:16 /257

掛載伺服器的目錄 /root /nfs1 /dir1 file1.txt /nfs2 /dir2 file2.txt /usr /Bill /Jack 掛載 伺服器 B 伺服器 A 客戶端 01:16 /257

網路檔案系統實作 (1) 網路檔案系統採用多層級的架構來實作。 客戶端或伺服端的模組會載入到 UNIX 核心中執行。 客戶端是以使用者層級的行程來使用伺服器檔案。 UNIX 檔案系統介面主要負責檔案的實際開啟、讀取、寫入、和關閉的動作。 虛擬檔案系統架於檔案系統之上,作用是將本地端檔案的處理與遠端檔案的處理分開,並且能以下層不同的檔案系統進行本地端檔案處理的操作。 01:16 /257

網路檔案系統實作 (2) 網路檔案系統包含了以下幾個機制。 網路檔案系統模組整合到系統核心 存取控制及認證機制 路徑名稱轉譯 伺服端快取 客戶端快取 01:16 /257

網路檔案系統軟體架構 使用者行程 系統呼叫 UNIX核心 本地端 遠端 UNIX 檔案系統 NFS 客戶端 磁碟 伺服端 網路 NFS 協定 虛擬檔案系統(VFS) 本地端 遠端 UNIX 檔案系統 NFS 客戶端 磁碟 伺服端 網路 NFS 協定 01:16 /257

網路檔案系統協定 網路檔案系統的客戶端和伺服端模組溝通的機制都是使用遠端程序呼叫。 在客戶端已經掛載遠端目錄後才能使用。 提供對目錄作建立、刪除等操作,開啟、讀取和寫入檔案與存取檔案屬性等功能。 使用 XDR 的編碼架構,而可以在不同平台間傳送 RPC 的訊息。 採用 UDP 作為傳輸層的協定,並封裝在 IP 的封包內,客戶端與伺服端不需要一直維持連線狀態。 使用 TCP 能夠保證傳輸訊息的正確性,但是客戶端與伺服端會一直保持在連線的狀態。 01:16 /257

網路檔案系統協定架構 NFS XDR RPC UDP/TCP IP 01:16 /257

摘要 (1) Java RMI 可以透過網路去執行遠端伺服器上的程式,並取回執行結果。 CORBA 是功能更強大、更複雜的 RPC 機制。 可以將一個物件序列化而當成參數傳遞。 程式必須使用 Java 撰寫,比較缺乏彈性。 CORBA 是功能更強大、更複雜的 RPC 機制。 可以在執行期間才尋找要呼叫的物件,並且使用物件所提供的服務。 名稱服務扮演一個相當重要的角色, 可以利用名稱對應到物件位置而找到物件實作。 01:16 /257

摘要 (2) 網路檔案系統可以讓執行在 LAN 或 WAN 環境下的電腦共享檔案系統。 網路檔案系統伺服器可以分享一個或多個目錄給客戶端。 客戶端利用掛載的方式使用遠端的檔案系統。 包含在核心執行、使用快取機制、採用不具狀態服務、和擁有認證機制等特性。 有不具備檔案複製通透性、無法處理同步問題、和擴充性不佳等缺點。 01:16 /257