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

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:

主站蜘蛛池模板: 合阳县| 渝北区| 延长县| 扶绥县| 读书| 西安市| 淮安市| 广安市| 囊谦县| 河北区| 临安市| 五华县| 山丹县| 防城港市| 平凉市| 塔城市| 正宁县| 刚察县| 阿勒泰市| 台北市| 蓝田县| 阜平县| 阿勒泰市| 盈江县| 东莞市| 友谊县| 嘉峪关市| 望城县| 略阳县| 莱芜市| 葵青区| 进贤县| 滦南县| 盐亭县| 林西县| 白沙| 武夷山市| 昌平区| 平江县| 日土县| 忻州市|