UNIDAD II SISTEMAS OPERATIVOS

10
Proceso: La forma más general de definir un proceso es como un programa en ejecución que desencadena una serie de instrucciones a trabajar. ABCD Diferencia entre proceso y programa Mientras que un programa se encuentra en modo pasivo, el proceso trabaja en modo activo. Por ejemplo: Microsoft Word al estar guardado en disco duro, no tiene alguna interacción con el procesador. En cambio cuando hacemos clic el menú de inicio de Windows, convertirnos en proceso aquel programa. Gestionamiento de los procesos Losprocesossongestionadosporelsistemaoperativoyestaconstituidosdelasiguienteestructura: Estructura de un proceso Estados de un proceso: Un proceso pasa de un estado a otro desde su creación hasta su destrucción, Los estados por los cuales puede pasar un proceso son los siguientes: Nuevo •Cuando el proceso se está creando. Ejecución •Es cuando se están ejecutando instrucciones. Espera •Es cuando el proceso está esperando que ocurra un evento. Listo •Es cuando un proceso está a la espera de ser asignado a un procesador. Terminado •Es cuando el proceso ha terminado su ejecución. Transiciones de estados Cuando un proceso se crea, pasa a la cola de procesos listos. Se dice que existe una transición de estado cuando un proceso cambia de un estado a otro.

description

UNIDAD II SISTEMAS OPERATIVOS

Transcript of UNIDAD II SISTEMAS OPERATIVOS

Page 1: UNIDAD II SISTEMAS OPERATIVOS

Proceso: La forma más general de definir un proceso es como un programa en ejecución que desencadena una serie de instrucciones a trabajar. ABCDDiferencia entre proceso y programa Mientras que un programa se encuentra en modo pasivo, el proceso trabaja en modo activo.Por ejemplo: Microsoft Word al estar guardado en disco duro, no tiene alguna interacción con el procesador. En cambio cuando hacemos clic el menú de inicio de Windows, convertirnos en proceso aquel programa.

Gestionamiento de los procesosLosprocesossongestionadosporelsistemaoperativoyestaconstituidosdelasiguienteestructura:

Estructura de un proceso

Estados de un proceso: Un proceso pasa de un estado a otro desde su creación hasta su destrucción, Los estados por los cuales puede pasar un proceso son los siguientes:Nuevo•Cuando el proceso se está creando.

Ejecución•Es cuando se están ejecutando instrucciones.

Espera•Es cuando el proceso está esperando que ocurra un evento.Listo•Es cuando un proceso está a la espera de ser asignado a un procesador.

Terminado•Es cuando el proceso ha terminado su ejecución.

Transiciones de estadosCuando un proceso se crea, pasa a la cola de procesos listos. Se dice que existe una transición de estado cuando un proceso cambia de un estado a otro.

Estos estados de transición son los siguientes:

Page 2: UNIDAD II SISTEMAS OPERATIVOS

Transición: Nuevo –Listo.Este estado indica que a un proceso recién creado se le permite competir por los recursos del CPU.

Transición: Listo –Ejecución.Es cuando a un proceso tiene la CPU a su disposición, aquí se encuentra en ejecución.

Transición: Ejecución-ListoEs cuando a un proceso se le expira el intervalo de tiempo asignado para estar en ejecución aquí existe un cambio de transición:

Ejecución –BloqueadoEsta transición sucede cuando un proceso realiza una operación de Entrada/Salida antes de que termine su tiempo de ejecución. El proceso abandona la CPU y se bloquea asimismo.Bloqueado –ListoOcurre cuando se acaba una operación de Entrada/Salida, terminando en el estado de Listo.Ejecución –Terminado.Esta transición ocurre cuando el proceso se ha terminado de ejecutar, y pasa a un estado de terminado.Adueñándose del CPU.Para prevenir que un proceso monopolice la CPU, el sistema operativo ajusta un reloj de interrupción de hardware para permitir al usuario ejecutar su proceso durante un intervalo de tiempo específico.

Bloque de control de procesosLa manifestación de un proceso en un sistema operativo es un bloque de control o de proceso. Este PCB representa una estructura de datos que contiene cierta información importante acerca del proceso.

Bloque de control de procesos.La información que contiene este PCB es la siguiente:-Estado actual del proceso.-Id único del proceso.-Prioridad del proceso.-Apuntadores para localizar la memoria del proceso.-Apuntadores para asignar recursos.-Área de para preservar recursos.

Page 3: UNIDAD II SISTEMAS OPERATIVOS

Diagrama de estado de procesos.

