mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-12-10 13:45:07 -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
|
||||
FreeRTOS' SMP implementation uses the following synchronization mechanisms:
|
||||
- Deactivating interrupts:
|
||||
|
||||
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.
|
||||
For instance the global array `pxCurrentTCBs` in `tasks.c` has an entry for
|
||||
every core.
|
||||
`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]`.
|
||||
However, writing requires the interrupts on core C to be deactivated.
|
||||
FreeRTOS' SMP implementation uses the following synchronization mechanisms:
|
||||
- Deactivating interrupts:
|
||||
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.
|
||||
For instance the global array `pxCurrentTCBs` in `tasks.c` has an entry for
|
||||
every core.
|
||||
`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]`.
|
||||
However, writing requires the interrupts on core C to be deactivated.
|
||||
|
||||
- task lock:
|
||||
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