(绝对名字)和(相对名字)
(重复)、(递归)
(Unix语义)、(对话语义)、(事物处理语义)、(不可改变的共享文件语义)
分布式文件系统中的共享语义,主要包括以下几种:
(互斥)、(不可剥夺)、(占有并等待)、(循环等待)
(预防死锁)、(避免死锁)、(忽略死锁)、(检测死锁和从死锁中恢复)
(原子性)、(一致性)、(孤立性)、(持久性)
3(n-1),2(n-1)
在Ricart-Agrawala算法中,每次资源的使用都会产生 2n-2 条报文,其中 N 是系统中进程的数量。具体来说,进程i发出一个请求会产生 n-1 条请求报文,接收到来自其他n-1个进程的答复会产生 N-1 条答复报文。所以总共需要2(n-1)条报文完成一次互斥。
时间戳算法中,完成一次互斥实际上需要3*(N-1)个报文。具体来说,这包括:
2n(n-1)
完成一次同步表决至少需要2N(N-1)个报文,其中每个控制者需要向所有其他N-1个控制者发送投票报文,每个控制者完成本地副本更新后需要向所有其他N-1个控制者发送END报文。
(丢失报文)、(孤儿报文)
a)丢失报文。进程Pi的检查点状态显示它给进程Pj发送了报文m,但是进程Pj并没有关于该报文的纪录。
b)孤儿报文。进程Pj的检查点状态显示它收到了一个来自进程Pi的报文m,但是进程Pi的状态显示它没有向进程Pj发送过报文m。
(全映像目录)、(有限目录)、(链式目录)
目录协议有三种主要类型:全映像目录、有限目录和链式目录 。
全映像目录的每个目录项保持N个指针,这里N是系统中处理器的个数。有限目录和全映像目录的不同之处在于,有限目录的每个目录项具有固定数量的指针,与系统中处理机数量无关。链式目录与全映像目录相似,只是它将目录分布于各缓存器。
(替换法)、(位置交换法)
替换法:在这种加密方法中,每个字符都被另一个字符所代替。这种加密方法称为恺撒密码,因为它最初被恺撒使用。
位置交换法:在这种方法中,字符将保持它们在原文中的格式,但是它们的位置将被改变来创建密文。
(同步检查点)、(异步检查点)
在同步检查点算法中,各相关的进程协调它们的局部检查点的建立行为,以保证所有的最近的检查点都是一致的。在同步检查点中,只有最近的一致的检查点集合才需要被维护和保存。
异步检查点算法中程序中检查点状态的保存过程较为简单,程序中各进程周期性地相互独立地保存自己的运行状态,程序各进程之间不需要相互协商。
(抢先方式(又称为进程迁移))、(非抢先方式(又称为进程放置))
抢先方式和非抢先方式,非抢先方式又称为进程放置,抢先方式又称为进程迁移。进程放置是为进程选择一个执行节点,在此节点上启动此进程。进程迁移是把进程转移到一个较好的执行节点继续执行。
在公开密钥的加密方法中,如果A想要向B发送保密数据,应该选择B的公钥进行加密。
这与公开密钥加密的工作原理有关。公开密钥(Public Key)加密算法就是一种非对称加密算法,每个用户都有一对密钥,即公开密钥和私人密钥(Private Key)。
假设A需要向B发送加密信息,工作过程如下:
当然,如果B向A回复的话,则B需要用A的公钥加密数据。
通过这种方式,公开密钥的加密方法能有效保障电子信息的安全性,它解决了如何在不安全的网络中安全地传输密钥的问题,并能在一定程度上防止泄密和篡改数据。
分布式计算系统是属于多指令流多数据流(MIMD)并行结构。
MIMD结构指的是多个处理器可以同时执行多个不同的指令序列(即指令流)并且这些指令可以在不同的数据集(即数据流)上操作。MIMD结构的并行计算机系统可以在任何给定的时间内运行多个不同的程序,并且每个程序都在属于它自己的数据集上进行操作。
分布式计算系统是这样的一种系统:其中的每个计算节点都有自己的内存空间,并且彼此通过网络进行通讯。这跟MIMD并行结构高度匹配。因为每个分布式计算的节点可以运行自己的程序(即指令流)并操作自己的数据(即数据流)。当然,为了完成同一个大的任务,这些节点之间可能需要进行通信,共享某些数据或者同步进度。
这种并行计算模型具有很高的并行度和可扩展性,可以大规模并行地处理数据和计算任务,尤其适合于大规模数据处理和计算密集型任务。
在使用公开密钥加密方法实现数字签名时,A向B发送签名报文**,A应该使用自己的保密密钥进行签名。**
这是因为数字签名的目的主要有两个:一是验证消息的完整性,确认消息在传输过程中没有被篡改;二是确认消息的来源,确保消息确实是所声称的发送者发送的。
在这种情况下,A使用自己的私钥对数据进行加密生成签名,然后将原始数据和签名一起发送给B。由于私钥是唯一的,并且只有A知道,所以这个签名也是唯一对应于A的。当B收到数据和签名时,B可以使用A的公钥对签名进行解密,如果解密后的数据与收到的原始数据一致,那么就证明数据是完整的,且确实是A发送的。这就实现了数字签名的目的
所以,简单来说,A应该选择自己的私钥对数据进行签名,以保证数据的完整性和来源的准确性。
A、两阶段封锁的优点之一是不会出现层叠回退的问题
B、层叠回退只会出现在锁的收缩阶段
C、层叠回退只会出现在锁的增长阶段
D、层叠回退在锁的增长阶段和锁的收缩阶段都可能出现
答案:B
解析:
两阶段封锁: 两阶段封锁可以保证一致性,实现正确的并发控制。两阶段封锁的主要内容如下:访问一个对象前先封锁它,为此必须先获得锁;对所有要访问的对象封锁前不对任何对象进行解锁;不要封锁已经被封锁的对象,为此不同的事务处理不可同时获得冲突的锁;事务处理执行结束前,为每个被它封锁的对象解锁;一旦一个事务处理释放一个锁,该事务处理就不能再获得另外的锁。每个事务处理锁的过程可分成两个阶段:锁的增长阶段和锁的收缩阶段。增长阶段中事务处理获得所有的锁而不释放任何锁;收缩阶段释放所有的锁而不取得另外的锁。
在锁的增长阶段会出现死锁的问题。发生死锁是因为在加锁机制中,锁是一种竞争的资源。
在锁的收缩阶段容易出现层叠回退(cascaded aborts)的问题。层叠回退的问题发生在一个事务处理操作失败后回退,在回退前由于该进程已经释放了某些数据对象上的锁,所以其他事务处理可能已经读取了被这个事务处理修改过的数据对象,这些事务处理也必须回退。
A、NR = 4, NW = 5
B、NR = 1, NW = 5
C、NR = 4, NW = 2
D、NR = 3, NW = 3
答案:B
解析:
设具有某文件副本的服务员数目为N。要读取一个文件,必须要得到NR(读定额)个服务员同意。要修改一个文件,需要得到NW(写定额)个服务员同意。NR和NW应满足:NR+NW>N。只有当通过询问知道了有足够多的服务员愿意参加并同意之后,才能进行某种操作。
一般说来,NR取值小一些可使读操作易于得到满足,但是写操作的执行就难一些,反之亦然。NR,NW的最佳选择取决于读、写操作哪个更频繁。
满足以下2个条件使得某一系列读操作对一个文件最有利:
NR(读定额)和NW(写定额)是一个分布式系统中两个关键参数。NR是指一个读操作需要读取的最小副本数,而NW是指为了更新一个对象,必须要更新的副本数。
在分布式系统中,为了提高读性能,你希望尽可能减小读定额 (NR),这样在读取时就可以更快得到结果,因为你不需要从所有副本中读取数据。所以,当NR=1时,读取操作的性能最好,因为你只需要从一份副本中读取即可。
同时,为了保持数据的一致性,你希望在写入时能更新所有的副本,即NW应等于副本的总数,这样才能保证以后从任何一个副本读取到的数据都是最新的。
因此,对于读操作最有利的是NR=1,NW=5这个选项,即B选项。
A、“关闭时写”适合对话语义,“立即写”适合UNIX语义
B、“关闭时写”适合UNIX语义,“立即写”适合对话语义
C、“关闭时写”既适合UNIX语义,又适合对话语义
D、“立即写”既适合UNIX语义,又适合对话语义
答案:A
解析:
“关闭时写”适合“对话语义”; “立即写”方法比较适合UNIX语义。
分布式文件系统中的两项关键概念是更新策略(更新是立即发生还是在关闭时发生)和共享语义(文件的变更如何在不同的客户端间可见)。
“关闭时写”是指文件的更新只在关闭文件时被写入磁盘, 而在文件打开的期间,所有的修改都只在内存中。这个策略适合于所谓的“对话语义”。对话语义下,在一个进程打开文件并一直到关闭文件的期间,无论其他进程对该文件做了怎样的修改,这个进程视图下的文件内容始终不变。 因此,在这种语义下,进行“关闭时写”的策略十分合适。
相反,“立即写”是指文件的任何更新都立即写入磁盘,这种策略适应于所谓的“UNIX语义”。在UNIX语义下,一个进程所做的修改立即对任何其他查看这个文件的进程可见,因此,“立即写”的策略在这种语义下最为合适。
A、对于粗粒度程序而言,性能最优的聚类在线性聚类中
B、对于粗粒度程序而言,性能最优的聚类在非线性聚类中
C、对于细粒度程序而言,性能最优的聚类在线性聚类中
D、对于细粒度程序而言,性能最优的聚类在非线性聚类中
答案:A
解析:
当表示一个应用程序的给定的有向无环图DAG(任务优先图)是粗粒度时,也就是它的一个链接上的通信代价小于分叉或者合并操作连接的相邻节点的计算代价,任何非线性聚类可以被转换成具有更少或相等执行时间的线性聚类。注意,上面的结论暗示了一个粗粒度程序的线性聚类性能优于任何非线性聚类。 然而,对细粒度程序而言,可能存在也可能不存在一个非线性聚类优于线性聚类。
A、分层地址是的路由选择容易,但是不容易创建新的地址;
B、平面地址是的路由选择容易,但是不容易创建新的地址;
C、分层地址容易支持进程迁移,但是不容易创建新的地址;
D、平面地址容易支持进程迁移,但是不容易创建新的地址;
答案:D
解析:
分层地址由若干段组成,这些段反映了网络的层次结构。
平面地址与物理位置或任何其他层次没有任何关系,可以想象平面地址的分配可以使用一个单一的全系统范围的计数器进行,任何时候需要一个新地址时读此计数器并且将计数器加1,这样,地址是唯一的,但和位置无关。
③两种地址结构的优缺点:
a)分层地址的优点:分层地址使得路由选择容易;容易创建新的地址,即可在每一个网络内单独决定主机号码;自动给出高位号码,即在主机内不用给出它所属的网络号,正如在城市内拨电话时不必拨国家和地区号码一样。
b)分层地址缺点:当一个进程迁移到另一个机器上时不能使用原来的地址。不容易支持进程迁移
c)平面地址的优点:当进程迁移时仍可使用原来的地址,容易支持进程迁移。
d)平面地址的缺点:路由选择比较困难,因为每个路由选择节点必须保持一个能对所有可能的地址进行变换的路由选择表,地址的赋值也比较复杂,必须确信每个地址是唯一的。不容易创建新的地址
A、实现分布式事务处理的全局恢复
B、实现原子事物处理的孤立性
C、实现原子事物处理的一致性
D、实现原子事物处理的局部恢复
答案:A
解析:
两阶段提交协议(2PC) 是一个分布式提交协议,分布式提交用于保证一个进程组中的每一个成员要么都执行某一个操作,要么都不执行这个操作。分布式提交用于分布式事务处理的全局恢复。
A、该有向图中所有目录节点不仅有输入的弧,而且有输出的弧,而叶节点只有输入的弧;
B、该有向图只有一个根节点
C、该有向图中某个节点可能有多个输入的弧
D、该有向图中任何节点只能有有一个输入的弧,但是可以有多个输出的弧
答案:C
解析:
名字空间的表示:用一个带标号的有向图来表示,这个图中有两类节点,一类是叶节点(leaf node),另一类是目录节点(directory node)。一个叶节点代表一个命名的实体,叶节点没有输出弧(outgoing edge),只有输入弧(incoming edge)。每个节点有一个 标识符,每个弧有个名字。
叶节点:一般用来存放一个实体所表示的信息,例如这些信息可以包含这个实体的地址,顾客使用这个地址可以访问到这个实体;还例如这些信息还可以包含这个实体的状态,如果一个叶节点代表一个文件,它不仅包含整个文件,还包含这个文件的状态。
目录节点:每个目录节点保存了一个表,表中的一项代表了一条输出弧,每条输出弧由(弧标号、节点标识符)表示,这样的一个表被称为目录表(directory table)。
根节点:有一个特殊的节点,该节点只有输出弧而没有输入弧,该节点被称为命名图中的根节点(root node),或简称为根。一个命名图中可能会有多个根 。
举例:n5节点有多个输入的弧
A、原子性和一致性
B、原子性和孤立性
C、原子性和持久性
D、孤立性和持久性
答案:B
原子性(Atomicity):原子性是指事务应该被视为一个不可分割的最小工作单元,事务中的所有操作要么全部提交成功,要么全都不做。例如,如果一个事务包含将一个银行账户的资金转移到另一个账户的两个操作,那么这两个操作应该同时成功或同时失败。如果中途出现故障,恢复技术应该能撤销已经进行的操作,保证数据一致性,这就是实现原子性。
持久性(Durability):持久性是指一旦事务提交,则其结果永久保存在数据库中。即使出现系统崩溃、电源中断等故障,恢复技术也能从日志(记录系统的运行情况)中重新构造出提交事务的修改操作,确保数据不会丢失,这就实现了持久性。
正确,书里原话
正确,书里原话,直接背
答:动态调度算法有六个策略:启动策略、转移策略、选择策略、收益性策略、定位策略和信息策略。
①启动策略的责任是决定谁应该激活负载平衡活动。
②转移策略决定一个节点是否在合适的状态参与负载转移。
③选择策略选择最适合转移最能起平衡作用的任务,并发送给合适的目标处理器。
④收益性策略量化系统中负载不平衡程度,并且作为系统负载平衡潜在受益的估计,评估系统负载平衡是否是有收益的。
⑤定位策略是寻找合适的节点共享负载。
⑥信息策略决定收集系统中其他节点状态信息的时机、收集的方法和收集的信息。
答:一个结K是一个节点集合,对于K中的任何节点a,a能到K中的所有节点,并且只能到达K中的节点。
满足循环的节点不一定是结,因为集合中的某个节点可能有不属于集合的后继结点。尽管循环环路中的节点可以互相到达,但可能存在环路中的某个节点可以到达环路之外的其他节点。
答:互斥算法的主要目标是保证在任一个时刻只能有一个进程访问临界区。
并发控制的目的是在有多个用户的情况下允许每个用户像单个用户那样访问共享资源,多个用户同时访问时互相不干扰。
透明性:事物本来存在某种属性,但是这种属性从某种角度上来看是不可见的,称这种特性为透明性。
分布计算系统的透明性:用户或程序员看不见网络的存在。这样从用户或程序员的角度看来,网络中的全部机器表现为一个,用户或程序员看不到机器的边界和网络本身。用户不必知道数据放在什么地方以及进程在何处执行。
访问控制:像多用户单机系统那样,规定什么人可以访问系统的什么数据,得到何种服务,并对用户进行身份鉴别,对他们的访问权限加以限制(授权)。
就是E和D可以互换:
E(D§)=P, 当然同时还有D(E§)=P
为了达到合作,各个进程在执行的过程中必须存在若干点,超过这些点时,一个进程在另一个进程执行完某一活动前不能继续执行,这些点称为这两个进程之间的同步点。
同步机构的目的是保证所有相互干扰的活动成为有序的,使得该操作保持原子性(要么完成操作,要么干脆不发生)。 使得目标保持一致状态。
正确性标准有两条:
①用户交给系统的每个事务处理最终将被执行,并最终得到完成;
②多个事务处理并发执行的结果和这多个事务处理串行执行的结果相同。
复制控制算法用来保证兼容可串行化,保持数据库多副本间的相互一致性。
当一个服务员在为其顾客请求进行服务的时候,如果它保存其顾客的有关信息时,称该服务员是有状态的(stateful)。相反,如果服务员在为其顾客请求进行服务的时候不保存该顾客的任何信息,就称该服务员是无状态的(stateless)。无状态服务更加坚定
水平方向代表空间,垂直方向代表时间,圆点代表事件,竖线代表进程,进程之间带箭头的线代表报文。
对任何事件a和b,如果a→b,则
C(a)<C(b)
①若a和b是同一进程Pi中的两个时间,并且a→b,则Ci(a)<Ci(b);
②若a代表“一个Pi进程发送一个报文”这个事件,b代表“另一个进程Pj接收这个报文”这个事件,Ci(a)<Cj(b)。
标量逻辑时间更新:
任何一个逻辑时钟LCi基于以下两条规则更新它的逻辑时钟值:
①当发生一个事件(一个外部发送或内部事件)之前,我们更新LCi: LCi:=LCi+d (d>0)
②当收到一个带时间戳的报文(m,LCj,j)时,我们更新LCi: LCi:=max(LCi,LCj)+d (d>0)
向量逻辑时间:
每个进程Pi和一个时间向量LCi[1,…,n]相关联,其中
①向量元素LCi[i]描述了进程Pi的逻辑时间进展情况,即自身的逻辑时间进展情况;
②向量元素LCi[j]表示进程Pi所知的关于进程Pj的逻辑时间进展情况;
③向量LCi[1,…,n]组成进程Pi对于逻辑全局时间的局部视图。
进程Pi发送的每个报文m都被标上LCi的当前值和进程的标号i,从而形成一个三元组(m,LCi,i)。
向量逻辑时间基于以下两条规则更新它的逻辑时钟值:
①当发生一个事件(一个外部发送或内部事件)之前,Pi更新LCi[i]:
LCi[i]:=LCi[i]+d (d>0)
②每个报文捎带发送方在发送时的时钟向量,当收到一个带时间戳的报文(m,LCj,j)时,Pi更新LCi:
LCi[k]:=max(LCi[k],LCj[k]) 1≤k≤n
LCi[i]:= LCi[i]+d (d>0)
标量逻辑时间更新比较简单
向量逻辑时间更新:
L 1 = w 2 ( y ) w 1 ( y ) r 3 ( y ) r 1 ( y ) w 2 ( x ) r 3 ( x ) r 3 ( z ) r 2 ( z ) L 2 = r 3 ( z ) r 3 ( x ) w 2 ( x ) r 2 ( z ) w 1 ( y ) r 3 ( y ) w 2 ( y ) r 1 ( y ) L 3 = r 3 ( z ) w 3 ( y ) w 2 ( x ) r 1 ( y ) r 3 ( y ) r 2 ( z ) r 3 ( x ) w 1 ( y ) L 4 = r 2 ( z ) w 2 ( y ) w 2 ( x ) w 1 ( y ) r 1 ( y ) r 3 ( y ) r 3 ( z ) r 3 ( x ) \begin{aligned}&\mathrm{L_1=w_2(y)w_1(y)r_3(y)r_1(y)w_2(x)r_3(x)r_3(z)r_2(z)}\\&\mathrm{L_2=r_3(z)r_3(x)w_2(x)r_2(z)w_1(y)r_3(y)w_2(y)r_1(y)}\\&\mathrm{L_3=r_3(z)w_3(y)w_2(x)r_1(y)r_3(y)r_2(z)r_3(x)w_1(y)}\\&\mathrm{L_4=r_2(z)w_2(y)w_2(x)w_1(y)r_1(y)r_3(y)r_3(z)r_3(x)}\end{aligned} ?L1?=w2?(y)w1?(y)r3?(y)r1?(y)w2?(x)r3?(x)r3?(z)r2?(z)L2?=r3?(z)r3?(x)w2?(x)r2?(z)w1?(y)r3?(y)w2?(y)r1?(y)L3?=r3?(z)w3?(y)w2?(x)r1?(y)r3?(y)r2?(z)r3?(x)w1?(y)L4?=r2?(z)w2?(y)w2?(x)w1?(y)r1?(y)r3?(y)r3?(z)r3?(x)?
有冲突就有路径,三种情况可以画一条边::ri(x)<wj(x)、wi(x)<rj(x),wi(x)<wj(x)
可以删除的情况是:如果从Ti到Tj有一条路径存在,则可以删除从Ti到Tj的边。
不可串行调度:存在环就是不可串行调度
最高层优先(highest-level-first)方法,也就是说,通过节点的优先级来选择节点。
Ricart-Agrawala互斥算法由以下规则组成 :
①一个进程申请资源时向所有其他进程发出申请报文;
②其它进程收到申请报文后若不在临界区并且自己未申请进入临界区,或者自己虽然发出了申请报文,但自己的报文排在收到的申请报文之后,则回答表示同意;
③申请资源的进程仅在收到所有进程的回答报文后才进入临界区使用资源;
④一个进程使用完资源后,它向所有未给回答的其它申请发送回答报文。
一共要2(n-1)个报文。 在Ricart-Agrawala算法中,每次资源的使用都会产生 2n-2 条报文,其中 N 是系统中进程的数量。具体来说,进程i发出一个请求会产生 n-1 条请求报文,接收到来自其他n-1个进程的答复会产生 N-1 条答复报文。所以总共需要2(n-1)条报文完成一次互斥。
任务优先图是一个有向无环图(DAG ),图中每个链接定义了任务间的优先关系,节点和链接上的标记表示任务的执行时间和任务完成后启动后续任务所需的时间间隔。
节点数值表示任务的执行时间,链接上的数值表示通信时间
一个给定任务聚类的粒度被定义为任务的计算量(Ck)与通信量(lk)的比值。
一个任务优先图可以认为是许多分叉和合并操作的集合,分叉x(合并x)的粒度是:(每个节点计算分叉和和和合并的粒度
g
(
x
)
=
min
?
1
≤
k
≤
n
{
C
k
}
/
max
?
1
≤
k
≤
n
{
l
k
}
g(x)=\min_{1\leq k\leq n}\{C_k\}/\max_{1\leq k\leq n}\{l_k\}
g(x)=1≤k≤nmin?{Ck?}/1≤k≤nmax?{lk?}
分叉与合并操作,该怎么选取节点?根据以下操作进行选取:
给定任务优先图G的粒度是:
g
(
G
)
=
min
?
?
x
∈
G
{
g
(
x
)
}
g(G)=\min_{\forall x\in G}\{g(x)\}
g(G)=?x∈Gmin?{g(x)}
第一步:先计算每个节点的分叉和合并的粒度,然后取其中较小的作为这个节点的粒度
第二步: 取所有节点的粒度的最小值作为该任务优先图的粒度。
问:如何编制转账程序以实现可串行化调度(程序只需要给出读写原语和加锁解锁原语)在此情况下,三个实例是否可能发生死锁,如果有可能发生死锁,死锁是怎么发生的?是否会发生 层叠回退的现象,如果发生层叠回退,层叠回退是怎么发生的?
? 先上锁再解锁。(两个read连在一起读,不会发生冲突)
死锁条件是存在结。一个结K是一个节点集合,对于K中的任何节点a,a能到达K中的所有节点,并且只能到达K中的节点。
看环中是否存在出环的节点,如果有就说明不是死锁。
第一个图中,P4可以到达P1,所以不是死锁,是循环。
第二个图中,P2,P3,P4,P5构成的环不能到达其他顶点,构成了死锁。
在Maekawa互斥算法中,一个进程P在发出申请报文后,不用得到所有其他进程的回答,而只须得到一个进程子集S中的所有进程的回答即可进入临界区。称S是P的请求子集。假设Ri和Rj分别是进程Pi和Pj的请求子集,要求Ri∩Rj≠NULL。
直接看PPT,不知道哪里来的。
考虑一个七个进程的例子,每个进程的请求子集如下:
R1:{P1,P3,P4};
R2:{P2,P4,P5};
R3:{P3,P5,P6};
R4:{P4,P6,P7};
R5:{P5,P7,P1};
R6:{P6,P1,P2};
R7:{P7,P2,P3}。
Maekawa算法的两个极端情况:
①退化为集中式互斥算法。Pc(c∈{1,2,…,n})作为协调者,对所有进程Pi,有:Ri:{Pc},1≤i≤n
②完全分布式的互斥算法。对所有进程Pi,有: Ri:{P1,P2,…,Pn},1≤i≤n ,所有进程都是协调者。
意图表方法与严格两阶段封锁相匹配,事物处理一直独自占有资源、意图表写入坚固存储器中,直到操作完成,不会产生死锁和层叠回退现象;
先写运行记录方法与两阶段封锁相匹配,收缩阶段/事物处理夭折时,容易产生层叠回退现象。
问:A修改文件F后,关闭F前,B,D分别文件F,读取到的内容是什么?关闭文件F后,C,E分别读文件F,读到的内容是什么?
Sprite系统的进程迁移包括以下几个步骤:
① 向目的节点发送一个RPC,确认是否允许迁移该进程。
②当要迁移该进程时,使用标准信号中断该进程的执行。
③传送该进程的“进程状态”,包括各寄存器的内容、用户标识符和小组标识符、信号处理信息、基地节点和该进程标识符。
④传送虚拟地址空间。把所有重写的页送到文件服务器,把对应的交换文件的页表和说明符送到目的节点。
⑤将该进程已打开的文件的说明符和当前工作目录打包并传送。
⑥发送一个RPC结束迁移,允许被迁移的进程在目的节点上恢复执行。
⑦最后,该进程在目的节点上恢复。
如果缓存一致性协议采用的事Berkeley探听缓存写无效协议,按顺序有如下各步操作,写出每步操作之后,各缓存和主存的值,以及各缓存的状态(重写、有效、无效、共享重写或空)
(1)无效。该缓存块不包含有效数据。
(2)有效。该缓存块中数据是有效的。
(3)重写。共享存储器中的数据是不正确的,该缓存块是唯一有效的数据副本。该缓存块是数据的所有者。
(4)共享重写。共享存储器中的数据是不正确的,该缓存块是数据的所有者,其他缓存中有同样的副本。
议,按顺序有如下各步操作,写出每步操作之后,各缓存和主存的值,以及各缓存的状态(重写、有效、无效、共享重写或空)
(1)无效。该缓存块不包含有效数据。
(2)有效。该缓存块中数据是有效的。
(3)重写。共享存储器中的数据是不正确的,该缓存块是唯一有效的数据副本。该缓存块是数据的所有者。
(4)共享重写。共享存储器中的数据是不正确的,该缓存块是数据的所有者,其他缓存中有同样的副本。