2.4.2.1 MECANISMOS DE SEMÁFOROSDEFINICION

Un mecanismo de semáforo es una variable protegida, cuyo valor sólo puede ser leído y alterado mediante las operaciones P y V, y una operación de asignación de valores iniciales e (Inicia semáforo).

Un mecanismo semáforo consta básicamente de dos operaciones primitivas señal (Signal) y espera (Wait) (Originalmente definidas como P y V por Disjkstra), que operan sobre un tipo especial de variable semáforo, “s”.

SIGNAL (s) : Incrementa el valor de su argumento semáforo, s , en una operación indivisible.

WAIT (s) : Decrementa el valor de su argumento semáforo , s , en tanto el resultado no sea negativo. PROPIEDADES

pueden estar disponibles en un lenguaje de programación, como construcción del lenguaje, o como servicio del sistema operativo invocado mediante llamadas al sistema.

Los sistemas operativos diferencian a menudo entre semáforos contadores y semáforos binarios. El valor de un semáforo contador puede variar en un dominio no restringido, mientras que el valor de un semáforo binario solo puede ser 0 01. En algunos sistemas, los semáforos binarios se conocen como cerrojos mutex, ya que son cerrojos que proporcionan exclusión mutua

Los semáforos contadores se pueden usar para controlar el acceso a un determinado recurso formado por un numero finito de instancias.

Un semáforo cuya variable solo tiene permitido tomar los valores 0 (ocupado) y 1 (libre) se denomina Semáforo Binario. IMPLEMENTACION DE SISTEMAS DE SEMAFOROS CON COLAS

La implementación de los semáforos con espera activa tienen dos importantes desventajas : el potencial aplazamiento indefinido y la baja eficiencia debido al consumo de ciclos de procesador por parte de procesos bloqueados.

2.4.2.2 MECANISMO DE MONITORES.Los monitores son estructuras de datos utilizadas en lenguajes de programación para sincronizar dos o más procesos o hilos de ejecución que usan recursos compartidos.En el estudio y uso de los semáforos se puede ver que las llamadas a las funciones necesarias para utilizarlos quedan repartidas en el código del programa, haciendo difícil corregir errores y asegurar el buen funcionamiento de los algoritmos. Para evitar estos inconvenientes se desarrollaron los monitores. La estructura de los monitores se ha implementado en varios lenguajes de programación, incluido Pascal concurrente, Modula-2, Modula-3 y Java, y como biblioteca de programas.COMPONENTESINICIALIZACIÓN: Contiene el código a ser ejecutado cuando el monitor es creado.DATOS PRIVADOS: Contiene los procedimientos privados, que sólo pueden ser usados desde dentro del monitor y no son visibles desde fuera.PROCEDIMIENTOS DEL MONITOR: Son los procedimientos que pueden ser llamados desde fuera del monitor.COLA DE ENTRADA: Contiene a los threads que han llamado a algún procedimiento del monitor pero no han podido adquirir permiso para ejecutarlos aún.EXCLUSIÓN MUTUA EN UN MONITOR:

Page 4: UNIDAD II SISTEMAS OPERATIVOS

Los monitores están pensados para ser usados en entornos multiproceso o multihilo, y por lo tanto muchos procesos o threads pueden llamar a la vez a un procedimiento del monitor. Los monitores garantizan que en cualquier momento, a lo sumo un thread puede estar ejecutando dentro de un monitor, significa que sólo un thread estará en estado de ejecución mientras dura la llamada a un procedimiento del monitor. El problema de que dos threads ejecuten un mismo procedimiento dentro del monitor es que se pueden dar condiciones de carrera, perjudicando el resultado de los cálculos. Para evitar esto y garantizar la integridad de los datos privados, el monitor hace cumplir la exclusión mutua implícitamente, de modo que sólo un procedimiento esté siendo ejecutado a la vez. De esta forma, si un thread llama a un procedimiento mientras otro thread está dentro del monitor, se bloqueará y esperará en la cola de entrada hasta que el monitor quede nuevamente libre.Para que resulten útiles en un entorno de concurrencia, los monitores deben incluir algún tipo de forma de sincronización. Por ejemplo, supóngase un thread que está dentro del monitor y necesita que se cumpla una condición para poder continuar la ejecución. En ese caso, se debe contar con un mecanismo de bloqueo del thread, a la vez que se debe liberar el monitor para ser usado por otro hilo. Más tarde, cuando la condición permita al thread bloqueado continuar ejecutando, debe poder ingresar en el monitor en el mismo lugar donde fue suspendido. Para esto los monitores poseen variables de condición que son accesibles sólo desde adentro. EXISTEN DOS FUNCIONES PARA OPERAR CON LAS VARIABLES DE CONDICIÓN:cond_wait(c): Suspende la ejecución del proceso que la llama con la condición c. El monitor se convierte en el dueño del lock y queda disponible para que otro proceso pueda entrar.cond_signal(c): Reanuda la ejecución de algún proceso suspendido con cond_wait bajo la misma condición. Si hay varios procesos con esas características elige uno. Si no hay ninguno, no hace nada.Al contrario que los semáforos, la llamada a cond_signal(c) se pierde si no hay tareas esperando en la variable de condición c. Las variables de condición indican eventos, y no poseen ningún valor.Si otro thread provoca un evento, simplemente utiliza la función cond_signal con esa condición como parámetro. De este modo, cada variable de condición tiene una cola asociada para los threads que están esperando que ocurra el evento correspondiente.CARACTERÍSTICAS:

• Es un proceso que se encarga de verificar el funcionamiento de algún recurso garantizando la exclusión mutua (mutex).• En un monitor los procesos se bloquean y desbloquean.• Pueden existir diversas implementaciones no estandarizadas de un monitor.• En Java los monitores están implementados de manera nativa con el modificador de los métodos syncronized.• El monitor es el mecanismo que nos permite controlar el acceso a una región crítica, en este caso un método. También se puede utilizar semáforos como objetos mutex disponibles en el paquete java.util.concurrent.*

2.4.3 INTERBLOQUEO (DEADLOCK).DEFINICION:UN CONJUNTO DE PROCESOS SE ENCUENTRA EN ESTADO DE INTERBLOQUEO CUANDO CADA UNO DE ELLOS ESPERA UN SUCESO QUE SÓLO PUEDE ORIGINAR OTRO PROCESO DEL MISMO CONJUNTORECURSOSUn sistema se compone de un número finito de recursos que se distribuyen entre varios procesos que compiten por ellos.• Recursos– Físicos– Lógicos– expropiables– no expropiables• Modo de operación:– Solicitud– Utilización– LiberaciónLlamadas al sistemaCONDICIONES PARA QUE SE PRODUZCAINTERBLOQUEO• Puede surgir si y sólo si en un sistema se presentan simultáneamente las condiciones:– Exclusión mutua.– Retención y espera

Page 5: UNIDAD II SISTEMAS OPERATIVOS

– No expropiación– Espera circular• No son completamente independientesMODELADO DEL INTERBLOQUEO• Los interbloqueos pueden describirse utilizando un grafo dirigido y bipartito G(N,A) llamado grafo de asignación de recursos• Que consta en un conjunto de N nodos (vértices) y E arcos.• 2 tipos de nodos• 2 tipos de arcos• Arco de solicitud. Es un arco que parte de un proceso Pi hacia un tipo de recurso Rj y se representa por Pi → Rj (o (Pi, Rj)). Significa que el proceso Pi solicitó una instancia del recurso Rj y se encuentra esperándolo.• Arco de asignación. Es un arco que sale de un tipo de recurso Rj y se dirige a un proceso Pi (representado por Rj → Pi o (Rj, Pi)). Significa que se ha asignado un ejemplar del tipo de recurso Rj al proceso Pi.• Gráficamente, se representa cada proceso con un círculo y cada tipo de recurso con un rectángulo.• Si de algún tipo de recurso existe más de un ejemplar, se representa cada uno con un punto dentro del rectángulo.• Un arco de solicitud parte entonces de un círculo y apunta a un rectángulo.• Un arco de asignación parte desde un punto dentro del rectángulo y señala hacia un círculo.Estados de los procesos:

• El proceso P1 tiene asignado un recurso de tipo R2, y espera un recurso de tipo R1.• El proceso P2 tiene asignado un recurso de tipo R1 y otro de tipo R2, y espera un recurso de tipo R3.• El proceso P3 tiene asignado un recurso de tipo R3.• • Si el grafo de asignación de recursos no contiene ciclos, entonces ningún proceso del sistema se encuentra en

interbloqueo.• • Si existe un ciclo, puede haber interbloqueo.• La presencia de un ciclo es condición necesaria pero• no suficiente para la existencia de interbloqueo.• • Si de cada tipo de recurso existe un único ejemplar, entonces la presencia de un ciclo determina que existe interbloqueo.• En este caso la existencia de un ciclo• si es condición necesaria y suficiente• para la existencia de interbloqueo.

GRAFO DE ASIGNACIÓN DE RECURSOS

