Beneficios de subprocesos múltiples en el sistema operativo – Part 1

Requisito previo: subproceso del sistema operativo
Los beneficios de la programación multiproceso se pueden dividir en cuatro categorías principales:

  1. Capacidad de respuesta:
    los subprocesos múltiples en una aplicación interactiva pueden permitir que un programa continúe ejecutándose incluso si una parte del mismo está bloqueada o está realizando una operación prolongada, lo que aumenta la capacidad de respuesta para el usuario.

    En un entorno sin subprocesos múltiples, un servidor escucha el puerto para alguna solicitud y cuando llega la solicitud, procesa la solicitud y luego reanuda la escucha de otra solicitud. El tiempo que se tarda en procesar la solicitud hace que otros usuarios esperen innecesariamente. En cambio, un mejor enfoque sería pasar la solicitud a un subproceso de trabajo y continuar escuchando el puerto.

    Por ejemplo, un navegador web de múltiples subprocesos permite la interacción del usuario en un subproceso mientras se carga un video en otro subproceso. Entonces, en lugar de esperar a que se cargue toda la página web, el usuario puede continuar viendo una parte de la página web.

  2. Uso compartido de recursos:
    los procesos pueden compartir recursos solo a través de técnicas como:
    • Paso de mensajes
    • Memoria compartida

    Tales técnicas deben ser organizadas explícitamente por el programador. Sin embargo, los hilos comparten la memoria y los recursos del proceso al que pertenecen por defecto.
    El beneficio de compartir código y datos es que permite que una aplicación tenga varios hilos de actividad dentro del mismo espacio de direcciones.

  3. Economía:
    asignar memoria y recursos para la creación de procesos es un trabajo costoso en términos de tiempo y espacio.
    Dado que los subprocesos comparten memoria con el proceso al que pertenecen, es más económico crear y cambiar de contexto los subprocesos. En general, se consume mucho más tiempo en la creación y gestión de procesos que en hilos.
    En Solaris, por ejemplo, el proceso de creación es 30 veces más lento que la creación de subprocesos y el cambio de contexto es 5 veces más lento.
  4. Escalabilidad:
    los beneficios de la programación múltiple aumentan considerablemente en el caso de la arquitectura de múltiples procesadores, donde los subprocesos pueden ejecutarse en paralelo en varios procesadores. Si solo hay un subproceso, entonces no es posible dividir los procesos en tareas más pequeñas que pueden realizar diferentes procesadores.
    El proceso de subproceso único puede ejecutarse solo en un procesador, independientemente de cuántos procesadores estén disponibles.
    Los subprocesos múltiples en una máquina de CPU múltiple aumentan el paralelismo.

Referencias: conceptos del sistema operativo por Abraham Silberschatz, Peter B. Galvin y Greg Gagne

Publicación traducida automáticamente

Artículo escrito por aastha98 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *