Sistemas Operativos. Sistemas Informáticos I.E.S. Virgen de la Paloma



Documentos relacionados
Tema 19 Gestión de procesos

El modelo de Procesos

Sistemas Operativos. Clase 2: Administración de procesos.

6. Planificación. Los procesos tienden a tener ráfagas de ejecución (CPU-burst) y ráfagas de espera de operaciones de E/S (I/O burst).

Sistemas Operativos Tema 5. Procesos José Miguel Santos Alexis Quesada Francisco Santana

Conceptos de Planificación

Definición de Sistema Operativo

No hay un acuerdo universal sobre una definición de proceso, pero sí algunas definiciones aceptadas:

Tema 2: Gestión de la CPU

Convivencia Gestión de Procesos

ALGORITMOS DE PROGRAMACIÓN NO EXPULSIVOS

FUNDAMENTOS DE INFORMÁTICA. Principios Básicos de Sistemas Operativos. Definición de Sistema Operativo

Sistemas Operativos. (Procesos)

Hilos Secciones Stallings:

Procesos y Threads Procesos y Threads. Concurrencia Concurrencia Ventajas Ventajas. Rendimiento Rendimiento (paralelismo) (paralelismo)

Preguntas de autoevaluación tema 3

Administración del Procesador

Concurrencia de Procesos

SISTEMAS OPERATIVOS: PROCESOS. Planificación de procesos

Niveles de Planificación

Sistemas Operativos Scheduling de Procesos

Sistema Operativo. Material (parcialmente) tomado de: Servidores de Información it.uc3m.es

ISO Tema 7-B,

Algoritmos de planificación:

SISTEMAS OPERATIVOS: Lección 4: Planificación de Procesos

Capítulo 4 Memoria virtual

IMPLANTACIÓN DE SISTEMAS OPERATIVOS 1º ASIR GESTIÓN DE PROCESOS

SIMM: TEORÍA DE LOS S.O. I.E.S. JUAN DE LA CIERVA CURSO 2007/2008

Sistemas Operativos. Práctica 2: Scheduling

Planificación de Procesos

Sistemas Operativos. Trabajo Práctico N ō 3

1. Sistema Operativo Unix

Diseño de algoritmos paralelos

Sistemas Operativos. Iván Bernal, PhD 4. Escuela Politécnica Nacional I.

Fundamentos de los Sistemas Opera2vos. Tema 2. Procesos Planificación de CPU José Miguel Santos Alexis Quesada Francisco Santana

Sistemas operativos. Hasta ahora hemos visto. Relación programa-sistema operativo Gestión de memoria

INSTITUTO TECNOLOGICO DE LAS AMERICAS CARRERA DE TECNOLOGO EN REDES DE LA INFORMACION SISTEMAS OPERATIVOS I

Gestión de Procesos. Concepto. Concepto y criterios de planificación. Utilización del procesador:

SISTEMAS OPERATIVOS GRUPO 3621 CLASE 05 DE OTUBRE DE 2011 DOCENTE:- ING. ANA LIDIA BARCENAS CORTES

Clase Práctica - Scheduling

Unidad 2: Gestión de Procesos

Objetivos de la Planificación. Planificación Monoprocesador. Tipos de Planificación. Tiempo de respuesta Productividad Eficiencia del procesador

Capítulo 5: Despacho de CPU

Acceso coordinado a recursos compartidos

Manejo de Entrada-Salida. Arquitectura de Computadoras

- Bajo que condiciones el algoritmo de planifiación de procesos FIFO (FCFS) resultaría en el tiempo de respuesta promedio más pequeño?

Test SITR Temas: Planificación, Sincronización, Comunicación entre Procesos, Relojes, Señales, Temporizadores (TestSITR_T4 T9)

PROBLEMAS TEMA 1: Estructuras de interconexión de un computador

4.1 Dispositivos y manejadores de dispositivos: device drivers

Capítulo 2. Sistemas Operativos. Elementos, estructura y funciones generales.

Planificador de Linux (Scheduler)

CENTRO ESCOLAR PRECIDENTE FRANCISCO I MADERO BACHILLERATO GENERAL ESTATAL

