1. ¿Cuál es el objetivo principal de la planificación de procesos en un sistema operativo y qué herramienta utiliza para lograrlo?
El objetivo principal de la planificación de procesos en un sistema operativo es optimizar el rendimiento del sistema teniendo en cuenta los criterios de los diseñadores del mismo. Para lograrlo utiliza un conjunto de herramientas y mecanismos llamados planificadores.
2- Defina el concepto de “Utilización del procesador” y explique por qué es una métrica de rendimiento importante
Concepto de utilización del procesador: Fracción de tiempo promedio durante la cual el procesador está activo ejecutando un proceso que puede ser del usuario o del sistema operativo. Es una métrica clave porque refleja cuán eficientemente se están usando los recursos del sistema.
3- ¿Cuál es la diferencia fundamental entre el “Tiempo de retorno (TR)” y el “Tiempo de espera (TE)” de un proceso?
La diferencia fundamental es que el tiempo de retorno (TR) es todo el tiempo que un proceso pasa en el sistema y el tiempo de espera (TE) es solo el tiempo que el proceso permanece esperando la asignación de recursos.
4- Explique la función del Planificador a Largo Plazo (PLP) y en qué transición de estado de un proceso interviene
La funcion principal del Planificador a Largo Plazo (PLP) consiste en controlar la admisión de procesos nuevos al sistema para ser ejecutados,el objetivo es proporcionar una mezcla equilibrada de trabajos,para mantener la utilización de recursos al nivel deseado. En términos de estados de procesos este interviene quedará a cargo de las transiciones del estado nuevo al estado preparado o listo.
5- ¿Qué tipo de eventos provocan la invocación del Planificador a Corto Plazo (PCP) y cuál es su principal objetivo?
Se puede destacar que al estar a cargo de la transición de estado preparado a ejecución, el PCP deberá ser invocado cuando se realice una operación de conmutación de procesos para seleccionar el siguiente proceso a ejecutar. Su principal objetivos es maximizar el rendimiento del sistema.
6- ¿Cuál es la misión del Planificador a Medio Plazo (PMP) y cuándo es invocado típicamente?
La misión del Planificador a Medio Plazo (PMP) es mover los procesos,de procesos suspendidos a la memoria principal,y será invocado cuando quede espacio libre en memoria por la terminación de un proceso o cuando el suministro de procesos preparados quede por debajo de un límite especificado.
7- Según el texto, ¿cuál es la idea básica detrás de un sistema multihilo y qué estructura se crea para administrarlo
La idea básica de un sistema multihilo es que un proceso pueda contener varios hilos de ejecución, de modo que el cambio de contexto entre subprocesos sea mucho más rápido que entre procesos completos. Para administrarlo se crea el Thread Control Block (TCB), que almacena sólo los datos que varían entre subprocesos.
8- Enumere y describa brevemente dos ventajas significativas de utilizar subprocesos, incluso en sistemas con una sola CPU (monoCPU)
- Respuesta mejorada: un hilo que está bloqueado (por ejemplo, esperando una tecla) permite que otro hilo continúe usando la CPU, manteniendo un buen tiempo de respuesta al usuario.
- Incremento de velocidad de ejecución: tareas que pueden dividirse (como leer datos y sumarlos) pueden ejecutarse en hilos diferentes, liberando la CPU mientras una operación de E/S está pendiente y acelerando el procesamiento total.
9- ¿Qué recursos comparten todos los subprocesos de un mismo proceso principal y qué implicación tiene esto en su interdependencia
Todos los subprocesos de un mismo proceso comparten el mismo espacio de direcciones y los recursos de E/S asignados (archivos, dispositivos, etc.). Esta compartición significa que los subprocesos son interdependientes: cualquier cambio en uno puede afectar a los demás, lo que requiere mecanismos de sincronización.
10- ¿Por qué la creación de hilos se considera más “económica” que la creación de procesos, según el ejemplo de Solaris?
Crear hilos es más “económico” porque los hilos comparten la memoria y los recursos del proceso padre, evitando la sobrecarga de reservar recursos independientes. En Solaris, crear un proceso es aproximadamente 30 veces más lento que crear un hilo, y cambiar de contexto entre procesos es 5 veces más lento que entre hilos.
Preguntas de Ensayo
1- Analice las ventajas del modelo multihilo frente al modelo monohilo tradicional. En su respuesta, explique cómo los hilos mejoran la respuesta, la compartición de recursos, la economía del sistema y la utilización de arquitecturas multiprocesador
El modelo multihilo tiene varias ventajas importantes frente al modelo monohilo tradicional. En un sistema multihilo, un mismo proceso puede tener varios hilos ejecutándose al mismo tiempo, lo que mejora mucho la eficiencia general del sistema.
Por ejemplo, una aplicación multihilo puede seguir funcionando aunque una parte esté ocupada haciendo una tarea larga o bloqueada. Eso mejora el tiempo de respuesta, porque mientras un hilo espera, otro puede continuar trabajando.
Otra ventaja es que los hilos comparten la memoria y los recursos del proceso al que pertenecen, por lo que no se necesitan mecanismos complicados para comunicarse entre ellos. Esto también hace que la comunicación entre hilos sea más rápida y directa.
Además, el uso de hilos es más económico que el uso de procesos. Crear un proceso nuevo consume más recursos y tiempo, mientras que crear un hilo es mucho más liviano. En el texto incluso se menciona que en Solaris crear un proceso es unas 30 veces más lento que crear un hilo, y cambiar entre procesos es 5 veces más lento que hacerlo entre hilos.
Por último, los sistemas multihilo aprovechan mejor los procesadores múltiples o los núcleos de las CPUs modernas, porque cada hilo puede ejecutarse en un procesador diferente. Esto permite que el trabajo se reparta mejor y que el rendimiento sea mayor.
En resumen, los hilos mejoran la respuesta, el aprovechamiento de recursos, la economía del sistema y la utilización de arquitecturas multiprocesador.
2- El texto menciona que una de las desventajas del uso de subprocesos es “el incremento de la necesidad de sincronización”. Explique por qué surge esta necesidad y qué implicaciones tiene para los programadores al migrar de un sistema monohilo a uno multihilo
Incremento de la necesidad de sincronización
Una de las desventajas que menciona el texto sobre los subprocesos o hilos es el aumento en la necesidad de sincronización. Esto pasa porque, al usar varios hilos dentro de un mismo proceso, todos comparten la misma memoria y los mismos recursos.
En un sistema monohilo, esto no era un problema porque solo había un flujo de ejecución, entonces no había riesgo de que dos partes del programa intentaran modificar la misma variable al mismo tiempo. Pero con varios hilos funcionando en paralelo, pueden generarse conflictos o errores si dos hilos acceden simultáneamente a los mismos datos.
Por eso, cuando se trabaja con hilos, los programadores tienen que usar mecanismos de sincronización como semáforos o monitores, para asegurarse de que los recursos se usen de manera ordenada y sin interferencias.
Esto significa que al pasar de un sistema monohilo a uno multihilo, el código se vuelve más complejo, porque hay que pensar constantemente en cómo coordinar los hilos para evitar bloqueos o errores por acceso simultáneo.
3- Defina qué es un hilo y describa los elementos que componen un proceso en un entorno multihilo. Detalle qué componentes son exclusivos de cada hilo y cuáles son
Según el texto, un hilo se puede definir como la “traza de ejecución” de un proceso, o sea, la parte dinámica que representa el código que se está ejecutando junto con el estado del procesador y la pila de ejecución.
En un sistema multihilo, un proceso tiene varios hilos, y eso cambia la forma en que se organizan sus elementos.
Los componentes compartidos entre los hilos del mismo proceso son:
- El espacio de direcciones (la memoria).
- El acceso a procesadores, archivos y dispositivos de entrada/salida.
- Todos los recursos del proceso principal.
Y los componentes exclusivos de cada hilo son:
- Su propio estado de ejecución.
- El contexto del procesador (registros, prioridad, etc.).
- Su pila de ejecución (y la del núcleo si la necesita).
- Las variables locales que usa ese hilo en particular.
Posts Relacionados
Otros apuntes que podrían interesarte de esta materia