官术网_书友最值得收藏!

Hardware

The simplest hardware-based implementation on a uniprocessor (single processor core), non-SMT system is to disable interrupts, and thus, prevent the task from being changed. More commonly, a so-called busy-wait principle is employed. This is the basic principle behind a mutex--due to how the processor fetches data, only one task can obtain and read/write an atomic value in the shared memory, meaning, a variable sized the same (or smaller) as the CPU's registers. This is further detailed in Chapter 8, Atomic Operations - Working with the Hardware.

When our code tries to lock a mutex, what this does is read the value of such an atomic section of memory, and try to set it to its locked value. Since this is a single operation, only one task can change the value at any given time. Other tasks will have to wait until they can gain access in this busy-wait cycle, as shown in this diagram:

主站蜘蛛池模板: 庆阳市| 清流县| 苏尼特右旗| 金塔县| 册亨县| 鄄城县| 方正县| 磴口县| 章丘市| 双流县| 长泰县| 深水埗区| 法库县| 微博| 邯郸县| 阿克苏市| 贵溪市| 泗水县| 休宁县| 安阳市| 荥经县| 扬州市| 海伦市| 黄骅市| 黎城县| 句容市| 梅河口市| 阿瓦提县| 东平县| 金坛市| 禹城市| 梨树县| 宁化县| 德江县| 仁化县| 正阳县| 康马县| 鄄城县| 康定县| 巫溪县| 拜泉县|