Unidad 2 Sistemas Operativos

47
UNIDAD 2 SI STEMAS OPERATIVOS I TEM ARIO COM PLET O

Transcript of Unidad 2 Sistemas Operativos

Page 1: Unidad 2 Sistemas Operativos

UNIDAD 2

SIS

TEMAS

OPERAT

IVOS I

TE

MA

RI O

CO

MP

L ET

O

Page 2: Unidad 2 Sistemas Operativos

ADMINIS

TRACIÓ

N DE

PROCESOS

Page 3: Unidad 2 Sistemas Operativos

2.1.- DESCRIPCIÓN Y CONTROL DE PROCESOS

Proceso

Es un programa en ejecución.

Los procesos son gestionados por el sistema operativo,

De este modo, al comienzo de la ejecución del programa principal de un usuario se inicia la ejecución de un proceso.

¿Cuál es la manifestación de un proceso?

El proceso consta de memoria suficiente para resguardar los programas y los datos del proceso, además se lleva una cuenta de las llamadas a procedimientos y de todos los parámetros que pasan de procedimiento a procedimiento.

El S. O utiliza una estructura de datos llamada bloque de control la cual es la estructura de datos central y más importante de un S. O.

Page 4: Unidad 2 Sistemas Operativos

El conjunto de todos los PCB’s se guarda en una estructura del sistema operativo llamada tabla de procesos.

El bloque de control se divide en 3:

Identificación del proceso.

Información del proceso.

Información del control del proceso.

Operaciones con procesos

Crear y destruir un proceso

Suspender y reanudar un proceso

Cambiar la prioridad de un proceso

Bloquear y "desbloquear" un proceso

Planificar un proceso (asignarle la CPU)

Page 5: Unidad 2 Sistemas Operativos

2.2.- DEFINICIÓN DE PROCESOS

Cada proceso tiene asociado un espacio de direcciones , una lista de posiciones de memoria desde algún mínimo (usualmente 0) hasta algún máximo, que el proceso puede leer y escribir.

A cada proceso también asocia un conjunto de registros, que incluyen el contador del programa, el apuntador de la pila y otros registros, que incluyen el contador del programa, el apuntador de la pila y otros registros de hardware. Así como toda la demás información necesaria para ejecutar el programa.

Implantación de los procesos

La implementación del modelo de procesos se logra debido a que el sistema operativo almacena en una tabla denominada tabla de control de procesos información relativa a cada proceso que se esta ejecutando en el procesador. Cada línea de esta tabla representa a un proceso.

Page 6: Unidad 2 Sistemas Operativos

La información que se almacena es la siguiente:

Identificación del proceso.

Identificación del proceso padre.

Información sobre el usuario y grupo.

Estado del procesador.

Información de control de proceso

Información del planificador.

Segmentos de memoria asignados.

Recursos asignados.

Comunicación entre procesos

Page 7: Unidad 2 Sistemas Operativos

2.3.- ESTADOS DE LOS PROCESOS

Durante su existencia, un proceso transita por varios estados. Los más importantes son:

Listo, en Ejecución y Bloqueado. Un proceso Listo es aquél que no está ejecutándose en un momento dado, pero que está preparado para ejecutar tan pronto como el S. O lo decida. Un proceso en Ejecución es aquél que esta ejecutándose en el procesador. En un sistema procesador puede haber más de un proceso en este estado. Un proceso bloqueado es el que está esperando a que termine algún suceso (como una operación de E/S).

Page 8: Unidad 2 Sistemas Operativos

2.4.- CONTROL DE PROCESOS

La mayoría de los procesadores dan soporte para dos tipos de ejecución por lo menos. Ciertas instrucciones pueden ejecutarse solo n modo privilegiado. Entre éstas están la lectura o modificación de registros de control (como la palabra de estado del programa), instrucciones primitivas de E/S e instrucciones relativas a la gestión de memoria. Además, se puede acceder a ciertas regiones de memoria.

El modo menos privilegiado a menudo se conoce como modo de usuario, ya que los programas de usuario ejecutan normalmente en este modo.

Page 9: Unidad 2 Sistemas Operativos

2.5.- PROCESOS E HILOS

Procesos

Su estado de ejecución en un momento dado, esto es, los valores de los registros de la unidad central de procesamiento para dicho programa.

Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos.

Los procesos son creados y destruidos por el sistema operativo, así como también este se debe hacer cargo de la comunicación entre procesos,

Hilos

Es la unidad de procesamiento más pequeña que puede ser planificada por un sistema operativo.

Page 10: Unidad 2 Sistemas Operativos