Unidad 1: Gestión de Procesos

Sistemas. Tecnologías de la Información y la Comunicación 1º bachillerato

Facultad de Ingeniería Industrial y de Sistemas v1.1 MA781U CONCEPTOS INICIALES CASOS DE USO

Tarea 2. Descripción y Control de Procesos

ISO Tema 8,

Universisdad de Los Andes Facultad de Ingeniería Escuela de Sistemas

[1] ANSI/IEEE Std Guía del IEEE para la Especificación de Requerimientos Software.

Introducción a los Sistemas Operativos

Sistemas Operativos I

INTRODUCCIÓN...11 CAPÍTULO 1. ELEMENTOS, ESTRUCTURA Y FUNCIONES DE UN SISTEMA OPERATIVO...13

PROCESOS E HILOS - Hilo

6 Horas semanales para 96 horas totales. IS614 Arquitectura de computadores

El scheduler O(1) de Linux

Sistemas informáticos industriales. Sistemas Operativos

Introducción a las sentencias de control

PRÁCTICO 3. Comprender la administración de procesos e hilos de los sistemas operativos. Comprender la tarea y la elección de un planificador.

Ing. Carlos Bacalla Página 1 de 5

5.- Despacho de CPU. Utilización máxima de CPU con multiprogramación. Ciclo CPU I/O Ejecución de un proceso = ciclo de CPU (ejecución) y espera de I/O

Módulo 2: Cómo funcionan las computadoras

Sistemas operativos, 2ª edición

WRO Costa Rica Categoría C. La Planta de Reciclaje

Introducción a los Sistemas Operativos S.O.

PRÁCTICO 3. Comprender la administración de procesos e hilos de los sistemas operativos Comprender la tarea y la elección de un planificador.

Planificación de Monoprocesadores.

TEMA 2. ORGANIZACIONES DE FICHEROS Y ESTRUCTURAS DE ACCESO

FUNDAMENTOS DE LOS SISTEMAS OPERATIVOS

Tema 12: El sistema operativo y los procesos

Sistemas Operativos. Procesos

1- UNIVERSIDAD DE CIENCIAS EMPRESARIALES Y SOCIALES FACULTAD DE CIENCIAS EMPRESARIALES. Tecnicatura Universitaria en Programación de Sistemas

Concurrencia. Primitivas IPC con bloqueo

Sistemas Operativos. Oscar Bedoya

Tema 6. Gestión de Interbloqueo

2º Técnico Superior en Gráfica Publicitaria

Administración de procesos

Sistemas Operativos II Febrero 2007 Nombre:

Introducción a la seguridad en redes IP

Sistemas Operativos. MODULO I. ANTECEDENTES 1.2 introducción a los ordenadores

Manejo de Entrada-Salida. Arquitectura de Computadoras

Unidad de Promoción y Desarrollo Guadiana OBJETIVO GENERAL

Clase práctica - Scheduling

Microsoft Outlook. Microsoft Outlook

UNIVERSIDAD CENTRAL DEL ECUADOR SEDE SANTO DOMINGO CARRERA DE INFORMÁTICA

Nueva pestaña de Renfe en Amadeus Selling Platform Preguntas frecuentes

Sistemas Operativos. S.O. Estructura Básica. S.O. Como Administrador de Recursos. Multiprogramación. Multiprogramación y Procesos

Algoritmos y Diagramas de flujo

Sistemas Operativos II Junio 2006 Nombre:

Transcripción:

Sistemas Operativos. Gestión de Procesos Sistemas Informáticos I.E.S. Virgen de la Paloma

Introducción (I) 2 Programa: Algo estático, un conjunto de instrucciones que, una vez ejecutadas, resuelven un determinado problema. Proceso: Algo dinámico, es una parte de un programa que se está ejecutando con todo lo que ello conlleva: valores de registros, de variables, contenido del contador de programa, etc. De un programa suelen surgir varios procesos. 2

