Pv

简介: Pv

pv


整形信号量

整体信号量:
什么是整形信号量?目的是为了实现互斥和同步的。他设置了一个令牌,拿走令牌去访问。没有就乖乖呆着。这样我只要有一个令牌
那么我就可以实现互斥和同步。
什么是互斥:互斥就是我访问了你不能访问。
同步就是,我们之间按照一定的规律或者说是规则。去保持运行。不是指一起跑步。
具体看看例子。
初始化:
s=表示资源数目      整型量S
wait(s){
while(s<=0);//满足条件,卡在循环里面
s=s-1;
}//开始使用,拿走令牌(资源减少)
signal(s){
s=s+1;
}//不再使用,归还许可令。

记录型信号量


Typdef struct{
 int value; 
 struct process *L; 
 }semaphore; 
 void wait (semaphore s){ 
 S.value--; 
 if(S.value<0){
  remove a process p to S.L; 
  wakeup(up);
}
 }
  void signal  (semaphore s){
   S.value++;
    if(S.value<=0){
     remove a process p from S.L; 
     wakeup(up); 
  }
  }


借助图像理解,举例四个进程 a b c d

p p p p

a b c d

v v v v

对于整型=2,a,p完-1 .b,p完-2======》0. 当遇到c时候,你由于没有令牌了,所以就是站着处理机等待归还令牌,这样就无法实现让权等待

对于记录型,a,p完-1,b,p完-2======》,当遇到c时候,没有令牌,别等 ,直接送去等待队列。不占用处理机。优点:不需要实现让权等待。


用信号量实现互斥


若要实现互斥,用p v夹紧某个行为;

什么是互斥,互斥就是a访问 b不能 怎么做到。设置一个信号量  ====>mutex 并且设置=1;相当于一个令牌。只有一个,谁拿到谁执行。拿不到的只能等着,这样就实现了互斥。
semaphore S=1;
P1(){
//
P(s);//可以用整型,也可以用记录型,记录型好处,不用忙等。
临界区;
V(s);
}
P2(){
/
P(s);
临界区
V(s);
}

实现同步


若要实现同步,在某个需要方行为前面p一下,某个提供方行为后面v一下;


用p,v实现同步。
semaphore S=0;
p1() {
//
x;
V(s);//S==》0到1,之后唤醒阻塞队列中第一个=====>即P2()
//
/
}
P2(){
...
P(s);//一开始执行到这个,那么此时S还是0.不满足条件,会一直卡死在while循环里面。(或者这样我为了防止忙等,被放置在阻塞队列中。)
//(被唤醒之后,)看到S变为1,跳出while开始执行。实现了从p1到p2之间的同步.
y;
...
}
相关文章
|
19天前
|
存储 Kubernetes 调度
在K8S中,PV和PVC是如何关联?
在K8S中,PV和PVC是如何关联?
|
4天前
|
存储 Kubernetes 测试技术
k8s使用pvc,pv,sc关联ceph集群
文章介绍了如何在Kubernetes中使用PersistentVolumeClaim (PVC)、PersistentVolume (PV) 和StorageClass (SC) 来关联Ceph集群,包括创建Ceph镜像、配置访问密钥、删除默认存储类、编写和应用资源清单、创建资源以及进行访问测试的步骤。同时,还提供了如何使用RBD动态存储类来关联Ceph集群的指南。
18 7
|
15天前
|
存储 Kubernetes 调度
在K8S中,什么是PV和PVC?
在K8S中,什么是PV和PVC?
|
19天前
|
存储 Kubernetes 调度
在k8S中,PV和PVC如何使用?
在k8S中,PV和PVC如何使用?
|
3月前
|
前端开发 JavaScript Python
PV
【6月更文挑战第24天】
89 10
|
3月前
|
存储 Kubernetes 容器
关于PV和PVC的生命周期
【6月更文挑战第11天】Kubernetes中的PersistentVolume (PV) 和 PersistentVolumeClaim (PVC) 是用于管理有状态应用的数据持久化存储。
|
4月前
|
存储 Kubernetes 容器
|
9月前
|
存储 Kubernetes 块存储
k8s教程(Volume篇)-PV详解
k8s教程(Volume篇)-PV详解
175 0
|
存储 Kubernetes 容器
k8s--数据存储、PV、PVC
k8s--数据存储、PV、PVC
|
存储 Kubernetes Cloud Native
持久化存储PV与PVC
持久化存储PV与PVC
332 0