Un hilo es una característica que permite a una aplicación realizar varias tareas a la vez (concurrentemente). Los distintos hilos de ejecución comparten una serie de recursos tales como el espacio de memoria, los archivos abiertos, situación de autenticación, etc. Esta técnica permite simplificar el diseño de una aplicación que debe llevar a cabo distintas funciones simultáneamente.

Es básicamente una tarea que puede ser ejecutada en paralelo con otra tarea.

Page 11: Unidad 2 Sistemas Operativos
Page 12: Unidad 2 Sistemas Operativos
Page 13: Unidad 2 Sistemas Operativos

2.6.- CONCURRENCIA, EXCLUSIÓN MUTUA Y SINCRONIZACIÓN

Concurrencia

Es el punto clave de la gestión de procesos y fundamental para el diseño de sistemas operativos. Comprende un gran numero de cuestiones de diseño, incluyendo la comunicación entre procesos, compartición y competencia por los recursos, sincronización de la ejecución de varios procesos.

Gestión de procesos

Multiprogramación

Multiproceso

Proceso Distribuido

Puede presentarse en 3 contextos diferentes que son:

Page 14: Unidad 2 Sistemas Operativos

Varias aplicaciones: La multiprogramación se creo para permitir que el tiempo de procesador de las maquinas fuese compartido dinámicamente entre varios trabajos o aplicaciones activas.

Aplicaciones estructuradas: Estas pueden implementarse eficazmente como un conjunto de procesos concurrentes.

Estructura del sistema operativo: Son aplicables a los programadores de sistemas y se ha comprobado que algunos sistemas operativos están implementados como un conjunto de procesos.

Exclusión mutua

El uso adecuado de la concurrencia entre procesos exige la capacidad de definir secciones criticas y hacer cumplir la exclusión mutua.

Una manera es dejar la responsabilidad a los procesos que deseen ejecutar concurrentemente, así pues tanto si son programas del sistema, como de aplicación, los procesos deben coordinarse unos con otros para ser cumplida la exclusión mutua, sin ayuda por parte del lenguaje de programación o del sistema operativo.

Page 15: Unidad 2 Sistemas Operativos

Soluciones por Software

Para los procesos concurrentes que ejecuten en máquinas monoprocesador o multiprocesador con una memoria principal compartida.

Soluciones por hardware

Inhabilitación de interrupciones

En una maquina monoprocesador, la ejecución de procesos concurrentes no puede superponerse, los procesos sólo pueden intercalarse, es mas un proceso continuara ejecutando hasta que solicite un servicio del sistema operativo o hasta que sea interrumpido.

Page 16: Unidad 2 Sistemas Operativos

2.7.- PRINCIPIOS GENERALES DE CONCURRENCIA

En un sistema multiprogramado con un único procesador, los procesos se intercalan en el tiempo para dar la apariencia de ejecución simultánea. Aunque no se consigue un procesamiento paralelo real y aunque se produce una cierta sobrecarga en los intercambios de procesos de un sitio a otro, la ejecución intercalada produce beneficios importantes en la eficiencia del procesamiento y en la estructura de los programas. En un sistema multiprocesador no solo es posible intercalar procesos, sino también superponerlos.

En el caso de un sistema monoprocesador, los problemas son consecuencia de una característica básica de los sistemas multiprogramadores: la velocidad relativa de ejecución de los procesos no puede predecirse y depende de las actividades de otros procesos, de la forma en que el sistema operativo trata las interrupciones y las políticas de planificación del sistema operativo. De aquí surgen las siguientes dificultades:

Page 17: Unidad 2 Sistemas Operativos

Compartir recursos globales está lleno de riesgos. Para el sistema operativo resulta difícil gestionar la asignación óptima de recursos. Resulta difícil localizar un error de programación porque los resultaos no son,

normalmente reproducibles.

Interacción entre procesos

Enumera tres niveles de conocimiento y las consecuencias de cada uno de ellos:

Los procesos no tienen conocimiento de los demás: Estos son procesos independientes que no están pensados para operar juntos.

Los procesos tienen un conocimiento indirecto de los otros: Los procesos no conocen necesariamente a los otros por sus identificadores de proceso, pero comparten el acceso a algunos objetos, como un buffer de E/S.

Los procesos tienen un conocimiento directo de los otros: Los procesos son capaces de comunicarse con los demás por el identificador de proceso y están diseñados para trabajar conjuntamente en alguna actividad.

Page 18: Unidad 2 Sistemas Operativos

Competencia entre procesos por los recursos

Los procesos concurrentes entran en conflicto cuando compiten por el uso del mismo recurso. Es posible describir esta situación como sigue: dos o mas procesos necesitan acceder a un recurso durante el curso de su ejecución: ningún proceso es consciente de la existencia de los otros y no se ve afectado por su ejecución.

