2014-04-13 22:11:50 u010929604 阅读数 1973
  • Velero 管理 Kubernetes 备份和还原

    Velero是一个开源的 kubernetes 备份和还原管理工具,相比其它直接操作etcd集群备份的优势在于,它可以备份k8s 的持久卷数据。它主要在生产中应用于灾难还原,集群迁移、数据保护等多种情况。 由于本套课程需要一些其它知识才能学习,因此需要您具备以下知识: 1.  掌握 Kubernetes集群的管理 2.  具备ceph集群的基本知识,理解它的基本概念 该课程主要讲解以下几个方面: 1.  Ceph 集群的块存储、文件系统、对象存储构建。 2.   Ceph块存储、文件系统和kubernetes的集成,并提供动态的pv。 3.  Velero和Ceph 对象存储集成,来完成k8s的各种资源备份、还原管理。

    28 人正在学习 去看看 臧雪园

         大家在学习操作系统的时候,肯定会被各种调度算法搞得焦头烂额,什么处理器调度,什么磁盘引臂调度算法,什么页面置换算法等等,但是我从一开始接触操作系统时,对这些调度算法并不感冒,反而对PV操作比较欠缺,也许是没有好好听课,又或许是没好好看书,总之再一次遭遇PV操作,我觉得不能就这么算了,得给它点color see see!

         首先要搞清楚的问题是:什么是信号量?什么是PV操作?

         信号量与PV操作是由荷兰著名学者E.W.Dijkstra于1965年提出来的,是最早的也是最成功的进程同步机制。这种同步机制包括一种称为信号量类型的变量以及对于此种变量所能进行的两个操作,即P(荷兰语Proberen)操作和V(荷兰语Vehogen)操作。由于荷兰语不够流行,在有些书中将P操作称为Down操作,将V操作称为Up操作。

         关于信号量即P原语V原语的内部结构,就不给大家介绍了,不利于初学者理解,我们的目标是会做操作系统的PV操作题。

         PV操作能够实现对临界区的管理。其具体定义如下:

         P操作P(S):将信号量S减去1,若结果小于0,则把调用P(S)的进程置成等待信号量S的状态。

         V操作V(S):将信号量S加1,若结果不大于0,则释放一个等待信号量S的进程。

         我们规定信号量S的初值为0或者1或者其他整数,它应在系统初始化时确定。

         下面给出一个PV操作的经典例子:生产者—消费者问题

         begin

                   Buffer:integer;

                   SP,SG:semaphore;

                   SP:=1;SG:=0;

         Cobegin

                   Processproducer

                   Begin

                            L1:producea product;

                               P(SP);

                               Buffer:=product;

                               V(SG);

                               Go to L1

                   End;

                   Processconsumer

                   Begin

                            L2:P(SG);

                               Take a product;

                               V(SP);

                               Consume;

                               Go to L2

                   End;

         Coend;

         End;

对于Buffer我们可以理解为一个容器,用来存放生产者生产的产品,并且一次只能放一个,那么信号量SP就表示容器中是否有产品,初值为1代表容器为空,可以放1个产品,而信号量SG表示容器中产品的个数,初值为0代表容器中没有产品。

对于生产者来说,生产一个产品后调用P(SP)来查看容器是否为空,如果为空则把产品放进去,否则将信号量减1,将进程置为等待状态,当放进去一个产品后,生产者要调用V(SG)来通知消费者,告知消费者容器中有1个产品,可以去取出来了,然后消费者调用P(SG)判断容器中是否有产品,如果有则取出来,否则将信号量减1,并且等待,当消费者把产品取出来之后,要调用V(SP)来通知生产者,容器已经空了,可以将生产出来的产品放进去了,然后就是循环了,如此往复,两个进程就可以同步执行了。

PV操作
2013-10-11 11:51:07 lypf19900912 阅读数 1254
  • Velero 管理 Kubernetes 备份和还原

    Velero是一个开源的 kubernetes 备份和还原管理工具,相比其它直接操作etcd集群备份的优势在于,它可以备份k8s 的持久卷数据。它主要在生产中应用于灾难还原,集群迁移、数据保护等多种情况。 由于本套课程需要一些其它知识才能学习,因此需要您具备以下知识: 1.  掌握 Kubernetes集群的管理 2.  具备ceph集群的基本知识,理解它的基本概念 该课程主要讲解以下几个方面: 1.  Ceph 集群的块存储、文件系统、对象存储构建。 2.   Ceph块存储、文件系统和kubernetes的集成,并提供动态的pv。 3.  Velero和Ceph 对象存储集成,来完成k8s的各种资源备份、还原管理。

    28 人正在学习 去看看 臧雪园

1. 概念    

  1.同步

              合作进程间的直接制约关系

 

生产者和消费者是两个进程,他们之间需要合作才能够完成一次交易,缺少任何一个进程都不可以!

同步就是进程之间的合作关系!

 2.互斥

          申请临界资源进程间的间接制约关系

      独木桥一次只能够让一个人通过,在过桥的时候一个人再过的时候其他人只能够等待

3.临界区

         进程中对临界资源实施操作的那段程序

4.临界资源

        各进程可以共享各类资源,但有些资源一次只能供一个进程使用

      比如车上有n个座位,临界资源就是N,那么临界区就是是占有这个座位的过程;

       反应到程序中就是访问临界资源的代码

5.信号量

      信号量S的物理意义:S>=0表示某资源的可用数,若S<0,则其绝对值表示阻塞队列中等待该资源的进程数

       公有信号量:实现进程间的互斥;初值为1或资源的数目

              私有信号量:实现进程间的同步;初值为0或者某个正整数

       比如信号量就是一个交通指示灯外;需要看对应的信号量的状态才确定执行还是等待.

 2.PV原语

      1. P操作  

 Begin

S:=S-1;

If S<0 then R(S)   (执行P操作的进程插入等待队伍)

End;

       2.V操作 

 Begin

S:=S+1;

If S<0 then R(S)   (从阻塞的队列中唤醒一个进程)

End;

  P操作减一,V操作加一

3. PV操作实现互斥

         令信号量mutex的初值为1,当进入临界区执行P操作,退出临界区时执行V操作

P(mutex)

临界区

V(mutex)

1.互斥的信号量

        临界资源的数量

初值一般设置最大的临界资源数量

2.互斥的P操作:查看是否有临界资源

      在进程需要访问临界区的时候,执行一个P操作来确定是否能够进入临界区(就好像过马路要先看指示灯)

      P操作会查看资源的剩余量;假设进程进入那么资源数就会减一,减一之后查看资源的剩余量来确定进程是否可以      访问临界区

3.互斥的V操作:将临界区的资源释放掉

        对应到程序中就是对信号量执行一个V操作之后退出临界区

        V操作就是:增加资源的剩余量;假设进程退出那么资源就会加一,然后进程退出临界区

2. PV操作实现同步

单缓冲区的生产者消费者是一个进程之间的同步

        

1.同步的信号量

资源的数量—进程的状态

S1:生产者能否放入缓冲区

S2:消费者能否消费

   初值的设置

     各个进程的初始状态;这个的设置不局限于一种。

      生产者可以放,初值为1;消费者开始不能消费,初值为0

       生产者不可以放,初值为0.;消费者开始不能消费,初值为0

2.同步的P操作

是否执行进程

P(S1)代表生产者是否可以放入产品, P(S2)代表消费者是否可以消费产品

3.同步的V操作

是否唤醒进程

V(S1)代表消费者消费完,唤醒生产者, V(S2)代表生产者放入了产品,唤醒消费者


2015-10-08 21:45:34 wuhuikun 阅读数 749
  • Velero 管理 Kubernetes 备份和还原

    Velero是一个开源的 kubernetes 备份和还原管理工具,相比其它直接操作etcd集群备份的优势在于,它可以备份k8s 的持久卷数据。它主要在生产中应用于灾难还原,集群迁移、数据保护等多种情况。 由于本套课程需要一些其它知识才能学习,因此需要您具备以下知识: 1.  掌握 Kubernetes集群的管理 2.  具备ceph集群的基本知识,理解它的基本概念 该课程主要讲解以下几个方面: 1.  Ceph 集群的块存储、文件系统、对象存储构建。 2.   Ceph块存储、文件系统和kubernetes的集成,并提供动态的pv。 3.  Velero和Ceph 对象存储集成,来完成k8s的各种资源备份、还原管理。

    28 人正在学习 去看看 臧雪园

为了更加巩固一下pv操作系统,我拿一道题出来解答一下,以便巩固知识。

2011年11月考试的一道题,题目如下:

进程P1、P2、P3、P4和P5的前趋图如下:

若用PV操作控制进程P1~P5并发执行过程,则需要设置5个信号量S1、S2、S3、S4和S5,进程间同步所使用的信号量标注在上图中的边上,且信号量S1~S5的初始值都等于零,初始状态下从进程P1开始执行。下图中a、b和c处应分别填写(1);d和e处应分别填写(2),f和g处应分别填写(3)。