3 Introducción (II) Componentes de un proceso: Además de las líneas de código, un proceso precisa la imagen del proceso que podrá residir en memoria secundaria, pero debe cargarse en memoria principal a la hora de ejecutarlo: Ubicación de variables y constantes definidas por el proceso. Pila asociada a cada proceso para gestionar las llamadas a funciones. Atributos del proceso guardados en el BCP: Bloque de control del proceso, que contiene: Identificación del proceso. Información sobre el estado del procesador. Información de control del proceso. Se guardan en la TBCP: Tabla de bloques de control del proceso. Cambios de contexto: La concurrencia de procesos implica que éstos entrarán y saldrán de la CPU constantemente sin haber terminado de ejecutarse. 3

4 Introducción (III) Estados de los procesos (modelo de 3 estados): EJECUCIÓN: Está utilizando la CPU en este momento. LISTO: Con posibilidad de entrar en ejecución. BLOQUEADO: Sin posibilidad de entrar en ejecución. En un modelo de 5 estados tenemos además: NUEVO: Se acaba de crear y aún habiendo sido admitido por el Sistema Operativo, no está listo para la ejecución. TERMINADO: Ha terminado su ejecución o es abandonado por el S.O., p.e. por un error irrecuperable. Este proceso no se volverá a ejecutar, pero sus tablas de valores permanecerán durante un tiempo por si algún otro programa necesitase extraer alguna información de ellas. Transiciones posibles (modelo de 3 estados): Ejecución a Bloqueado Bloqueado a Listo Ejecución a Listo y viceversa 4

Control del proceso (I) 5 Creación del proceso. Pasos del S.O. Asignar al proceso un identificativo por el que lo reconocerá de ahora en adelante, e incluirlo en la TBCP. Reservar espacio de memoria suficiente para almacenar la imagen del proceso. También reservar sitio para el BCP. Rellenar los datos del BCP. Todos los valores a 0, el contador de programa que apuntará a la primera instrucción del programa, los punteros de pila que darán los límites de la pila del proceso, el estado se inicializará a listo, la prioridad la más baja, a menos que haya una solicitud para un valor mayor, etc. Establecer los enlaces adecuados de este proceso con otros. Crear las estructuras de datos vinculadas al propio proceso. 5

Control del proceso (II) Cambios de contexto. 6 Se produce cuando un proceso no puede seguir ejecutándose, el S.O. lo detecta e intenta resolver la situación, bien para volver a reanudar el mismo proceso o para cambiar a otro. Conlleva las siguientes acciones: Salvar el contexto del proceso que abandona la ejecución (registros del procesador). Cambiar el estado del proceso que abandona, que ya no será en ejecución sino que, dependiendo del motivo del cambio pasará a listo, bloqueado, terminado, etc. modificando su BCP. Mover el BCP a la cola que corresponda (dependiendo de su estado). Solicitar otro proceso para la ejecución. Actualizar el BCP del proceso que ahora entrará en ejecución. Actualizar las estructuras de datos necesarias para la gestión de memoria. Volcar en el procesador el contexto del proceso que ahora pasa a ejecutarse. 6

Procesos e Hilos 7 Proceso: Unidad de recursos Hilo: Línea de ejecución o proceso ligero. Ventajas: La mayoría de la información del BCP es compartida por los hilos. El S.O. tarda mucho menos en crear, intercambiar y terminar hilos. Los cambios entre hilos no incluyen el intercambio de información de administración de la memoria. Al compartir memoria, la comunicación entre hilos en inmediata. Varios hilos de un proceso podrían ejecutarse de forma paralela. 7

Comunicación entre procesos (I) 8 En los sistemas multiproceso, la Concurrencia entre procesos es una tarea compleja. El objetivo de la concurrencia es garantizar la Sincronización entre procesos. Sincronización en el acceso a recursos compartidos Asignar los recursos de forma óptima (evitar Bloqueos) La solución a estos problemas es proteger a los recursos compartidos controlando el código que accede a cada uno. 8

