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

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:

主站蜘蛛池模板: 镇康县| 巴青县| 石楼县| 茂名市| 阆中市| 咸宁市| 上栗县| 吴桥县| 美姑县| 曲阳县| 曲麻莱县| 丰顺县| 普兰店市| 临洮县| 台前县| 长子县| 卫辉市| 丰都县| 曲阳县| 安义县| 乐陵市| 桂平市| 苗栗市| 宜春市| 阳朔县| 长宁区| 宁乡县| 天镇县| 清水河县| 阳谷县| 郓城县| 泰来县| 凤台县| 博白县| 华蓥市| 三穗县| 玛沁县| 哈密市| 天等县| 南靖县| 花垣县|