分布式操作系统笔记

来源:互联网 发布:空调遥控器软件 编辑:程序博客网 时间:2024/05/16 13:54

操作系统做什么?--依hello.c为例

1.用户告诉操作系统执行hello程序

2.操作系统找到该程序,检查其类型

3.检查程序首部,找出正文和数据的地址

4.文件系统找到第一个磁盘块

5.父进程需要创建一个新的子进程,执行hello程序

6.操作系统需要将执行文件映射到进程结构

7.操作系统设置CPU上下文环境,并跳到程序开始处

8.程序的第一条指令执行,失败,缺页中断发生

9.操作系统分配一页内存,并将代码从磁盘读入,继续执行

10.更多的缺页中断,读入更多的页面

11.程序执行系统调用,在文件描述符中写一字符串

12.操作系统检查字符串的位置是否正确

13.操作系统找到字符串送给该进程

14.该进程告诉窗口系统它要显示字符串

15.窗口系统确定这是一个合法操作,然后将字符串转换成像素

16.窗口系统将像素写入存储映射区

17.视屏硬件将像素表示转换成一组模拟信号控制显示器

18.显示器发射电子束

19.你在屏幕看到hello world

操作系统的工作:

(1)程序的执行
负责启动每个程序
    以及结束程序的工作
(2)完成与硬件有关的工作
(3)完成与应用无关的工作
易于使用,基本服务,统一性
(4)计算机系统的效率与安全问题

分布式os与单机os的区别:

1.消息传递,无共享存储器

2.决策,应按分散式决策,采用分布式算法

3.动态平衡负载

4.多台处理机管控,但主机是浮动的

5.重构,降级处理,容错能力强

与网络os的区别:

1.分布式逻辑上是一个整体,物理上由内核和核外部分构成,内核一样,核外部分不一样

2.分布式os根据任务和系统状态自动为用户分配资源,网络os要显示访问

3.分布式os将系统看为一个整体

分布式os要处理的问题:

1.资源多重性问题:多副本一致性,部分站点失效

2.资源分散问题:控制和同步机制

3.异构性问题:翻译,转换,命名等问题

4.基本调度单位问题:同一任务在多个站点上并发,同一站点并发执行多个任务

5.与硬件系统构成的问题:同构系统,任务间通信,远程任务控制;异构系统,各站点有自己不同的硬件构成,独立的处理

6.与耦合方式的问题:紧耦合,冲突竞争问题(共享存储器);松耦合,机间通信(线路问题)

7.探测各站点停机的能力:系统重构,降级处理,错误处理等能力

分布式进程管理:(揭示进程状态,控制,演变,协同)

互斥:进程协同基础

同步算法和同步机制:资源互斥,不应有饥饿,死锁,无集中控制

分布式算法特点:

1.所有站点都有信息

2.每个站点依据本站点做决策

3.所有站点对决策负责

4.所有站点对决策有共享

5.算法是强健的

困难:

1.系统是由自治的多站点构成,自己做决策

2.没有公共时钟,不能确定事件发生顺序

定序办法:

1.定义法:

HB关系(happend before)a->b表示a先于b发生

1》同一进程,a发生的时间早

2》a发送的消息是b接收的消息

3》a先于b发生,b先于c发生,则a->c

2.系统逻辑时钟法:(时间戳)

事件a先于事件b发生,a的时间戳小,a=>b

时间戳映射算法:

Lamport's Alogrithm:1.进程提出包含时间戳和编号的request;2.每个进程都有一个请求队列(验证该算法的正确性)

改进算法(Ricart&Agrawal's Algorithm):1.pi发送n-1个request;2.pj如果在临界段或正在请求进入且提出早,则推迟回复reply;3.pi收到n-1个reply则进入

3.令牌传递方法:

请求驱动式令牌传递方法:(1.站点故障怎么办?2.Token丢失怎么办?)

适合于非环结构的Token传递:(3.Pi发出request长久未获得Token怎么办?4.若引入时戳,怎么优化?)

适合于非环结构的Token传递:(请求驱动式)


通信机制:(层次化)

1.分布式,以消息传递为基础

2.远程过程调用,RPC,同步--------(调用者如何知道被调用者位于哪个站点?)

--“会话层”功能

十步实现RPC,stub实现底层细节

值传递,异构机之间有格式问题

不能广播,不能大数据,但格式严谨


资源管理:(多种方式并存)

1.单资源多管理者:集中式,分割式

2.多资源多管理者:集中式(一类由一个管理),集中-分布式,完全分布式

投标算法:

步骤:1.申请者招标,2.资源管理RM投标,3.申请者选择,4.调用,5.释放

指标数:1.RM中等待队列的长度,2.两者之间的距离

0 0
原创粉丝点击