mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-12-13 07:05:10 -05:00
Update README.md
This commit is contained in:
commit
f335145676
1 changed files with 9 additions and 10 deletions
|
|
@ -293,16 +293,15 @@ Therefore, the proof's correctness relies on the correctness of our models.
|
||||||
|
|
||||||
|
|
||||||
- ### Locking discipline and lock invariants
|
- ### Locking discipline and lock invariants
|
||||||
FreeRTOS' SMP implementation uses the following synchronization mechanisms:
|
FreeRTOS' SMP implementation uses the following synchronization mechanisms:
|
||||||
- Deactivating interrupts:
|
- Deactivating interrupts:
|
||||||
|
Some data is only meant to be accessed on a specific core C.
|
||||||
Some data is only meant to be accessed on a specific core C.
|
Such data may only be accessed after interrupts on core C have been deactivated.
|
||||||
Such data may only be accessed after interrupts on core C have been deactivated.
|
For instance the global array `pxCurrentTCBs` in `tasks.c` has an entry for
|
||||||
For instance the global array `pxCurrentTCBs` in `tasks.c` has an entry for
|
every core.
|
||||||
every core.
|
`pxCurrentTCBs[C]` stores a pointer to the task control block (TCB) of the task running on core C.
|
||||||
`pxCurrentTCBs[C]` stores a pointer to the task control block (TCB) of the task running on core C.
|
Core C is always allowed to read `pxCurrentTCBs[C]`.
|
||||||
Core C is always allowed to read `pxCurrentTCBs[C]`.
|
However, writing requires the interrupts on core C to be deactivated.
|
||||||
However, writing requires the interrupts on core C to be deactivated.
|
|
||||||
|
|
||||||
- task lock:
|
- task lock:
|
||||||
The task lock is used to protect ciritical sections and resources from being accessed by multiple tasks simultaneously.
|
The task lock is used to protect ciritical sections and resources from being accessed by multiple tasks simultaneously.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue