TEMA 7. GESTIÓN DE PROCESOS



Documentos relacionados
Procesos. Planificación del Procesador.

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

Tema 1: Introducción a los S.O. Ejercicios de Planificiación de Procesos

Sistemas Operativos. Curso 2014 Planificación

Sistemas Operativos. Curso 2015 Planificación

Capítulo IV. INTERBLOQUEO E INANICIÓN

Sistemas Operativos Tema 6. Planificación de procesos José Miguel Santos Alexis Quesada Francisco Santana

Tema 2. Procesos. 1. Concepto de proceso

Gestión de procesos DEFINICIONES DE PROCESOS

Tema 4. Gestión de entrada/salida

El soporte del sistema operativo. Hace que un computador sea más fácil de usar. Permite que los recursos del computador se aprovechen mejor.

Tema 8 Procesos. * Definición informal: un proceso es un programa en ejecución

Concurrencia. Primitivas IPC con bloqueo

Unidad 2: Gestión de Procesos

Planificación de Procesos. Módulo 5. Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco

Unidad 1: Conceptos generales de Sistemas Operativos.

Arquitectura de sistema de alta disponibilidad

2) Tenemos un sistema informático con una sola CPU que está gestionada mediante una cola multinivel con realimentación.

Estructuras de Sistemas Operativos

CONCEPTOS BASICOS. Febrero 2003 Página - 1/10

Sistemas operativos avanzados. 1.3 Algoritmos de planificación del procesador

Transacciones y bloqueos en SQL-Server

La Tecnología líder en Simulación

COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX

Hardware y Estructuras de Control. Memoria Virtual. Ejecución de un Programa. Ejecución de un Programa

Capitulo V Administración de memoria

GUÍA RÁPIDA DE TRABAJOS CON ARCHIVOS.

INTERRUPCIONES. La comunicación asíncrona de los sistemas periféricos con la CPU, en ambos sentidos, se puede establecer de dos maneras fundamentales:

Unidad II: Administración de Procesos y del procesador

GESTIÓN Y CONTROL DEL DESARROLLO E IMPLANTACIÓN DE APLICACIONES

Práctica del paso de generación de Leads

Oficina Online. Manual del administrador

WINDOWS : TERMINAL SERVER

INFORMÁTICA. Matemáticas aplicadas a la Informática

Mantenimiento de Sistemas de Información

Sistemas de Gestión de Calidad. Control documental

SEGURIDAD Y PROTECCION DE FICHEROS

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas:

Concurrencia. Bibliografía: Introducción a los Sistemas de Bases de Datos Date, C.J.

Programa diseñado y creado por Art-Tronic Promotora Audiovisual, S.L.

Capítulo 9. Archivos de sintaxis

MANUAL COPIAS DE SEGURIDAD

Funcionalidades Software PROYECTOS GotelGest.Net Software para la gestión de Proyectos GotelGest.Net

MANUAL DE USUARIO DE LA APLICACIÓN DE ACREDITACION DE ACTIVIDADES DE FORMACION CONTINUADA. Perfil Entidad Proveedora

Tutorial: Primeros Pasos con Subversion

WINDOWS : COPIAS DE SEGURIDAD

GESTINLIB GESTIÓN PARA LIBRERÍAS, PAPELERÍAS Y KIOSCOS DESCRIPCIÓN DEL MÓDULO DE KIOSCOS

MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD

UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3

Manual Oficina Web de Clubes (FBM)

Internet Information Server

Sistemas Operativos. Curso 2016 Procesos

MANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO

GUIA APLICACIÓN DE SOLICITUDES POR INTERNET. Gestión de Cursos, Certificados de Aptitud Profesional y Tarjetas de Cualificación de Conductores ÍNDICE

TELEPROCESOS Y SISTEMAS DISTRIBUIDOS

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

CDI Exclusión mutua a nivel alto. conceptos

Gestión de Oportunidades

Cómo mejorar la calidad del software a través de una gestión adecuada de la productividad de las pruebas

Introducción a la Firma Electrónica en MIDAS

GeneXus BPM Suite X. Última actualización: 01 de Setiembre de 2008

Qué son y cómo combatirlas

CATÁLOGO CATÁLOGO CATÁLOGO CATÁLOGO CATÁLOGO

Manual de ayuda para crear y gestionar Tareas, como actividad evaluable