GRAFO DE ASIGNACIÓN DE RECURSOS CON INTERBLOQUEO

Page 6: UNIDAD II SISTEMAS OPERATIVOS

2.5 Niveles, objetivos y criterios de planificación. Objetivos de planificación: El principal objetivo de la planificación es repartir el tiempo del procesador de forma que se

optimicen algunos puntos del comportamiento del sistema. Generalmente se fija un conjunto de criterios con los que evaluar las diversas estrategias de planificación.

Criterios El criterio más empleado establece dos clasificaciones. En primer lugar, se puede hacer una distinción entre los

criterios orientados a los usuarios y los orientados al sistema. CRITERIO ORIENTADO AL USUARIO: Los criterios orientados al usuario se refieren al comportamiento del sistema tal y como lo perciben los usuarios o los

procesosCRITERIO ORIENTADO AL SISTEMA:

orientados al sistema, esto es, se centran en el uso efectivo y eficiente del procesador. Un ejemplo puede ser la productividad, es decir, el ritmo con el que los procesos terminan. La productividad es una medida muy válida del rendimiento de un sistema y que sería deseable maximizar.

Planificación a largo plazo. Este planificador está presente en algunos sistemas que admiten además de procesos interactivos trabajos por lotes. Usualmente , se les asigna una prioridad baja a los trabajos por lotes, utilizándose estos para mantener ocupados a los

recursos del sistema durante períodos de baja actividad de los procesos interactivos. Planificación a Medio Plazo

En los sistemas de multiprogramación y tiempo compartido varios procesos residen en la memoria principal. El tamaño limitado de ésta hace que el número de procesos que residen en ella sea finito. Puede ocurrir que todos los

procesos en memoria estén bloqueados, desperdiciándose así la CPU. Planificación a corto plazo.

Se encarga de pasar de un proceso a otro en memoria principal. Determinando a cuál proceso listo se le asignará el CPU cuando éste se encuentra disponible. O Determina a qué proceso listo se le asigna la CPU cuando esta queda disponible y asigna la CPU al mismo, es decir que “despacha” la CPU al proceso.

Page 7: UNIDAD II SISTEMAS OPERATIVOS

2.6 TÉCNICAS DE ADMINISTRACIÓN DEL PLANIFICADORFIFO: DefiniciónUna cola es una estructura de datos de acceso restrictivo a sus elementos. Un ejemplo sencillo es la cola del cine o del autobús, el primero que llegue será el primero en entrar.Una cola es una estructura de datos, caracterizada por ser una secuencia de elementos en la que la operación de inserción push se realiza por un extremo y la operación de extracción pop por el otro. También se le llama estructura FIFO (del inglés First In First Out), debido a que el primer elemento en entrar será también el primero en salir.USOS CONCRETOS DEL FIFO

• La particularidad de una estructura de datos de cola es el hecho de que sólo podemos acceder al primer y al último elemento de la estructura. Así mismo, los elementos sólo se pueden eliminar por el principio y sólo se pueden añadir por el final de la cola.

• Ejemplos de colas en la vida real serían: personas comprando en un supermercado, esperando para entrar a ver un partido de béisbol, esperando en el cine para ver una película, una pequeña peluquería, etc. La idea esencial es que son todas líneas de espera.

El algoritmo de “Primero el trabajo mas corto” (SJF, Shortest Job First), que asocia a cada proceso la longitud de la siguiente rafaga de CPU de ese proceso. Cuando la CPU queda disponible se asigna el proceso cuya siguiente rafaga de CPU sea mas corta. Si hay dos procesos cuyas siguientes ráfagas de CPU tienen la misma duración, se emplea planificación FCFS (first come, first served) para romper el empate.1.- No expropiador: Una vez que se asinga el procesador a un proceso no se le podra quitar 2.- Expropiador: Si un nuevo proceso parece en la lista de procesos listos con menor CPU-BURTS, se le quita la CPU para asignarla el nuevo proceso

Page 8: UNIDAD II SISTEMAS OPERATIVOS

VENTAJAS:El tiempo de espera será mucho menor, pues mientras los procesos de tiempo inferior terminan y ocupan tiempo en operaciones de E/S

Fácil implementaciónPRIORIDADES: A cada proceso se le asigna un numero entero que representa su prioridad El planificador asigna el procesador al proceso con la mas alta prioridadSJF se puede ver como un algoritmo de prioridad, donde la prioridad está dada por el próximo CPU-BURSTEs adecuado para sistemas interactivosPlanificación de Asignación en Rueda (RR: Round Robin).Los procesos se despachan en “FIFO” y disponen de una cantidad limitada de tiempo de cpu, llamada “división de tiempo” o “cuanto”.

Cada proceso tiene asignado un intervalo de tiempo de ejecución, llamado cuantum o cuanto. Si el proceso agota su cuantum de tiempo, se elige a otro proceso para ocupar la CPU. Si el proceso se bloquea o termina antes de agotar su cuantum también se alterna el uso de la CPU.

El round robin es muy fácil de implementar. Todo lo que necesita el planificador es mantener una lista de los procesos listos.

Si un proceso no termina antes de expirar su tiempo de cpu ocurren las siguientes acciones: La cpu es apropiada. La cpu es otorgada al siguiente proceso en espera. El proceso apropiado es situado al final de la lista de listos. Es efectiva en ambientes de tiempo compartido. La sobrecarga de la apropiación se mantiene baja mediante mecanismos eficientes de intercambio de contexto y con

suficiente memoria principal para los procesos. MULTI LEVEL FEED BACK QUEVES. (múltiples colas de realimentación).DEFINICION

*ES UN ALGORITMO DE PLANIFICACION QUE PERMITE A UN PROCESO MOVERSE ENTRE VARIAS COLAS CON DIFERENTES PRIORIDADES CADA UNA.* es un algoritmo de programación capaz de mover procesos usando unas estructuras de datos denominadas “COLAS”. Es usada para manejar procesos y asociarles una diferente prioridad para cada cola.FUNCIONAMIENTO:

CLASIFICA LOS PROCESOS EN DIFERENTES GRUPOS O COLAS, CON LA FINALIDAD DE GESTIONAR LOS RECURSOS DE LA MANERA QUE CADA PROCESO NECESITA , YA SEA POR EL TAMAÑO DE MEMORIA, LA PRIORIDAD DEL PROCESO O EL TIPO DE PROCESO.

EL ALGORITMO ESCOGE EL PROCESO CON LA MÁS GRANDE PRIORIDAD QUE SE ENCUENTRA EN LA COLA Y LO CORRE DE MANERA PREVENTIVA. SI EL PROCESO OCUPA DEMASIADO TIEMPO DEL CPU ES MOVIDO A UNA COLA DE BAJA PRIORIDAD Y VICEVERSA, ASÍ COMO TAMBIÉN SEPARA LOS PROCESOS EN FUNCIÓN DE CARACTERÍSTICAS PARA EVITAR QUE LOS PROCESOS SE ADUEÑEN DEL CPU YA QUE TIENE UN MECANISMO DE ENVEJECIMIENTO QUE EVITA EL BLOQUEO INDEFINIDO.

EJEMPLO:

Page 9: UNIDAD II SISTEMAS OPERATIVOS

SE TIENE EL GRUPO DE PROCESOS FOREGROUND (INTERACTIVOS, PRIORITARIO O DE PRIMER PLANO) Y BACKGROUND (BATCH, PROCESOS O RUTINAS DE EJECUCIÓN QUE SE REALIZAN EN SEGUNDO PLANO.), QUE NECESITAN DIFERENTES TIEMPOS DE RESPUESTA. CADA UNO DE ELLOS ESTARÁ GESTIONADO EN UNA COLA DISTINTA CON UN ALGORITMO DE PLANIFICACIÓN DISTINTO, POR EJEMPLO LA COLA DE PROCESOS FOREGROUND CON ROUND ROBIN ,Y LA DE PROCESOS BACKGROUND CON FCFS.

OBJETIVO: CUMPLIR CON LOS REQUISITOS DE DISEÑO, QUE SON MEJORAR EL REQUERIMIENTO A LOS PROCESOS , Y ATENDER A

TODOS LOS PROCESOS DE LA MANERA QUE ESTOS NECESITEN.CARACTERISTICAS DEL FEEDBACK

• EL NÚMERO DE COLAS.• EL ALGORITMO DE PLANIFICACIÓN DE CADA COLA.• EL ALGORITMO DE PLANIFICACIÓN ENTRE LAS DISTINTAS COLAS.• EL MÉTODO USADO PARA DETERMINAR EN QUÉ COLA SE INTRODUCIRÁ UN PROCESO CUANDO HAYA QUE DARLE

SERVICIO.CONCLUSION:

ES UN ALGORITMO COMPLEJO YA QUE DEFINE UN PLANIFICADOR QUE DEBE DE VER LAS PROPIEDADES DE UN PROCESO PARA REALIZAR LA CORRECTA GESTION DE LOS RECURSOS DEL SISTEMA.