(1)A. V(S1)V(S2)、P(S1)和V(S3) V(S4)
B. P(S1)V(S2)、P(S1)和P(S2) V(S1)
C. V(S1)V(S2)、P(S1)和P(S3) P(S4)
D. P(S1)P(S2)、V(S1)和P(S3) V(S2)
(2)A. P(S1) 和V(S5)
B. V(S1) 和P(S5)
C. P(S2) 和V(S5)
D. V(S2) 和P(S5)
(3)A. P(S3)和V(S4) V(S5)
B. P(S3)和P(S4) P(S5)
C. V(S3)和V(S4) V(S5)
D. V(S3)和P(S4) P(S5)


好吧,废话少说,开始解题。

该题目拿到入口点就是在前趋图,前趋图的每一个箭头可以看做是一个信号量,进的箭头可以看做是 P操作,而出的箭头可以看做是V操作。

首选看P1的箭头。P1有两个出的箭头,说明P1进行了两次 的V操作,分别是V(S1)和V(S2),所以a处应该是 V(S1)和V(S2)。

接着看 P2的箭头。P2 有一个进的箭头,以及两个出的箭头,所以,P2的操作应该分别是 P(S1)、V(S3)和V(S4)。


如此类推,所以答案应该是 (1)A、 (2)C 、(3)D


2019-11-03 17:28:58 JunSIrhl 阅读数 757
  • Velero 管理 Kubernetes 备份和还原

    Velero是一个开源的 kubernetes 备份和还原管理工具,相比其它直接操作etcd集群备份的优势在于,它可以备份k8s 的持久卷数据。它主要在生产中应用于灾难还原,集群迁移、数据保护等多种情况。 由于本套课程需要一些其它知识才能学习,因此需要您具备以下知识: 1.  掌握 Kubernetes集群的管理 2.  具备ceph集群的基本知识,理解它的基本概念 该课程主要讲解以下几个方面: 1.  Ceph 集群的块存储、文件系统、对象存储构建。 2.   Ceph块存储、文件系统和kubernetes的集成,并提供动态的pv。 3.  Velero和Ceph 对象存储集成,来完成k8s的各种资源备份、还原管理。

    28 人正在学习 去看看 臧雪园

操作系统-PV操作

WHAT?

操作系统中的一种同步机制,实现对于并发进程临界区的管理

并发进程

  1. 无交互并发进程:每个进程独立,无需PV操作
  2. 有交互并发进程:多个进程共享资源,需控制进程次序,防止进程因资源被占用而阻塞

临界区

并发进程中与共享变量有关的程序段称为临界区

P操作

申请资源

V操作

释放资源

信号量S

用来记录资源数量,作为判断是否满足P操作的条件

如S=1,表示可用资源数量为1

HOW?

来看一道题目

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kBa0Dc5t-1572773085053)(C:\Users\JunSIr\AppData\Roaming\Typora\typora-user-images\image-20191103112912579.png)]

破题

  • S1-S4初始值都为0

  • 将信号量看作互斥量,如果想要某个结点停止运行,对之结点进行P操作,S就会减少相应数量,一旦S小于0(记住S初值=0),进程被压入阻塞队列

  • 如果完成了某个结点的任务,把它连向的结点进行V操作释放资源,等效于激活了下一个其他结点的工作

  • 前驱图:想要执行P2,必须先执行P1 / 想要执行P3,必须先执行P1P2

  • 解题过程:一个进程A引出某些信号量,则在进程A末尾对这些信号量做释放(V

    ​ 信号量指向某进程B,则在B进程开-始位置对这些信号量进行申请(P)

具体解题细节

  1. P1结点入度0(无指向它的边)—>为了此结点后续结点能运行,通过此结点的必然是V释放操作---->AB选项排除,P1操作完毕—>P1入阻塞队列—>后续执行P申请操作–>选C

  2. 发现执行完P2之后有个V(S3)操作,故P2指出的边S肯定为S3

  3. 四定三则第四条边带的信号量可推—>S4

  4. 分类讨论

    • 情况1:P1指向P2的边信号量为S1,P1指向P3的边的信号量为S2

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VWsxyDCU-1572773085054)(C:\Users\JunSIr\AppData\Roaming\Typora\typora-user-images\image-20191103172234024.png)]

      ​ 推导:

      ​ 执行P3之前,操作应该为P(S3)P(S2)—>选项BD确定+执行P4前肯定要申请P(S4)---->B确定

    • 情况2:P1指向P2的边信号量为S2,P1指向P3的边的信号量为S2

      - ​		[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xpEFbAp4-1572773085056)(C:\Users\JunSIr\AppData\Roaming\Typora\typora-user-images\image-20191103172304903.png)]

      ​ 推导:

      执行P3前,操作应该为P(S1)P(S3)无此选项—>故为情况1

操作系统PV操作

阅读数 84

博文 来自: weixin_43981811
没有更多推荐了,返回首页