GUIA COMPLEMENTARIA PARA EL USUARIO DE AUTOAUDIT. Versión N 02 Fecha: 2011-Febrero Apartado: Archivos Anexos ARCHIVOS ANEXOS

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso

Metodología básica de gestión de proyectos. Octubre de 2003

Introducción a las redes de computadores

1.- DESCRIPCIÓN Y UTILIDAD DEL SOFTWARE DAEMON TOOLS.

4. Programación Paralela

LiLa Portal Guía para profesores

Sistema de proceso por lotes: esquema operativo

Capítulo 1 Introducción a la Computación

Elementos requeridos para crearlos (ejemplo: el compilador)

CÓMO TRABAJA TU SISTEMA OPERATIVO?

DISCOS RAID. Se considera que todos los discos físicos tienen la misma capacidad, y de no ser así, en el que sea mayor se desperdicia la diferencia.

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD

Tema 11. Soporte del Sistema Operativo REQUERIMIENTOS DE LOS SISTEMAS OPERATIVOS MULTIPROGRAMACIÓN.

Procesos. Procesos. Concurrencia de procesos. Qué es un proceso? Estados de un proceso. Modelo de 2 estados. (C) 2008 Mario Medina 1

UNIVERSIDAD DE SALAMANCA

Una computadora de cualquier forma que se vea tiene dos tipos de componentes: El Hardware y el Software.

2.2. LA COMPRA. TOMA DE DECISIONES DEL CLIENTE.

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas.

Hilos, comunicación y competencia entre procesos. Dr. Alonso Ramírez Manzanares 2-Sep-2010

1 (2 5 puntos) Responda con brevedad y precisión a las siguientes preguntas:

Test de intrusión (Penetration Test) Introducción

Acronis License Server. Guía del usuario

Tarea 4.2 Memoria Virtual

Responsive Web Design Diseño Web Adaptable

Utilidades de la base de datos

Sistemas Operativos. Oscar Bedoya

TEMA 13. FONDOS DE INVERSIÓN

SISTEMAS OPERATIVOS AVANZADOS

NOTAS TÉCNICAS SOBRE EL SIT: Definición y Configuración de Usuarios

Unidad 2: Gestión de Procesos

Autor: Microsoft Licencia: Cita Fuente: Ayuda de Windows

Operación 8 Claves para la ISO

Centro de Capacitación en Informática

Contenido. Qué es el interbloqueo? Cómo prevenirlo? Cómo evitarlo? Cómo detectarlo? Interbloqueo. Cruce en un Puente. Qué es?

Guías _SGO. Gestione administradores, usuarios y grupos de su empresa. Sistema de Gestión Online

Transcripción:

TEMA 7. GESTIÓN DE PROCESOS 1. EL BLOQUE DE CONTROL DE PROCESOS... 1 1.1.- CAMBIO DE CONTEXTO... 2 2. ESTADO DE LOS PROCESOS... 2 2.2.- TRANSICIONES DE ESTADO... 3 2.3.- OPERACIONES SOBRE PROCESOS... 4 2.4.- PRIORIDADES.... 4 2.5.- TIPOS DE PROCESOS... 4 a). Según uso y forma de código.... 4 b). Según capacidad de acceso al microprocesador y recursos... 4 c). Según la forma de ejecución... 5 3. PLANIFICACIÓN DEL PROCESADOR... 5 3.1.- OBJETIVOS... 5 3.2.- CRITERIOS.... 5 3.3.- MEDIDA... 6 3.4.- ALGORITMOS... 6 a). FCFS... 7 b). Round-Robin (RR)... 8 c). El siguiente proceso, el mas corto (Shortest Job Next, SJN).... 9 d). Próximo proceso, el de tiempo restante más corto (Shortest Remaining Time SRT)... 9 e). Prioridades...10 f). Próximo el de mas alto índice de respuesta (HRN. High Response Next)...10 g). Colas Múltiples...11 3.5.- PROCESO EN PARALELO E INTERBLOQUEO...11 a). Conceptos...11 b). Exclusión mutua....11 c). Sincronización....12 3.6.- INTERBLOQUEO...13 1. El bloque de control de procesos. Un proceso se representa desde el punto de vista del sistema operativo por un conjunto de datos donde se incluye el estado en cada momento recursos utilizados, registros, etc. Esto se denomina el bloque de control de proceso, que persigue dos objetivos: 1. Localizar información útil para el sistema operativo. 2. Mantener registrado los datos en caso de tener que suspender temporalmente un proceso. La información contenida en el PCB es la siguiente: (Program Control Black) Estado del proceso: información del contenido del contador del proceso, el estado del procesador, modo de ejecución y al estado de los registros internos del microprocesador Estadísticas de tiempo y ocupación de recursos para la gestión de la planificación del procesador. Ocupación de memoria interna y externa para el intercambio o swapping. Recursos en uso, normalmente unidades de E/S. Archivos en uso. Prof.: Justo Sáez Arenas 1

