Reto 3 sistemas operativos UVEG
Enviado por Kevin del Carpio • 26 de Abril de 2024 • Tarea • 1.630 Palabras (7 Páginas) • 124 Visitas
Página 1 de 7
|
1 | Similitudes y diferencias entre los procesos y los hilos |
| Instrucción: en las siguientes tablas deberás registrar 10 similitudes y 10 diferencias que existen entre los procesos y los hilos. |
| Similitudes entre procesos e hilos
| - Unidad de ejecución: Tanto los procesos como los hilos representan unidades de ejecución dentro de un programa.
| - Asignación de recursos: Tanto los procesos como los hilos requieren recursos del sistema, como memoria y tiempo de CPU, para su ejecución.
| - Contexto de ejecución: Tanto los procesos como los hilos tienen su propio contexto de ejecución, que incluye registros, pila de ejecución y variables locales.
| - Planificación: Tanto los procesos como los hilos pueden ser planificados por el sistema operativo para la ejecución en el procesador.
| - Comunicación: Los procesos y los hilos pueden comunicarse entre sí mediante mecanismos de comunicación, como variables compartidas o paso de mensajes.
| - Sincronización: Tanto los procesos como los hilos pueden requerir sincronización para evitar condiciones de carrera y garantizar la consistencia de los datos compartidos.
| - Multiprogramación: Tanto los procesos como los hilos permiten la multiprogramación, es decir, la ejecución simultánea de múltiples unidades de ejecución.
| - Independencia relativa: Tanto los procesos como los hilos pueden ejecutarse de manera independiente, lo que permite la realización de tareas concurrentes.
| - Jerarquía: Tanto los procesos como los hilos pueden organizarse en una jerarquía, donde un proceso puede contener múltiples hilos y un hilo puede pertenecer a un proceso.
| - Flexibilidad: Tanto los procesos como los hilos ofrecen flexibilidad en el diseño de programas concurrentes y paralelos, permitiendo aprovechar eficientemente los recursos del sistema
|
|
Diferencias entre procesos e hilos
| Definición: - Proceso: "Un proceso es un programa en ejecución, incluidos sus datos y variables de estado asociadas."
- Hilo: "Un hilo (o thread) es una entidad dentro de un proceso que puede ser programada para su ejecución."
|
Independencia: - Proceso: Los procesos son independientes y no comparten recursos de manera predeterminada.
- Hilo: Los hilos existen dentro de un proceso y comparten recursos como memoria y archivos.
|
Creación: - Proceso: Los procesos se crean mediante la llamada al sistema fork() en sistemas UNIX.
- Hilo: Los hilos se pueden crear dentro de un proceso utilizando la biblioteca de subprocesos de un lenguaje de programación o una API específica del sistema operativo.
|
Conmutación: - Proceso: Los cambios de contexto entre procesos son más costosos, ya que implican guardar y restaurar todo el estado del proceso.
- Hilo: Los cambios de contexto entre hilos son más eficientes, ya que comparten la mayoría de los recursos y solo necesitan cambiar el estado de la CPU.
|
Comunicación: - Proceso: La comunicación entre procesos suele ser más compleja y lenta, ya que requiere mecanismos como tuberías, colas de mensajes o memoria compartida.
- Hilo: La comunicación entre hilos es más fácil y rápida, ya que comparten el mismo espacio de memoria.
|
Recursos: - Proceso: Los procesos tienen su propio espacio de direcciones de memoria y recursos como archivos y sockets.
- Hilo: Los hilos comparten el mismo espacio de direcciones de memoria y recursos dentro de un proceso.
|
Bloqueo: - Proceso: Si un proceso se bloquea, no afecta a otros procesos en el sistema.
- Hilo: Si un hilo se bloquea, puede afectar a otros hilos en el mismo proceso, ya que comparten recursos.
|
Seguridad: - Proceso: Los procesos proporcionan un mayor nivel de seguridad, ya que están más aislados unos de otros.
- Hilo: Los errores en un hilo pueden afectar a otros hilos dentro del mismo proceso
|
Escalabilidad: - Proceso: Los procesos son más pesados en términos de recursos y pueden ser menos escalables en comparación con los hilos.
- Hilo: Los hilos son más ligeros y su creación y destrucción son más eficientes, lo que puede mejorar la escalabilidad de una aplicación.
|
| Paralelismo: - Proceso: Los procesos pueden ejecutarse en paralelo en múltiples núcleos de CPU o incluso en múltiples sistemas.
- Hilo: Los hilos dentro de un proceso se ejecutan de manera concurrente pero no necesariamente en paralelo, ya que dependen de la implementación del sistema operativo y la asignación de recursos.
|
- Silberschatz, A., Galvin, P. B., & Gagne, G. (2020). Operating System Concepts (10th ed.). Wiley.
- Tanenbaum, A. S., & Bos, H. (2015). Modern Operating Systems (4th ed.). Pearson.
- Andrews, G. R. (2000). Concurrent Programming: Principles and Practice. Addison-Wesley.
- Butenhof, D. R. (1997). Programming with POSIX Threads. Addison-Wesley Professional.
- Goetz, B., Peierls, T., Bloch, J., Bowbeer, J., Holmes, D., & Lea, D. (2006). Java Concurrency in Practice. Addison-Wesley Professional.
- Lynch, N. (1996). Distributed Algorithms. Morgan Kaufmann.
- Bacon, J., & Harris, T. (2003). Operating Systems: Concurrent and Distributed Software Design. Addison-Wesley.
- Lewis, T. G. (1996). Distributed Systems. Addison-Wesley.
- Burns, A., & Wellings, A. J. (2006). Real-Time Systems and Programming Languages. Addison-Wesley.
- Shibu, K. (2013). Introduction to Operating Systems. McGraw-Hill Education.
2 | Ejemplo de un proceso |
| Instrucción: considerando el modelo de 5 estados, ejemplifica un proceso en específico que se realice en algún dispositivo que tenga sistema operativo. |
Disponible sólo en Clubensayos.com