TB852 3BSC950263R1 ABB TB852 RCU链路终结器

  • 产品ID:
    3BSC950263R1
  • ABB型号名称:
    TB852
  • 目录描述:
    TB852 RCU链路终结器
  • 详细描述:
    RCU林克的终结者。
分类:

电话:18059884797 (微信同号)

QQ:3095989363

山西润盛
(加微信咨询)
—————————————————————————
★一手货源,没有中间商赚差价!库存1个亿!
★只要是您想要的,我能帮您找到,价格最优!
★厂家原装,保证售后服务,所有产品质保1年!
————————————————————————— 今日有货

产品详情

技术说明:TB852 3BSC950263R1 ABB TB852 RCU链路终结器

TB852 3BSC950263R1 什么是RCU?是Read,Copy-Update的缩写,意指读-复制更新。是一种同步机制。其将同步开销的非对称分布发挥到逻辑极限,

RCU 基本概念

  • TB852 3BSC950263R1 读侧临界区 (read-side critical sections): RCU读者执行的区域,每一个临界区开始于rcu_read_lock(),结束于rcu_read_unlock(),可能包含rcu_dereference()等访问RCU保护的数据结构的函数。这些指针函数实现了依赖顺序加载的概念,称为memory_order_consume加载。
  • TB852 3BSC950263R1 写侧临界区:为适应读侧临界区,写侧推迟销毁并维护多个版本的数据结构,有大量的同步开销。此外,编写者必须使用某种同步机制(例如锁定)来提供有序的更新
  • TB852 3BSC950263R1 静默态(quiescent state): 当一个线程没有运行在读侧临界区时,其就处在静默状态。持续相当长一段时间的静默状态称之为延长的静默态(extended quiescent state)。
  • TB852 3BSC950263R1 宽限期(Grace period): 宽限期是指所有线程都至少A一次进入静默态的时间。宽限期前所有在读侧临界区的读者在宽限区后都会结束。不同的宽限期可能有部分或全部重叠。

TB852 3BSC950263R1 读者在读临界区遍历RCU数据。如果写者从此数据中移除一个元素,需要等待一个宽限期后才能执行回收内存操作。上述操作的示意图如下图所示,其中,标有read的框框为一个读临界区。

上图中,每一个读者、更新者表示一个独立的线程,总共4个读线程,一个写线程。 RCU更新操作分为两个阶段:移除阶段回收阶段。两个阶段通过宽限期隔开。更新者在移除元素后,通过synchronize_rcu()原语,初始化一个宽限期,并等待宽限期结束后,回收移除的元素。 1. 移除阶段:RCU更新通过rcu_assign_pointer()等函数移除或插入元素。现代CPU的指针操作都是原子的, rcu_assign_pointer()原语在大多数系统上编译为一个简单的指针赋值操作。TB852 3BSC950263R1 移除的元素仅可被移除阶段(以灰色显示)前的读者访问。 2. 回收阶段:一个宽限期后, 宽限期开始前的原有读者都完成读操作,因此,此阶段可安全释放由删除阶段删除的元素。一个宽限期可以用于多个删除阶段,即可由多个更新程序执行更新。 此外,跟踪RCU宽限期的开销可能会均摊到现有流程调度上,因此开销较小。对于某些常见的工作负载,宽限期跟踪开销可以被多个RCU更新操作均摊,从而使每个RCU更新的平均开销接近零。

临界区指的是一个访问共用资源(例如:共用设备或是共用存储器)的程序片段,而这些共用资源又无法同时被多个线程访问的特性。当有线程进入临界区段时,其他线程或是进程必须等待(例如:bounded waiting 等待法),有一些同步的机制必须在临界区段的进入点与离开点实现,以确保这些共用资源是被互斥获得使用,例如:semaphore。只能被单一线程访问的设备,例如:打印机。

读者提供一个信号告诉写者什么时候可以安全执行销毁操作,但是这个信号可能是被延时的,允许多个读侧临界区使用一个信号。RCU通常通过一个非原子地增加本地计数器告诉写者,这种操作开销非常小。另外,RCU中没有指定写者是否并行。

TB852 3BSC950263R1

TB852 3BSC950263R1 What is RCU? It is an abbreviation of Read, Copy-Update, which means read-copy update. It’s a synchronization mechanism. It takes the asymmetric distribution of synchronization overhead to its logical limit,
Basic concepts of RCU
TB852 3BSC950263R1 read side critical sections: Each critical section begins with rcu_read_lock() and ends with rcu_read_unlock(), and may contain functions such as rcu_dereference() that access RCU-protected data structures. These pointer functions implement the concept of dependent sequential loading, called memory_order_consume loading.