Privilegios. Los datos relativos al estado del proceso se encuentran en memoria principal. 1.1.- Cambio de contexto. Cuando un proceso pasa de un estado de ejecución a otro de espera hay que guardar toda su información actualizada con la finalidad de que cuando se reanude su ejecución lo haga en las condiciones en las que se suspendió. 2. Estado de los procesos. Un proceso se puede encontrar activo o inactivo. Estados activos. Son aquellos procesos que compiten o están en condiciones de hacerlo por la atención del microprocesador: Procesos en ejecución. Aquellos que se encuentran ejecutándose por el procesador. En un sistema monoprocesador solo puede haber un proceso en ejecución en un instante concreto. En un sistema con n procesadores puede haber n procesos en ejecución. Procesos preparados. Son aquellos que están dispuestos para ser ejecutados, están en la cola de espera. Procesos bloqueados. Son aquellos que no pueden ejecutarse porque necesitan algún recurso que no está disponible, normalmente dispositivos de e/s. Estados Inactivos. Son procesos que no han terminado su trabajo pero pueden volver a competir por el procesador. Su PGB se encuentra aparcado hasta que pueda volver a ser activado. Encontramos: Procesos suspendidos bloqueados: La causa que produjo la inactividad no ha desaparecido. Procesos suspendidos preparados: Se encuentran suspendidos pero no hay causa para su bloqueo. Dependiendo de su estado, los procesos estarán en algunas de las colas, las cuales son gestionadas por el gestor de trabajos o el gestor de procesos siguiendo algún algoritmo. Prof.: Justo Sáez Arenas 2

2.2.- Transiciones de estado. Fig.: 1. Estados de un proceso y sus transiciones. 1. Comienzo de la ejecución: Todo proceso comienza al ser dada la orden de ejecución y se inserta en la cola de preparados. 2. Paso a estado de ejecución: Cuando el procesador se encuentra inactivo y existe algún proceso preparado. 3. Paso a bloqueado: Cuando un proceso en ejecución espera con un dispositivo de E/S u otra causa. Su PCB se colocará en la cola de trabajos bloqueados 4. Paso a preparado: 4 causas: - Cuando hay una orden de ejecución de un programa. - Si un proceso está bloqueado y la situación que lo motiva desaparece. - Si un proceso está en ejecución y aparece una interrupción que fuerza al S.O a ejecutar otro proceso, el 1º pasa a preparado y su PCB a la cola del preparado. - Activación: un proceso suspendido sin estar bloqueado pasa al estado de preparado cuando se activa nuevamente. 5. Paso a suspendido bloqueado: Cuando el S.O recibe la orden de suspender un proceso bloqueado. 6. Paso a suspendido preparado: 3 causas: - Suspensión de un proceso preparado pasando desde la cola del proceso preparado a la de suspendido preparado. - Suspensión de un proceso en ejecución. - Cuando se desbloquea un proceso que estaba suspendido por bloqueo. Prof.: Justo Sáez Arenas 3

2.3.- Operaciones sobre procesos Crear el proceso. Un proceso se crea cuando se da la orden de ejecución y suele necesitar varios argumentos como por ejemplo su nombre y la prioridad, en este momento se crea su PCB. La creación de un proceso suele ser de dos tipos: o Jerárquica: donde cada proceso que se crea es hijo de otro proceso y hereda su entorno de ejecución. o No jerárquica: Cada proceso es independiente y tiene su propio entorno de ejecución. Destruir un proceso. Se trata de la eliminación de un proceso y de su PCB. Suspender un proceso. Es una operación de alta prioridad que paraliza un proceso que posteriormente puede ser reanudado. Reanudar un proceso. Activar un proceso que ha sido previamente suspendido Cambiar la prioridad de un proceso. Temporizar la ejecución de un proceso. Hace que un determinado proceso se ejecute cada cierto tiempo Despertar un proceso. Desbloquear un proceso bloqueado 2.4.- Prioridades. En general todo proceso lleva aparejadas necesidades de ejecución en cuanto a su urgencia y asignación de recursos mediante unas prioridades que el sistema operativo le otorga o el propio propietario del proceso. Puede haber prioridades estáticas no pueden ser modificadas durante la ejecución del proceso o dinámicas que si pueden ser variadas. Estas prioridades van servir para que el proceso pueda tener preferencias sobre otros. 2.5.- Tipos de procesos. a). Según uso y forma de código. Reutilizables: Aquellos que pueden cambiar los datos que utilizan, pero si vuelven a utilizar los datos necesitan comenzar en su estado inicial y procesar nuevos datos. Reentrantes: no tener asociados datos. b). Según capacidad de acceso al microprocesador y recursos. Apropiativos: son aquellos que al tener asignado un recurso no permiten que otro proceso pueda acceder a él hasta que hayan terminado. No apropiativos: permiten a otros procesos que puedan acceder a un recurso que el utiliza. Prof.: Justo Sáez Arenas 4

c). Según la forma de ejecución. Residentes: permanecen en memoria todo el tiempo que dure su ejecución Intercambiables: pueden ser sacados de memoria cuando se encuentren bloqueados u otro estado. 3. Planificación del procesador. Son los mecanismos que utilizan los sistemas operativos para gestionar la utilización del microprocesador, se conoce como Scheduller o planificador. Básicamente se distinguen tres niveles de planificación: a) Planificación a largo plazo o planificador de trabajos: decide cual será el próximo trabajo que se va a ejecutar. En los sistemas de tiempo compartido se encarga de crear los procesos y cargarles en memoria. b) Planificador a medio precio o de swapping: decide si un proceso que esta en ejecución, en estado bloqueado o suspendido debe ser sacado de memoria temporalmente. c) Planificador a corto plazo o planificador del procesador: decide como y cuando tendrá acceso al procesador que esta preparado para ser utilizado. 3.1.- Objetivos. Se intentara no favorecer o perjudicar a unos procesos frente a otros. Máxima capacidad de ejecución, se logra disminuyendo el numero de cambios de contexto. Predicibilidad, en todo momento se podrá saber como se está ejecutando la planificación. Minimizar la sobrecarga, también está estrechamente relacionado con la cantidad de cambios de contexto. Equilibrio en el uso de recursos, intentar que los recursos estén ocupados equitativamente el mayor tiempo posible. Seguridad de las prioridades, si un proceso tiene mayor prioridad que otro este debe ejecutarse más rápidamente. 3.2.- Criterios. A la hora de diseñar un algoritmo de planificación se deben tener en cuenta los siguientes criterios: Tiempo de respuesta: Velocidad con la que el ordenador da respuesta a una petición, depende mucho de los dispositivos de entrada - salida. Tiempo de servicio: Tiempo que tarda en ejecutarse un proceso incluyendo su carga en memoria, el tiempo de espera en la cola de preparados, el tiempo de ejecución en el procesador y el tiempo consumido en las operaciones de E/S. Tiempo de ejecución: igual al tiempo de servicio menos el tiempo de espera en preparados. Seria el tiempo que dedicaría el procesador a un proceso si este fuese el único en el sistema. Tiempo de procesador: tiempo que un proceso utiliza el procesador sin contar el tiempo que se encuentra bloqueado. Prof.: Justo Sáez Arenas 5

