精华内容
下载资源
问答
  • 入门学习Linux常用必会60个命令实例详解doc/txt

    千次下载 热门讨论 2011-06-09 00:08:45
    halt [-n] [-w] [-d] [-f] [-i] [-p] 3.主要参数说明 -n:防止sync系统调用,它用在用fsck修补根分区之后,以阻止内核用老版本的超级块覆盖修补过的超级块。 -w:并不是真正的重启或关机,只是写wtmp(/...
  • 潮流计算的matlab程序实现方法

    万次阅读 多人点赞 2018-06-17 22:25:18
    这是一个电气狗熬两个礼拜图书馆的成果,根据华中科技大学《电力系统分析》中原理编写,可用牛顿-拉夫逊和PQ分解法计算给定标幺值条件的潮流。本人水平有限,仅供参考,欢迎一起找Bug。 2019/11/17 添加算例系统图...

    这是一个电气狗熬两个礼拜图书馆的成果,根据华中科技大学《电力系统分析》中原理编写,可用牛顿-拉夫逊和PQ分解法计算给定标幺值条件的潮流。本人水平有限,仅供参考,欢迎一起找Bug。

    2019/11/17 添加算例系统图和基础数据、参考文献。

    2019/01/05 添加word文档 潮流计算课程设计

    2018/07/06 说明:由于本人变压器建模与PSASP不同,本人使用模型如下图,参数输入时请按该模型计算。

    2018/06/18 主程序更新:增加补偿电容参数

    2018/06/18 增加下载地址,详见文章底部。

    应用算例系统图

    基础数据(标幺值)

    (1)母线数据

    母线名

    1

    2

    3

    4

    5

    6

    7

    8

    9

    基准电压

    230

    230

    230

    230

    230

    230

    18

    13.8

    16.5

    (2)交流线数据

    I侧母线

    J侧母线

    电阻

    电抗

    电纳的1/2

    6

    1

    0.01

    0.085

    0.088

    1

    4

    0.032

    0.161

    0.153

    4

    3

    0.0085

    0.072

    0.0745

    3

    5

    0.0119

    0.1008

    0.1045

    5

    2

    0.039

    0.17

    0.179

    2

    6

    0.017

    0.092

    0.079

    (3)变压器数据

    I侧母线

    J侧母线

    电抗

    变比

    9

    6

    0.0576

    1

    7

    4

    0.0625

    1

    8

    5

    0.0586

    1

    (4)发电机数据

    母线名

    母线类型

    有功功率

    无功功率

    电压幅值

    电压相角

    9

    slack

    -

    -

    1.04

    0

    7

    PV

    1.63

    -

    1.025

    -

    8

    PV

    0.85

    -

    1.025

    -

    (5)负荷数据

    母线名

    母线类型

    有功功率

    无功功率

    1

    PQ

    1.25

    0.5

    2

    PQ

    0.9

    0.3

    3

    PQ

    1

    0.35

    主程序

    % file name:chaoliu_lj.m
    % auther: 山东科技大学 罗江
    % function:使用牛顿-拉夫逊法、PQ分解法计算潮流
    % update:2018/6/18 13:22 增加补偿电容参数
    %节点类型 	标号
    %PQ节点 	  1
    %PV节点 	  2
    %slack节点  3
    %能计算给定标幺值网络,有且仅有一个平衡节点的潮流
    %注意:母线标号顺序要求:PQ节点-PV节点-平衡节点
    %若某元件不存在,其导纳为0,阻抗为inf
    
    
    clear %清除工作空间变量
    clc %清屏
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %数据输入(标幺值)
    SB=100; %基准容量,单位MVA
    
    %母线基准电压
    Bus=[230 230 230 230 230 230 18 13.8 16.5];
    
    %交流线参数:I侧母线 J侧母线 阻抗 1/2接地导纳
    Line=[6 1 0.01+0.085i  0.088i;
    	  1 4 0.032+0.161i 0.153i; 
    	  4 3 0.0085+0.072i 0.0745i;
    	  3 5 0.0119+0.1008i 0.1045i;
    	  5 2 0.039+0.17i 0.179i;
    	  2 6 0.017+0.092i 0.079i];
    
    %变压器参数:I侧母线 J侧母线 阻抗 变比 %变压器阻抗归算到I侧
    Trans=[9 6 0.0576i 1;
    	   7 4 0.0625i 1;
    	   8 5 0.0586i 1];
    
    %加接地电容器补偿: 母线 导纳
    Cap=[2 0.0i];
    
    %发电机参数:母线 节点类型 P V/U θ
    Gen=[9 3 1.04 0;
    	 7 2 1.63 1.025;
    	 8 2 0.85 1.025]; 
    
    %负荷参数:母线 节点类型 P Q
    %按参考方向,发电机发出功率(正值),负荷消耗功率(负值)
    Load=[1 1 -1.25 -0.5;
    	  2 1 -0.9 -0.3;
    	  3 1 -1 -0.35];
    
    mode=1; %1-极坐标下牛拉法, 2-PQ分解法
    Tmax=10; %最大迭代次数
    limit=1.0e-8; %要求精度
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    
    %变压器π型等效阻抗参数
    Zt=zeros(size(Trans,1),3);
    Zt(:,1)=Trans(:,3)./Trans(:,4);
    Zt(:,2)=Trans(:,3)./(1-Trans(:,4));
    Zt(:,3)=Trans(:,3)./(Trans(:,4).^2-Trans(:,4));
    Trans_pi=[Trans(:,1:2) Zt(:,1) 1./Zt(:,2) 1./Zt(:,3)];
    
    n=numel(Bus); %总节点数
    m=n-1; %PQ节点数
    for i=1:size(Gen,1)%数组行数
    	if Gen(i,2)==2 %除去PV节点就是PQ节点
    		m=m-1;
    	end
    end
    for i=1:size(Load,1)
    	if Load(i,2)==2
    		m=m-1;
    	end
    end
    %PQ节点包含浮游节点,其PQ=0
    
    %提取P,Q,U向量
    P=zeros(1,n); %P,Q为原始数据,Pi,Qi为计算结果
    Q=zeros(1,n);
    U=ones(1,n); %电压初始值由此确定
    cita=zeros(1,n); %此处未知节点皆设为1.0∠0 %注意:此处角度单位为度,提取后再转换成弧度,后面计算使用弧度
    for i=1:size(Gen,1)
    	if Gen(i,2)==1 %PQ节点
    		P(Gen(i,1))=Gen(i,3);
    		Q(Gen(i,1))=Gen(i,4);
    	end
    	if Gen(i,2)==2 %PV节点
    		P(Gen(i,1))=Gen(i,3);
    		U(Gen(i,1))=Gen(i,4);
    	end
    	if Gen(i,2)==3 %slack节点
    		U(Gen(i,1))=Gen(i,3);
    		cita(Gen(i,1))=Gen(i,4);
    	end	
    end
    for i=1:size(Load,1)
    	if Load(i,2)==1 %PQ节点
    		P(Load(i,1))=Load(i,3);
    		Q(Load(i,1))=Load(i,4);
    	end
    	if Load(i,2)==2 %PV节点
    		P(Load(i,1))=Load(i,3);
    		U(Load(i,1))=Load(i,4);
    	end
    	if Load(i,2)==3 %slack节点
    		U(Load(i,1))=Load(i,3);
    		cita(Load(i,1))=Load(i,4);
    	end	
    end
    disp('初始条件:')
    disp('各节点有功:')
    disp(P);
    disp('各节点无功:')
    disp(Q);
    disp('各节点电压幅值:')
    disp(U);
    cita=(deg2rad(cita)); %角度转换成弧度
    disp('各节点电压相角(度):')
    disp(rad2deg(cita)); %显示依然使用角度
    
    %节点导纳矩阵的计算
    Y=zeros(n); %新建节点导纳矩阵
    y=zeros(n); %网络中的真实导纳
    %计算y(i,j)
    for i=1:size(Line,1) %与交流线联结的真实导纳
    	ii=Line(i,1); jj=Line(i,2);
    	y(ii,jj)=1/Line(i,3);
    	y(jj,ii)=y(ii,jj);
    end
    for i=1:size(Trans_pi,1) %与变压器联结的真实导纳
    	ii=Trans_pi(i,1); jj=Trans_pi(i,2);
    	y(ii,jj)=1/Trans_pi(i,3);
    	y(jj,ii)=y(ii,jj);
    end
    %计算y(i,i)
    for i=1:size(Line,1) %与交流线联结的对地导纳
    	ii=Line(i,1); jj=Line(i,2);
    	y(ii,ii)=y(ii,ii)+Line(i,4);
    	y(jj,jj)=y(jj,jj)+Line(i,4);
    end
    for i=1:size(Trans_pi,1) %与变压器联结的对地导纳
    	ii=Trans_pi(i,1); jj=Trans_pi(i,2);
    	y(ii,ii)=y(ii,ii)+Trans_pi(i,4);
    	y(jj,jj)=y(jj,jj)+Trans_pi(i,5);
    end
    %算上补偿电容
    for i=1:size(Cap,1)
    	ii=Cap(i,1);
    	y(ii,ii)=y(ii,ii)+Cap(i,2);
    end
    %由y计算Y
    ysum=sum(y,1); %每一行求和
    for i=1:n
    	for j=1:n
    		if i==j
    			Y(i,j)=ysum(i);
    		else
    			Y(i,j)=-y(i,j);
    		end
    	end
    end
    disp('节点导纳矩阵:');
    disp(Y);
    
    G=real(Y); %电导矩阵
    B=imag(Y); %电纳矩阵
    
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %以上为基础数据整理
    %接下来是牛拉法的大循环
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    
    %计算功率不平衡量
    [dP,dQ,Pi,Qi]=Unbalanced( n,m,P,Q,U,G,B,cita );
    disp('有功不平衡量:');
    disp(dP);
    disp('无功不平衡量:');
    disp(dQ);
    
    for i=1:Tmax
        fprintf('第%d次迭代\n',i);
    	%雅可比矩阵的计算
        if(mode==1)
    		J=Jacobi( n,m,U,cita,B,G,Pi,Qi );
    		disp('雅可比矩阵');
    		disp(J);
        end
    
    	%求解节点电压修正量
    	if(mode==1)
    		[dU,dcita]=Correct( n,m,U,dP,dQ,J );   
    	else
        	[dU,dcita]=PQ_LJ( n,m,dP,dQ,U,B );
    	end
    	disp('电压、相角修正量:');
    	disp(dU);
    	disp(rad2deg(dcita));
    
    	%修正节点电压
    	U=U+dU;
    	cita=cita+dcita;
    	disp('节点电压幅值:');
    	disp(U);
    	disp('节点电压相角:');
    	disp(rad2deg(cita));
    
    	%计算功率不平衡量
    	[dP,dQ,Pi,Qi]=Unbalanced( n,m,P,Q,U,G,B,cita );
    	disp('有功不平衡量:');
    	disp(dP);
    	disp('无功不平衡量:');
    	disp(dQ);
    	if (max(abs(dP))<limit && max(abs(dQ))<limit )
    		break;
    	end%if
    end%for
    
    %迭代结束,判断收敛
    if (max(abs(dP))<limit && max(abs(dQ))<limit )
    	disp('计算收敛');
    else
    	disp('计算不收敛或未达到要求精度');
    end
    %打印功率
    fprintf('迭代总次数:%d\n', i);
    disp('节点电压幅值:');
    disp(U);
    disp('节点电压相角:');
    disp(rad2deg(cita));
    disp('有功计算结果:');
    disp(Pi);
    disp('无功计算结果:');
    disp(Qi);

     

    子程序一

     

    % filename:Unbalanced.m
    % author: 山东科技大学 罗江
    % function: 计算功率不平衡量
    function [ dP,dQ,Pi,Qi ] = Unbalanced( n,m,P,Q,U,G,B,cita )
    %计算ΔPi有功的不平衡量
    for i=1:n
    	for j=1:n
    		Pn(j)=U(i)*U(j)*(G(i,j)*cos(cita(i)-cita(j))+B(i,j)*sin(cita(i)-cita(j)));
    	end
    	Pi(i)=sum(Pn);
    end
    dP=P(1:n-1)-Pi(1:n-1); %dP有n-1个
    
    %计算ΔQi无功的不平衡量
    for i=1:n
    	for j=1:n
    		Qn(j)=U(i)*U(j)*(G(i,j)*sin(cita(i)-cita(j))-B(i,j)*cos(cita(i)-cita(j)));
    	end
    	Qi(i)=sum(Qn);
    end
    dQ=Q(1:m)-Qi(1:m); %dQ有m个
    
    
    end%func
    
    

    子程序二

    % filename:Jacobi.m
    % author:山东科技大学 罗江
    % function: 计算雅可比矩阵
    function [ J ] = Jacobi( n,m,U,cita,B,G,Pi,Qi )
    %雅可比矩阵的计算
    %分块 H N K L
    %i!=j时
    for i=1:n-1
    	for j=1:n-1
    		H(i,j)=-U(i)*U(j)*(G(i,j)*sin(cita(i)-cita(j))-B(i,j)*cos(cita(i)-cita(j)));
    	end
    end
    for i=1:n-1
    	for j=1:m
    		N(i,j)=-U(i)*U(j)*(G(i,j)*cos(cita(i)-cita(j))+B(i,j)*sin(cita(i)-cita(j)));
    	end
    end
    for i=1:m
    	for j=1:n-1
    		K(i,j)=U(i)*U(j)*(G(i,j)*cos(cita(i)-cita(j))+B(i,j)*sin(cita(i)-cita(j)));
    	end
    end
    for i=1:m
    	for j=1:m
    		L(i,j)=-U(i)*U(j)*(G(i,j)*sin(cita(i)-cita(j))-B(i,j)*cos(cita(i)-cita(j)));
    	end
    end
    %i==j时
    for i=1:n-1
    	H(i,i)=U(i).^2*B(i,i)+Qi(i);
    end
    for i=1:m
    	N(i,i)=-U(i).^2*G(i,i)-Pi(i);
    end
    for i=1:m
    	K(i,i)=U(i).^2*G(i,i)-Pi(i);
    end
    for i=1:m
    	L(i,i)=U(i).^2*B(i,i)-Qi(i);
    end
    
    %合成雅可比矩阵
    J=[H N;K L];
    
    
    end
    
    

    子程序三

    % filename:Correct.m
    % author:山东科技大学 罗江
    % function:修正节点电压
    function [ dU,dcita ] = Correct( n,m,U,dP,dQ,J )
    %求解节点电压修正量
    for i=1:m
    	Ud2(i,i)=U(i);
    end
    dPQ=[dP dQ]';
    dUcita=(-inv(J)*dPQ)';
    dcita=dUcita(1:n-1);
    dcita=[dcita 0];
    dU=(Ud2*dUcita(n:n+m-1)')';
    dU=[dU zeros(1,n-m)];
    
    
    end
    
    

    子程序四

    % filename:PQ_LJ.m
    % author:山东科技大学 罗江
    % function:使用PQ分解法计算电压修正量
    function [ dU,dcita ] = PQ_LJ( n,m,dP,dQ,U,B )
    dP_U=dP./U(1:n-1);
    dQ_U=dQ./U(1:m);
    dUdcita=(-inv(B(1:n-1,1:n-1))*dP_U')';
    dcita=dUdcita./U(1:n-1);
    dU=(-inv(B(1:m,1:m))*dQ_U')';
    dU=[dU zeros(1,n-m)];
    dcita=[dcita 0];%补零
    
    
    end
    
    

    程序下载地址:点击下载程序

    参考文献

    [1]《电力系统分析(第四版)》 何仰赞 温增银,华中科技大学出版社,2017.

    [2]MATLAB/Simulink电力系统建模与仿真(第2版)》 于群 曹娜,机械工业出版社,2017.

    [3]《电力系统分析课程设计指导及示例分析》郭丽萍 顾秀芳,中国水利水电出版社,2016.

    [4]《电力系统分析的计算机算法》邱晓燕 刘天琪 黄媛,中国电力出版社,2015.

    展开全文
  • 进程管理和P V操作

    万次阅读 多人点赞 2018-04-23 23:04:02
    信号量是一个表示资源的实体,是一个与队列有关的整型变量,信号量只支持P操作和V操作。其具体的意义如下述代码所示: 对于value取值的说明: 当value >0 时:信号量可用的资源个数  value=0 时:无空闲资源,无...

    【版权声明:】    本文为博主原创,未经博主允许不得转载。

     计算机的核心是CPU,它承担了所有的计算任务;而操作系统是计算机的管理者,它负责任务的调度、资源的分配和管理,统领整个计算机硬件。

    一、操作系统的相关定义

    1、操作系统的定义操作系统是控制和管理计算机硬件和软件资源、合理的组织计算机流程以方便用户使用的程序的集合。

    2、操作系统的特点:

    (1) 并发性。 并发性和并行性是有区别的两个不同概念。并行性是指两个或多个事件在同一时刻发生,而并发性是指两个或多个事件在同一时间间隔内发生。并发在宏观上是同时发生的,而在微观上是交替执行的。

    (2)共享性。   两种共享方式:互斥共享和在一段时间内同时共享

    (3)虚拟性

    (4)不确定性。多道程序环境下执行是以异步的方式进行,每个程序在何时执行,多个程序的执行顺序都是不确定的。

    3、多核单CPU

    目前我们计算机都是多核单CPU 或者是多核多CPU。多核单CPU是只需要一套芯片组,一套存储,多核之间通过芯片内部总线进行通信,共享使用内存。如果跑一个多线程程序,可以做到并行执行,执行速度更快,具有较高的计算能力。

    二、进程的相关概念

    1、进程的定义:进程是程序的一次执行,改程序可以和其他程序并发执行;它是一个动态的实体,在传统的计算机设计中,进程即使基本的分配单元,也是基本的执行单元。

    从上面的概念可以看出。进程主要有以下几个特点:

    (1)进程是一个实体。每一个进程都有自己的地址空间,一般情况下,包括文本域 数字域和堆栈。

    (2)进程是一个执行中的程序,具有独立性 并发性和动态性。

    2、进程的组成:


    3、进程的状态与转换

    (1)进程的基本状态:

            运行态:进程已经获得资源,并占有处理机,处理机正在执行该进程的程序。

            阻塞态:等待态、挂起态或者睡眠态。此时程序因为某个事件而暂时不能运行。如等待IO操作

            就绪态:进程等待为其分配CPU,而CPU被其他进程占用,所以暂时不能运行,但是该进程已经具备了执行的所有条件。


    运行--阻塞转换:进程出让CPU,等待系统分配资源或某些事件的发生,如等待用户输入。

    运行--就绪:分配的CPU 时间片已经用完,或者在中断模式下,有更高优先级的进程进入系统。

    阻塞--就绪:处于阻塞队列的进程,当其等待的事件已发生或者等到可用资源时,进入就绪列竞争CPU。

    就绪--运行:进程被调用程序选中CPU。

    (2)五种进程状态转换



    三 进程的交互---协作和竞争

            在多道程序设计系统中,同一时刻可能有多种进程,这些进程之间存在两种基本关系:竞争关系和协作关系。

    1、竞争关系 系统中多个进程之间彼此无关,它们不知道其他进程的存在,并且也不受其他进程的影响。由于多个进程共用一套计算机系统资源,因而,必然会出现多个进程竞争计算机资源的问题。由于相互竞争资源的进程并不交换信息,但是一个进程的执行会影响其他进程的执行。如果两个资源要访问同一资源,那么一个进程通过操作系统分配得到了该资源,另一个不得不等待,极端情况下,会造成被阻塞的进程永远得不到执行。

    资源竞争出现的两个控制问题:

    (1)死锁,一组进程获得了部分资源,还想要得到其他进程所拥有的资源,最终所有的进程都陷入死锁。

    (2)饥饿,一个进程由于其他进程总是优先于它而被无限的拖延。

    2、协作关系 某些进程完成一项任务需要分工协作,由于合作的进程都是独立的以不可确定的速度执行,这就需要相互协作的进程在某些协调点协调自己的工作。当合作进程中一个到达协调点后,在尚未得到其伙伴进程发来的信息之前,阻塞自己。直到被伙伴进程唤醒。

    3、解决竞争问题的方案--进程互斥

    进程的互斥是解决竞争问题的手段。进程互斥是指若干个进程要使用共享资源时,任何时刻最多允许一个进程使用,其他进程等待。直到占有资源的进程释放该资源。

    注意几个名词:临界资源:称为独占资源,是指一段时间内只允许一个进程去使用的资源。

                            临界区:访问临界资源的代码称为临界区。

    对临界区使用的必要准则:

    (1)当若干个进程要求进入临界区时,应是一个进程进入临界区,他们不应该改互相等待而是谁都不能进入。

    (2)一次只允许一个进程去访问临界区,其他进程互斥的访问临界区。

    (3)各进程使用临界区的时间是有限的,进程必须要早有限时间内释放临界资源。

    4、解决进程协作关系的方案--进程的同步

    进程的同步是指两个或两个以上进程基于某个条件来协调他们的活动。一个进程的执行依赖于另外一个进程的信息。当一个进程没有受到另一个协作进程发来的消息是,进程会阻塞状态。


    四、进程管理--P V操作

    1、信号量--semaphore

    信号量是一个表示资源的实体,是一个与队列有关的整型变量,信号量只支持P操作和V操作。其具体的意义如下述代码所示:


    对于value取值的说明:

    当value >0 时:信号量可用的资源个数

        value=0 时:无空闲资源,无空闲进程,正在执行一个进程;

        value< 0时:value的绝对值代表使用该资源的阻塞进程的个数;

    信号量分为私有信号量和公有信号量。

    公有信号量:用于进程之间的互斥,初始值通常设定为1;

    私有信号量:用于实现进程之间的同步,初始值设定为0或者n,允许进程对其实施P操作。

     2、P(proberen)操作

    P操作代表的是对资源的申请,其伪代码如下:

    流程图如下:


    3、V(verhogen)操作

    V操作是释放资源的操作,其伪代码如下:


    4、打印机作业详解P V操作

    在并发程序中,有进程A B C 执行打印作业,但是我们拥有的打印机台数为1台,若各进程竞争使用打印机,会造成的作业的错误,因此,必须使用进程互斥的手段来解决进程竞争的状态。设定 semaphor S=1 (代表着共享资源 打印机);利用PV操作实现进程的互斥。


    以上的PV操作实现了进程的互斥。整个过程可以很好的帮助大家理解PV操作的过程。

    五、经典的IPC问题

    1、生产者与消费者的问题----这是一个非常好的例子,关于进程同步

    问题描述:一组生产者进程和一组消费者进程共享一块初始为空,大小确定的缓冲区,只有当缓冲区没满时,生产者进程才可以把信息放入缓冲区,否则就要等待;只有缓存区不为空时,消费者进程才能从中取出消息,否则就要等待。缓冲区一次只能一个进程访问(临界资源)。

    (1)问题分析:假定生产者是面包店,消费者是购物的人,缓存区为放面包的盒子(资源);

    (2)关系分析:生产者和消费者对于资源的访问时互斥的关系;生产者把面包放入盒子,消费者才可以去拿走面包,或者消费者拿走面包后,生产者在放入面包;生产者放面包与消费者那面包不能同时进行。

    生产者与消费者是相互依赖的关系,只有生产者产面包,消费者才可以取走面包;只有消费者取走面包后,生产者才可以继续生产。

    (3)信号量的设定

    semaphore empty=n;代表当前的空格子数,对于生产者来说,空格子是生产者的资源;

    semaphore full =0;代表当前具有面包的盒子数量,对于消费者来说,放面包的盒子是消费者资源

    这就是我们可以称为 empty 和 full 是私有信号量的原因。

    semaphore mutex=1 ;代表临界区互斥信号量

    生产者生产一个面包,就会给消费者一个通行证,告诉消费者,可以拿走面包;

    消费者消费一个面包,就会给生产者一个通行证,告诉生产者,可以生产面包;

    代码如下:



    如果生产者进程先执行P(mutex),然后执行P(empty)消费者执行P(mutex),然后执行P(fall),这样可不可以?

    设想生产者进程已经将缓冲区放满,消费者进程并没有取产品,即empty = 0,当下次仍然是生产者进程运行时,它先执行P(mutex)封锁信号量,再执行P(empty)时将被阻塞,希望消费者取出产品后将其唤醒。轮到消费者进程运行时,它先执行P(mutex),然而由于生产者进程已经封锁mutex信号量,消费者进程也会被阻塞,这样一来生产者、消费者进程都将阻塞,都指望对方唤醒自己,陷入了无休止的等待。进入死锁状态。

    有关读者写着、理发师的IPC问题会在下一篇进行介绍。





    展开全文
  • en(t)由式(12)给出,Ln为传输路径长度(m) , v 为移动台的速度(m/s),λ为波长(m) (12) Rn和是附加波n的包络和相位,xn(t)和 yn(t)分别是en(t)同相和正交分量,附加波n由多普勒效应引起的多普勒频移为 (13) 移动台...

     

    BPSK,QPSK,2FSK,16QAM,64QAM信号在高斯信道与瑞利信道下的误码率性能仿真

     

      要:

    为了获得BPSK, QPSK, 2FSK, 16QAM, 64QAM信号在不同信道下的误码率,借助MATLAB软件仿真数据在高斯信道,平坦瑞利信道以及多径信道中的传输过程,建立BPSK,QPSK,2FSK,16QAM,64QAM调制方式模型和信道模型,使数据经过所建立的模型处理后,得到不同信噪比情况下的误码率。最后仿真获取准确误码率曲线,并分析使用不同调制方式调制、信道传输数据对信号传送的影响。

    Ⅰ介绍

    近年来,随着无线通信、导航通信、扩频通信、电子对抗技术等的飞速发展,BPSK, QPSK, 2FSK, 16QAM, 64QAM这一类数字调制信号的应用越来越广。进一步,BPSK, QPSK, 2FSK, 16QAM, 64QAM信号视为典型信号的代表,它们各自具有频带利用率高、带宽小、抗干扰性好等不同的优点,因此以 这些信号为基础开展的研究工作成为了热点。而高斯信道,瑞利信道多径信道又是当今移动通信中常见的信道。因此,本文在开展对BPSK, QPSK, 2FSK, 16QAM, 64QAM信号在这些常见信道下的误码率仿真,以为后续诸多领域的研究工作提供借鉴。

    Ⅱ信号模型

    2.1 BPSK

    2.1.1 BPSK信号调制机理

    BPSK信号是利用载波的相位变化来传递信息,而振幅和频率保持不变。在BPSK中,通常用初始相位0和π分别表示二进制“1”和“0”。其时域表达式可用(1)式来表示。其中,A表示载波的振幅,ω_{c}w_{c}表示载波频率, \Phi _{n}表示第n个符号相位,且\Phi _{n}只能取0或者π。

    (1)

    进一步,式(1)可用(2)式来表示。

    (2)

    设 g(t)为脉宽为TS的单个矩形脉冲,a_{n}取值为+1或者-1,则BPSK信号可以表述为一个双极性全占空矩形脉冲序列与一个正弦波的相乘,见(3)式所示。

    (3)

    2.1.2 BPSK信号解调机理

    BPSK 信号的解调通常采用相干解调法。设 BPSK 信号为e_{BPSK}(t)=As(t)\cos(\omega _{c}t+\varphi _{n}),则相乘器的输出为:

    (4)

    进一步,设低通滤波器截止频率为 w_{c},则低通滤波器的输出为1/2Acos\Phi _{n},由于 BPSK信号中\Phi _{n}可取0或者π, 所以抽样判决器的输入为1/2A或者-1/2A。设抽样判决器的判定门限为0,则当1/2A>0时,抽样判决器输出为1;当-1/2A<0时,抽样判决器输出为-1,进而实现了对BPSK信号的解调。

    2.2 QPSK

    在数字信号的调制方式中,QPSK 四相移键控是目前最常用的一种数字信号调制方式,它具有较高的频谱利用率、较强的抗干扰能力,电路上实现方式也较为简单。四相相移调制是利用载波的四种不同相位差来表征输入的数字信息,简单讲就是四进制移相键控,QPSK 是在 M =4 时的调相技术。它规定了四种载波相位,分别为 45°、135°、225°和 315°。调制器输入的数据是二 进制数字序列,为了能和四进制的载波相位配合起来,就需要把二进制数据变换为四进制数据。这就是说,需要把二进制数字序列中每两个比特分成一组,共有四种组合,即 00,01,10,11,其中每一组称 为双比特码元。每一个双比特码元是由两位二进制信息比特组成的,它们分别代表四进制四个符号中的一 个符号。QPSK 中每次调制可传输2 个信息比特,这些信息比特是通过载波的四种相位来进行传递的。解 调器根据星座图及接收到的载波信号的相位来判断发送端发送的信息比特。

    图1 QPSK信号产生原理

    2.3 2FSK

    FSK( Frequency shift Keying) 频移键控是利用载 波的频率变化来传递数字信息。它是利用基带数字信 号离散取值特点去键控载波频率以传递信息的一种数 字调制技术。FSK 是信息传输中使用得较早的一种调 制方式,它的主要优点是: 实现起来较容易,抗噪声与 抗衰减的性能较好,在中低速数据传输中得到了广泛的应用[3]。

    最常见的是用两个频率承载二进制1 和0 的双频 2FSK[4]。2FSK键控法则是利用受矩形脉冲序列控制的开关电路对两个不同的独立频率源进行选通。键控 法的特点是转换速度快、波形好、稳定度高且易于实 现,故应用广泛。最常见的是用两个频率承载二进制 1 和0 的二进制频移键控( 2FSK) ,其时域表达式可写为:

    2.4 QAM

    随着通信技术的发展,随着业务类型的 多样化和用户数目的迅速增长,带宽的限制 越来越明显。如何能在有限的带宽下提高频 谱利用率、获得更高的传输速率,改变传输 方式、引入先进通信技术成为主要的追求。 最小频移键控、正交幅度调制、正交频分复 用调制等技术都是提高频谱利用率、获得更 高的传输速率的典型代表。 正交幅度调制,也就是 QAM技术,它 是利用正交载波分别对两路信号进行抑制载 波的调幅,然后相加后进入后续的传输和处 理。对于MQAM 信号,一般的表达式为:

    (9)

    式中,An是基带信号的振幅,g(t-nTs)是宽度为Ts的第n个码元基带信号波形,\Phi _{n}是第n个码元载波的相位。

    通常的QAM 技术有 4QAM、16QAM、64QAM,分别对应空间星座点的个数是4个、 16个、64个。星座点个数越多,频谱利用 率越高,单位时间传输的信息量越大;但是 QAM的阶数越多,星座点个数就越多,星 座点之间的距离越近(如图1),差错率越高。

    图2  QAM星座图

    可以看出星座点均匀的分布在四个象限,在信道比较理想,没有噪声和干扰影响时,星座点很清晰。但是如果加入了信道影响后,信号会发生失真,从时域波形上表现为毛刺增多抖动增大;如果从星座点上来看,表现为星座点位置上的扩张,星座点的模 糊。因此,QAM的阶数越多,相位就会越 模糊,相邻的星座点甚至会连在一起,无法 判断或识别本来信号面目。可见,在同样的 信道环境和其他技术条件的情况下,QAM 阶数越高,传输速率越大,但是误码率越高。 选择哪种 QAM 方式,要依据的传输环境和 系统性能来定。当输入的两路信号是二进制 数字信号时,通过乘以正交载波后,生成了 4QAM方式;当输入的两路信号是四进制 数字信号时,通过乘以正交载波后,生成了 16QAM方式;当输入的两路信号是八进制 数字信号时,通过乘以正交载波后,生成了 64QAM方式。可以看出正交载波的调制, 再并上多进制的输入信号,就可以生成多阶 QAM。需要关注的是,在采用QAM技术时, 为了产生良好的星座图,就要保证仿真数据足够多。

    Ⅲ 信道模型

    3.1 高斯信道模型

    在通信系统中噪声是一个随机过程,很难通过简单的计算方式预测某个时刻噪声信号的强度,故从概率论的角度去分析噪声. 白噪声存在于整个频谱范围内,所以在任何的信道内都存在高斯白噪声. 对于一维的高斯随机变量x ,如果它的均值为μ ,方差等于 σ 2,则随机变量取值为x的概率P(x) ,由下 式确定:

    (10)

    2.5 瑞利衰落信道模型

    图3  信号的多径传播

    参考图3,式(11)为基站发出信号的延迟波, fc(Hz)为发出时频率,θn为附加角度

    (11)

    其中,Re给出附加波复包络的实部,n为附加波编号,j是虚单位。en(t)由式(12)给出,Ln为传输路径长度(m) , v 为移动台的速度(m/s),λ为波长(m)

    (12)

    Rn和\Phi _{n}是附加波n的包络和相位,xn(t)和 yn(t)分别是en(t)同相和正交分量,附加波n由多普勒效应引起的多普勒频移为

    (13)

    移动台收到的波形是以上所提到的附加波的合成,当波的数目为 N 时,接收波记为r(t):

    (14)

    x(t)和y(t)表达式如式(15)、式(16)所示:

    (15)
    (16)

    x(t)和y(t)是归一化随机过程. 当 N 足够大时,其均值为 0,方差为 σ. 令 x =x(t) ,y =y(t) ,可以得出 x(t)和 y( t)的联合概率密度函数:

    (17)

    此外,也可以用接收波的幅度和相位表示r(t):

    (18)

    R(t)和θ(t)为:

    (19)

    通过使用变量代换,p(x ,y)表示为 p(R , θ ):

    (20)

    对θ从0到2π积分,可得概率密度函数p(R):

    (21)

    对R从0到∞积分,可得概率密度函数p(θ):

    (22)

     式(11)和式(12)表明信号衰落的包络变化服从瑞利分布,相位变化服从均匀分布。

     仿真结果

    4.1 参数设置

    对模块参数进行设置,然后进行仿真分析,发送10000位符号间隔为1的数据比特,计算信噪比从0dB变化到10dB时在高斯信道下以及平坦瑞利信道下的误码率并画图,如图4,5所示,可以看出在高斯信道条件下所有调制格式信号误码率都随着信噪比的增加而减小,其中BPSK信号与QPSK信号误码率性能最好且相差不大,当信噪比大于8dB时误码率基本降低至零。16QAM与64QAM信号的误码率性能最差,2FSK信号的误码率大约低于QAM信号0.15,高于PSK信号大约20%,在信噪比等于0的情况下,并且随着信噪比的增加,差距不断扩大。在平坦瑞利衰落信道下各个调制信号在信噪比较大时误码率性能均有下降,其中BPSK信号性能最好,QAM信号性能最差,且各个调制信号的误码率随着信噪比的增大下降较为缓慢。

    对于数字调制信号在多径瑞利衰落信道下的误码率,画出了信噪比从0dB变化到14dB的误码率曲线,如图6所示。从图中可以看出,在不使用均衡器时,除了2FSK信号以外,其余调制格式信号的误码率随着信噪比增加变化不大,性能下降严重。因此如果要在衰落信道中获得与加性高斯白噪声信道相同的传输效果,就需要增加信号的信噪比。仿真结果表明瑞利衰落信道对系 统的误码率性能的影响较大,这将会严重影响通信系统 的性能 .但是信道衰落又是不可避免的 , 因此 , 需要采取 各种措施来提高通信系统的性能。例如各种抗衰落的调制解调技术、抗衰落接收技术及扩谱技术等。

    图4  BPSK,QPSK,2FSK,16QAM,64QAM信号在高斯信道下的误码率性能
    图5  BPSK,QPSK,2FSK,16QAM,64QAM信号在平坦瑞利信道下的误码率性能

     

    图6  BPSK,QPSK,2FSK,16QAM,64QAM信号在多径瑞利衰落信道下的误码率性能

     结论

    用MATLAB构建系统仿真的结果表明,在高斯信道下与平坦瑞利衰落信道下PSK信号要优于QAM信号与2FSK信号,但后者对瑞利多径衰落有一定的鲁棒性,在日常通信过程中,对信号调制格式的选择可以对效率与误码率可以进行一定的折中,虽然本仿真法还需优化, 但对不同信噪比情况下误码率的计算提供了理论依据。

     

    参考文献

    [1] 王新梅,肖国镇. QPSK调制解调通信系统仿真实现[J]. 数字技术与应用,2009.

    [2] 杨万全,熊淑华,卫武迪等 . 现代通信技术 [M] . 成都: 四川大学出版社,2000.

    [3] 王世一. 数字信号处理[M].北京: 北京理工大学出版社,1997:165 -170.

    [4] Sanjit K.Mitra,孙 洪.数字信号处理———基于计算机的方法[M].北京: 电子工业出版社, 2005:117 -120.

     

     

    展开全文
  • 二进制LDPC码的构造及译码算法

    千次阅读 2018-09-09 16:11:04
    可用表示GF( q )的非零元 ,将 映射为  的操作就是前面介绍过的矩阵的分散。 与非零  之间有 一个一一对应的关系。GF( q )中的元素0则对应全零矩阵,记为 。   考虑GF( q )上  的基矩阵,    其...

            构造好的LDPC码校验矩阵和设计性能优异的译码算法是LDPC码研究领域的重点。
           常见的LDPC码一般分为两类,一类是随机LDPC码,一般由随机化方法构造;另一类是准循环LDPC码,一般由半随机方

    法或者基于代数的结构化方法构造。常见的LDPC码的迭代译码方法包括基于硬判决的译码基于软判决的译码。接下来将介绍

    几种具有代表性的LDPC码构造方法以及经典的硬判决和软判决译码方法。

    1 . PEG构造和QC-PEG构造

            渐进边增长(progressive edge growth, PEG)算法[1][2][3]是一种著名的基于图的随机化LDPC码构造方法,其主要做法是依

    次对每个变量节点添加边连接校验节点来构建出所要的Tanner图,在每次添加边的时候使当前变量节点的本地围长(当前变量节

    点所参与的最短的环的长度)尽可能地大。这样虽然不能保证最终Tanner图对应的LDPC码是最优的,但是其性能一般也非常优

    异。

         一个LDPC码的校验矩阵对应着唯一的一个Tanner图,PEG算法根据给定的码长、码率以及度分布,从头开始构建Tanner

    图。假设需要构建的Tanner图的校验节点数为m,变量节点数为n,变量节点vj相连的所有边所构成的集合记为E_{v_{j}},那么容易得

    到所有的边的集合。记与vj相连的第k条边为,0\leq k\leq d_{s_{j}}-1。以vj为根节点将Tanner图展开,把

    在其展开的树上能达到l层的校验节点集合记为N_{v_{j}}^{l},与之相应的补集为\bar{N_{v_{j}}^{l}},有\bar{N_{v_{j}}^{l}}= N_{c} \setminus N_{v_{j}}^{l}Nc为所有校验节点的集合。

    其展开过程如下图1-1所示。

     

                                   

                                                                                 图1-1  k层树图展开

    根据PEG算法[2][3]的思想,逐个地为每个变量节点选择合适的校验节点,然后在他们之间建立边,这里的索引从0开始,算法

    的具体步骤描述如下:

    1.1  选择一个变量节点vj(一般就按索引的顺序)。如果当前需要添加的是此节点的第0条边,则找到当前Tanner图中具有最低度

    数的校验节点ci,v和 c连起来就可得到此节点的第0条边E_{v_{j}}^{0}。如果变量节点vj已经 添加过边,则首先以vj为根节点把当前

    Tanner图展开为树图直到深度为l,如果发现\bar{N_{v_{j}}^{l}}\neq \varnothing 而\bar{N_{v_{j}}^{l+1}}\neq \varnothing,或者有集合N_{v_{j}}^{l}中的校验节点不再继续增加但N_{v_{j}}^{l}中的校验

    节点的数目仍小于全体校验节点数m, 就在\bar{N_{v_{j}}^{l}}中选取度数最低的校验节点与vj相连。

     

    1.2  重复步骤1.1)直到vj相连的边的条数等于所给定的vj的度数。

     

    1.3  重复步骤1.1) 1.2),直到所有变量节点的边都添加完毕。

           PEG算法构造的LDPC码能有效地减少短环的形成,但是其是一种随机化的构造方法,校验矩阵没有一定的结构和规律,

    因而在硬件实现的时候需要耗费大量的空间和资源,不利于实际的应用;同时无规律的校验矩阵也不能实现快速编码,造成复

    杂度高和效率低下。Li提出了可以构造准循环LDPC码的PEG算法[4],要构造一个维数是m × n,子矩阵维数为L × L的准循环

    LDPC校验矩阵,首先把变量节点和校验节点按每组L个节点进行分组,这样可以得到R组校验节点和C组变量节点,其中

    R = m / LC = n / L。在这个的基础上,Liu等人也做出了深入的研究,初步提出了一种基于PEG的伪随机构造算法[5]。经过深

    入探讨与研究他们提出了一种构造准循环LDPC码的方法,该方法也结合了PEG算法,在保持准循环特性的基础上能够获得比

    PEG算法更佳的译码性能,并且可以灵活地选择码长和码率[6],这里称为QC-PEG算法, 其在添加边时将节点按顺序分组,每

    组包含L个节点,只需要确定一组中的一个节点,那么其它节点所连接的边就可以通过循环移位的特性确定。

            QC-PEG引入一个称之为不可靠因数的系数β用来评估一个节点信息的可靠程度。一个节点的不可靠因数β值越大,表明该

    节点的信息就越不可靠。很容易可以知道,一个节点的β值的大小和节点所参与的环的数目以及相应的环长的大小是密切相关

    的。一个节点参与的环的数目越多,且长度越短,该节点的β值就越大,那么这个算法里给出的β值的计算方法就可以表示为

                                                                                                              (1-1)

    其中,l_{i}为第i个环的长度,k为该节点参与的环的个数。从节点的不可靠系数β出发,该算法还给出了一个环的不可靠因数α的定

    义:α为组成该环所有节点的不可靠因数β之和。在选取合适的校验节点给当前变量节点vj连接新的边的过程中,如果在变量节

    vj和某个校验节点ci之间已经连接过了一条边,那么在校验节点集合Cd中的任何节点都不能和变量节点vj相连,这个集合称为与检验节点ci关联的受限节点集合,其中,每一个检验节点都有一个对应的

    Cd。接下来,将以变量节点vj所在的关键列为例,具体阐述如何确定与vj相连的校验节点,其具体过程如下:

    1. )为变量节点vj添加第一条边时,在当前已构建的Tanner图中寻找度数最小的校验节点ci,连接变量节点vj和校验节点ci这两个节点就可以得到第一条边。在添加变量节点vj的其它边时,以vj为节点将当前Tanner图展开到深度l,如果集合包含节点数停止增长但仍然小于校验节点总数,则ci中随机取一个后与vj相连。如果集合但是,则把校验节点集合定义为F1,如果F1中的校验节点的数目不唯一,那么执行步骤2)。
    2. )考虑到vj添加的当前边也会对将添加的下一条边有影响,集合F1中不同的校验节点和vj相连时产生的当前短环和对vj添加下一条边也会产生影响。把F1中每一个校验节点与vj尝试相连,然后在此基础上再尝试对vj添加下一条边,不断尝试,直到选出F1中使得当前Tanner图形成的本地围长最大且短环数目最少的校验节点组成校验节点集合F2。
    3. )在环不可避免的情况下,选取使得环的外信息度数最高的节点。找出校验节点集合F2中每个节点和vj相连时所形成的环,并计算这些环的外信息度数同时进行比较,将使得形成的环的外信息度数最小的校验节点放入一个新的集合F3。
    4. )对于校验节点集合F3中的节点,搜索出F3中每个校验节点和vj相连时所形成的环,计算每个环的不可靠因数,然后从中选取使得最小的校验节点组成校验节点集合F4。最后从F4中任意选取一个校验节点和vj相连。

           对Tanner图对应校验矩阵中的所有关键列都进行以上的步骤,直到所有的关键列都确定,然后通过准循环性质就可以确定

    整个Tanner图和校验矩阵了。

    2. 基于代数方法的结构化构造

     

            准循环LDPC码更多地是以代数方法构造的[6][7][8],一般都是基于有限域和矩阵论的,具有较强的理论性,虽然每个代数

    构造方法略有不同,但基本原理是一致的,这里简述其一般过程。

           给定有限域GF(q),为GF(q)的一个本原元,则本原元的幂次,即,给定了GF(q)上的q个元素。设P为一个大小为的循环置

    换矩阵,其第0行为一个长度为取值在GF(2)上的向量(0,1,0,,0),此向量的第1个元素为“1”,其它都是“0”。P的其它行都是上一

    行的循环右移向量。P即由(0,1,0,,0)以及(0,1,0,,0)的(q – 2)个循环右移向量组成,\mathbf{P}^{i}=\mathbf{P\times P\times\cdots \times P}iP的乘积,称为

    Pi次幂,这里1\leqslant i< q\mathbf{P}^{i}也是一个大小为\left ( q-1 \right )\times \left ( q-1 \right )的循环置换矩阵,且其首行的向量的第i个元素为“1”。特别

    地,P^{q-1}即为单位阵\mathit{\mathit{\mathbf{I}_{q-1}}}。令,则(q – 1)个循环置换矩阵构成的集合构成了一个(q – 1)阶的GF(2)上的

    矩阵乘法循环群,\mathbf{P}^{i}的乘法逆元为\mathbf{P}^{q-1-i}\mathbf{P}^{0}为单位元。

           对0\leqslant i< q-1,可用表示GF(q)的非零元\alpha ^{i},将\mathbf{P}^{i}映射为 \alpha ^{i}的操作就是前面介绍过的矩阵的分散。\mathbf{P}^{i}与非零 \alpha ^{i}之间有

    一个一一对应的关系。GF(q)中的元素0则对应全零矩阵,记为\mathbf{P}^{-\infty }

          考虑GF(q)上 R\times C的基矩阵,

                           

          其行满足以下约束:对,任意两个qn长序列 \alpha ^{^{c}}\mathbf{\omega _{i}}\alpha ^{^{l}}\mathbf{\omega _{j}}之间的

    Hamming距离至少为(n – 1)。这个约束称为行距 (row-distance, RD)约束,满足此约束的基矩阵W称为行距约束矩阵。通过将

    基矩阵W中的各个GF(q)的元素映射为对应的循环置换矩阵,就能得到最终的R\left ( q-1 \right )\times C\left ( q-1 \right )的奇偶校验矩阵H。由满足

    行距约束的W分散得到的H中不存在4环。H的零空间给定了一个长度为R(q – 1),其码率至少为(R – C) / C。在文献[5]中,归纳

    了几种满足行距约束的校验矩阵的构造方法,通过这些行距约束矩阵以及分散操作,可以构造得到几类常见的准循环LDPC码,

    这里不再赘述。

     

     

    • 参考文献

    [1]  X. Y. Hu, E. Eleftheriou, and D. M. Arnold. Progressive edge-growth Tanner graphs [C]. IEEE Global Telecommunications Conference, San Antonio, TX, USA, Nov. 2001, 2: 995-1001.

    [2]  X. Y. Hu, E. Eleftheriou, and D. M. Arnold. Regular and irregular Progressive edge-growth Tanner graphs [J]. IEEE Transactions on Information Theory, Jan. 2005, 51(1): 386-398.

    [3]  Y. Fang, P. Chen, L. Wang, and F. C. M. Lau. Design of Protograph LDPC Codes for Partial Response Channels [J]. IEEE Transactions on Communications, Oct. 2012, 60(10): 2809-2819.

    [4]  X. Liu, W. Zhang, and Z. Fan. Construction of quasi-cyclic ldpc codes and the performance on the pr4-equalized MRC channel [J]. IEEE Transactions on Magnetics, Oct. 2009, 45(10): 3699-3702.

    [5] Y.-M. Lin, H.-T. Li, M.-H. Chung, and A.-Y. Wu. Byte-Reconfigurable LDPC Codes Design With Application to High-Performance ECC of NAND Flash Memory Systems [J]. IEEE Transactions on Circuits and Systems I: Regular Papers, July 2015, 62(7): 1794-1804.

    展开全文
  • 数据结构(C++)有关练习题

    热门讨论 2008-01-02 11:27:18
    注:可用C或C++编写。 4、用邻接矩阵或邻接图实现一个有向图的存储,并实现单源最短路径算法的实现(这个类的一个成员函数),并能输出该图的关键路径。 注:1、要用面向对象的方法设计代码; 2、一个图...
  • 操作系统中的P-V操作(转)

    千次阅读 2018-06-13 20:10:00
    信号量是最早出现的用来解决进程同步与互斥问题的机制(也可实现进程通信),包括一个称为信号量的变量及对它进行的两个原语操作。信号量为一个整数,我们设这个信号量为:sem。...p操作和v操作是不可中断的程序段,...
  • 详解 P沟道mos管与N沟道mos管

    万次阅读 多人点赞 2019-07-31 17:15:03
    1、P沟道mos管作为开关,栅源的阀值为-0.4V,当栅源的电压差为-0.4V就会使DS导通,如果S为2.8V,G为1.8V,那么GS=-1V,mos管导通,D为2.8V 如果S为2.8V,G为2.8V,VGSw 那么mos管不导通,D为0V, 所以,如果2.8V...
  • 初步接触,定有不足之处,请各位不吝赐教。谢谢! 首先介绍:信号量 其包括整形信号量、结构型信号量、二值信号量。 整形信号量:最初,将信号量定义为...2、只能由PV两个操作来访问信号量。 P操作最初源于荷兰语p...
  • PV操作经典问题

    千次阅读 2019-01-16 16:29:08
    1.设有一台计算机,有两条I/O通道,分别接一台卡片输入机和一台打印机。...P进程:负责从缓冲区B1中取到信息并加工处理,送到缓冲区B2 C进程:负责从缓冲区B2中取到信息,在打印机上打印 (2)假设B1缓冲区大...
  • 详解,N沟道MOS管和P沟道MOS管

    万次阅读 多人点赞 2018-10-31 15:58:30
    1、P沟道mos管作为开关,栅源的阀值为-0.4V,当栅源的电压差为-0.4V就会使DS导通,如果S为2.8V,G为1.8V,那么GS=-1V,mos管导通,D为2.8V 如果S为2.8V,G为2.8V,VGSw 那么mos管不导通,D为0V, 所以,如果2.8V...
  • 进程间同步与互斥:PV原语操作

    千次阅读 2019-06-16 21:44:31
    每个程序中实现互斥的PV操作必须成对出现,先做P操作(进临界区),后做V操作(出临界区)。若有多个分支,要保证其成对出现 PV操作应分别紧靠临界区的头尾部,临界区的代码应尽可能短,不能有死循环 互斥...
  • 信号量PV操作

    千次阅读 2018-03-11 16:57:00
    P,V原语中P是荷兰语的Passeren,相当于英文的pass, V是荷兰语的Verhoog,相当于英文中的incremnet。 且在P,V愿语执行期间不允许有中断的发生。 对于具体的实现,方法非常多,可以用硬件实现,也可以用软件实现。 这种...
  • Matlab 矩阵运算

    千次阅读 2014-09-11 10:52:20
    n*p 矩阵,则 C=A*B 为 m*p 矩阵。 (3)  矩阵除法   在 MATLAB 中,有两种矩阵除法运算: / 和 / ,分别表示左除和右除。如果 A 矩阵是非奇异方阵,则 A/B 和 B/A 运算可以实现。 A/B 等效于 A 的逆左乘 B ...
  • 很多同学安装了win10专业版系统,Win10专业版无疑是win10中最受欢迎的系统之一,但是很多同学的win10专业版...今天小编给大家分享一些最新可用密钥,希望能帮到大家,如果密钥失效或者不能用,可以联系小编vx: xia...
  • N沟道MOS管和P沟道MOS管

    万次阅读 2018-08-10 09:31:19
    金属氧化物半导体场效应(MOS)晶体管可分为N沟道与P沟道两大类,P沟道硅MOS场效应晶体管在N型硅衬底上有两个P+区,分别叫做源极和漏极,两极之间不通导,柵极上加有足够的正电压(源极接地)时,柵极下的N型硅表面呈现P...
  • [Matlab]FIR滤波器设计:(基本窗函数FIR滤波器设计)

    万次阅读 多人点赞 2019-11-16 00:54:00
    可用下式子表示: h ( n ) = h d ( n ) ∗ w ( n ) h(n) = h_d(n)*w(n) h ( n ) = h d ​ ( n ) ∗ w ( n ) 式中, w ( n ) w(n) w ( n ) 为截取函数,又称为穿函数。如果窗函数为矩形序列,则称之为矩形窗。窗...
  • kubeadm部署kubernetes v1.14.1高可用集群

    万次阅读 2019-04-27 10:59:37
    可用简介 kubernetes高可用部署参考: https://kubernetes.io/docs/setup/independent/high-availability/ https://github.com/kubernetes-sigs/kubespray https://github.com/wise2c-devops/breeze ...
  • //定义信号量并确定初值进程A::P(S);CS1;V(S);;进程B::P(S);CS2;V(S);:2.同步:舍友进程A和进程B,要求进程A的输出结果成为进程B的输入信号,即进程B必须在进程A执行完毕之后才能执行。semaphore S=0;...
  • [操作系统]简单理解PV操作

    万次阅读 多人点赞 2015-03-03 22:33:17
    先得上树取下盏灯(调用一次P) 取下一个去敲门(S=S-1) 如果树上没有灯取(S) 树说暂时欠你一盏灯(S为负时) 进程没辙只好在门外边排队等(WAIT(S)) 得灯的进程继续运行运行完了要出门(调用一次V) 马上还...
  • P操作和V操作

    千次阅读 2014-04-25 16:41:53
    先得上树取下盏灯(调用一次P) 取下一个去敲门(S=S-1) 如果树上没有灯取(S) 树说暂时欠你一盏灯(S为负时) 进程没辙只好在门外边排队等(WAIT(S)) 得灯的进程继续运行运行完了要出门(调用一次V) 马上还...
  • 信号量P/V操作

    千次阅读 2014-05-26 19:08:47
    1,信号量s是具有非负整数值的全局变量,只能由两种特殊的操作来处理,这两种操作称为PVP(s):如果s是非零的,那么P将s减1,并且立即返回。如果s为零,那么就挂起这个线程,直到s变为非零,而一个V操作会重启...
  • harbor1.4.0高可用部署

    千次阅读 2018-03-21 16:46:21
    docker run -d --restart=always -e MYSQL_ROOT_PASSWORD=123456 -v /dcos/harbor-ha/mariadb:/var/lib/mysql:z -p 3306:3306 --name mariadb vmware/mariadb-photon:10.2.10 docker run -d -e POSTGRES_PASSWORD=...
  • 答: 在选择 Python 的时候,一定要先考虑清楚自己学习 Python 的目的是什么,打算做哪方面的开发,有哪些扩展库可用,这些扩展库最高支持哪个版本的 Python ,是 Python 2.x 还是 Python 3.x ,最高支持到 Python...
  • 最新win10和office2016,office2019密钥实时更新

    万次阅读 多人点赞 2019-05-20 17:08:44
    [Key]:6TCQ3-NBBJ2-RTJCM-HFRKV-G6PQV [Key]:CGGR9-NQYC7-KRRGM-K4Y8J-XW3K7 [Key]:3GXXR-NT7BJ-9DRBB-M9FYC-CKCQV Office 2016 Visio Pro Retail 版激活密钥: [Key]:VPKCP-96NGG-6888Q-3FTVY-43KY...
  • 雷达系统 学习笔记(四)——脉冲多普勒雷达1

    万次阅读 多人点赞 2018-05-16 20:39:59
    ④中PRF系统相当于用高速目标的检测能力换取低速目标的更好检测,因此,如果只有一个系统可用的话,战斗机或截击机应用雷达更愿意采用中PRF系统。 ⑤与高PRF系统相比,可获得更好的距离精度和距离分辨力。 ⑥...
  • down, up, sem_p, sem_v, sem_wait, sem_post 的区别 Linux进程间通信——使用信号量 down和up函数在内核源代码的semaphore.h里。 你可以看一下/usr/src/内核的版本/include/linux里的源文件。 引入linux/...
  • MySQL高可用集群搭建 ----- MHA

    千次阅读 2019-09-15 15:05:07
    一、何为高可用? 高可用性说白了就是应用可以 持续不间断 的 提供服务的能力! 注: 高可用和负载均衡的概念有些初学者可能会混淆,在这也说说负载均衡: 负载均衡:指后端服务器没有状态,可以任意分配,它们...
  • 进程间同步与互斥---信号量P,V操作

    万次阅读 2010-05-19 13:52:00
    P1:生产一个产品----->P(S1)--->P(S)--->产品送缓冲区--->V(S)---->V(S2) P2:P(S2)------>P(S)--->从缓冲区取出一个产品----->V(S)----->V(S1)----->消费     附上在Windows和Unix平台使用信号量的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 166,287
精华内容 66,514
关键字:

npv可用