Comunicación entre procesos (II) 9 Si existe competencia entre procesos, el S.O. debe abordar tres problemas: Necesidad de la exclusión mutua: Sección Crítica: parte de los procesos donde se hace uso de un recurso no compartible Nunca habrá más de un proceso ejecutando su sección crítica. Interbloqueo, se produce si dos procesos necesitan dos dispositivos para poder entrar en su sección crítica y el S.O. le asigna uno a cada uno. Los dos procesos se quedarán bloqueados indefinidamente, ya que ninguno va a poder acceder al otro dispositivo para poder continuar su ejecución. Inanición, se presenta cuando a un proceso no llega a asignársele un dispositivo y. por lo tanto, no puede entrar en su sección crítica porque, por ejemplo, existen otros dos procesos a los que se les está asignando de forma alternante. 9

Comunicación entre procesos (III) 10 Para poder lograr una sincronización de los procesos, el sistema deberá ser capaz de cumplir con la exclusión mutua además de satisfacer los siguientes objetivos : Si un proceso se interrumpe en una sección no crítica, no debe estorbar al resto de los procesos. Deben controlarse el interbloqueo y la inanición. Un proceso podrá poder entrar en su sección crítica si no hay otros procesos que estén en la suya. Un proceso no puede permanecer de forma indefinida en su sección crítica. 10

11 Comunicación entre procesos (IV) Hay varias formas de hacer cumplir esas condiciones : Soluciones software: dejar la responsabilidad a los mismos procesos, que cooperen para cumplir con estos objetivos sin ayuda del S.O. Algoritmos de Dekker y Peterson: algoritmos de exclusión mutua mediante variables Turno y Señal. Soluciones hardware: utilizar instrucciones de la máquina para este control. Inhabilitación de interrupciones Instrucciones especiales. Se ejecutan seguidas sin soltar el control CPU Hacer responsable al Sistema Operativo. Semáforos Monitores Paso de mensajes 11

Comunicación entre procesos (V) Semáforos : 12 Un mecanismo semáforo consta básicamente de dos operaciones primitivas Signal(S) y Wait(S) que operan sobre un tipo especial de variable semáforo S, que sólo puede tomar valores enteros. El semáforo se inicializa a 1. El primer proceso que entra, ejecuta Wait(S) y lo baja a 0. Un proceso se bloquea si deja el semáforo en <0. El segundo proceso que entra, ejecuta Wait(S) y lo baja a -1. Se bloquea. Si llegan más, se sigue decrementando. El valor absoluto nos dice cuántos procesos están esperando. Cuando el primer proceso termina, ejecuta Signal(S), subiendo 1 el valor y desbloqueando el segundo proceso. Existen semáforos binarios: sólo toman los valores 0 y 1. 12

Comunicación entre procesos (VI) Monitores : 13 Estructuras de lenguajes de programación que permiten exclusión mutua y sincronización de procesos. No los realiza el programador como los semáforos. CWAIT(C): el proceso que efectúe un CWAIT sobre una variable de condición, C, se suspende, se encola sobre la cola de procesos de dicha variable y libera el monitor, es decir, aunque no se haya completado un procedimiento, el proceso deja de estar activo dentro del monitor y por lo tanto otro proceso podrá entrar. CSIGNAL(C): sobre una variable condición C, activa un proceso de los situados en la cola de dicha variable, si hay varios elegirá uno. En el caso de que no haya procesos encolados, CSIGNAL(C) no hará nada. 13

14 Comunicación entre procesos (VII) Paso de mensajes : Las primitivas vistas hasta ahora tienen cada una sus limitaciones: los semáforos son de un nivel muy bajo. los monitores sólo los permiten unos pocos lenguajes de programación. ninguno de ellos sirve para el intercambio de información entre ordenadores. La técnica de paso de mensajes permite la sincronización de procesos y facilita la comunicación entre ellos. Existen dos operaciones básicas para el paso de mensajes: SEND (destino, mensaje): la utilizan los procesos para enviar un mensaje a un proceso destino. RECEIVE (origen, mensaje): la utilizan los procesos para recibir un mensaje desde otro proceso origen. 14

15 Comunicación entre procesos (VIII) Exclusión mutua : Un conjunto de procesos concurrentes comparte un buzón (exmut) que contiene inicialmente un único mensaje de contenido nulo. Cuando un proceso pretende entrar en su sección crítica primero intenta recibir un mensaje, y si encuentra el buzón vacío el proceso se bloquea. Cuando el proceso logra el mensaje entra a ejecutar su sección crítica y al terminar devuelve el mensaje al buzón. El mensaje actúa como testigo o token. Cuando existen varios procesos ejecutando la orden receive concurrentemente se entrega el mensaje, si lo hubiera, a uno de los procesos y los demás se bloquean y si no hubiera mensaje todos quedarían bloqueados. 15

