Sobes.tech
Junior — Middle

¿Cómo se realizan las llamadas al sistema que bloquean la ejecución de procesos o hilos?

sobes.tech AI

Respuesta de la IA

Las llamadas al sistema que bloquean la ejecución de procesos o hilos funcionan de la siguiente manera: cuando un proceso o hilo llama a tal llamada al sistema (por ejemplo, leer desde un archivo o esperar un evento), la ejecución se detiene hasta que la operación finaliza. Durante este tiempo, el núcleo del sistema operativo pone al proceso o hilo en estado de espera (bloqueo), liberando la CPU para otras tareas.

En Go, al llamar a llamadas al sistema que bloquean, el runtime utiliza mecanismos del planificador de goroutines y hilos del sistema. Si una goroutine se bloquea en una llamada al sistema, el runtime puede cambiar la ejecución a otra goroutine, sin bloquear todo el hilo del sistema operativo. Esto permite un uso eficiente de los recursos y el paralelismo.

Ejemplo: al leer desde la red con net.Conn.Read(), la goroutine se bloquea, pero el runtime cambia a otras goroutines mientras se reciben los datos.