Procesos

Sistemas Operativos

Unidad 2  (parte 2)

Un puente hacia hilos...

Un programa no es lo mismo que un proceso

Programa

Un conjunto de instrucciones almacenadas.

Proceso

Un programa en ejecucion, con estado, recursos e identidad propia.

Sistemas Operativos

La pregunta que dejamos abierta:

¿Que informacion debe guardar el sistema operativo para pausar y reanudar un proceso correctamente?

Sistemas Operativos

Reanudar no es volver a empezar

  • El proceso debe seguir en la instruccion correcta
  • Debe recuperar su situacion de CPU
  • Debe conservar sus datos y recursos asociados

Pausar un proceso no es guardar "el programa".
Es guardar su contexto de ejecucion.

Sistemas Operativos

Contexto de ejecución:

  • La proxima instruccion a ejecutar
  • Registros del procesador
  • Informacion de memoria y datos activos
  • Archivos abiertos y otros recursos asociados
  • El estado actual del proceso

Sistemas Operativos

PCB (Process Control Block)

  • Identificador del proceso (PID): Un número único 
  • Estado del proceso: Nuevo, Listo, En ejecución, Bloqueado o Terminado.

  • Contador de programa (PC): Dirección de la siguiente instrucción

  • Registros de la CPU: Contenido de los registros de trabajo cuando el proceso se interrumpe

  • Información de planificación de CPU: Prioridad del proceso

  • Información de gestión de memoria: Espacio de direcciones asignado al proceso.

  • Información de contabilidad (Accounting): Tiempo de CPU utilizado, límites de tiempo, etc. 

  • Información de estado de E/S: Dispositivos de E/S asignados y archivos abiertos.

Sistemas Operativos

Observemos el proceso...

  • ps
  • prioridad y estado
  • archivos en /proc/<pid>/...

Sistemas Operativos

Mirar /proc para aterrizar la teoria

  • /proc/<pid>/status muestra estado e identidad
  • /proc/<pid>/cmdline muestra como fue invocado
  • /proc/<pid>/fd/ deja ver archivos o descriptores asociados
  • /proc/<pid>/stat concentra muchos datos del proceso

Sistemas Operativos

Sistemas Operativos

Listo

Listo

Nuevo

Nuevo

Terminado

En ejecución

Bloqueado

Listo

¿Puede un proceso existir sin avanzar, aunque no este bloqueado por E/S?

Sistemas Operativos

Listo

Listo

Nuevo

Nuevo

Terminado

En ejecución

Bloqueado

Listo

¿Puede un proceso existir sin avanzar, aunque no este bloqueado por E/S?

Detenido

Listo

Sistemas Operativos

Listo

Listo

Nuevo

Nuevo

Terminado

En ejecución

Bloqueado

Listo

¿Puede un proceso existir sin avanzar, aunque no este bloqueado por E/S?

Detenido

Listo

Espera evento

Detenido desde fuera
Iniciado desde fuera

Hay señales para influir sobre procesos

  • SIGTERM: pedir terminacion
  • SIGKILL: forzar terminacion
  • SIGSTOP: detener el proceso
  • SIGCONT: reanudar un proceso detenido

Sistemas Operativos

U2 Procesos 04:
Observación y gestión de procesos

Preguntas:

1. ¿Qué dato te permitió identificar claramente al proceso?

2. ¿Qué cambio observaste cuando enviaste SIGSTOP?

3. ¿Qué cambio observaste cuando enviaste SIGCONT?

4. ¿Qué diferencia hay entre detener un proceso y terminarlo?

5. ¿Qué muestra este ejercicio sobre la información que el sistema operativo guarda sobre un proceso?

Sistemas Operativos