Control de Operaciones y Concurrencia · 2014. 8. 1. · Agendamiento de Procesos El objetivo de la...

36
Control de Operaciones y Concurrencia Daniel Rojas UTN Thursday, July 24, 14

Transcript of Control de Operaciones y Concurrencia · 2014. 8. 1. · Agendamiento de Procesos El objetivo de la...

Page 1: Control de Operaciones y Concurrencia · 2014. 8. 1. · Agendamiento de Procesos El objetivo de la multiprogramación es que siempre haya un proceso corriendo. La idea de compartir

Control de Operaciones y ConcurrenciaDaniel RojasUTN

Thursday, July 24, 14

Page 2: Control de Operaciones y Concurrencia · 2014. 8. 1. · Agendamiento de Procesos El objetivo de la multiprogramación es que siempre haya un proceso corriendo. La idea de compartir

Procesos

Se consideran todas las actividades que lleva a cabo el CPU.

Es un programa en ejecución.

Involucra el código y los datos que se están utilizando.

Thursday, July 24, 14

Page 3: Control de Operaciones y Concurrencia · 2014. 8. 1. · Agendamiento de Procesos El objetivo de la multiprogramación es que siempre haya un proceso corriendo. La idea de compartir

Procesos

Thursday, July 24, 14

Page 4: Control de Operaciones y Concurrencia · 2014. 8. 1. · Agendamiento de Procesos El objetivo de la multiprogramación es que siempre haya un proceso corriendo. La idea de compartir

Procesos

Cada instancia que se ejecuta de un programa es un proceso.

Existen diferentes estados para un proceso.

Thursday, July 24, 14

Page 5: Control de Operaciones y Concurrencia · 2014. 8. 1. · Agendamiento de Procesos El objetivo de la multiprogramación es que siempre haya un proceso corriendo. La idea de compartir

Estados de un proceso

Nuevo: El proceso está siendo ejecutado.

Ejecutando: Las instrucciones están siendo ejecutadas.

Esperando: El proceso está esperando que algún evento ocurra.

Listo: El proceso está esperando ser asignado al procesador.

Terminado: El proceso ha finalizado la ejecución.

Thursday, July 24, 14

Page 6: Control de Operaciones y Concurrencia · 2014. 8. 1. · Agendamiento de Procesos El objetivo de la multiprogramación es que siempre haya un proceso corriendo. La idea de compartir

Estados de un proceso

Thursday, July 24, 14

Page 7: Control de Operaciones y Concurrencia · 2014. 8. 1. · Agendamiento de Procesos El objetivo de la multiprogramación es que siempre haya un proceso corriendo. La idea de compartir

Bloque de Control de Proceso

Cada proceso se representa en el SO utilizando un Bloque de Control de Proceso.

Contiene una serie de información referente al proceso.

Thursday, July 24, 14

Page 8: Control de Operaciones y Concurrencia · 2014. 8. 1. · Agendamiento de Procesos El objetivo de la multiprogramación es que siempre haya un proceso corriendo. La idea de compartir

Bloque de Control de Proceso

Estado del proceso.

Contador del Programa: Indica la dirección de la siguiente instrucción.

Registros del CPU: Los registros a utilizar.

Información de Agenda en CPU: Prioridad, filas y parámetros.

Manejo de memoria.

Thursday, July 24, 14

Page 9: Control de Operaciones y Concurrencia · 2014. 8. 1. · Agendamiento de Procesos El objetivo de la multiprogramación es que siempre haya un proceso corriendo. La idea de compartir

Bloque de Control de Proceso

Thursday, July 24, 14

Page 10: Control de Operaciones y Concurrencia · 2014. 8. 1. · Agendamiento de Procesos El objetivo de la multiprogramación es que siempre haya un proceso corriendo. La idea de compartir

Bloque de Control de Proceso

Thursday, July 24, 14

Page 11: Control de Operaciones y Concurrencia · 2014. 8. 1. · Agendamiento de Procesos El objetivo de la multiprogramación es que siempre haya un proceso corriendo. La idea de compartir

Hilos

El modelo que se ha discutido involucra únicamente un hilo de ejecución.

Los SO modernos permiten el manejo de múltiples hilos para soportar hacer más de una cosa a la vez.

El Bloque de Control de Proceso debe de manejar datos adicionales referentes a los hilos.

Thursday, July 24, 14

Page 12: Control de Operaciones y Concurrencia · 2014. 8. 1. · Agendamiento de Procesos El objetivo de la multiprogramación es que siempre haya un proceso corriendo. La idea de compartir

Agendamiento de Procesos

El objetivo de la multiprogramación es que siempre haya un proceso corriendo.

La idea de compartir el tiempo del procesador es que los cambios de proceso sean muy frecuentes, para que el usuario pueda interactuar con varios programas a la vez.

El agendador de procesos se encarga de seleccionar un proceso y ejecutarlos.

