tema 1: «gestiÓn de procesos» administración de sistemas operativos

31
TEMA 1: «GESTIÓN DE PROCESOS» Administración de Sistemas Operativos

Upload: juana-lobos

Post on 27-Jan-2016

225 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: TEMA 1: «GESTIÓN DE PROCESOS» Administración de Sistemas Operativos

TEMA 1: «GESTIÓN DE PROCESOS»

Administración de Sistemas Operativos

Page 2: TEMA 1: «GESTIÓN DE PROCESOS» Administración de Sistemas Operativos

INDICE1. PROCESOS2. COMPONENTES DE LOS PROCESOS3. OPERACIONES CON PROCESOS4. CLASIFICACIÓN5. BLOQUE DE CONTROL DE PROCESOS6. ESTADOS DE UN PROCESO7. MODELOS DE ESTADOS8. HILOS9. PLANIFICACIÓN DE PROCESOS10. ALGORITMOS DE PLANIFICACIÓN11. CAMBIO DE CONTEXTO12. CRITERIOS PARA ELEGIR UN ALGORITMO13. PROCESOS EN EL SISTEMA OPERATIVO14. PROCESOS EN LINUX15. PROCESOS EN WINDOWS

Page 3: TEMA 1: «GESTIÓN DE PROCESOS» Administración de Sistemas Operativos

1. PROCESOS

• Un programa, en su versión ejecutable, es un conjunto de instrucciones máquina y datos almacenados en un fichero. En cuanto lo ponemos en ejecución lo convertimos en un proceso.

• Si lo ejecutamos varias veces, estamos generando varios procesos del mismo programa (cada uno con su contador de programa, registros, variables)

• Los procesos los gestiona el S.O. Los S.O. multitarea (Windows, Linux) permiten la ejecución simultánea de múltiples procesos.

• La CPU se va repartiendo entre los diferentes procesos, de modo que todos ellos se vayan ejecutando en “tiempo compartido”.

• Una ráfaga de CPU es una secuencia de instrucciones que puede ejecutar un proceso sin pasar a un estado de espera. La ejecución de un proceso consta de innumerables ráfagas de CPU.

• Para observar y llevar el control de los procesos que se encuentran en ejecución en el sistema, Windows proporciona una herramienta denominada Administrador de tareas.

Un proceso es un programa en ejecución.

Page 4: TEMA 1: «GESTIÓN DE PROCESOS» Administración de Sistemas Operativos

2. COMPONENTES DE LOS PROCESOS

Sus componente son:

