Bakery算法中寄存器溢出的避免
Avoiding Register Overflow in the Bakery Algorithm
摘要:
计算机系统被设计为使资源对用户可用,并且用户可能对某些资源比其他资源更感兴趣,因此,需要协调方案来满足用户的需求。该方案可以实现某些策略,诸如“从不分配多于X个单元的资源Z”。一个特别令人感兴趣的策略是用户不能同时访问单个资源,这被称为互斥问题。资源管理涉及用户的协调和协作,通常基于决策。在互斥的情况下,这个决定是关于授予对资源的访问权。因此,互斥对于支持资源访问管理是有用的。互斥问题的第一个真正的解决方案被称为面包房算法,它不依赖于任何低级互斥。我们研究的问题寄存器溢出在现实世界中实现的面包店算法,并提出了一个变种算法面包店++,防止溢出发生。Bakery++避免了溢出,不允许一个进程写入其他进程的内存,也不需要使用额外的内存或复杂的算术或重新定义Bakery中使用的操作和函数。Bakery++几乎和Bakery一样简单,并且可以直接在实际系统中实现。使用Bakery++,没有理由在真实的计算机中继续实现Bakery,因为Bakery++消除了溢出的可能性,因此它比Bakery更实用。以前规避寄存器溢出问题的方法包括引入新变量或重新定义原始Bakery算法中使用的操作或函数,而Bakery++通过使用简单的条件语句来避免溢出。(the抽象并没有在这里结束)。
英文摘要:
Computer systems are designed to make resources available to users and users may be interested in some resources more than others, therefore, a coordination scheme is required to satisfy the users' requirements. This scheme may implement certain policies such as "never allocate more than X units of resource Z". One policy that is of particular interest is the inability of users to access a single resource at the same time, which is called the problem of mutual exclusion. Resource management concerns the coordination and collaboration of users, and it is usually based on making a decision. In the case of mutual exclusion, that decision is about granting access to a resource. Therefore, mutual exclusion is useful for supporting resource access management. The first true solution to the mutual exclusion problem is known as the Bakery algorithm that does not rely on any lower-lever mutual exclusion. We examine the problem of register overflow in real-world implementations of the Bakery algorithm and present a variant algorithm named Bakery++ that prevents overflows from ever happening. Bakery++ avoids overflows without allowing a process to write into other processes' memory and without using additional memory or complex arithmetic or redefining the operations and functions used in Bakery. Bakery++ is almost as simple as Bakery and it is straightforward to implement in real systems. With Bakery++, there is no reason to keep implementing Bakery in real computers because Bakery++ eliminates the probability of overflows and hence it is more practical than Bakery. Previous approaches to circumvent the problem of register overflow included introducing new variables or redefining the operations or functions used in the original Bakery algorithm, while Bakery++ avoids overflows by using simple conditional statements. (the abstract does not end here.)
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。