Tiempo de espera: es el tiempo en que los procesos están activos pero sin ser ejecutados es decir, los tiempos de espera en las distintas colas. Eficiencia: es el rendimiento del procesador. Rendimiento: es el numero de trabajos o procesos realizados en la unidad de tiempo. 3.3.- Medida. Para estudiar el comportamiento de los diferentes algoritmos de planificación definimos dos medidas relacionadas entre si que nos indica como estamos tratando un proceso, estas son: el tiempo de servicio(t) y el tiempo de espera (E). T(tiempo servicio)=t f -t i E=T-t Donde: t = tiempo de ejecución. t i = instante en que el usuario da la orden de ejecución. T f =Instante en que el proceso termina. A partir de los valores anteriores podemos establecer una relación denominada índice de servicio. Que es I = t/t. Representa el tanto por uno de tiempo que el proceso esta en ejecución respecto al tiempo de vida del mismo en el sistema. En el caso de multiprogramación hablaremos de tiempos medios de servicio, tiempos medios de espera y eficiencia. Así mismo tendremos en cuenta: Tiempo del núcleo (Tiempo que consume el núcleo del sistema operativo para tomar todas las decisiones del sistema de planificación) Tiempo de inactividad o Idle: Tiempo de inactividad: tiempo consumido cuando la cola de preparados está vacía. 3.4.- Algoritmos. Como ya hemos visto el planificador a corto plazo, asigna tiempo de ejecución a los procesos que están en la cola de preparados, la cual se alimenta de dos formas: i) Cada vez que el usuario inicia una aplicación, el planificador a largo plazo crea el proceso y lo pasa al planificador a corto plazo colocándose en la cola de preparados. ii) Cuando un proceso deja de estar en estado de ejecución o deja de estar bloqueado pasa a la cola de preparados. (Recordar el esquema de los estados de un proceso y sus transiciones). Por otro lado cuando un proceso termina su ejecución deja de existir para el planificador. Los algoritmos de planificación se agrupan en: a) Apropiativos: el proceso que está haciendo uso del procesador puede ser temporalmente suspendido y permitir que otro se apropie del uso del procesador. b) No apropiativos: el proceso no abandona nunca el procesador hasta que no finaliza. Para el estudio de los diferentes algoritmos utilizaremos tablas donde tendremos listados los procesos y sus datos, tales como, instante de llegada, tiempo de ejecución, prioridad, etc. Así mismo utilizaremos gráficas donde representar en el tiempo los procesos (Diagrama de Gantt). (Por otro lado supondremos que no es siempre así en la realidad que los procesos no realizan Prof.: Justo Sáez Arenas 6

operaciones de entrada y salida. La unidad de tiempo que utilizaremos es una medida abstracta, y el indice medio de servicio o eficiencia se suele expresar en porcentaje). a). FCFS. El procesador irá ejecutando cada proceso por orden de llegada hasta que lo finaliza. Sencillo y simple pero de poco rendimiento. Se caracteriza por: No es apropiativo. Los procesos largos hacen esperar a los cortos. Es predecible, es decir, podemos saber a priori como se llevará a cabo la planificación. Tiempo medio de servicio es muy variable y depende del numero de procesos y su duración. Ejemplo: Se pide calcular los datos restantes y las media de T, E, I. Y el diagrama de Gantt correspondiente aplicando algoritmos de FCFS: Tenemos la siguiente tabla de procesos: T(tiempo servicio)= Final Llegada. E(tiempo espera)= T T. ejecución. I(índice de servicio) = T. Ejecución / T. Proceso Llegada T. Ejecución Finaliza T(servicio) E(espera) I(iservicio) A 0 3 3 3 0 1.00 B 1 5 8 7 2 0.71 C 4 2 10 6 4 0.33 D 5 6 16 11 5 0.55 E 8 4 20 12 8 0.33 7.8 3.8 0.58 E 8 12 D 5 11 C 4 6 B 1 7 A0 3 0 2 4 6 8 10 12 14 16 18 20 Prof.: Justo Sáez Arenas 7

