过滤器基础知识--过滤器的类型和特性
滤波器是什么?
滤波器是对波进行过滤的器件,一般有两个端口,一个输入信号、一个输出信号。可以说它是重要的电子元器件,滤波器把电源功率传输到设备上,大大衰减经电源传入的EMI电磁干扰信号,保护设备免受其害;同时,又能有效地控制设备本身产生的EMI信号,防止它进入电网,污染电磁环境,危害其他设备。那么滤波器的工作原理是如何的?作用又是什么呢?海翎光电的小编将在本文将介绍滤波器的原理、滤波概念以及作用。
1.基本原理
滤波器是由电感和电容组成的低通滤波电路所构成,它允许有用信号的电流通过,对频率较高的干扰信号则有较大的衰减。由于干扰信号有差模和共模两种,因此滤波器要对这两种干扰都具有衰减作用。其基本原理有三种:
(1)利用电容通高频隔低频的特性,将火线、零线高频干扰电流导入地线(共模),或将火线高频干扰电流导入零线(差模);
(2)利用电感线圈的阻抗特性,将高频干扰电流反射回干扰源;
(3)利用干扰抑制铁氧体可将一定频段的干扰信号吸收转化为热量的特性,针对某干扰信号的频段选择合适的干扰抑制铁氧体磁环、磁珠直接套在需要滤波的电缆上即可。
图2 滤波器形状
2.滤波的概念
滤波是信号处理中的一个重要概念,滤波电路的作用是尽可能减小脉动的直流电压中的交流成分,保留其直流成分,使输出电压纹波系数降低,波形变得比较平滑。
图3 滤波前后波形
一般来说,滤波分为经典滤波和现代滤波。
经典滤波是根据傅里叶分析和变换提出的一个工程概念,根据高等数学理论,任何一个满足一定条件的信号,都可以被看成是由无限个正弦波叠加而成。
换句话说,就是工程信号是不同频率的正弦波线性叠加而成的,组成信号的不同频率的正弦波叫做信号的频率成分或叫做谐波成分。只允许一定频率范围内的信号成分正常通过,而阻止另一部分频率成分通过的电路,叫做经典滤波器或滤波电路。
图4 滤波时域与频域图
在经典滤波和现代滤波中,滤波器模型其实是一样的(硬件方面的滤波器其实进展并不大),但现代滤波还加入了数字滤波的很多概念。
3.主要参数
通带带宽:指需要通过的频谱宽度,BW=(f2-f1)。f1、f2为以中心频率f0处插入损耗为基准。
带内波动(Passband Ripple):通带内插入损耗随频率的变化量。1dB带宽内的带内波动是1dB。
纹波(Ripple):指1dB或3dB带宽(截止频率)范围内,插损随频率在损耗均值曲线基础上波动的峰值。
延迟(Td):指信号通过滤波器所需要的时间,数值上为传输相位函数对角频率的导数,即Td=df/dv。
带内相位线性度:该指标表征滤波器对通带内传输信号引入的相位失真大小。按线性相位响应函数设计的滤波器具有良好的相位线性度。
插入损耗(Insertion Loss):由于滤波器的引入对电路中原有信号带来的衰耗,以中心或截止频率处损耗表征,如要求全带内插损需强调。
回波损耗(ReturnLoss):端口信号输入功率与反射功率之比的分贝(dB)数,也等于20Log10ρ,ρ为电压反射系数。输入功率被端口全部吸收时回波损耗为无穷大。
中心频率(CenterFrequency):滤波器通带的频率f0,一般取f0=(f1+f2)/2,f1、f2为带通或带阻滤波器左、右相对下降1dB或3dB边频点。窄带滤波器常以插损最小点为中心频率计算通带带宽。
截止频率(CutoffFrequency):指低通滤波器的通带右边频点及高通滤波器的通带左边频点。通常以1dB或3dB相对损耗点来标准定义。相对损耗的参考基准为:低通以DC处插损为基准,高通则以未出现寄生阻带的足够高通带频率处插损为基准。
带内驻波比(VSWR):衡量滤波器通带内信号是否良好匹配传输的一项重要指标。理想匹配VSWR=1:1,失配时VSWR>1。对于一个实际的滤波器而言,满足VSWR<1.5:1的带宽一般小于BW3dB,其占BW3dB的比例与滤波器阶数和插损相关。
阻带抑制度:衡量滤波器选择性能好坏的重要指标。该指标越高说明对带外干扰信号抑制的越好。通常有两种提法:一种为要求对某一给定带外频率fs抑制多少dB,计算方法为fs处衰减量;另一种为提出表征滤波器幅频响应与理想矩形接近程度的指标——矩形系数(KxdB>1),KxdB=BWxdB/BW3dB,(X可为40dB、30dB、20dB等)。滤波器阶数越多矩形度越高——即K越接近理想值1,制作难度当然也就越大。
4.作用
(1)将有用的信号与噪声分离,提高信号的抗干扰性及信噪比;
(2)滤掉不感兴趣的频率成分,提高分析精度;
(3)从复杂频率成分中分离出单一的频率分量。
图5 滤波器外形
5.使用
为了提高电源的品质、电路的线性、减少各种杂波和非线性失真干扰和谐波干扰等均使用滤波器。对武器系统来讲,使用滤波器的场所有:
(1)除总配电系统和分配电系统上设置电源滤波器外,进入设备的电源均要安装滤波器,最好使用线至线滤波器,而不使用线至地滤波器。
(2)对脉冲干扰和瞬变干扰敏感的设备,使用隔离变压器供电时,应在负端加装滤波器。
(3)对含电爆装置的武器系统供电时,应加滤波器。必要时,电爆装置的引线也要加装滤波器。
(4)各分系统或设备之间的接口处,应有滤波器抑制干扰,确保兼容。
(5)设备和分系统的控制信号,其输入和输出端均应加滤波器或旁路电容器。
以上海翎光电的小编总结了滤波器的原理、滤波概念、参数、作用以及使用注意事项。滤波器种类繁多,各种滤波器具有不同的性能特点,因此在滤波器选择时,通常需要综合考虑客户的实际使用环境以及客户性能需求才能做出正确、有效、可靠的选择。
一. 模拟滤波器与数字滤波器
根据滤波器的作用对象是模拟信号还是数字信号可将滤波器分为模拟滤波器和数字滤波器。
模拟滤波器处理模拟信号,它通常由电阻、电感、电容、运放等模拟元器件构成,在电路中位于ADC前端。
数字滤波器处理数字信号,它位于ADC后端,本质上来说,它是一种数字算法,最简单的像均值滤波,将多个数值取平均值,就可以滤除信号中偶尔出现的尖峰。
下图展示了模拟滤波器与数字滤波器的一些基本特征。
数字滤波器的优点:
1.可编程。数字滤波器本身就是通过编程实现的,它的滤波算法有一组系数和工作时钟频率,通常这两者都能很方便的调整,从而改变滤波效果,所以,如果应用中有实时更改滤波参数的需求,那么数字滤波器是个好选择。
2.可重复。数字滤波器是一段运行在控制芯片中的程序,它不会随着时间、温度、压力等外部环境因素的变化而变化,所以数字滤波的特性是非常稳定的,换句话说,数字滤波器在不同条件下的性能完全相同。
3.FIR(Finite Impulse Response,有限冲激响应)滤波器(又称非递归型滤波器)具有恒定的延迟。数字滤波器分为FIR滤波器与IIR(infinite impulse response,无限冲击响应)滤波器(又称非递归滤波器)。其中,FIR滤波器因其架构特点,保证了不同频率的信号通过FIR滤波器后的延时相同,信号不失真。模拟滤波器当然也有信号不失真的要求,但需要精心设计,且只能接近不失真,而不像FIR滤波器那样,不失真是其固有特性。
模拟滤波器的优点:
1.没有混叠。数字滤波器需要ADC先将模拟信号转换为数字信号,如果模拟信号中有超过ADC采样频率一半(此频率称为奈奎斯特频率,Nyquist frequency)的信号通过ADC,那么采样后的离散数字信号就不能完全还原出原本的模拟信号,这是采样定理的描述。数字滤波器无法区别较低频率的信号与超过奈奎斯特频率的信号,所以它不像期望的那样滤除超过奈奎斯特频率的信号,这导致信号产生混叠。对于模拟滤波器,不存在采样环节,就不存在离散信号还原连续信号的环节,自然不存在混叠现象,这是模拟滤波器的优点之一。
2.不占用计算资源,实现简单。模拟滤波器通常只需要电阻、电感、电容、运放等少量元器件即可搭建完成,实现起来比较简单,而且它不需要控制芯片参与,节约计算资源。
3.降低对ADC的要求。显然,如果采用数字滤波,像低通滤波,那么高频的信号同样需要被ADC采样到,这样才能数字滤波,但是如果在ADC前端先采用模拟滤波,则进入ADC的信号频率就会降低,ADC的采样速率和带宽都可以降低,这样就可以使用更廉价的ADC。
对比着看,数字滤波的优点其实对应模拟滤波的缺点,模拟滤波的优点又对应数字滤波的缺点。通常,我们模拟数字两种滤波都会用,共同实现需要的滤波效果。
二. 无源滤波器与有源滤波器
模拟滤波器按滤波电路过程是否需要电源参与可分为无源滤波器和有源滤波器。无源滤波器由无源器件构成,通常是电阻、电感、电容。有源滤波器由电阻、电容和运放构成,一般不包含电感。所以,也可以说电路中包含运放的是有源滤波器,不包含运放的是无源滤波器。
下图展示了典型的有源滤波器与无源滤波器。
有源滤波器的优点:
1.输出阻抗低。驱动后级电路能力强。因为,有源滤波器的输出是滤波器的输出端,所以输出阻抗低。
2.可以加增益。运放的常用功能,结合滤波电路部分,可实现在滤波的同时放大滤波后的信号。
3.不需要电感。电感的误差通常较大,且低频电感的体积也较大,而有源滤波器不需要电感,所以更适合用在频率较低的信号滤波场合。
无源滤波器的优点:
1.可以对电源进行滤波。有源滤波器仅能处理信号,它无法传递输入电源的能量,所以电源滤波器都是无源滤波器。
2.结构简单且廉价。无源滤波器结构相对有源滤波器来说更简单。
3.对高频信号(10MHz以上)的处理能力强。有源滤波器要求运放的带宽是截止频率的100倍左右,当要处理的信号频率到达10MHz或者更高时,就需要GHz的运放,这种运放在市场上通常难以找到且价格很高,所以有源滤波器难以处理10MHz以上的高频信号。无源滤波器处理高频信号则很轻松,因为当频率很高时,只需要uH甚至nH等级的小电感,所以无源高频滤波器可以做得小巧好用且成本低。
对比着看,有源滤波的优点其实对应无源滤波的缺点,无源滤波的优点又对应有源滤波的缺点。
需要说明的是,现在有一种有源电力滤波器(APF:Active power filter),它利用注入反向谐波的方法来抑制谐波,调整功率因数。电源电流并不流过此滤波器,它本质上是一种消波控制方法。它并不在我们讨论的有源滤波器范畴中。
三. 按幅频特性划分滤波器
3.1 低通滤波器
低通滤波器,Low Pass Filter,缩写LPF。它的特性是允许频率低于某一频率的信号通过,衰减高于此频率的信号。它的幅频特性曲线如下图所示。
最简单的低通滤波器就是RC低通滤波器,其电路图与伯德图如下图所示。
可见,低频滤波器的截止频率fc对应以dB为单位的幅频特性曲线上-3dB的点对应的频率,-3dB = 20lg(0.5)即对应幅值衰减为原来的1/2。当信号频率 < 截止频率时,信号几乎无损通过;当信号频率 > 截止频率时,信号开始衰减,且越远离截止频率衰减越大。当然,这里的电阻电容是理想的,当考虑寄生参数时,此滤波器的频率特性就会改变,对高频的滤波效果会变差,但此博文海翎光电的小编不讨论这一点。
3.2 高通滤波器
高通滤波器,How Pass Filter,缩写HPF。它的特性是允许频率高于某一频率的信号通过,衰减低于此频率的信号。它的幅频特性曲线如下图所示。
最简单的高通滤波器就是RC高通滤波器,其电路图与伯德图如下图所示。
其实,此高通滤波器就是将上述低通滤波器的RC调换位置,两个滤波器的截止频率相同,计算公式均为fc = 1/(2πRC)。当信号频率 > 截止频率时,信号几乎无损通过;当信号频率 < 截止频率时,信号开始衰减,且越远离截止频率衰减越大。
3.3 带通滤波器
带通滤波器,Band Pass Filter,缩写BPF。它的特性是允许某一频段的信号通过。它的幅频特性曲线如下图所示。
最简单的带通滤波器就是RC低通滤波器与RC高通滤波器的串联组合,其电路图与伯德图如下图所示。
带通滤波器有两个截止频率,分别是低频截止频率fc1与高频截止频率fc2,带通滤波器仅允许fc1 ~ fc2这个频率段的信号通过。
3.4 带阻滤波器
带阻滤波器,Band Stop Filter,缩写BSF,又称陷波器(Notch Filter)。它的特性是不允许某一频段的信号通过。它的幅频特性曲线如下图所示。
最简单的带通滤波器就是RC低通滤波器与RC高通滤波器的并联组合,通过跟随器隔离阻抗,再通过同向加法器得到带阻滤波器,其电路图与伯德图如下图所示。
带阻滤波器有两个截止频率,分别是低频截止频率fc1与高频截止频率fc2,带阻滤波器仅不允许fc1 ~ fc2这个频率段的信号通过。
注意,上图约1MHz以后的波形也衰减了,这是因为所用的运放的带宽被设置为10MHz,它无法处理太高频率的信号。
3.5 全通滤波器
全通滤波器,All Pass Filter,缩写APF,也称为延时均衡器(delay equalizer)或移相器(phase shifter)。全通滤波器并不改变输入信号的频率特性,但它会改变输入信号的相位。它的幅频特性与相频特性曲线如下图所示。
一种一阶全通滤波器的电路图与伯德图如下图所示。
通过改变R1,C1的值或者调换R1,C1的位置即可改变此滤波器的相频特性。与上述的带阻滤波器相同,因为使用了运放,太高频的信号会因为运放带宽不够而衰减。
3.6 LTspice仿真工程分享
滤波器基础01——滤波器的种类与特性的LTspice仿真工程。
四. 按传递函数特性划分滤波器
由于理想滤波器的特性难以实现,实际使用的滤波器都是按某种函数形式来设计的,因此称其为函数型滤波器。函数型滤波器不是与低通或高通滤波器并列的某种新型滤波器,它只是换了一种分类依据,根据滤波器传递函数对应的函数特性来分类。所以,我们通常这样描述一个滤波器,如:有源巴特沃斯低通滤波器,指的是有源的,拥有巴特沃斯函数特性的低通滤波器。
几种流行的函数型滤波器的特点如下:
4.1 巴特沃斯滤波器
巴特沃斯滤波器,Butterworth filter,也被称为瓦格纳滤波器(Wagner filter)或最大平坦滤波器。这种滤波器最先由英国工程师斯蒂芬·巴特沃斯(Stephen Butterworth)在1930年发表在英国《无线电工程》期刊的一篇论文中提出的,因此得名。它的特点是通带内的频率响应曲线最大限度平坦,没有纹波,而在阻带则逐渐下降为零。
巴特沃斯滤波器是目前最有名也是使用最广泛的滤波器,它设计简单,性能没有明显缺点,因此能适应多种应用场合。如果你在选用哪种滤波器的时候拿不定主意,建议使用巴特沃斯滤波器,它通常是合适的。
4.2 切比雪夫滤波器
切比雪夫滤波器,Chebyshev filter, 也称为等起伏滤波器、等波纹滤波器 或 切比雪夫I型滤波器,这一称呼来源于这种滤波器的通带内衰减特性具有等波纹起伏这一显著特点。由此滤波器的过渡区域比巴特沃斯要短,即衰减得更快,代价是通带内有纹波。
切比雪夫滤波器的得名并不是因为此滤波器结构是切比雪夫发明的,而是因为切比雪夫推出了切比雪夫准则(Chebyshev criterion),利用此准则进行设计可使滤波器的最大通带纹波最小化。
由于允许通带内特性有起伏,因而其截止特性变陡峭了,但与之相伴的是其群延迟特性也变差了。因而,当切比雪夫型滤波器作为 A-D/D-A 变换器的前置或后置滤波器,或者作为数字信号的滤波器来使用时,就不能光考虑其截止特性是否满足使用要求,而是还要考虑它是否满足实际输入信号所允许波形失真范围的要求。
4.3 逆切比雪夫滤波器
还有一种切比雪夫滤波器,它与一般的切比雪夫滤波器不同,它的通带内没有纹波,但阻带内有纹波或者说是陷波点,所以,我们称它为逆切比雪夫滤波器,有时也称为切比雪夫II型滤波器 或是 巴特沃斯-切比雪夫滤波器,而一般的通带有纹波的则称为切比雪夫I型滤波器。
4.4 椭圆滤波器
椭圆滤波器,Elliptic filter,又称考尔滤波器(Cauer filter),是在通带和阻带等波纹的一种滤波器。椭圆滤波器相比其他类型的滤波器,在阶数相同的条件下有着最小的通带和阻带波动,它在通带和阻带的波动相同。由于通带内特性和阻带内特性都允许有起伏,因而椭圆函数型滤波器具有最好的截止特性,即衰减得最快。
椭圆滤波器对元件值的要求特别严格, 不经过调整是很难实现所要设计的滤波特性的。一般情况下,椭圆函数滤波器的制作,都要一边看测定器,一边调整电容器和电感线圈的值。
4.5 贝塞尔滤波器
贝塞尔滤波器,Bessel filter, 也称为汤姆逊滤波器(Thomson filter)。这种滤波器的特点是它的通带内群延迟特性最为平坦。由于群延迟特性平坦,因而这种滤波器能够无失真地传送 诸如方波、三角波等频谱很宽的信号。
贝塞尔滤波器也有缺点,就是它的衰减特性不好。
4.6 高斯滤波器
高斯滤波器,Gaussian filter, 高斯滤波器的特性与前一章所讲过的贝塞尔滤波器非常相似。二者的主要差别在于:贝塞尔滤波器的延时特性曲线在通带内特别平坦,并且是在进入阻带区以后才开始迅速趋近于零值的;而高斯型滤波器的延时特性曲线则是在通带内就开始缓慢变化,并且趋近于零值的速度较慢。
与贝塞尔滤波器一样,高斯滤波器的衰减特性也不好。
4.7 函数型滤波器总结与参考
各函数滤波器的特点如下图所示。
在最初设计或者不知道使用哪种函数型合适的情况下,可以选取巴特沃思滤波器。这种滤波器的衰减特性和相位特性都相当好,对构成滤波器的器件的要求也不甚严格,易于得到符合设计值的特性。
如果只对衰减特性有要求,可以选取切比雪夫滤波器。不过切比雪夫滤波器的相位特性不好,要注意它会使非正弦波信号波形失真的问题。
巴特沃思滤波器的特点是通带内比较平坦;切比雪夫滤波器的特点是通带内有等波纹起伏;逆切比雪夫滤波器的特点是阻带内有等波纹的起伏;椭圆函数滤波器的特点则是通带内和阻带内都有等波纹起伏。如果滤波特性中有起伏,滤波器的衰减特性截止区就比较陡峭。
贝塞尔滤波器的衰减特性很差,它的阻带衰减非常缓慢。但是,这种滤波器的相位特性好,因而对于要求输出信号波形不能失真(即不能有相位失真)的场合非常有用。
上一篇: 带通滤波器幅频特性图_滤波器知识,你想要的,都在这里
下一篇: 最佳摘要:27 种模拟电路基础知识!
推荐阅读
-
深入了解电容 (V):比较不同类型电容器的特性和选择电容器的基本原则
-
过滤器基础知识--过滤器的类型和特性
-
七种光纤类型和常见的 G652、G657 光纤特性
-
[Java 基础知识] Java 的四个类和八个基本类型
-
windows下进程间通信的(13种方法)-摘 要 本文讨论了进程间通信与应用程序间通信的含义及相应的实现技术,并对这些技术的原理、特性等进行了深入的分析和比较。 ---- 关键词 信号 管道 消息队列 共享存储段 信号灯 远程过程调用 Socket套接字 MQSeries 1 引言 ---- 进程间通信的主要目的是实现同一计算机系统内部的相互协作的进程之间的数据共享与信息交换,由于这些进程处于同一软件和硬件环境下,利用操作系统提供的的编程接口,用户可以方便地在程序中实现这种通信;应用程序间通信的主要目的是实现不同计算机系统中的相互协作的应用程序之间的数据共享与信息交换,由于应用程序分别运行在不同计算机系统中,它们之间要通过网络之间的协议才能实现数据共享与信息交换。进程间通信和应用程序间通信及相应的实现技术有许多相同之处,也各有自己的特色。即使是同一类型的通信也有多种的实现方法,以适应不同情况的需要。 ---- 为了充分认识和掌握这两种通信及相应的实现技术,本文将就以下几个方面对这两种通信进行深入的讨论:问题的由来、解决问题的策略和方法、每种方法的工作原理和实现、每种实现方法的特点和适用的范围等。 2 进程间的通信及其实现技术 ---- 用户提交给计算机的任务最终都是通过一个个的进程来完成的。在一组并发进程中的任何两个进程之间,如果都不存在公共变量,则称该组进程为不相交的。在不相交的进程组中,每个进程都独立于其它进程,它的运行环境与顺序程序一样,而且它的运行环境也不为别的进程所改变。运行的结果是确定的,不会发生与时间相关的错误。 ---- 但是,在实际中,并发进程的各个进程之间并不是完全互相独立的,它们之间往往存在着相互制约的关系。进程之间的相互制约关系表现为两种方式: ---- (1) 间接相互制约:共享CPU ---- (2) 直接相互制约:竞争和协作 ---- 竞争——进程对共享资源的竞争。为保证进程互斥地访问共享资源,各进程必须互斥地进入各自的临界段。 ---- 协作——进程之间交换数据。为完成一个共同任务而同时运行的一组进程称为同组进程,它们之间必须交换数据,以达到协作完成任务的目的,交换数据可以通知对方可以做某事或者委托对方做某事。 ---- 共享CPU问题由操作系统的进程调度来实现,进程间的竞争和协作由进程间的通信来完成。进程间的通信一般由操作系统提供编程接口,由程序员在程序中实现。UNIX在这个方面可以说最具特色,它提供了一整套进程间的数据共享与信息交换的处理方法——进程通信机制(IPC)。因此,我们就以UNIX为例来分析进程间通信的各种实现技术。 ---- 在UNIX中,文件(File)、信号(Signal)、无名管道(Unnamed Pipes)、有名管道(FIFOs)是传统IPC功能;新的IPC功能包括消息队列(Message queues)、共享存储段(Shared memory segment)和信号灯(Semapores)。 ---- (1) 信号 ---- 信号机制是UNIX为进程中断处理而设置的。它只是一组预定义的值,因此不能用于信息交换,仅用于进程中断控制。例如在发生浮点错、非法内存访问、执行无效指令、某些按键(如ctrl-c、del等)等都会产生一个信号,操作系统就会调用有关的系统调用或用户定义的处理过程来处理。 ---- 信号处理的系统调用是signal,调用形式是: ---- signal(signalno,action) ---- 其中,signalno是规定信号编号的值,action指明当特定的信号发生时所执行的动作。 ---- (2) 无名管道和有名管道 ---- 无名管道实际上是内存中的一个临时存储区,它由系统安全控制,并且独立于创建它的进程的内存区。管道对数据采用先进先出方式管理,并严格按顺序操作,例如不能对管道进行搜索,管道中的信息只能读一次。 ---- 无名管道只能用于两个相互协作的进程之间的通信,并且访问无名管道的进程必须有共同的祖先。 ---- 系统提供了许多标准管道库函数,如: pipe——打开一个可以读写的管道; close——关闭相应的管道; read——从管道中读取字符; write——向管道中写入字符; ---- 有名管道的操作和无名管道类似,不同的地方在于使用有名管道的进程不需要具有共同的祖先,其它进程,只要知道该管道的名字,就可以访问它。管道非常适合进程之间快速交换信息。 ---- (3) 消息队列(MQ) ---- 消息队列是内存中独立于生成它的进程的一段存储区,一旦创建消息队列,任何进程,只要具有正确的的访问权限,都可以访问消息队列,消息队列非常适合于在进程间交换短信息。 ---- 消息队列的每条消息由类型编号来分类,这样接收进程可以选择读取特定的消息类型——这一点与管道不同。消息队列在创建后将一直存在,直到使用msgctl系统调用或iqcrm -q命令删除它为止。 ---- 系统提供了许多有关创建、使用和管理消息队列的系统调用,如: ---- int msgget(key,flag)——创建一个具有flag权限的MQ及其相应的结构,并返回一个唯一的正整数msqid(MQ的标识符); ---- int msgsnd(msqid,msgp,msgsz,msgtyp,flag)——向队列中发送信息; ---- int msgrcv(msqid,cmd,buf)——从队列中接收信息; ---- int msgctl(msqid,cmd,buf)——对MQ的控制操作; ---- (4) 共享存储段(SM) ---- 共享存储段是主存的一部分,它由一个或多个独立的进程共享。各进程的数据段与共享存储段相关联,对每个进程来说,共享存储段有不同的虚拟地址。系统提供的有关SM的系统调用有: ---- int shmget(key,size,flag)——创建大小为size的SM段,其相应的数据结构名为key,并返回共享内存区的标识符shmid; ---- char shmat(shmid,address,flag)——将当前进程数据段的地址赋给shmget所返回的名为shmid的SM段; ---- int shmdr(address)——从进程地址空间删除SM段; ---- int shmctl (shmid,cmd,buf)——对SM的控制操作; ---- SM的大小只受主存限制,SM段的访问及进程间的信息交换可以通过同步读写来完成。同步通常由信号灯来实现。SM非常适合进程之间大量数据的共享。 ---- (5) 信号灯 ---- 在UNIX中,信号灯是一组进程共享的数据结构,当几个进程竞争同一资源时(文件、共享内存或消息队列等),它们的操作便由信号灯来同步,以防止互相干扰。 ---- 信号灯保证了某一时刻只有一个进程访问某一临界资源,所有请求该资源的其它进程都将被挂起,一旦该资源得到释放,系统才允许其它进程访问该资源。信号灯通常配对使用,以便实现资源的加锁和解锁。 ---- 进程间通信的实现技术的特点是:操作系统提供实现机制和编程接口,由用户在程序中实现,保证进程间可以进行快速的信息交换和大量数据的共享。但是,上述方式主要适合在同一台计算机系统内部的进程之间的通信。 3 应用程序间的通信及其实现技术 ---- 同进程之间的相互制约一样,不同的应用程序之间也存在竞争和协作的关系。UNIX操作系统也提供一些可用于应用程序之间实现数据共享与信息交换的编程接口,程序员可以通过自己编程来实现。如远程过程调用和基于TCP/IP协议的套接字(Socket)编程。但是,相对普通程序员来说,它们涉及的技术比较深,编程也比较复杂,实现起来困难较大。 ---- 于是,一种新的技术应运而生——通过将有关通信的细节完全掩盖在某个独立软件内部,即底层的通讯工作和相应的维护管理工作由该软件内部来实现,用户只需要将通信任务提交给该软件去完成,而不必理会它的具体工作过程——这就是所谓的中间件技术。 ---- 我们在这里分别讨论这三种常用的应用程序间通信的实现技术——远程过程调用、会话编程技术和MQSeries消息队列技术。其中远程过程调用和会话编程属于比较低级的方式,程序员参与的程度较深,而MQSeries消息队列则属于比较高级的方式,即中间件方式,程序员参与的程度较浅。 ---- 4.1 远程过程调用(RPC)
-
标题:一文搞定Redis面试,附Redis面试大纲+常见Redis面试题-一、基础篇 快速上手 ①. 什么是redis ②. 为什么使用redis ③. 安装 ④. 基本使用(常见数据结构的命令) Java操作redis ①. Jedis ②. SpringBoot 启动redis的方式 ①. 配置文件 ②. 生产环境启动方案 二、进阶篇 redis实现session共享 redis缓存的使用 ①. 注解式 ②. Spring Cache 数据库和缓存双写一致性问题——穿透 redis实现附近的人 redis实现计数器 redis事务 redis分布式锁的使用 redis集群 redis实现延时队列 redis实现限流 redis实现布隆过滤器 发布订阅 redis优化 三、原理篇 redis单线程为什么性能好 数据类型的底层实现 持久化机制 过期策略 内存淘汰 redis优化 哨兵模
-
南邮OJ Web任务大揭秘:层层挑战剖析 1. 挑战一:迷宫般的目录探索 题目作者似乎穷举了所有可能的目录组合,最终在404.php中的