Interbloqueo (I) 16 Condiciones necesarias, pero no suficientes Exclusión mutua. No apropiación. Retención y Espera. Condición necesaria y suficiente si se da con las anteriores. Espera Circular. 16

Interbloqueo (II) 17 Mecanismos para evitar el Interbloqueo Prevención: evitar cada una de las condiciones anteriores. Detección: si se detecta interbloqueo se pueden eliminar directamente los procesos implicados, ir eliminando uno a uno o retornar los procesos a su último breakpoint y volverlos a lanzar. Evitación: Algoritmo del banquero si se descubre algún peligro de Interbloqueo, no se dan los recursos.. 17

Planificación de Procesos (I) 18 La planificación de procesos no sólo abarca la decisión del proceso que entrará en ejecución inmediatamente, sino que también abarca otro tipo de decisiones: Planificación a largo plazo: el S.O. decide crear un proceso nuevo y lo añade al grupo de procesos a ejecutar, controlando así el grado de multiprogramación. Planificación a medio plazo: afecta a los programas que podrán pasar a memoria principal pera entrar en ejecución, teniendo en cuenta las necesidades de memoria del proceso. Planificación a corto plazo: qué proceso (listo) deberá lanzarse a continuación. 18

Planificación de Procesos (II) 19 Objetivos de la Planificación a Corto Plazo Justicia: asegurarse que todos los procesos tengan su tomo de CPU. Eficiencia: mantener la CPU ocupada todo el tiempo. Tiempo de respuesta: minimizar el tiempo de respuesta de los usuarios interactivos. Rendimiento o productividad: maximizar el número de trabajos terminados por hora. Tiempo de regreso: minimizar el tiempo medio de espera de los usuarios por lotes para obtener los resultados. 19

Planificación de Procesos (III) 20 Todos los procesos alternan entre una fase de ejecución de CPU y otra de espera por E/S. Intensivos en E/S (I/O-bound) Intensivos en CPU (CPU-bound) Prioridades. Cada proceso tiene asignada una prioridad y siempre tendrá preferencia un proceso de prioridad más alta sobre uno de prioridad menor Transiciones entre estados de un proceso: a) Ejecución a bloqueado. b) Ejecución a terminado. c) Ejecución a listo. d) Bloqueado a listo. 20

21 Algoritmos de Planificación (I) FCFS (First come, first server): El primero que llega se atiende primero. Atención por orden de llegada. Justo. Simula el mundo real (cola del supermercado). Típicamente no apropiativo Ejemplo: P1 24ms, P2 3ms, P3 3ms Orden de llegada: P1, P2 y P3 Tiempo de espera: P1 = 0; P2 = 24; P3 = 27 Ventajas: Ningún proceso espera indefinidamente Desventajas: El tiempo de espera promedio suele ser alto Puede producir baja utilización de recursos 21

Algoritmos de Planificación (II) 22 SJN (Shortest Job next): El trabajo más corto primero. Asocia cada proceso con su tiempo de ejecución. La CPU se asigna al proceso con el menor tiempo de ejecución. Si hay dos procesos con el mismo Tejecución se aplicará FCFS. Puede ser de dos tipos: apropiativo y no apropiativo Tabla de tiempos de ejemplo Proceso T. Llegada T. Ejecución P1 0 7 P2 2 4 P3 4 1 P4 5 4 22

Algoritmos de Planificación (III) 23 No apropiativo Apropiativo (Shortest Remaining Time First) 23

Algoritmos de Planificación (IV) 24 Ventajas: Parece perfecto. Consigue mejor tiempo de respuesta que FCFS. Desventajas: Puede producir alguna espera indefinida si llegan trabajos muy cortos. Cómo puedo estimar el tiempo de ejecución del próximo proceso?. 24