b). Round-Robin (RR). También se denomina asignación cíclica o planificación en rueda. Intenta ser más justo que el FCFS a la respuesta tanto de procesos cortos como largos. Consiste en conceder a cada proceso un periodo de tiempo q (quantum) transcurrido el cual si el proceso no ha terminado vuelve a la cola de preparados y entrando a ejecución el siguiente proceso. Este proceso se realiza repetidamente hasta que se terminen los procesos. A la hora de gestionar la cola de preparados podemos aplicar una política FIFO o una de prioridades. Variando el quantum se obtienen diferentes comportamientos; a mayor q más tiempo necesita el proceso más largo, si q es muy pequeño podemos sobrecargar el sistema al incrementar mucho el numero de cambios de contexto. Las características de este algoritmo son: Baja sobrecarga, si el cambio de contexto es eficiente y los procesos siempre están en memoria principal. El tamaño optimo del quantum depende de: El tipo de sistema. Cargas que vaya a soportar el sistema. Número de procesos que tenemos y su tipo. Es la política que más se utiliza para sistemas de tiempo compartido. Se obtiene un índice de servicio uniforme para todos los procesos. Es una política apropiativa. Ejemplo: Se pide calcular los datos restantes y las media de T, E, I. Y el diagrama de Gantt correspondiente aplicando algoritmos de FCFS: Tenemos la siguiente tabla de procesos: T(tiempo servicio)= Final Llegada. E(tiempo espera)= T T. ejecución. I(índice de servicio) = T. Ejecución / T. Teniendo un quantum de 1. q = 1 Si un proceso finaliza sin haber agotado su quantum entrara inmediatamente el siguiente proceso con su respectivo quantum. Los procesos que van saliendo se colocan al final. Si un proceso comienza en el mismo momento que acaba un quantum se considera que ha llegado a la cola antes de que finalice ese quantum. Proceso Llegada T. Ejecución Finaliza T(servicio) E(espera) I(iservicio) A 0 3 5 5 2 0.60 B 1 5 13 12 7 0.42 C 4 2 9 5 3 0.40 D 5 6 20 15 9 0.40 E 8 4 18 10 6 0.40 medias 9.4 5.4 0.44 Prof.: Justo Sáez Arenas 8

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 A B A B A C B D C B E D B E D E D E D D A A A B B B B B C C D D D D E E E E q = 3 A A A B B B B B C C D D D D D D E E E E c). El siguiente proceso, el mas corto (Shortest Job Next, SJN). Es una política de planificación no apropiativa que trata de cubrir los mismos objetivos que Round Robin. Consiste en tomar de la cola de preparados aquel proceso que necesite menos tiempo de ejecución, para ello se debe conocer el tiempo que necesita cada proceso lo cual no es fácil pero se pueden conseguir unas aproximaciones a través de diversos métodos que el sistema operativo utiliza para estimar el tiempo de ejecución. SJN es bueno para los procesos cortos y salen perjudicados los largos. Sus características principales son : No es apropiativo. El tiempo de espera aumenta de acuerdo con la longitud de los procesos, pero el tiempo medio de espera con respecto a otros algoritmos es optimo. Es poco predecible. Perjudica los procesos largos. Se obtiene un buen tiempo de servicio. Resulta difícil de poner en práctica por los datos que necesita para realizarse la aplicación. (Mirar ejercicio en hoja) d). Próximo proceso, el de tiempo restante más corto (Shortest Remaining Time SRT). Es una mezcla de los RR y SJN, para ello cambia el proceso que esta en ejecución por otro que exige menos tiempo de ejecución mediante apropiación de procesador. El tiempo de respuesta medio de los procesos largos es mejor que en SJN, presenta un excelente índice de servicios (I) y el tiempo de espera (E) es bastante corto para la mayoría de Prof.: Justo Sáez Arenas 9

los procesos. Consigue una buena eficiencia ya que logra que la lista de preparados sea lo más corta posible. Sus principales características son : Es una variante de SJN para hacerlo apropiativo. Puede ser injusto ya que un proceso corto puede echar a uno largo que esté haciendo uso del procesador y que además esté terminando. Presenta una mayor sobrecarga. Excelente tiempo medio de servicio. Es muy eficiente. e). Prioridades. En este algoritmo se asocia a cada proceso una prioridad de forma que se ejecutarán antes los procesos de mayor prioridad. Las prioridades se pueden asignar interna o externamente, en el primer caso el sistema operativo realiza unos cálculos y asigna prioridades en base a criterios como tiempos de ejecución, necesidad de memoria, etc.; las prioridades externas las asigna el usuario u otro programa. El principal problema que puede surgir es el bloqueo o postergación indefinida, ya que un proceso de baja prioridad puede estar esperando su turno indefinidamente, una forma de evitar esta postergación es lo que se denomina envejecimiento de prioridades y consiste en aumentar gradualmente las prioridades de los procesos que están en espera. Este algoritmo puede estar basado tanto en políticas apropiativas como no apropiativas, en el caso de utilizar un criterio apropiativo, un proceso puede ser retirado si aparece otro de mayor prioridad. f). Próximo el de mas alto índice de respuesta (HRN. High Response Next). Este algoritmo intenta corregir las injusticias de SJN con los procesos largos o del FCFS con los procesos cortos. Se basa en hacer variables la prioridad de los procesos recalculandola constantemente desacuerdo a la expresión. P = (W + t) / t P es prioridad del proceso. W es tiempo que lleva esperando el proceso en cola preparados. T es tiempo de ejecución. De esta expresión se deduce que la prioridad varia en relación de W y t, de forma que al principio P tiene un valor de 1 que irá creciendo paulatinamente según permanezca en la cola de preparados y va decreciendo cuanto más tiempo esté en ejecución. Las características de este algoritmo son: No es apropiativo. Bastante justo con procesos cortos y largos. Es costoso de poner en práctica. Produce una sobrecarga en el sistema, debido al tiempo que se necesita para hacer los cálculos y los cambios de contexto. (mirar ejemplos) Prof.: Justo Sáez Arenas 10

