blob: 2c22f818ff39a3f740cf41ec41dada9ac6c5fee2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
---
title: 原语
tags:
- 计算机
date: 2025-04-10T21:45:00
draft: false
---
原语(primitive)是计算机中**不可被中断**的一段机器指令,常见于**操作系统**中的进程调度,用于实现同步(synchronization)。一个操作需要用原语实现,常常是因为这种操作一旦被中断,就会发生非常严重的错误,所以不允许中断。
原语的「原」可以理解为「原子」(Atom),执行原语就是在执行一个原子操作(atomic action)。
要实现原语,有两种方式:
1. **禁用中断**,这种操作在多核处理器上非常低效。
2. **专用机器指令**,在多核处理器上实现同步,需要在硬件层面实现一套能够进行原子操作的机器指令(atomic instructions);例如 `test-and-set` 用于操作内存中的单个字(word),`compare-and-swap` 用于交换内存中的两个字。
<span style="font-size: 80%">Sources: 《操作系统 精髓与设计原理》[美] WILLIAM STALLINGS、[Synchronization (computer science) - Wikipedia](https://en.wikipedia.org/wiki/Synchronization_(computer_science)) </span>
|