Algoritmos de Planificación (V) 25 RR: Carrusel o Round Robin: como FCFS, pero con expropiación. Después de un tiempo se pasa al siguiente. La cola de proceso se trata como una FIFO circular. A cada proceso se le entrega la CPU por un espacio de tiempo llamado quantum. Un proceso se ejecuta hasta que acaba o hasta que termina su quantum. Ejemplo de procesos anteriores, con un quantum de 4ms Ventajas: Perfecto para procesos interactivos (Sist. Tiempo Compartido) 25

26 Algoritmos de Planificación (VI) Desventajas: Dependiendo del valor del quantum Si es muy pequeño: Tiempo overhead por cambio de contexto. Si es muy grande: Se acerca a FCFS Recomendación: 80% de los tiempos de ejecución de los procesos deberían ser más cortos que el quantum. Ejemplo: Proceso T. Ejecución quantum = 20 P1 53 P2 17 P3 68 P4 24 26

Algoritmos de Planificación (VII) 27 Por Prioridad: Se ejecuta el proceso de mayor prioridad Si hay procesos con igual prioridad, aplicar FCFS En SJF la prioridad es el tiempo de ejecución Ejemplo: Cómo se ejecutarían los siguientes procesos siguiendo una planificación por prioridad? Proceso Tiempo Ejecución Prioridad P1 10 3 P2 1 1 P3 2 4 P4 1 5 P5 5 2 27

Algoritmos de Planificación (VIII) 28 Cómo Asignar Prioridades:. Internamente por Sistema Operativo: en base al uso de recursos (memoria, archivos, etc ) Externamente dependiendo de la importancia de los procesos Suelen aumentar la prioridad por edad del proceso, para que no haya inanición por prioridad baja (Envejecimiento). 28

Algoritmos de Planificación (IX) 29 Múltiples colas: algoritmos intra-cola e inter-colas. Tiene una jerarquía de varias colas de procesos. Asigna prioridades para ordenar las colas. Cada cola se puede planificar con un algoritmo. Los quantums pueden ser distintos para cada cola (Si utiliza RR) Los procesos pueden cambiar de cola en base a su historia. Caso: Múltiples colas retroalimentadas (Utiliza RR) Su idea es separar los procesos en base a sus necesidades de ejecución. Los procesos interactivos en las colas de mayor prioridad. Los procesos intensivos en CPU en las colas de menor prioridad. Aplica el envejecimiento. 29

Algoritmos de Planificación (X) 30 Planificación en dos niveles Unos procesos en memoria y otros en disco. A corto plazo decide a qué proceso se le asigna la CPU (Cualquiera de los algoritmos anteriores). A largo plazo decide qué procesos pasan a disco (Cualquiera de los algoritmos anteriores). Muy similar al funcionamiento de la memoria caché. 30

Según los Sistemas Operativos (I) 31 Planificación de Procesos en UNIX Usa múltiples colas realimentadas. Dependiendo del tipo de proceso Procesos de Tiempo Compartido Procesos del Sistema Procesos de Tiempo Real Planificación por prioridad entre distintas colas y RR dentro de cada cola. Los procesos cambian su prioridad dinámicamente Se incrementa la prioridad si el proceso hace E/S antes de terminar su quantum. Se decrementa si el proceso utiliza todo su quantum. 31

Según los Sistemas Operativos (II) 32 Planificación de Procesos en Linux Utiliza dos algoritmos para la planificación de procesos Algoritmo para procesos en tiempo compartido Prioridades y créditos asociados a cada proceso. Proceso con más créditos se ejecuta primero. A cada interrupción del timer se decrementan créditos del proceso en ejecución. Si llega a 0, siguiente proceso. Cuando todos los procesos llegan a crédito 0, se recalculan. Algoritmo para procesos en tiempo real Las prioridades absolutas son más importantes que la justicia. 32

Según los Sistemas Operativos (II) 33 Planificación de Procesos en Windows Utiliza un enfoque basado en Prioridades. Modela de esta forma los distintos grados de urgencia en el tratamiento de los dispositivos. Implementa Hilos. Tiene un sistema de gestión de excepciones complejo: Estructurado. Similar al que utilizan lenguajes como C++ o Java 33