Cooperación entre procesos por comportamiento

El caso de cooperación por comportamiento comprende los procesos que interactúan con otros sin tener conocimiento explicito de ellos. Por ejemplo, varios procesos pueden tener acceso a variables.

Cooperación entre procesos por comunicación

Las interacciones entre los procesos son indirectas. En caso de competencia, los procesos están compartiendo recursos sin tener conocimiento de la existencia de otros procesos.

Page 19: Unidad 2 Sistemas Operativos

EXC

LUSI

ÓN MUTU

A

Page 20: Unidad 2 Sistemas Operativos

Consiste en que un solo proceso excluye temporalmente a todos los demás para usar un recurso compartido de forma que garantice la integridad del sistema.

Exclusión mutua

Page 21: Unidad 2 Sistemas Operativos

CONDICIONES DE LA EXCLUSIÓN MUTUAHay que garantizar la exclusión mutua entre los

diferentes procesos a la hora de acceder al recurso compartido. No puede haber en ningún momento dos procesos dentro de sus respectivas secciones críticas.

No se deben hacer suposiciones en cuanto a la velocidad relativa de los procesos en conflicto.

Ningún proceso que esté fuera de su sección crítica debe interrumpir a otro para el acceso a la sección crítica.

Cuando más de un proceso desee entrar en su sección crítica, se le debe conceder la entrada en un tiempo finito, es decir, que nunca se le tendrá esperando en un bucle que no tenga final.

Exclusión mutua

Page 22: Unidad 2 Sistemas Operativos

TIPOS DE SOLUCIONES DE EXCLUSIÓN MUTUASoluciones software.

Soluciones hardware.

Soluciones aportadas por el Sistema Operativo.

Exclusión mutua

Page 23: Unidad 2 Sistemas Operativos

Soluciones hardware.Las soluciones hardware se dividen en dos tipos: Optimistas.

Consideran que lo mas probable es que no haya conflictos, y si los hay sea en número reducido, por lo que permiten cualquier acceso a la variable compartida. En caso de conflicto, mantienen la integridad del sistema descartando las actualizaciones.

Pesimistas.Bloquean todo aquello que pueda interferir.Actualizan la variable.Desbloquean lo bloqueado al principio.

Exclusión mutua

Page 24: Unidad 2 Sistemas Operativos

EJEMPLO

Exclusión mutua

Page 25: Unidad 2 Sistemas Operativos

SEMAFO

ROS

Page 26: Unidad 2 Sistemas Operativos

Semáforos es un algoritmo de control de procesos

Que a su vez tiene varios tipos de semáforos los cuales se dividen en:

Page 27: Unidad 2 Sistemas Operativos

SEMÁFORO BINARIO

Un semáforo binario es un indicador de condición (S) que registra si un recurso está disponible o no. Un semáforo binario sólo puede tomar dos valores: O y 1.

Semáforo robusto:

Es el que se encarga de liberar los procesosque llevan mas tiempo bloqueados.

Page 28: Unidad 2 Sistemas Operativos

EJEMPLO:

wait (variable)begin   while (variable)>=0 do {esperar}   variable=variable-1end

signal (variable)begin   variable=variable+1end

Page 29: Unidad 2 Sistemas Operativos

El semáforo se inicializa con el numero total de recursos disponibles (n) y las operaciones de espera y señal se diseñan de modo que se impida el acceso al recurso protegido por el semáforo cuando el valor de éste es menor o igual que cero

Page 30: Unidad 2 Sistemas Operativos

MONIT

ORES

Page 31: Unidad 2 Sistemas Operativos

MONITORES

Los monitores son una herramienta de sincronización

Posee una estructura propia, es una colección de procedimientos, variables y estructuras de datos que se agrupan en un módulo especial.

Los procesos pueden llamar a los procedimientos de un monitor siempre que lo requieran, pero no pueden acceder directamente las estructuras de datos internas del monitor.

Implementan un nivel aún más alto de abstracción facilitando el acceso a recursos compartidos.

Page 32: Unidad 2 Sistemas Operativos

MONITORES

Componentes Inicializació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

Page 33: Unidad 2 Sistemas Operativos

MONITORES

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.

Page 34: Unidad 2 Sistemas Operativos

MONITORES

La sincronización se usan dos instrucciones:

wait (c): suspende la ejecución del proceso que llama bajo la condición c. El monitor está ahora disponible para ser usado por otros procesos.