TB852 3BSC950263R1 Write side critical section: In order to accommodate the read side critical section, the writer delays destroying and maintaining multiple versions of the data structure, which has a lot of synchronization overhead. In addition, the writer must use some kind of synchronization mechanism, such as locking, to provide ordered updates.

TB852 3BSC950263R1 quiescent state: When a thread is not running the read-side critical section, it is silent. A state of silence that lasts for a considerable period of time is called an extended quiescent state.

TB852 3BSC950263R1 Grace period: The grace period is the time during which all threads go silent at least once. All readers reading the critical section before the grace period will end after the grace period. Different grace periods may overlap in part or in whole.

TB852 3BSC950263R1 Reader reading critical section traverses RCU data. If the writer removes an element from this data, a grace period is required before the memory reclaim operation can be performed. The diagram of the above operations is shown below, where the box marked read is a read critical section.
In the figure above, each reader and updater represents a separate thread, a total of four read threads and one write thread. The RCU update operation is divided into two phases: the remove phase and the reclaim phase. The two phases are separated by a grace period. After the element is removed, the updater initializes a grace period using the synchronize_rcu() primitive, waits for the grace period to end, and reclaims the removed element. 1. Removal phase: RCU updates remove or insert elements with functions such as rcu_assign_pointer(). Pointer operations on modern cpus are atomic, and the rcu_assign_pointer() primitive compiles to a simple pointer assignment operation on most systems. Elements removed by TB852 3BSC950263R1 can only be accessed by readers prior to the removal stage (shown in gray). 2. Recycle stage: After a grace period, the original readers before the grace period have completed the reading operation, so this stage can safely release the elements deleted by the delete stage. A grace period can be used for multiple deletion phases, and updates can be performed by multiple updaters. In addition, the overhead of tracking the RCU grace period may be spread evenly over the existing process schedule, so there is less overhead. For some common workloads, grace trace overhead can be spread evenly across multiple RCU update operations, bringing the average overhead per RCU update close to zero.
A critical section is a feature of a program segment that accesses a shared resource (such as a shared device or shared memory) that cannot be accessed by multiple threads at the same time. When a thread enters a critical section, other threads or processes must wait (for example, bounded waiting method), and some synchronization mechanism must be implemented at the entry and exit points of the critical section to ensure that the shared resources are mutually exclusive and available, such as semaphore. A device that can only be accessed by a single thread, such as a printer.

The reader provides a signal telling the writer when it is safe to perform the destroy operation, but this signal may be delayed to allow multiple read-side critical sections to use a signal. RCU usually tells the writer by a non-atomic increment of the local counter that this operation has very little overhead. In addition, RCU does not specify whether the writer is parallel.

▲更多相关型号:TB852 3BSC950263R1 ABB TB852 RCU链路终结器

MITSUBISHI A1S61PN GE SR750-P5-G1-S1-HI-A20-R BENTLY 3500/15 127610-01
MITSUBISHI A1SJ51T64 ABB 5SHX1445H0002 3BHL000387P0101 BENTLY 3500/05-01-02-00-00-01
MITSUBISHI A1S68DAV ABB PFTL101B 5.0KN 3BSE004191R1 ABB KUC711AE01 3BHB004661R0001
ABB REF615C_E HCFDACADABC2BAN11E KOKUSAI CXP-544A KOMS-A2 ABB KUC711AE101 3BHB004661R0101
REXRTOH SYHNC100-NIB-22a/W-24-P-D-E23-A012 SCHNEIDER 140CPU67160 ABB KUC711AE 3BHB004661R0001
REXRTOH SYHNC100-NIB-22a/W-24-P-D-E24-A012 KOKUSAI BALEXT-SMP 1 ABB 07KT98 H2 GJR5253100R0278
REXRTOH SYHNC100-NIB-23/W-24-P-D-E23-A012 KOKUSAI CXP-544A KOMS-A2 ABB 07KT98 GJR5253100R4278
A-B 80026-044-06-R ABB CI546 3BSE012545R1 ABB 07KT98C GJR5253100R028
kongsberg RMP420 ABB UBC717BE101 3BHE021887R0101 ABB 07KT97 GJR5253000R4270
BENTLY 130539-30 ABB UFC721BE101 3BHE021889R0101 GE  IC754VSI06STD-LH
KOLLMORGEN S21260-SRS ABB PPC380AE01 HIEE300885R0001 EMERSON KJ1710X1-BA1
Woodward 2301E 8273-1011 ABB UFC718AE01 HIEE300936R0001 Woodward 9907-019
BENTLY 3500/22M ABB UFC719AE01 3BHB003041R0001 3BHB000272R0001 Rolls-Royce      SLIO 02

本篇文章出自厦门雄霸电子商务有限公司漳州分公司官网,转载请附上此链接: http://www.xiongbagk.cn/