3. ¿Dudas de la Clase Anterior?
• Introducción a los Sistemas Informáticos:
• Elementos básicos: CPU, Memoria, Dispositivos Registros del
Procesador.
• Ejecución de Instrucciones Jerarquía de Memoria, Memoria Cache.
• Técnicas de comunicación de E/S.
• Proceso de instalación de un sistema operativo de la familia Linux
5. Temas a desarrollar:
• Gestión de Procesos:
• Introducción a los procesos.
• Estados de un proceso.
• Control de Procesos.
• Implementación de procesos.
• Procesos e Hilos.
• Niveles de ejecución de procesos.
• Comandos Linux: ps, top, nice, renice, nohup y kill.
6. Logro de aprendizaje :
Al finalizar la sesión de clase el estudiante comprende los
conceptos relacionados a los procesos en los sistemas
operativos como estados, control, implementación, hilos,
mediante el desarrollo de guías prácticas bajo la plataforma
Linux.
7. (Utilidad del tema en estudio)
¿Por qué es importante estudiar los
procesos en los Sistemas Operativos?
Utilidad
11. Concepto de Proceso
En el contexto de un curso de Sistemas Operativos, la definición de
un proceso es:
"Un proceso es un programa en ejecución que incluye el
código ejecutable, los datos asociados, el estado actual
de la ejecución (como el contador de programa y los
registros), y los recursos que utiliza, como memoria,
archivos y dispositivos de E/S. Es la unidad fundamental
de trabajo en un sistema operativo.“
Fuente:
Silberschatz, A., Galvin, P. B., & Gagne, G. (2020). Operating System Concepts
(10th Edition). Wiley.
12. Ejemplo de Proceso
Un proceso es un programa en ejecución que consta de código
ejecutable y su estado actual, como registros, pilas y memoria
asignada. Es una unidad fundamental de ejecución en un sistema
operativo.
Ejemplo demostrativo: En un sistema UNIX/Linux, podemos listar
los procesos actuales ejecutando el comando:
ps -aux
Esto muestra detalles como el ID del proceso (PID), el usuario que
lo ejecuta, el porcentaje de uso de CPU y memoria, entre otros.
13. Estados de un Proceso
Un proceso pasa por varios estados durante su ciclo de vida:
• Nuevo: El proceso se crea.
• Listo: El proceso está listo para ejecutarse pero espera asignación de CPU.
• Ejecución: El proceso está siendo ejecutado por la CPU.
• Bloqueado: El proceso está esperando un evento externo (e.g., entrada/salida).
• Terminado: El proceso ha finalizado.
14. Ejemplo de estados de un Proceso
Ejemplo demostrativo 1: Utilizando Python, podemos simular
cambios en los estados de un proceso:
15. Ejemplo de estados de un Proceso
Ejemplo demostrativo 2: Identificar procesos bloqueados en Linux:
ps -eo state,pid,cmd | grep '^D’
Esto lista los procesos que están en estado de espera de entrada/salida.
16. Control de Procesos
El control de procesos en sistemas operativos es el seguimiento de los
datos que se necesitan para gestionar los procesos de manera
eficiente.
Los sistemas operativos gestionan procesos utilizando mecanismos
como:
•Creación: La llamada al sistema fork() en UNIX duplica un proceso.
•Finalización: Los procesos pueden terminar voluntariamente o ser
forzados a terminar.
•Planificación: La CPU se asigna a procesos según algoritmos como
FIFO, Round Robin, o MLFQ.
17. Ejemplo de Control de Procesos
Ejemplo demostrativo 1: Crear un proceso hijo con fork() en Python:
Ejemplo demostrativo 2: Terminar un proceso específico por PID en Linux:
18. Implementación de Procesos
Los procesos se implementan en la memoria y pueden compartir
recursos del sistema. Incluyen un PCB (Process Control Block)
que almacena información esencial como:
•Estado actual
•Contador de programa
•Registros
•Recursos asignados
19. Bloque de Control de Proceso (P.C.B.)
• El PCB es esencial para: Gestionar y programar procesos,
Sincronizar y comunicar procesos, Registrar el uso de recursos,
Registrar el estado de los procesos
20. Bloque de Control de Proceso (P.C.B.)
• Cada proceso tiene un PCB (Bloque de Control de Proceso)
21. Ejemplo de Bloque Control de Procesos
Ejemplo demostrativo 1: Simulación básica de un PCB en Python:
Ejemplo demostrativo 2: Visualizar detalles de un proceso en Linux:
22. Procesos e Hilos
En sistemas operativos, los procesos son programas en ejecución,
mientras que los hilos son subprocesos dentro de un proceso
Procesos
• Son programas que se ejecutan y tienen su propio espacio de memoria y
recursos.
• Cada proceso es una instancia de un programa en ejecución.
• Tienen su propio contador de programa, registros y variables.
Hilos
• Son subprocesos que comparten el mismo espacio de memoria y recursos
que el proceso en el que se encuentran.
• Son unidades de ejecución ligeras que se pueden ejecutar de forma
concurrente.
• Permiten separar tareas complejas en tareas más simples.
• Son unidades básicas de utilización de la CPU.
23. Procesos e Hilos
En sistemas operativos, los procesos son programas en ejecución, mientras
que los hilos son subprocesos dentro de un proceso
24. Niveles de ejecución de procesos
Los procesos pueden ejecutarse a diferentes niveles:
•Usuario: En modo restringido.
•Kernel: Con acceso completo a los recursos del sistema.
Ejemplo demostrativo 1: Comprobar permisos de ejecución en Linux:
Ejemplo demostrativo 2: Cambiar de nivel de ejecución usando el comando
Sudo en Linux
Esto muestra que ciertos programas pueden ejecutarse con permisos elevados.
25. Espacio práctico autónomo
✓Desarrollar la guía práctica subida en la plataforma.
A continuación el estudiante organizado por grupo de trabajo según lo indicado por el
docente, coordinará y procederá a desarrollar la siguiente actividad propuesta. El producto
terminado deberá exponerlo y subirlo en la actividad Tarea de la semana Creado para ese fin.
Práctica
26. Comentar y compartir las respuestas de las preguntas
• ¿Qué aprendió de la sesión de clase de hoy?
• ¿Como resume la clase aprendida?
• Revisar los materiales para la siguiente Sesión de clase
Cierre de Sesión
Cierre