/ / En un sistema operativo, ¿quién es responsable de la cancelación de hilos? - multihilo, sistema operativo, cancelación

En un sistema operativo, ¿quién es responsable de la cancelación de hilos? - subprocesos múltiples, sistema operativo, cancelación

En un entorno de subprocesos múltiples, los subprocesos se pueden cancelar de una de dos maneras: a través de cancelación asíncrona o cancelación diferida. Ya que he leído en un libro de texto de referencia que en un modelo de dos niveles para multiproceso, una biblioteca de hilos de usuario es responsable de la programación de hilos, me preguntaba ¿Quién es responsable de la cancelación de hilos en un sistema operativo?

¿Es también la librería de hilos del usuario?

Esto no me suena como una idea muy brillante.ya que la biblioteca podría hacer prácticamente lo que quiera y esto me parece un gran defecto de diseño. (¡Podrías terminar con hilos que no se pueden limpiar limpiando todo tu disco!)

¿Podría ser el propio sistema operativo?

Por otra parte, es posible que el sistema operativo ni siquiera esté al tanto de los subprocesos (por ejemplo, en un modelo de Muchos a Uno), por lo que no podría reconocer tales subprocesos.

De todos modos, cualquier iluminación es apreciada!

Respuestas

1 para la respuesta № 1

La respuesta depende de cómo son los hilos.implementado. Si, como sugiere, los subprocesos se crean a través de una biblioteca de usuarios, el proceso de eliminación mata los subprocesos. Dependiendo del sistema operativo, la biblioteca podría implementar la limpieza de los hilos (en lugar de una muerte súbita).

Si los subprocesos se implementan en el kernel del SO, el sistema operativo debe manejar la terminación del subproceso.


0 para la respuesta № 2

"Los hilos que borran el disco duro" no son un problema. Los hilos de modo de usuario pueden hacer tanto como el hilo principal. Además, el sistema operativo generalmente puede anular todo el proceso del usuario sin preocuparse por sus detalles internos, por lo que es irrelevante si esos detalles involucran hilos en modo usuario.

Por supuesto, cuando el sistema operativo es responsable de hilosen un proceso, tiene que detener esos hilos antes de eliminar el proceso. El sistema operativo ya no puede programar esos subprocesos, obviamente, ya que su código muere con el espacio de direcciones del proceso detenido.