g). Colas Múltiples. Los procesos que van a ser ejecutados se agrupan y se asignan a diferentes colas cada una puede tener su propia planificación. Para decidir que cola tomar normalmente se utiliza un algoritmo apropiativo de prioridad fija. Un método que se utiliza son las colas múltiples con realimentación o Feedback Multiple Queues (FB). Cuando el proceso que hace uso del procesador finaliza su quantum se selecciona un nuevo proceso del principio de la cola. Cuando un proceso consume sus quantum en una cola pasa a la siguiente. Características: Es apropiativo. Soporta bien la sobrecarga del sistema. Es muy adaptable a las necesidades del sistema, ya que cada cola puede ser gestionada de forma diferente. 3.5.- Proceso en paralelo e interbloqueo. a). Conceptos. Paralelismo: es la ejecución de diversas actividades simultáneamente en varios procesadores, si sólo existe un procesador en multiprogramación hablamos de pseudoparalelismo. Concurrencia: varias actividades ejecutándose simultáneamente, necesitarán sincronizarse para actuar de forma conjunta, por ejemplo, si dos actividades necesitan escribir un mismo fichero será necesario establecer un orden e indicar cual de ellas ha escrito. A continuación vemos una serie de problemas que pueden surgir debido a la concurrencia de actividades b). Exclusión mutua. Supuesto. Tenemos un archivo formado por registros de cinco campos. DNI Nombre Ap1 Ap2 Domicilio Para que un registro sea valido debe estar actualizado en todo momento, así si modificamos el campo DNI los demás campos deben ser coherentes Si en el momento que un proceso escribe o modifica un registro existe otro proceso que quiere leer el registro puede que se obtengan datos erróneos. Para evitar esta situación debemos sincronizar las actividades de forma que cuando una esta escribiendo no permitimos que otro lea. En el momento en que cambiamos de un proceso o actividad a otra se pueden producir las siguientes actividades: Sin sincronización entre procesos. Si no sincronizamos corre el riesgo de leer datos inconsistentes. Con sincronización entre procesos. Prof.: Justo Sáez Arenas 11

Utilizamos algún mecanismo que prohibe la lectura a cualquier proceso mientras se está escribiendo. Esta sincronización es lo que conocemos como exclusión mutua. La zona de código de un proceso que no puede ser interrumpida por otro se conoce como sección crítica. c). Sincronización. Si una actividad desea impedir que otra acceda a ciertos datos compartidos, mientras no se cumpla una determinada condición, debemos sincronizar las actividades con dicha condición. Se diseñan algoritmos para realizar esta operación y podemos clasificarles en tres grupos: Espera Activa: se establece la espera de entrada a la sección crítica mediante un bucle que se romperá cuando se cumpla una determinada condición. Se denomina activa porque ele proceso no queda bloqueado durante su ejecución sino que estará compitiendo por el uso del procesador. Estos algoritmos sobrecargan el sistema innecesariamente. Tenemos tres tipos: Espera con Mutex: se utiliza un switches o mutex a través del cual se produce la sincronización. Algoritmos de alternancia: mejores que el anterior aunque también utilizan una variable turno. Algoritmo Dekker: resuelve el problema mediante la solución propuesta por Dekker que basa su funcionamiento en una tabla de switches. Espera No activa: son algoritmos que establecen la espera para entrar en la sección crítica bloqueando el proceso hasta que se cumpla una condición de desbloqueo. Entre ellos tenemos a los siguientes: Semáforos: diseñados por Dijkstra se basan en un mecanismo que utiliza una variable entera como contador de peticiones de entrada a una sección crítica. Regiones críticas: sólo permiten que los datos compartidos puedan ser accedidos desde determinadas regiones del código. No permiten que varias actividades puedan leer simultáneamente. Monitores: en los mecanismos anteriores el programador debía proporcionar la forma de sincronización. Para ellos se diseña el monitor que permite compartir datos entre varias actividades sin necesidad que el programador indique como. Se basa en dos premisas: una consiste en separar las operaciones a ejecutar sobre los datos, de los detalles de diseño propios de los mismos, otra es realizar la exclusión mutua tal cual. Básicamente consiste en reunir todas las funciones que operan sobre un conjunto de datos compartidos en un solo modulo de forma que todos los acceso a esos datos estarán forzados a utilizar dichas funciones. Mensajes: se basa en permitir a los procesos comunicarse entre sí mediante mensajes que utilizan una zona de memoria compartida oculta y gestionada por el sistema operativo, de esta forma un proceso que quiere enviar un mensaje a otro lo deja en la zona compartida donde lo leerá el otro. Llamadas remotas: cuando un proceso se ejecuta se crea una copia del mismo que se sigue ejecutando de forma concurrente y hasta que no termina un proceso no comienza otro. Se utiliza en programas que necesitan iniciarse tantas veces como usuarios lo solicitan. Prof.: Justo Sáez Arenas 12