◦ Las instrucciones del programa asociado al proceso◦ El estado de ejecución del proceso◦ La memoria de trabajo del proceso (memoria reservada y

contenidos◦ Otra información que permite al S.O. su planificación.◦ Los S.O. multihilo, un proceso consta de uno o más hilos, la

memoria de trabajo y el estado de ejecución.

Page 5: TEMA 1: «GESTIÓN DE PROCESOS» Administración de Sistemas Operativos

3. OPERACIONES CON PROCESOS

El S.O. se encarga de:

◦ La creación de los procesos Arranque del sistema. Ejecución de una llamada al sistema para la creación de otro

proceso Petición de usuario para crear un proceso Inicio de un trabajo por lotes.

◦ La destrucción de los procesos Salida normal (proceso acaba de forma voluntaria) Salida por error (acaba por insuficiencia de datos: no existe el

archivo solicitado) Error fatal (divisiones por 0, memoria inaccesible) Eliminación por otro proceso

◦ La Comunicación entre procesos

Page 6: TEMA 1: «GESTIÓN DE PROCESOS» Administración de Sistemas Operativos

4. CLASIFICACIÓN

Cooperativos o independientes.◦ Cooperativos: dos o más procesos cooperan mediante señales de forma que uno

obliga a detenerse a los otros hasta que reciban una señal para continuar (semáforos). Se mantiene una cola (first in first out) de procesos en espera del semáforo. Por ejemplo, un programa de impresión produce caracteres que son usados por el controlador de la impresora

◦ Independiente: no puede afectar ni ser afectados por otros procesos (no comparte datos con otros procesos)

Apropiativos o no apropiativos◦ Apropiativos: ocupan todo el tiempo del procesador hasta que deciden dejarlo por si

mismos◦ No apropiativos: ocupan por un periodo de tiempo el procesador hasta que se

produce un cambio de contexto.Cambio de contexto: interrupción o señal que llega al procesador para hacer el cambio de proceso.

Primer plano o segundo plano.◦ Primer plano: interactuan con el usuario.◦ Segundo plano: se crean para tareas bien definidas y no necesitan la intervención del

usuario. También llamados demonios y en Windows servicios.

Page 7: TEMA 1: «GESTIÓN DE PROCESOS» Administración de Sistemas Operativos

5. BLOQUE DE CONTROL DE PROCESOS

En el S.O.: Un proceso se representa por: Un Bloque de Control del Proceso (PCB, Process Control Block).

Es un conjunto de registros que almacena información sobre el proceso:◦ Estado del proceso: Nuevo, Listo, en Ejecución, Bloqueado◦ Contador del programa: Dirección siguiente instrucción a ejecutar◦ Registros de la CPU: Contenidos al final de la ultima ejecución (contador de

programa, puntero a pila, registros de datos, etc.)

◦ Información planificación CPU: prioridad, apuntadores a las colas, algoritmo usado

◦ Información contable y de identificación: Número de proceso, tiempo real y de CPU utilizado.

◦ Información estado E/S: Solicitudes E/S pendientes, lista archivos abiertos, etc..

Se utiliza para ejecutar procesos concurrentes: cuando hay un cambio de contexto

Page 8: TEMA 1: «GESTIÓN DE PROCESOS» Administración de Sistemas Operativos

5. BLOQUE DE CONTROL DE PROCESOS

Page 9: TEMA 1: «GESTIÓN DE PROCESOS» Administración de Sistemas Operativos

6. ESTADOS DE UN PROCESO

Surgen de la necesidad de controlar la ejecución de cada proceso.

Obedecen a la participación y disponibilidad dentro del S.O.

Los procesadores solo pueden ejecutar un proceso a la vez.

Existen varios modelos: Modelo de 3 estados, Modelo de 5 estados, Modelo de 7 estados.

Page 10: TEMA 1: «GESTIÓN DE PROCESOS» Administración de Sistemas Operativos

7. MODELO DE ESTADOS DE UN PROCESO

Modelo de 3 estados

Ejecución: proceso que está haciendo uso del procesador

Bloqueado: proceso que no puede ejectuarse hasta que un evento externo sea llevado a cabo.

Listo: procesos que dispongan de todos los recursos para comenzar o proseguir su ejecución y a la espera de que se les conceda el control del procesador.

Page 11: TEMA 1: «GESTIÓN DE PROCESOS» Administración de Sistemas Operativos

7. MODELO DE ESTADOS DE UN PROCESO

Page 12: TEMA 1: «GESTIÓN DE PROCESOS» Administración de Sistemas Operativos

7. MODELO DE ESTADOS DE UN PROCESO

Modelo de 5 estadosNuevo: Primer estado. Su función principal es la de

llevar la contabilidad de los procesos entrantes.Ejecución: proceso que está haciendo uso del

procesadorBloqueado: proceso que no puede ejecutarse hasta

que un evento externo sea llevado a cabo.Listo: procesos que dispongan de todos los recursos

para comenzar o proseguir su ejecución y a la espera de que se les conceda el control del procesador.

Terminado: Acaba el proceso y se liberan los recursos. Su función es llevar la contabilidad de los procesos que salen.

Page 13: TEMA 1: «GESTIÓN DE PROCESOS» Administración de Sistemas Operativos

7. MODELO DE ESTADOS DE UN PROCESO

Page 14: TEMA 1: «GESTIÓN DE PROCESOS» Administración de Sistemas Operativos

7. MODELO DE ESTADOS DE UN PROCESO

Modelo de 7 estados Nuevo: Primer estado. Su función principal es la de llevar

la contabilidad de los procesos entrantes. Ejecución: proceso que está haciendo uso del procesador Bloqueado: proceso que no puede ejecutarse hasta que

un evento externo sea llevado a cabo. Listo: procesos que dispongan de todos los recursos para

comenzar o proseguir su ejecución y a la espera de que se les conceda el control del procesador..

Terminado: Acaba el proceso y se liberan los recursos. Su función es llevar la contabilidad de los procesos que salen.

Bloqueado suspendido y Listo suspendido que son los procesos que tardan mucho en ejecutarse y por esto se le da un tratamiento distinto para que no congestionen la entrada de nuevos procesos

Page 15: TEMA 1: «GESTIÓN DE PROCESOS» Administración de Sistemas Operativos

7. MODELO DE ESTADOS DE UN PROCESO

Modelo de 7 estados

Page 16: TEMA 1: «GESTIÓN DE PROCESOS» Administración de Sistemas Operativos

8. HILOS

Unidad mínima de procesamiento que puede ser planificada por el S.O.

Un hilo es una tarea que puede ser ejecutada en paralelo con otra tarea.

Los hilos de un mismo proceso comparten los recursos asignados. Cuando un hilo modifica un dato en la memoria, los otros hilos del proceso acceden al dato modificado.

El proceso sigue en ejecución mientras al menos uno de los hilos esté ejecutándose.

Cuando todos los hilos terminan, el proceso finaliza y libera todos los recursos.

Es más rápido cambiar de un hilo a otro que de un proceso a otro.

Page 17: TEMA 1: «GESTIÓN DE PROCESOS» Administración de Sistemas Operativos

9. PLANIFICACIÓN DE PROCESOS

Planificador: selecciona el proceso que va a ejecutarse.

Hay distintos planificadores que participan en diferentes momentos:◦ De largo plazo: elige entre la cola de listos, para cargarlo en

memoria.◦ De corto plazo (CPU scheduler): elige entre los que están

listos en memoria para darle la CPU◦ De medio plazo: selecciona un proceso de entre los que

están en memoria para llevarlo temporariamente a memoria secundaria por necesidades de espacio

Activador: Es el que da el control de la CPU al proceso elegido por el planificador de corto plazo.

Page 18: TEMA 1: «GESTIÓN DE PROCESOS» Administración de Sistemas Operativos

10. ALGORITMOS DE PLANIFICACIÓN

Función: elegir a cual de los procesos que están en la cola de listos se le asignara la CPU.

FCFS (first-come, first-serve). Se le asigna la CPU al proceso que la requirió primero. Se maneja a través de una cola FIFO (First In First Out), tal que cuando un proceso requiere CPU, se coloca la final de la cola. Para asignarle CPU se elige el proceso cuya PCB esta primera en la cola. Ventaja: El código para implementar este algoritmos es simple y comprensible.Inconveniente: El tiempo promedio de espera puede ser largo. Atendiendo procesos mas cortos primero, aumentamos la productividad.

Page 19: TEMA 1: «GESTIÓN DE PROCESOS» Administración de Sistemas Operativos

10. ALGORITMOS DE PLANIFICACIÓN

Shortest-job-first Scheduling (SJF). Planificación primero el trabajo mas corto. Elige entre los procesos de la cola de listos, aquel que tenga la próxima ráfaga de CPU mas corta (dato previamente conocido). Ventaja: Permite que el tiempo de espera promedio sea bajo. Inconveniente: Se puede utilizar en planificadores de largo plazo, pero no en los de corto plazo pues no hay manera de conocer la medida de la próxima ráfaga (se podría aproximar considerando el valor de la previa)

Por prioridad. Se le asocia un valor a cada proceso que representa la prioridad, y se le asigna la CPU al proceso de la cola de listos que tenga la mayor prioridad. La prioridad puede ser fija o variable. Si es fija, ese valor no varia en el ciclo de vida del proceso. Si es variable, significa que ese valor puede cambiar dinámicamente de manera tal que haya factores (p.ej: tiempo de espera en colas) que sugieran elevar la prioridad de procesos postergados y evitar la inanición.

Page 20: TEMA 1: «GESTIÓN DE PROCESOS» Administración de Sistemas Operativos

10. ALGORITMOS DE PLANIFICACIÓN

Round-Robin Scheduling (RR). Se la asigna a cada proceso de la cola de listos un intervalo de tiempo de CPU, quantum. La cola de listos se mantiene como una cola FIFO y la CPU se va asignando dándole un máximo de 1 quantum a cada proceso. Si el proceso no va a usar todo ese tiempo, usa lo necesario y libera la CPU. Se elige otro proceso de la cola. Si excede el quantum, se produce una interrupción. En ambos casos al dejar la CPU hay un cambio de contexto.Inconveniente: El tiempo promedio de espera puede ser largo. Depende fuertemente de la elección del quantum (mayor que el tiempo usado en un cambio de contexto).

Colas multinivel En un sistema puede haber requerimientos detiempo de respuesta distintos si conviven proceso interactivos con procesos por lotes.Se divide la cola de listos en distintas colas según el tipo de proceso. Cada cola puede tener su algoritmo de planificación.

Page 21: TEMA 1: «GESTIÓN DE PROCESOS» Administración de Sistemas Operativos

10. ALGORITMOS DE PLANIFICACIÓN

Colas multinivel con retroalimentación. Un proceso puede moverse entre colas. Los procesos se separan de acuerdo a la ráfaga de CPU que usan. Si esta usando mucha CPU se lo baja a una cola de menor prioridad. Se trata de mantener los procesos interactivos y de mucha I/O en las colas de mayor prioridad. Si además un proceso estuvo demasiado tiempo en una cola de baja prioridad puede moverse a una cola de mayor prioridad para prevenir inanición.

Page 22: TEMA 1: «GESTIÓN DE PROCESOS» Administración de Sistemas Operativos

11. CAMBIO DE CONTEXTO

Cambio de contexto (cambio de proceso): Es el cambio del proceso en ejecución.

Requiere:◦ Guardar el estado del proceso que se estaba ejecutando (PCB).◦ Cargar el estado (PCB) guardado para el nuevo proceso que se ejecutará.◦ Su duración es un “gasto de tiempo” (típica de 1-100 microsegundos) y depende de:

La velocidad de la memoria. El número de registros. Existencia de instrucciones especiales (una sola instrucción para cargar o almacenar todos los registros), Etc.

Page 23: TEMA 1: «GESTIÓN DE PROCESOS» Administración de Sistemas Operativos

12. CRITERIOS PARA ELEGIR UN ALGORITMO

Equidad: todos los procesos usan la CPU de forma equitativa. Eficiencia (utilización de la CPU): 100% uso, es decir, no existan tiempos

ociosos. Tiempo de retorno (o de trabajo global): tiempo que tarda en ejecutarse

un proceso concreto. Tiempo de respuesta: minimizar el tiempo de respuesta para usuarios

interactivos. Tiempo de espera: tiempo que un proceso espera en la cola de procesos

listos hasta entrar por primera vez en la CPU. Rendimiento (productividad): número de trabajos procesados por unidad

de tiempo

Page 24: TEMA 1: «GESTIÓN DE PROCESOS» Administración de Sistemas Operativos

13. GESTIÓN DE PROCESOS EN EL SISTEMA OPERATIVO

Un sistema operativo multiusuario y multitarea

◦ Tiene que ser capaz de atender múltiples tareas de diferentes usuarios (un programa no es un proceso hasta que no se ejecuta)

◦ Es capaz de gestionar varios procesos de diferentes usuarios al mismo tiempo ( repartiendo el tiempo de CPU)

◦ Asigna a cada proceso de ellos un identificador único (PID - número de identificación de proceso).

◦ Almacena en una lista de procesos (BCP), con información relevante de cada proceso: el espacio de memoria asignado, estado actual, prioridad de ejecución, (PID), PID del proceso padre (PPID), usuario y grupo propietarios (UID, GID)...

◦ Nos permite ver los procesos, terminarlos antes de que terminen por sí mismos y cambiar su prioridad.

◦ El propietario de un proceso es el usuario que lo lanza ,y es quien (además de administrador/root) puede terminarlos.

Page 25: TEMA 1: «GESTIÓN DE PROCESOS» Administración de Sistemas Operativos

14. PROCESOS EN LINUX (COMANDOS)

Top: muestra los recursos usados por tu sistema (ver cual de ellos consume más).

Htop ( “top” mejorado), no suele venir instalado en las distribuciones Linux. Más fácil de interpretar que top y además puedes realizar operaciones como parar un proceso usando las teclas.

ps: muestra todos los procesos y además puedes realizar operaciones con ellos. Puedes enlazarlos con otros comandos usando tuberías.

ps -A | grep firefox

pstree: visualiza todos los procesos en forma de árbol para mostrar sus dependencias.

Kill: Comando para matar o parar un proceso, funciona dando su ID.

pgrep: Devuelve el ID del proceso que coincide con la búsqueda:

pgrep firefox

Renice: cambia el valor “nice” de un proceso en ejecución. El valor “nice” determina la prioridad del proceso. Un valor de -19 es de muy alta prioridad, mientras que un valor 19 es de baja prioridad. Por defecto el valor es el 0. Necesita el PID del proceso:

renice 19 PID

Page 26: TEMA 1: «GESTIÓN DE PROCESOS» Administración de Sistemas Operativos

14. PROCESOS EN LINUX (ENTORNO GRÁFICO)

Monitor del sistema

Page 27: TEMA 1: «GESTIÓN DE PROCESOS» Administración de Sistemas Operativos

14. PROCESOS EN LINUX (DEMONIOS)

Los demonios son procesos del sistema que actúan sin que el usuario lo solicite (servicios en Windows)

◦ Getty: Atiende las peticiones de login desde un terminal conectado en serie. ◦ inetd: Como getty, pero para terminales en red (demonio de servicios de

TCP/IP). ◦ lpsched: Se encarga del sistema de impresión. ◦ xinetd: Inicializa los servicios de red. ◦ cups: Proporciona acceso a las impresoras. ◦ init: Es el demonio más importante del sistema.

Muchos demonios (todos ellos hijos de init), se cargan en memoria en el arranque del sistema, la mayoría lanzados a través de los ficheros script del directorio /etc/rc.d, y permanecen a la espera de que ocurra algún evento para entrar en funcionamiento. Estos procesos no están asignados a ninguna terminal (en la columna TTY, correspondiente al comando ps, aparece un signo de interrogación).

Page 28: TEMA 1: «GESTIÓN DE PROCESOS» Administración de Sistemas Operativos

15. PROCESOS EN WINDOWS (HERRAMIENTA GRÁFICA)

Administrador de tareas

Page 29: TEMA 1: «GESTIÓN DE PROCESOS» Administración de Sistemas Operativos

15. PROCESOS EN WINDOWS (SERVICIOS)

Un servicio es un tipo de aplicación que se ejecuta en segundo plano en el sistema (demonio en Linux)

Pueden iniciarse automáticamente cuando el equipo arranca, se pueden pausar y reiniciar, y no muestran ninguna interfaz de usuario.

Los servicios proporcionan características del sistema operativo, tales como servicios web, registro de eventos, servicios de archivos, impresión, criptografía, informes de errores, ...

Page 30: TEMA 1: «GESTIÓN DE PROCESOS» Administración de Sistemas Operativos

15. PROCESOS EN WINDOWS (SERVICIOS)

Administrador de servicios

Los servicios también se pueden administrar desde el complemento Servicios de Microsoft Management Console.

Para configurar el inicio de un servicio, debemos ser miembros del grupo Operadores de cuentas, Administradores. Por seguridad, sería conveniente utilizar Ejecutar como para llevar a cabo este procedimiento.

Page 31: TEMA 1: «GESTIÓN DE PROCESOS» Administración de Sistemas Operativos

17. BIBLIOGRAFÍA

Administración de S.O.Ed: Garceta