En caso de que hayan más procesos estos deben de esperar.

Thursday, July 24, 14

Page 13: Control de Operaciones y Concurrencia · 2014. 8. 1. · Agendamiento de Procesos El objetivo de la multiprogramación es que siempre haya un proceso corriendo. La idea de compartir

Filas de Agendamiento

Cuando un proceso entra al sistema, lo colocan en una fila de trabajos.

Esta se compone de todos los procesos del sistema.

Los procesos que se encuentran en la memoria principal y están listos para ser ejecutados se encuentran en una lista conocida como la fila de los listos.

Thursday, July 24, 14

Page 14: Control de Operaciones y Concurrencia · 2014. 8. 1. · Agendamiento de Procesos El objetivo de la multiprogramación es que siempre haya un proceso corriendo. La idea de compartir

Filas de Agendamiento

Existen otras filas especializadas.

Un ejemplo es la fila de los dispositivos.

Cada dispositivo maneja una fila propia.

Thursday, July 24, 14

Page 15: Control de Operaciones y Concurrencia · 2014. 8. 1. · Agendamiento de Procesos El objetivo de la multiprogramación es que siempre haya un proceso corriendo. La idea de compartir

Filas de Agendamiento

Thursday, July 24, 14

Page 16: Control de Operaciones y Concurrencia · 2014. 8. 1. · Agendamiento de Procesos El objetivo de la multiprogramación es que siempre haya un proceso corriendo. La idea de compartir

Agendadores

Un proceso se mueve en varias filas durante su ciclo de vida.

El proceso de selección de procesos para las filas los lleva a cabo un agendador.

El agendador a largo plazo se encarga de seleccionar procesos en el disco duro y moverlos a la memoria principal.

Thursday, July 24, 14

Page 17: Control de Operaciones y Concurrencia · 2014. 8. 1. · Agendamiento de Procesos El objetivo de la multiprogramación es que siempre haya un proceso corriendo. La idea de compartir

Agendadores

El agendador a corto plazo selecciona los procesos que están listso y los ubica en el CPU para su ejecución.

La diferencia más importante entre estos agendadores es la frecuencia de ejecución.

El agendador a corto plazo se ejecuta con frecuencias de milisegundos mientras que el agendador a largo plazo puede tomar minutos en volver a ejecutarse.

Thursday, July 24, 14

Page 18: Control de Operaciones y Concurrencia · 2014. 8. 1. · Agendamiento de Procesos El objetivo de la multiprogramación es que siempre haya un proceso corriendo. La idea de compartir

Agendadores

Thursday, July 24, 14

Page 19: Control de Operaciones y Concurrencia · 2014. 8. 1. · Agendamiento de Procesos El objetivo de la multiprogramación es que siempre haya un proceso corriendo. La idea de compartir

Cambio de Contexto

Cuando se va a cambiar de proceso a proceso, el CPU tiene que guardar el contexto actual para poder recuperarlo después.

El contexto se representa con el Bloque de Control de Proceso.

El cambio de contexto consiste en guardar el proceso con todo lo relevante y cargar otro.

Thursday, July 24, 14

Page 20: Control de Operaciones y Concurrencia · 2014. 8. 1. · Agendamiento de Procesos El objetivo de la multiprogramación es que siempre haya un proceso corriendo. La idea de compartir

Operaciones en Procesos

Creación

Finalización

Thursday, July 24, 14

Page 21: Control de Operaciones y Concurrencia · 2014. 8. 1. · Agendamiento de Procesos El objetivo de la multiprogramación es que siempre haya un proceso corriendo. La idea de compartir

Creación de un proceso

Durante la ejecución es normal que un proceso cree nuevos procesos.

El proceso que crea se conoce como proceso padre, mientras que los procesos creados se conocen como hijos.

Cada proceso crea nuevos procesos formando un arbol de procesos.

Thursday, July 24, 14

Page 22: Control de Operaciones y Concurrencia · 2014. 8. 1. · Agendamiento de Procesos El objetivo de la multiprogramación es que siempre haya un proceso corriendo. La idea de compartir

Creación de un proceso

La mayoría de SO identifica los procesos utilizando un PID.

El PID sirve para extraer información, encontrar y matar procesos.

Thursday, July 24, 14

Page 23: Control de Operaciones y Concurrencia · 2014. 8. 1. · Agendamiento de Procesos El objetivo de la multiprogramación es que siempre haya un proceso corriendo. La idea de compartir

Creación de un proceso

Thursday, July 24, 14

Page 24: Control de Operaciones y Concurrencia · 2014. 8. 1. · Agendamiento de Procesos El objetivo de la multiprogramación es que siempre haya un proceso corriendo. La idea de compartir

Creación de un proceso

Cuando se crea un proceso existen dos posibilidades:

El padre se ejecuta concurrentemente con su hijo.

El padre espera a que todos los hijos hayan terminado.