Rendez-vous: es una modificación del de llamada remotas pero solo se crea una copia de un grupo de sentencias. Mecanismos Hardware: son mecanismos que aseguran la exclusión mutua mediante soluciones del propio hardware. Las más utilizadas son las siguientes: - Deshabilitar interrupciones: consiste en la posibilidad hardware de no atender las interrupciones que no nos interesen porque violen la exclusión mutua. Esta atención a las interrupciones puede ser habilitada o deshabilitada según nos interese. - Instrucción Test-And-Set: es una instrucción del microprocesador que fuerza la exclusión mutua. Por sí sola no asegura la exclusión pero basándonos en ella construimos los denominados locks. - Lock: se basa en la instrucción anterior y su cometido es permitir el acceso a la sección crítica a un proceso en caso de no existir otra actividad dentro de su sección crítica, no permitiéndolo en caso contrario. 3.6.- Interbloqueo. Es la situación a la que se llega cuando un conjunto de procesos en estado de espera puede continuar su ejecución (por ejemplo, cuando un puente de vía estrecha quieren entrar varios coches a la vez). El interbloqueo interfieren cuestiones como: Recursos: elementos que un programa o proceso puede utilizar en el ordenador ya sean dispositivos hardware como software. El problema consiste en aquellos recursos que solo pueden ser utilizados por un proceso en un momento dado, en este caso se siguen la secuencia: solicitar el recurso, optimizarlo y liberarlo. Bloqueo o abrazo mortal (deadlock): se produce cuando a todos los procesos en espera ninguno de ellos puede producir un suceso que solucione la situación. Postergación indefinida: se produce cuando un proceso queda en espera indefinida por algún recurso mientras los otros procesos son atendidos por el sistema. Esto se suele producir en sistemas gestionados por prioridades (como vimos, se solucionaba mediante el envejecimiento de prioridades). Condiciones del interbloqueo: un conjunto de procesos llega al interbloqueo si se producen las siguientes condiciones: -. Exclusión mutua: existe al menos un recurso compartido al que solo puede acceder un proceso. -. Posesión y espera: un proceso tiene asignado un recurso pero no continua porque espera otro recurso. -. No apropiación: los recursos no pueden ser liberados por el sistema u otros procesos, solamente por el proceso que los utiliza, lo que puede producir interbloqueos, esto se solucionaría si el sistema u otros procesos pudiesen apropiarse de otros recursos. -. Espera circular: un proceso espera un recurso que utiliza otro proceso y este a su vez espera un recurso que utiliza el primero. Tratamiento de interbloqueo: existen cuatro estrategias para tratar el interbloqueo: Prof.: Justo Sáez Arenas 13

Ignorar: no hacer caso al interbloqueo y el sistema sigue bloqueado, solución reiniciar el sistema Prevenir: evitar alguna de las cuatro condiciones anteriores que producen el interbloqueo. Evitar: podemos evitar los interbloqueos haciendo un estudio previo de los recursos que necesitara cada proceso y de esta forma aplicar un algoritmo (ej. El del banquero, para planificar la utilización de los recursos). Detectar y recuperar: consiste en abortar un proceso cuando existen indicios de que está produciendo un interbloqueo. El sistema operativo puede abortar el proceso en base a: 1. Prioridades: se elimina el de más baja prioridad. 2. Tiempo de procesador usado, eliminar el que más tiempo lleve ejecutándose. 3. Tipo de recursos utilizados: eliminamos los procesos que utilizan recursos críticos. 4. Necesidades de recursos: eliminamos los procesos que necesitan muchos recursos. 5. Facilidad de suspensión/reanudación: eliminamos aquellos procesos cuyo trabajo perdido sea fácil de recuperar posteriormente. Prof.: Justo Sáez Arenas 14