signal(c): reanuda la ejecución de algún proceso suspendido después de un cwait bajo la misma condición. Si hay varios procesos, se elige uno de ellos; si no hay ninguno, no hace nada.

Page 35: Unidad 2 Sistemas Operativos

MEN

SAJES

Page 36: Unidad 2 Sistemas Operativos

MENSAJES

Son una solución del sistema operativo que nos permitirán la sincronización de procesos y la comunicación entre ambos.

Es una cadena de texto transmitida de un proceso que envía el mensaje a un receptor

Page 37: Unidad 2 Sistemas Operativos

MENSAJES

Un mensaje puede tener código, texto, datos etc.

Suelen tener dos partes:

   - Cabecera (obligatoria): IdProcesoEmisor, IdProcesoReceptor, Tipo, Longitud   - Cuerpo (optativo): Información adicional

Tenemos dos tipos de órdenes para gestionar mensajes (para enviar y recibir):

   - Enviar: send (destino, mensaje)   - Recibir: receive (origen, mensaje)

Page 38: Unidad 2 Sistemas Operativos

MENSAJES

Propiedad de los buzones

Tenemos dos casos:

El proceso es el propietario. El buzón existe mientras existe el proceso y sólo el propietario puede leer datos del buzón

El propietario del buzón es el SO. La propiedad del buzón puede transmitirse entre procesos, lo que permite que varios procesos puedan leer.

Page 39: Unidad 2 Sistemas Operativos

MENSAJES

Casos habituales:

Envío bloqueante - Recepción bloqueante.      Se usa cuando la sincronización ha de ser muy estricta.

Envío no bloqueante - Recepción bloqueante.      Se usa para cuando el proceso emisor no necesita que el receptor haya recibido el mensaje para continuar. Ej: Servidor de correo

Envío no bloqueante - Recepción no bloqueante

Page 40: Unidad 2 Sistemas Operativos

PRINCIPIOS DE INTERBLOQUEO

Page 41: Unidad 2 Sistemas Operativos

 

El interbloqueo se puede definir como el bloqueo permanente de un conjunto de procesos que compiten por los recursos del sistema o bien se comunican unos con otros. A diferencia de otros problemas de la gestión concurrente de procesos, no existe una solución eficiente para el caso general.

Todos los interbloqueos suponen necesidades contradictorias de recursos por parte de dos o más procesos.

PRINCIPIOS DE INTERBLOQUEO

Page 42: Unidad 2 Sistemas Operativos

Ejemplo :

 Interbloqueo de tráfico 

Cuatro coches llegan aproximadamente en el mismo instante a un cruce de cuatro caminos. Los cuatro cuadrantes de la intersección son los recursos compartidos sobre los que se demanda control; por tanto, si los coches desean atravesar el cruce, las necesidades de recursos son las siguientes:

-         El coche que va hacia el norte necesita los cuadrantes 1 y 2.

-         El coche que va hacia el oeste necesita los cuadrantes 2 y 3.

-         El coche que va hacia el sur necesita los cuadrantes 3 y 4.

-         El coche que va hacia el este necesita los cuadrantes 4 y 1.

PRINCIPIOS DE INTERBLOQUEO

Page 43: Unidad 2 Sistemas Operativos

PRINCIPIOS DE INTERBLOQUEO

Page 44: Unidad 2 Sistemas Operativos

ACCIONES

REA

LIZAR E

N

INTE

RBLOQUEO

Page 45: Unidad 2 Sistemas Operativos

CONDICIONES PARA PRODUCIR UN INTERBLOQUEO

1- Condición de exclusión mutua: Cada recurso esta asignado a un único proceso o esta disponible.

2- Condición de posesión y espera: Los procesos que tienen, en un momento dado, recursos asignados con anterioridad, pueden solicitar nuevos recursos.

3- Condición de no apropiación: Los recursos otorgados con anterioridad no pueden ser forzados a dejar un proceso. El proceso que los posee debe liberarlos en forma explicita.

Acciones a Realizar en Interbloqueo

Page 46: Unidad 2 Sistemas Operativos

Puede no existir interbloqueo con solo estas tres condiciones. Para que se produzca interbloqueo, se necesita una cuarta condición:

4- Condición de espera circular (o circulo vicioso de espera): Debe existir una cadena circular de dos o mas procesos, cada uno de los cuales espera un recurso poseído por el siguiente miembro de la cadena.

Page 47: Unidad 2 Sistemas Operativos

PREVENCIÓN DE INTERBLOQUEO

- Los métodos indirectos que consisten en impedir la aparición de alguna de las tres condiciones necesarias para que se de el interbloqueo.

- Los métodos directos que consisten en evitar la aparición del circulo vicioso de espera.