¿Qué significa exactamente el término primitiva de sincronización? Por ejemplo: mutex, sección crítica, temporizador waitable, evento, monitor, variable condicional, semáforo. ¿Todos ellos son primitivos de sincronización? ¿Hay otras primitivas de sincronización que no he enumerado? ¿Y estas son preguntas válidas?Definición de "primitiva de sincronización"
Respuesta
Las primitivas de sincronización son simples mecanismos de software proporcionados por una plataforma (por ejemplo, sistema operativo) a sus usuarios con el fin de admitir la sincronización de procesos o subprocesos. Por lo general, se construyen utilizando mecanismos de nivel inferior (por ejemplo, operaciones atómicas, barreras de memoria, spinlocks, interruptores de contexto, etc.).
Mutex, evento, variables condicionales y semáforos son todas primitivas de sincronización. También lo son los bloqueos compartidos y exclusivos. El monitor generalmente se considera una herramienta de sincronización de alto nivel. Es un objeto que garantiza la exclusión mutua para sus métodos utilizando otras primitivas de sincronización (generalmente bloqueos exclusivos con variables de condición para admitir la espera y la señalización). En algunos contextos, cuando el monitor se usa como un componente básico, también se considera una primitiva de sincronización.
La sección crítica no es una primitiva de sincronización. Es parte de una ruta de ejecución que debe protegerse de la ejecución simultánea para mantener algunas invariantes. Debe usar algunas primitivas de sincronización para proteger la sección crítica.
Según lo sugerido por @Loom, estoy agregando this list, ofrecido por la Universidad de Colombia, como respuesta a su pregunta.
También echa un vistazo a this article de Microsoft, de fecha 03/2017 (tengo la sensación de que es más viejo, pero también lo es el artículo de la Universidad de Colombia).
Según lo que he reunido, las primitivas de sincronización no están bien definidas, en el sentido de que no hay una lista oficial de ellas.
- 1. Primitiva de sincronización más liviana para la fila de hilos del trabajador
- 2. módulo de haskell recursión primitiva
- 3. Texturizar una esfera primitiva
- 4. primitiva conexión ssh (nivel bajo)
- 5. Primitiva JSON no válida: id
- 6. objeto frente a la primitiva
- 7. configuración de sincronización general casilla de verificación "sincronización automática" programáticamente
- 8. Sincronización simple de subprocesos
- 9. GPS Sincronización de tiempo
- 10. jQuery fuera de sincronización
- 11. bucle de sincronización estancamiento
- 12. Qt barrera de sincronización?
- 13. Sincronización de desplazamiento UIScrollView
- 14. sincronización de hilos java
- 15. Sincronización de una cola
- 16. Algoritmos de sincronización
- 17. Costo de sincronización
- 18. sincronización de objetos
- 19. Sincronización de animaciones de UIView
- 20. Opciones de sincronización de JavaScript
- 21. Núcleo de sincronización de datos
- 22. Inicializando matriz primitiva a un valor
- 23. System.ArgumentException: no válida JSON error primitiva
- 24. definición de macro dentro de la definición de estructura
- 25. InteropBitmap sincronización
- 26. Sincronización IMAP
- 27. ¿Cómo difiere la recursión primitiva de la recursividad "normal"?
- 28. ¿Cómo determinar el tipo primitivo de una variable primitiva?
- 29. ¿La primitiva tiene asignada una dirección de memoria?
- 30. Acciones de sincronización en Silverlight
"La sección crítica no es una primitiva de sincronización." Excepto en Windows, donde hay una primitiva de sincronización llamada Sección crítica: http://goo.gl/35zir (Y sí, estoy de acuerdo en que es un terrible uso indebido de un término bien definido, pero no hay nada que pueda hacer para cambiarlo Error de MS) – paxos1977
[aquí] (http://www.cs.columbia.edu/~hgs/os/sync.html) es una lista ofrecida por la Universidad de Colombia – zook2005
@ zook2005 - Sería interesante tener su comentario como una respuesta (podría volver a votar) – Loom