Changes between Version 1 and Version 2 of kernel_synchro
- Timestamp:
- Oct 6, 2018, 10:28:34 PM (6 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
kernel_synchro
v1 v2 3 3 [[PageOutline]] 4 4 5 == A) General principles ==5 == A) Locks general principles == 6 6 7 Most kernel data structures are shared: they can be concurrently accessed by several threads. These threads can be specialized kernel threads , such as the DEV threads or the RPC threads, or can be user threads, running in kernel mode after a syscall. There exist actually two levels of sharing: 7 Most kernel data structures are shared: they can be concurrently accessed by several threads. These threads can be specialized kernel threads , such as the DEV threads or the RPC threads, or can be user threads, running in kernel mode after a syscall. 8 9 There exist actually two levels of sharing: 8 10 * some structures are locally shared: they can only be accessed by threads running in the cluster containing the shared structure. Examples are (i) the Schedulers (associated to the cores in a given cluster), or the Physical Pages Manager (PPM) allocator in a given cluster, or the Virtual Memory Manager (associated to a given process descriptor in a given cluster. 9 * some structures are globally shared: they can be concurrently by any thread running in any cluster. Examples are the waiting queues associated to the Chdevs (channel 10 devices, distributed on all clusters, or the kernel distributed Virtual File System, that is also distributed on all clusters. 11 11 * some structures are globally shared: they can be concurrently by any thread running in any cluster. Examples are the waiting queues associated to the Chdevs (channel devices, distributed on all clusters, or the kernel distributed Virtual File System, that is also distributed on all clusters. 12 12 13 13 ALMOS-MKH defines three types of locks to implement exclusive access to these shared structures: ''busylocks'', ''queuelocks'', and ''rwlocks''.