Thursday, July 24, 14

Page 25: Control de Operaciones y Concurrencia · 2014. 8. 1. · Agendamiento de Procesos El objetivo de la multiprogramación es que siempre haya un proceso corriendo. La idea de compartir

Terminación de un proceso

Un proceso termina cuando alcanza su última instrucción o cuando solicita al sistema operativo que se elimine.

Cuando se finaliza el proceso reporta a su padre, con algún valor, la forma de finalización.

Posteriormente todos los recursos, que estaba usando ese proceso, son liberados por el sistema operativo.

Thursday, July 24, 14

Page 26: Control de Operaciones y Concurrencia · 2014. 8. 1. · Agendamiento de Procesos El objetivo de la multiprogramación es que siempre haya un proceso corriendo. La idea de compartir

Terminación de un proceso

Los procesos pueden ser terminados por agentes externos.

Los procesos hijos pueden ser matados por sus padres.

Thursday, July 24, 14

Page 27: Control de Operaciones y Concurrencia · 2014. 8. 1. · Agendamiento de Procesos El objetivo de la multiprogramación es que siempre haya un proceso corriendo. La idea de compartir

Terminación de un proceso

Un proceso hijo puede morir por:

Ha excedido el uso de algún recurso.

La tarea que se le había asignado ya no se requiere.

El papá va a terminar y el sistema operativo no permite que los hijos continúen.

Thursday, July 24, 14

Page 28: Control de Operaciones y Concurrencia · 2014. 8. 1. · Agendamiento de Procesos El objetivo de la multiprogramación es que siempre haya un proceso corriendo. La idea de compartir

Terminación de un proceso

En muchos sistemas operativos no se permite que existan hijos sin padres.

Al proceso de matar a los hijos una vez que el padre no exista se le conoce como terminación en cascada.

Thursday, July 24, 14

Page 29: Control de Operaciones y Concurrencia · 2014. 8. 1. · Agendamiento de Procesos El objetivo de la multiprogramación es que siempre haya un proceso corriendo. La idea de compartir

Procesos zombies

“Es un proceso que ha completado su ejecución pero aún tiene una entrada en la tabla de procesos, permitiendo al proceso que lo ha creado leer el estado de su salida. Metafóricamente, el proceso hijo ha muerto pero su "alma" aún no ha sido recogida.”

Thursday, July 24, 14

Page 30: Control de Operaciones y Concurrencia · 2014. 8. 1. · Agendamiento de Procesos El objetivo de la multiprogramación es que siempre haya un proceso corriendo. La idea de compartir

Procesos huérfanos

Son procesos que se quedan sin padre, y no se liberan de la tabla de procesos.

Linux hace que el padre sea init y constantemente hace una limpieza.

Thursday, July 24, 14

Page 31: Control de Operaciones y Concurrencia · 2014. 8. 1. · Agendamiento de Procesos El objetivo de la multiprogramación es que siempre haya un proceso corriendo. La idea de compartir

Comunicación entre procesos

Existen dos tipos de procesos:

Independientes

Cooperadores

Thursday, July 24, 14

Page 32: Control de Operaciones y Concurrencia · 2014. 8. 1. · Agendamiento de Procesos El objetivo de la multiprogramación es que siempre haya un proceso corriendo. La idea de compartir

Comunicación entre procesos

Motivos para permite procesos cooperadores:

Compartir la información

Velocidad a la hora de computar

Modularidad

Conveniencia

Thursday, July 24, 14

Page 33: Control de Operaciones y Concurrencia · 2014. 8. 1. · Agendamiento de Procesos El objetivo de la multiprogramación es que siempre haya un proceso corriendo. La idea de compartir

Comunicación entre procesos

Existen dos mecanismos para la cooperación entre procesos:

Memoria compartida

Mensajes

Thursday, July 24, 14

Page 34: Control de Operaciones y Concurrencia · 2014. 8. 1. · Agendamiento de Procesos El objetivo de la multiprogramación es que siempre haya un proceso corriendo. La idea de compartir

Memoria compartida

En este caso se determina un área de memoria compartida para los procesos

En esta área los procesos pueden escribir y leer diferentes datos que necesiten compartir

Requiere de algún método para evitar conflictos

Thursday, July 24, 14

Page 35: Control de Operaciones y Concurrencia · 2014. 8. 1. · Agendamiento de Procesos El objetivo de la multiprogramación es que siempre haya un proceso corriendo. La idea de compartir

Mensajes

En este mecanismo los procesos se envían mensajes para compartir la información relevante

Funciona para compartir pequeñas cantidades de información

En algunos casos es más fácil de implementar

Thursday, July 24, 14

Page 36: Control de Operaciones y Concurrencia · 2014. 8. 1. · Agendamiento de Procesos El objetivo de la multiprogramación es que siempre haya un proceso corriendo. La idea de compartir

Comunicación entre procesos

Thursday, July 24, 14