Introducción a los Computadores - Resumen de Sistemas Operativos, Resúmenes de Sistemas Operativos. Universidad CAECE, Buenos Aires
Alejandro_87
Alejandro_873 de mayo de 2013

Introducción a los Computadores - Resumen de Sistemas Operativos, Resúmenes de Sistemas Operativos. Universidad CAECE, Buenos Aires

PDF (2 MB)
82 pages
3Número de download
944Número de visitas
Descripción
Apuntes del curso universitario de Informatica sobre la introducción a los computadores - El SO explota los recursos de uno o más procesadores para proporcionar un conjunto de servicios a los usuarios del sistema.
20 Puntos
Puntos download necesarios para descargar
este documento
descarga el documento
Pre-visualización3 pages / 82

Esta solo es una pre-visualización

3 shown on 82 pages

descarga el documento

Esta solo es una pre-visualización

3 shown on 82 pages

descarga el documento

Esta solo es una pre-visualización

3 shown on 82 pages

descarga el documento

Esta solo es una pre-visualización

3 shown on 82 pages

descarga el documento

1

RESUMEN DE SISTEMAS OPERATIVOS CAPÍTULO 1: INTRODUCCIÓN A LOS COMPUTADORES  El SO explota los recursos de uno o más procesadores para proporcionar un conjunto de

servicios a los usuarios del sistema. 1.1. ELEMENTOS BÁSICOS  Hay cuatro elementos estructurales principales:

o Procesador: Controla el funcionamiento y procesa los datos o Memoria principal: almacena datos y programas (real o primaria) o Módulos de E/S: transfieren datos entre el computador y el entorno o Bus del sistema: proporciona comunicación entre los procesadores, la memoria y

los módulos de E/S  El procesador intercambia datos con la memoria para lo que utiliza dos registros internos:

registro de dirección de memoria (RDIM) y un registro de datos (RDAM), un registro de dirección de E/S (RDIE/S), un registro de datos de E/S (RDAE/S).

 Un módulo de E/S transfiere datos desde los dispositivos externos hacia el procesador y la memoria mediante buffers (zonas de almacenamiento internas)

1.2. REGISTROS DEL PROCESADOR  Un procesador incluye un conjunto de registros que proporcionan un tipo de memoria que

es más rápida y de menor capacidad que la memoria principal.  Los registros del procesador sirven para:

o Registros visibles para el usuario o Registros de control y estado

REGISTROS VISIBLES PARA EL USUARIO  Estos son generalmente el registro de datos, de dirección y de código de condición.  El registro de dirección contiene direcciones de memoria principal de datos e instrucciones,

o una parte de la dirección que se utiliza para el cálculo de la dirección efectiva. o Registro índice o Puntero de segmento o Puntero de pila

REGISTROS DE CONTROL Y ESTADO  Contador de programar (PC): contiene la dirección de la próxima instrucción que se leerá

de memoria.  Registro de instrucción (IR): contiene la última instrucción leída  Palabra de estado del Programa (PSW): contiene información de estado, normalmente

código de condición, bit de habilitación de interrupciones y bit de modo  Códigos de condición (indicadores): se usan para la realimentación del resultado de la

ejecución de una instrucción.  Registros de interrupciones  El diseño de la organización del registro de control y estado influye en: proporcionar apoyo

al SO, repartir información de control entre los registros y la memoria. 1.3. EJECUCIÓN DE INSTRUCCIONES  Un programa que va a ejecutarse en un procesador consta de un conjunto de instrucciones

almacenadas en memoria.

docsity.com

2

 Ciclo de instrucción: al procesamiento requerido por una única instrucción. BÚSQUEDA Y EJECUCIÓN DE UNA INSTRUCCIÓN  Al principio de cada ciclo de instrucción el procesador lee una instrucción de la memoria y

luego incrementa el PC.  La instrucción leída se carga dentro del IR. El procesador la interpreta y ejecuta.  Las acciones puede ser de:

o Procesador-memoria o Procesador-E/S o Procesamiento de datos o Control: instrucción que especifica que se va a alterar la secuencia de ejecución

1.4. INTERRUPCIONES  Pueden interrumpir la secuencia normal del procesador.  Constituyen una manera de mejorar la utilización del procesador  Clases de interrupciones:

o De programa: generada por alguna condición que se produce como resultado de la ejecución de una instrucción.

o Por temporizador o De E/S: generada por un controlador de E/S para señalar la conclusión normal de

una operación o para indicar diversas condiciones de error o Por Fallo del HW

INTERRUPCIONES Y EL CICLO DE INSTRUCCIÓN  Gracias a las interrupciones el procesador puede dedicarse a ejecutar otra instrucción

mientras se lleva acabo una operación de E/S.  Cuando el dispositivo externo esta listo el módulo de E/S de este dispositivo manda una

petición de interrupción al procesador. El procesador responde suspendiendo la ejecución, saltando al manejador de interrupciones y reanudando después de haber atendido al dispositivo.

 Para tratar las interrupciones, se añade una fase de interrupción al ciclo de instrucción. En esta fase, el procesador comprueba si se ha producido cualquier interrupción. Si la hay ejecuta el manejador de interrupciones y sino sigue su ejecución normal.

PROCESAMIENTO DE INTERRUPCIONES

1- Señal de interrupción 2- El procesador termina la ejecución de la instrucción actual 3- El procesador comprueba si hay peticiones de interrupción pendientes 4- Salva el estado del programa actual 5- El procesador carga el contador del programa con la posición del punto de entrada de la

rutina de manejo de la interrupción. 6- El manejador de interrupciones salva todo el contenido de los registros de pila 7- Comienza el manejador a ejecutar 8- Se recuperan los valores de los registros salvados 9- Se recupera el valor del PSW y del controlador del programa.

MÚLTIPLES INTERRUPCIONES  Alternativas a considerad para tratar múltiples interrupciones:

docsity.com

3

o Inhabilitar la interrupción mientras se está procesando una interrupción (las interrupciones se manejarán en orden secuencial). Desventaja: no tiene en cuenta la prioridad

o Definir prioridades para las interrupciones y permitir que una interrupción de más prioridad cause que se interrumpa una de menor prioridad.

MULTIPROGRAMACIÓN  Permitir que múltiples programas de usuario estén activos al mismo tiempo para mejorar la

utilización del procesador.  Cuando el procesador trata con varios programas, la secuencia en la que se ejecutan los

programas dependerá de su prioridad relativa. 1.5. LA JERARQUÍA DE MEMORIA  Se utiliza para alcanzar un rendimiento máximo la memoria debe ser capaz de mantener el

ritmo del procesador.  La memoria principal se amplia con una caché, no visible al programador ni al procesador.

Se trata de un dispositivo que controla el movimiento de datos entre la memoria principal y los registros de procesador con objeto de mejorar el rendimiento.

 La memoria no volátil externa se denomina también memoria secundaria o auxiliar, para proporcionar una extensión de la memoria principal conocida como memoria virtual.

 Se pueden añadir nivel es adicionales pro software. Por ejemplo la técnica de caché de disco (utilizar una parte de la memoria principal para almacenamiento intermedio), que permite que las escrituras en el disco puedan agruparse, y un programa puede acceder a los datos antes del volcado.

1.6. MEMORIA CACHÉ MOTIVACIÓN  La velocidad en la que el procesador puede ejecutar instrucciones está claramente limitada

por el tiempo de ciclo de la memoria. La solución consiste en aprovechar el principio de proximidad utilizando una memoria pequeña y rápida entre el procesador y la memoria principal: caché.

FUNDAMENTOS DE LA CACHÉ  El propósito es proporcionar un tiempo de acceso a memoria próximo al de las memorias

más rápidas disponibles y ofrecer un tamaño de memoria grande con bajos costos.  La caché contiene una copia de una parte de la memoria principal, así se accede más rápido  La memoria principal consta de M=2n/K bloques. La caché consiste en C huecos de K

palabras cado uno. Cada hueco incluye una etiqueta que identifica qué bloque en concreto se almacena actualmente y la referencia a todas las direcciones que comienzan con esa secuencia de bits.

DISEÑO DE LA CACHÉ  Elementos fundamentales:

o Tamaño: una caché de un tamaño razonablemente pequeño puede tener un impacto significativo en el rendimiento

o Tamaño del bloque: la tasa de aciertos aumentará debido al principio de proximidad.

o Función de correspondencia: determina qué posición de la caché ocupará el bloque. Cuanto más flexible es la función de correspondencia, mayor grado de libertad a la hora de diseñar un algoritmo de reemplazo que maximice la tasa de aciertos.

docsity.com

4

o Algoritmos de reemplazo o Política de escritura.

1.7. TÉCNICAS DE COMUNICACIÓN DE E/S E/S PROGRAMADA  El módulo de E/S realiza la acción solicitada y fija los bits correspondientes en el registro

de estado, pero no realiza ninguna acción para avisarla al procesador. El procesador comprueba periódicamente el estado del módulo de E/S hasta que encuentra que se ha completado la operación.

 Con esta técnica el procesador es responsable de extraer los datos de la memoria principal en una operación de salida y de almacenarlos en una operación de entrada.

 El juego de instrucciones incluye: o Control o Estado o Transferencia

E/S DIRIGIDA POR INTERRUPCIONES  Para solucionar el problema de la técnica anterior de que el procesador tiene que esperar

mucho tiempo se genera una alternativa donde el procesador genere un mandato de E/S para un módulo y continué realizando algún otro trabajo. El módulo de E/S interrumpirá más tarde al procesador para solicitar su servicio.

 Aun así consume mucho tiempo del procesador porque todo tiene que pasar por el procesador.

ACCESO DIRECTO AS MEMORIA  Cuando el procesador desea leer o escribir un bloque de datos genera un mandato al módulo

de DMA, enviándole: o Si es lectura o escritura o El dispositivo involucrado o La posición inicial de memoria a tratar o El número de palabras que se pretenden leer o escribir

 El procesador continúa ejecutando y el DMA transfiera datos desde o hacia la memoria sin involucrar al procesador. El procesador solo esta involucrado al principio y al final.

CAPÍTULO 2: INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS 2.1. OBJETIVOS Y FUNCIONES DE LOS SISTEMAS OPERATIVOS  Un SO es un programa que controla la ejecución de aplicaciones y programas y que actúa

como interfaz entre las aplicaciones y el HW. Tiene los siguientes objetivos: o Facilidad de uso del computador o Eficiencia: permite la utilización eficiente de los recursos o Capacidad para evolucionar.

EL SISTEMA OPERATIVO COMO UNA INTERFAZ DE USUARIO/COMPUTADOR  El SO oculta los detalles del HW al programador y le proporciona una interfaz apropiada

para utilizar el sistema.  Proporciona servicios en:

o Desarrollo de programas o Ejecución de programas: se necesita realizas una serie de paso para ejecutar un

programa. Las instrucciones y los datos se deben cargar en memoria principal. Los

docsity.com

5

dispositivos de E/S y los ficheros se deben inicializar, y otros recursos deben prepararse.

o Acceso a dispositivos de E/S o Acceso controlado a los ficheros: el SO debe reflejar una comprensión detallada de

la naturaleza del dispositivo y la estructura de datos almacenada. Proporciona mecanismos de protección

o Acceso al Sistema o Detección y respuesta de Errores: el SO debe proporcionar una respuesta que

elimine la condición de error, suponiendo el menor impacto en las aplicaciones que están en ejecución.

o Contabilidad: recogerá estadísticas de uso de los diferentes recursos y monitorizará parámetros de rendimiento

EL SISTEMA OPERATIVO COMO GESTOR DE RECURSOS  Un computador es un conjunto de recursos que se utilizan para el transporte,

almacenamiento y procesamiento de los datos, así como para llevar acabo el control de estas funciones. El SO gestiona estos recursos.

 El SO dirige el procesador en el uso de los otros recursos del sistema y en la temporización de la ejecución de otros programas.

 El SO deja el control para que el procesador puede realizar trabajo útil y de nuevo retoma el control para permitir al procesador que realice la siguiente pieza de trabajo.

 Un porción del SO se encuentra en memoria principal. Esto incluye el kernel que contiene las funciones del SO más frecuentemente utilizadas y las actualmente en uso.

FACILIDAD DE EVOLUCIÓN DE UN SISTEMA OPERATIVO  Un sistema operativo debe evolucionar en le tiempo por las siguientes razones:

o Actualización de HW más nuevos tipos de HW o Nuevos servicios o Resolución de fallos

 El SO debe tener un diseño modular, con interfaces entre módulos claramente definidas y debe estar bien documentado.

2.2. LA EVOLUCIÓN DE LOS SISTEMAS OPERATIVOS PROCESAMIENTO EN SERIE  El programador interaccionaba directamente con el HW  Estos sistemas presentaban dos problemas principales:

o Planificación: utilizaban una plantilla impresa para preservar tiempo de máquina o Tiempo de configuración: un único programa, trabajo, podía implicar la carga en

memoria del compilador y del programa en lenguaje de alto nivel y a continuación la carga y el enlace del programa objeto y las funciones comunes.

 Los usuarios acceden a la computadora en serie SISTEMAS EN LOTES SENCILLOS  La idea central es el uso de una pieza de SW llamada monitor.  El usuario envía un trabajo, a través de una tarjeta o cinta al operador del computador, que

crea un sistema por lotes con todos los trabajaos enviados y coloca la secuencia de trabajos en el dispositivo de entrada para que lo utilice el monitor. Cuando el programa finaliza, devuelve el control al monitor, y el monitor carga el siguiente programa.

 Análisis:

docsity.com

6

o Punto de vista del monitor: el monitor controla la secuencia de eventos. Una parte siempre esta en memoria y se llama monitor residente. El monitor lee un trabajo, se coloca en el área de programa de usuario y se le pasa el control. Cuando finaliza se devuelve el control al monitor.

o Punto de vista del procesador: En un cierto punto el procesador ejecuta instrucciones de la zona de memoria principal que contiene el monitor. El procesador entonces ejecutará loas instrucciones del programa usuario hasta que encuentre una condición de finalización o de error.

 El monitor realiza una función de planificación: en una cola se sitúa un lote de trabajos, y los trabajos se ejecutan lo más rápido posible.

 En cada uno de los trabajos se incluye un conjunto de instrucciones en algún formato primitivo de lenguaje de control de trabajos (JCL).

 El monitor es simplemente un programa, este confía en la habilidad del procesador para cargar instrucciones.

 Son deseables características de HW: o Protección de memoria o Temporizador o Instrucciones privilegiadas o Interrupciones

 Se utiliza un modo usuario y un modo núcleo. SISTEMAS EN LOTES MULTIPROGRAMADOS  El problema consiste en que los dispositivos de E/S son lentos comparados con el

procesador.  Cuando un trabajo necesita esperar por la E/S, se puede asignar el procesador al otro

trabajo: enfoque multiprogramación o multitarea.  El HW debe soportar interrupciones de E/S y DMA.  Para tener varios trabajos listos para ejecutar, éstos deben guardarse en memoria principal,

requiriendo alguna forma de gestión de memoria y un algoritmo de planificación. SISTEMA DE TIEMPO COMPARTIDO  La multiprogramación también se puede utilizar para gestionar múltiples trabajos

interactivos, así como la interacción del usuario directamente con la máquina: la técnica se llama multiprogramación porque se comparte el tiempo entre múltiples usuarios.

 Múltiples usuarios acceden simultáneamente al sistema a través de terminales, siendo el SO el encargado de entrelazar la ejecución de cada programa de usuario en cuantos.

 Para minimizar el tráfico de disco, la memoria de usuario sólo es escritura a disco cuando el programa entrante la sobrescribe.

 Se deben solucionar los problemas de protección de ficheros y memoria. Multiprogramación en Lotes Tiempo Compartido Objetivo principal Maximizar el uso del procesador Minimizar el tiempo de

respuesta Fuentes de directivas al SO Mandato del lenguaje de control

de trabajos proporcionado por el trabajo

Mandatos introducidos al terminal

2.3. PRINCIPALES LOGROS  Cinco principales avances teóricos en el desarrollo de SO:

o Procesos o Gestión de memoria

docsity.com

7

o Protección y seguridad de la información o Planificación y gestión de los recursos o Estructura del sistema

PROCESOS  Contribuyeron a la creación de procesos: operaciones en lotes multiprogramados, tiempo

compartido, sistemas de transacciones de tiempo real.  Multiprogramación: el mecanismo clave es: en respuesta a las señales que indican la

finalización de las transacciones de E/S, el procesador es planificado para los diferentes programas que residen en memoria principal

 Tiempo compartido: objetivo clave del diseño es responder a las necesidades del usuario y ser capaz de soportar muchos usuarios simultáneamente.

 Tiempo Real: los usuarios pueden estar comprometidos en el desarrollo de programas, la ejecución de trabajos t el uso de varias aplicaciones.

 Las principales herramientas disponibles para programadores de sistemas para el desarrollo de la inicial multiprogramación y los sistemas interactivos multiusuarios fue la interrupción.

 La programación acudía al método “ad hoc” basado en comprensión del entorno que el SO tenía que controlar. En este enfoque existen cuatro causas de errores:

o Inapropiada sincronización o Violación de la exclusión mutua o Operaciones no deterministas de un programa: el orden en que diversos programas

se planifican pueden afectar a la salida de cualquier programa particular. o Interbloqueos

 Lo que se necesita para enfrentar a estos problemas es una forma sistemática de monitorizar y controlar la ejecución de varios programas en el procesador. El concepto de proceso proporciona los fundamentos. Se puede considerar que un proceso está formado por tres componentes:

o Un programa ejecutable o Los datos asociados que necesita el programa o Un contexto de ejecución del programa: conjunto de datos internos por el cual el

SO es capaz de supervisar y controlar el proceso.  El proceso puede verse como una estructura de datos.  Un proceso puede estar en ejecución o esperando ejecutarse.  El estado completo del proceso en un instante dado se contiene en su contexto.

GESTIÓN DE MEMORIA  El SO tiene 5 responsabilidades principales de gestión de almacenamiento:

o Aislamiento de procesos o Aislamiento y gestión automática: los programas deben tener una asignación

dinámica de memoria por demanda. o Soporte de programación modular dinámicamente o Protección y control de acceso: debe permitir que varios usuarios accedan de

distintas formas a porciones de memoria. o Almacenamiento a largo plazo

 Esto se logra con memoria virtual. Y el almacenamiento a largo plazo con ficheros (unidad útil de control de acceso y protección para los SO).

 La memoria virtual es una utilidad que permite a los programas direccionar la memoria desde un punto de vista lógico, sin importar la cantidad de memoria principal física que dispone.

docsity.com

8

 Debido a que los procesos varían en tamaños es difícil almacenarlos completamente en memoria principal por lo que se introdujeron los sistemas de paginación que permite que los procesos se compriman en páginas.

 Cuando un proceso está en ejecución alguna de sus páginas se encuentran en memoria principal y si no esta y se necesita se carga.

 El aislamiento de los procesos se puede lograr dando a cada proceso una única área de memoria virtual. Y la compartición puede lograrse solapando espacios.

PROTECCIÓN Y SEGURIDAD DE INFORMACIÓN  Cuatro categorías:

o Disponibilidad: relacionado con la protección del sistema frente a las interrupciones o Confidencialidad o Integridad de los datos o Autenticidad

PLANIFICACIÓN Y GESTIÓN DE RECURSOS  Cualquier asignación de recursos y política de planificación debe tener en cuenta tres

factores: o Equitatividad o Respuesta diferencial: un SO debe tomar decisiones de asignación y planificación

con el objetivo de satisfacer el conjunto total de requisitos. o Eficiencia

 El SO mantienen un número de colas, cada una de las cuales es simplemente una lista de procesos esperando por algún recurso.

 La cola de corto plazo está compuesta por procesos que se encuentran en memoria principal. La responsabilidad del planificador a corto plazo, el dispatcher, es elegir que proceso ejecutar. Estrategia es el RR (round-robin), prioridades.

 Una cola a largo plazo es una lista de nuevos trabajos esperando a utilizar el procesador. El SO añade trabajos al sistema transfiriendo un proceso a la cola de corto plazo.

 Cola de dispositivos.  Luego de una interrupción se llama al dispatcher para elegir al próximo proceso.

ESTRUCTURA DEL SISTEMA  Para gestionar la complejidad de los sistemas operativos el SW debe ser modular. Los

módulos deben tener interfaces bien definidas y deben ser tan sencillas como sea posible.  La estructura jerárquica de un SO moderno separa sus funciones de acuerdo a las

características de su escala de tiempo y su nivel de abstracción. Se puede ver como una serie de niveles, cada nivel realiza un subconjunto relacionado de funciones requeridas por el SO.

Nivel Nombre Objetos Ejemplos de operaciones

13 Intérprete de mandatos Entorno de programación de usuario

Sentencias de lenguaje del intérprete de mandatos

12 Procesos de usuario Procesos de usuario Salir, matar, suspender, continuar 11 Directorios Directorios Crear, destruir, insertar, entrada,

eliminar entrada, buscar, listar 10 Dispositivos Dispositivos externos como

impresoras, pantallas y teclado Abrir, cerrar, leer, escribir

9 Sistema de ficheros Ficheros Crear, destruir, abrir, cerrar, leer, escribir

8 Comunicaciones Tuberías Crear, destruir, abrir, cerrar, leer,

docsity.com

9

escribir 7 Memoria virtual Segmentos, páginas Leer, escribir, cargar 6 Almacenamiento

secundario local Bloques de datos, canales dispositivos

Leer, escribir, asignar, liberar

5 Procesos primitivos Procesos primitivos, semáforos, lista de procesos listos

Suspender, continuar, esperar, señalizar

4 Interrupciones Programas de gestión de interrupciones

Invocar, enmascarar, desenmascarar, reintentar

3 Procedimientos Procedimientos, pila de llamadas, registros de activación

Marcar la pila, llamar, retornar.

2 Conjunto de instrucciones

Pila de evaluación, intérprete de microprogramas, datos escalares y vectoriales

Cargar, almacenar, sumar, restar, saltar

1 Circuitos electrónicos Registros, puertas, buses, etc. Poner a 0, transferir, activar, complementar

 Los cuatro primeros constituyen el HW del procesador  El nivel 5 se corresponde con el SO  Comenzando con el nivel 8, el SO trata con objetos externos como dispositivos periféricos

y posiblemente redes y computadoras conectados a la red.  Nivel 8: pipe es un canal lógico para el flujo de datos entre los procesos. Una tubería se

define por su salida de un proceso y su entrada en otro proceso. Se puede también utilizar para enlazar dispositivos externos o ficheros a procesos.

 Nivel 11: el identificador externo es un nombre que puede utilizar una aplicación o usuario. El identificador interno es una dirección de otro identificador que puede utilizarse por parte de los niveles inferiores del SO para localizar y controlar un objeto.

 Nivel 13: la interfaz del sistema operativo al usuario se llama shell porque separa al usuario de los detalles de los SO y presenta el SO como una colección de servicios.

2.4. DESARROLLOS QUE HAN LLEVADO A LOS SISTEMAS OPERATIVOS MODERNOS  La velocidad de cambio en las demandas de los SO requiere no solo modificaciones en

arquitectura sino también nuevas formas de organizar el SO o Arquitectura micro núcleo: asigna solo unas pocas funciones esenciales al núcleo,

incluyendo los espacios de almacenamiento comunicación entre procesos (IPC) y la planificación básica. Ciertos procesos proporcionan otros servicios del SO que ejecutan en modo usuario y son tratados como cualquier otra aplicación por el micro núcleo.

o Multihilo: es una técnica en el cual un proceso, ejecutando una aplicación se divide en una serie de hilos o threads que puede ejecutar concurrentemente. Es útil para aplicaciones que llevan a cabo un número de tareas esencialmente independientes que no necesitan ser serializadas.  Hilo: unidad de trabajo, incluyendo el contexto del procesador y su propia

área de datos para una pila  Proceso: una colección de uno o más hilos y sus recurso del sistema

asociados. Dividiendo una sola aplicación en múltiples hilos, el programador tiene gran control sobre la modularidad de las aplicaciones y la temporalización de los eventos relacionados con la aplicación.

o Multiprocesamientos simétrico: sistema de computación aislado con las siguientes características:  Tiene múltiples procesadores

docsity.com

10

 Los procesadores comparten las mismas unidades de memoria principal y de E/S, interconectadas por un bus de comunicación.

 Todos los procesadores pueden realizar las mismas funciones Planifica procesos o hilos a través de todos los procesadores. Ventajas:  Rendimiento: más de un proceso puede ejecutarse simultáneamente  Disponibilidad: el fallo de un solo procesador no afecta  Crecimiento incremental  Escalado

o SO distribuidos: proporciona la ilusión de un solo espacio de memoria principal y un solo espacio de memoria secundario, más otras utilidades de acceso unificadas.

o Diseño Orientado a Objetos: introduce una disciplina al proceso de añadir extensiones modulares a un pequeño núcleo. A nivel del SO, permite a los programadores personalizar un SO sin eliminar la integridad del sistema.

PARTE II: PROCESOS  Una tarea fundamental de cualquier SO moderno es la gestión de procesos. El SO debe

reservar recursos para los procesos, permitir a los mismos compartir e intercambiar información, proteger recursos de cada uno de ellos del resto, y permitir la sincronización.

 El SO debe mantener una estructura de cada proceso que permita controlarlos.  En un monoprocesador multiprogramado varios procesos se pueden intercalar. En un

multiprocesador también pueden haber múltiples procesos que se ejecuten en forma simultánea

CAPÍTULO 3: DESCRIPCIÓN Y CONTROL DE PROCESOS  El objetivo de los SO tradiciones es la gestión de procesos.  El SO mantiene una estructura de datos compleja que describe cada proceso.  El SO debe realizar las operaciones de planificación y proporcionar servicio para la

compartición entre procesos y la sincronización CAPÍTULO 4: HILOS, SMP Y MICRO NÚCLEOS  Los procesos de dividen en dos partes: la propiedad de los recursos (proceso) y la ejecución

del flujo de instrucciones (hilos).  La organización multihilo proporciona ventajas en la estructuración de las aplicaciones y en

su rendimiento.  La organización SMP mejora el rendimiento y la fiabilidad.

CAPÍTULO 5: CONCURRENCIA. EXCLUSIÓN MUTUA Y SINCRONIZACIÓN  Dos aspectos del control de la concurrencia: la exclusión mutua t la sincronización.  La exclusión mutua se refiere a la posibilidad de que múltiples procesos compartan código,

recursos o datos de forma de que solo uno de ellos tenga acceso al objeto compartido en cada momento.

CAPÍTULO 6: CONCURRENCIA. INTERBLOQUEO E INANICIÓN  Un interbloqueo es una situación en la cual dos o más procesos están esperando a que otros

miembros del conjunto completen una operación para poder continuar, pero ninguno de los miembros es capaz de hacerlo.

 La inanición se refiere a una situación en la cual un proceso se encuentra listo para ejecutar pero se le niega el acceso al procesador de forma continuada en deferencia a otros procesos.

docsity.com

11

CAPÍTULO 3: DESCRIPCIÓN Y CONTROL DE PROCESOS  Requisitos de un SO en relación a los procesos:

o El SO debe intercalar la ejecución de múltiples procesos, para maximizar la utilización del procesador mientras se proporciona un tiempo de respuesta razonable.

o El SO debe reservar recursos para los procesos conforme a una política específica, mientras evitar interbloqueos

o Un SO debe requerir dar soporte a la comunicación entre procesos y la creación de procesos.

3.1. ¿QUÉ ES UN PROCESO? CONCEPTOS PREVIOS

1. Una plataforma de computación consiste en una colección de recursos HW, como procesador, memoria, módulos de E/S, etc.

2. Las aplicaciones para computadores se desarrollan para realizar determinadas tareas. 3. No es eficiente que las aplicaciones esté escritas directamente para una plataforma de HW

específica. 4. Un SO de desarrolla para proporcionar una interfaz apropiada para las aplicaciones, rica en

funcionalidades, segura y consistente. 5. Se puede considerar que el SO proporciona una representación uniforma y abstracta de los

recursos, que las aplicaciones pueden solicitar y acceder.  Gestionar la ejecución de aplicaciones de forma que:

o Los recursos estén disponibles para múltiples aplicaciones o El procesador se conmute entre múltiples aplicaciones de formas que todas lleguen

a procesarse o El procesador y los dispositivos de E/S se puedan usar de forma eficiente.

PROCESOS Y BLOQUES DE CONTROL DE PROCESOS  Definiciones de procesos:

o Un programa en ejecución o Una instancia de un programa ejecutando en un computador o La entidad que se puede asignar y ejecutar en un procesador o Una unidad de actividad que se caracteriza por la ejecución de una secuencia de

instrucciones en estado actual, y un conjunto de recursos del sistema asociado. o Una entidad que consiste en un número de elementos. Dos de ellos esenciales:

código de programa y conjunto de datos.  En cualquier instante de la ejecución de un proceso se puede caracterizar por:

o Identificador o Estado o Prioridad o Contador de programa o Punteros a memoria o Datos de contexto o Información de estado de E/S o Información de auditoria

 Esto se almacena en el PCB que contiene la suficiente información de forma que es posible interrumpir el proceso cuando está corriendo y después restaurarlo. Permite al SO proporcionar multiprogramación.

3.2. ESTADO DE LOS PROCESOS

docsity.com

12

 Se puede caracterizar el comportamiento de un determinado proceso, listando a la secuencia de instrucciones que se ejecutan en dicho proceso: traza.

 El dispatcher intercambia el procesador de un proceso a otro. UN MODELO DE PROCESO DE DOS ESTADOS  Estados: ejecutando o no ejecutando.  Cada proceso debe representarse de tal manera que el SO pueda seguirlo  Existe una sola cola cuya entrada son punteros al BCP de un proceso en particular.

Alternativamente, la cola debe consistir en una lista enlazada de bloques de datos, en la cual cada bloque representa un proceso.

CREACIÓN Y TERMINACIÓN DE PROCESOS CREACIÓN DE PROCESOS  Cuando se va a añadir el SO construye la estructura para manejarlo y reserva el espacio de

dirección de memoria.  Razones para la creación de un proceso:

o Nuevo proceso de lotes: cuando el SO esta listo para procesar un nuevo trabajo leerá la siguiente secuencia de mandatos de control de trabajos.

o Sesión interactiva: un usuario desde una termina entra al SO o Creado por el SO para proporcionar un servicio: el SO puede crear un proceso para

realizar una función en representación de un programa de usuario sin que el usuario tenga que esperar.

o Creado por un proceso existente. A esta acción se la llama creación del proceso. Siendo el primero el proceso padre y el otro el hijo.

TERMINACIÓN DE PROCESOS  Puede ser normal o por fallos.  Razones para la terminación de un proceso:

o Finalización normal o Límite de tiempo excedido o Memoria no disponible o Violación de frontera o Error de protección o Error aritmético o Límite de tiempo o Fallo de E/S o Instrucción no válida o Instrucción privilegiada o Uso inapropiado de datos o Intervención del operador por el SO o Terminación del proceso padre o Solicitud del proceso padre.

MODELO DE PROCESO DE CINCO ESTADOS  La cola es una lista de tipo FIFO y el procesador opera siguiendo una estrategia cíclica por

turnos.  Utilizando una única cola, el activador (dispatcher) no puede seleccionar únicamente los

procesos que llevan más tiempo en la cola.  Cinco estados:

o Ejecutando

docsity.com

13

o Listo o Bloqueado: espera por un evento determinado o Nuevo: un proceso que se acaba de crear y que aún no ha sido admitido en el grupo

de procesos ejecutables por el SO. o Saliente: un proceso que ha sido liberado del grupo de procesos ejecutables por el

SO, por haber sido detenido o abortado.  Un SO puede definir un nuevo proceso en dos etapas: primero realiza las tareas internas que

correspondan, se asocia el identificador y se reservan y construyen las tablas.  Cuando un proceso está en estado nuevo las tablas están en memoria principal pero el

proceso en memoria secundaria.  Un proceso sale del sistema en dos etapas: primero el proceso termina, por la acción que

sea, la terminación nueve al proceso a estado saliente. Las tablas se mantienen por un tiempito hasta que nadie más las necesite y luego se borran.

 Posibles transacciones: o Null → Nuevo o Nuevo → Listo o Listo → Ejecutando o Ejecutando → Saliente o Ejecutando → Listo: el proceso en ejecución haya alcanzado el máximo de tiempo

posible de ejecución de forma ininterrumpida. o Ejecutando → Bloqueado o Bloqueado → Listo o Listo → Saliente : el padre termina la ejecución de un hijo o Bloqueado → Saliente: el padre termina la ejecución de un hijo

 Sugiere la forma de aplicar un esquema de dos colas: cola de Listos y de Bloqueados (FIFO las dos)

 Cuando sucede algún evento, el SO debe recorrer la cola de Bloqueados, buscando aquellos proceso que estén esperando dicho evento. Es más útil tener una cola por cada evento.

 Si hay prioridades es conveniente una cola por cada prioridad. PROCESOS SUSPENDIDOS LA NECESIDAD DE INTERCAMBIO O SWAPING  Una solución para evitar el tiempo ocioso del procesador es el swaping (memoria de

intercambio), que implica mover parte o todo el proceso de memoria a disco. Cuando ninguno de los procesos en memoria se encuentra en estado Listo, el SO intercambia uno de los procesos bloqueados a disco en la cola de suspendidos.

 El uso de swaping añade el estado Suspendido. Esto es cuando todos los procesos en memoria se encuentran Bloqueados el SO puede suspender un proceso poniéndolo en Suspendido y transfiriéndolo a disco pudiendo entrar así otro proceso.

 El SO tiene dos opciones para cual proceso traer a memoria: uno nuevo o una suspendido anteriormente.

 Para soportar esto se necesitan cuatro estados: o Listo: el proceso esta en memoria principal o Bloqueado: en memoria pero esperando o Bloqueado/Suspendido o Listo/Suspendido

 Posibles transacciones: o Bloqueado → Bloqueado/Suspendido o Bloqueado/Suspendido → Listo/Suspendido o Listo/Suspendido → Listo

docsity.com

14

o Listo → Listo/Suspendido: pude ser porque entro uno de mayor prioridad, si se cree que un proceso bloqueado de alta prioridad estará pronto listo.

o Nuevo → Listo/Suspendido y Nuevo a Listo: la creación de procesos diferida, haciéndolo cuanto más tarde, hace posible reducir la sobrecarga del SO y le permite realizar las tareas de creación de procesos cando el sistema esta lleno de procesos bloqueados.

o Bloqueado/Suspendido → Bloqueado o Ejecutando → Listo/Suspendido: cuando el tiempo de uso del procesador finaliza, o

por un proceso de mayor prioridad. o De cualquier estado → Saliente

OTROS USOS PARA LA SUSPENSIÓN DE PROCESOS  Definiendo un proceso suspendido:

o El proceso no está inmediatamente disponible para su ejecución. o El proceso puede estar o no a la espera de un evento. o El proceso fue puesto en estado suspendido por un agente con el propósito de

prevenir su ejecución o El proceso no puede ser recuperado de este estado hasta que el agente

explícitamente así lo indique.  Razones para la suspensión de un proceso:

o Swaping o Otras razones del SO: se sospecha que puede causar algún problema o Solicitud interactiva del usuario o Temporización o Solicitud del proceso padre

3.3. DESCRIPCIÓN DE PROCESOS  Se piensa en el SO como en la entidad que gestiona el uso de recursos del sistema por parte

de los procesos. ESTRUCTURA DE CONTROL DEL SISTEMA OPERATIVO  El SO construye y mantiene tablas de información sobre cada entidad que gestiona.  Las tablas mantenidas son de:

o Memoria: se usan para mantener un registro de la memoria principal y virtual. Debe incluir:  Las reservas de memoria principal por parte de los procesos  Las reservas de memoria secundaria por parte de los procesos  Todos los atributos de protección  La información para manejar la memoria virtual

o E/S: para gestionar los dispositivos de E/S y los canales de computador. o Ficheros: proporcionan información sobre la existencia de ficheros, su posición de

almacenamiento secundario, su estado actual y otros. o Procesos: para gestionar procesos. Se encuentra entrelazadas y referenciadas entre

sí. ESTRUCTURA DE CONTROL DE PROCESO  El SO debe conocer donde están localizados los procesos y sus atributos.

LOCALIZACIÓN DE LOS PROCESOS  Un proceso debe incluir un programa o un conjunto de programas a ejecutar.

docsity.com

15

 Un procesos debe consistir en una cantidad suficiente de memoria para almacenar el programa y datos del mismo, adicionalmente incluye una pila.

 El conjunto de estos atributos se denomina Bloque de control de procesos.  Nos podemos referir al conjunto de programa, datos, pila y atributos como la imagen del

proceso, que se mantiene como un bloque de memoria continuo. o Datos del usuario o Programa de usuario o Pila de sistema: para almacenar los parámetros y las direcciones de retorno de los

procedimientos y llamadas al sistema o PCB

 Para ejecutar el proceso, la imagen del proceso completa se debe cargar en memoria principal o virtual.

 Hay una tabla primaria de procesos con una entrada por cada proceso. Cada entrada contiene un puntero a la imagen del proceso.

ATRIBUTOS DE PROCESO  Tres categorías generales:

o Identificación del proceso: Identificadores numéricos  Identificadores del proceso  Del proceso padre  Del usuario.

o Información del estado del procesador:  Registros visibles para el usuario  Registros de estado y control  Puntero de pila

o Información de control de proceso: necesita el SO para coordinar y controlar varios procesos  Información de estado y de planificación:

 Estado del proceso  Prioridad  Información relativa a planificación  Evento

 Estructura de datos  Comunicación entre procesos  Privilegios de proceso  Gestión de memoria  Propia de recursos y utilización

 El papel del bloque de control de proceso: los bloques se leen y/o modifican por la práctica totalidad de los módulos de So.

 El conjunto de bloques de control de proceso define el estado del SO.  Con los bloques se pueden dar dos problemas:

o Un fallo en una simple rutina puede dañar un bloque de control o Un cambio en la estructura puede significar un cambio en todo el SO

 Para evitar estos problemas en conveniente usar una rutina de manejador. 3.4. CONTROL DE PROCESOS MODOS DE EJECUCIÓN  Ciertas instrucciones solo se pueden ejecutar en modos privilegiados: modo de sistema.  El modo menos privilegiado es el modo usuario.

docsity.com

16

 Las funciones típicas de un núcleo de SO son: gestión de procesos, gestión de memoria, gestión de E/S, funciones de soporte.

 Existe un bit en la PWS que indica el modo en que se esta ejecutando. CREACIÓN DE PROCESOS  Cuando el SO decide crear un proceso procede como:

1. Asignar un identificador de proceso único al proceso 2. Reserva espacio para proceso: debe conocer cuanto necesita 3. Inicialización del bloque de control de proceso 4. Establecer los enlaces apropiados 5. Creación o expansión de otras estructuras de datos

CAMBIO DE PROCESO CUÁNDO SE REALIZA UN CAMBIO DE PROCESO  Un cambio de proceso puede ocurrir en cualquier instante en el que el sistema operativo

obtiene el control sobre el proceso actualmente en ejecución

Mecanismo Causa Uso Interrupción Externa a la ejecución del

proceso en ejecución Reacción ante eventos externos asíncrono.

Trap Asociada a la ejecución de la instrucción actual

Manejo de una condición de error o de excepción

Llamada al sistema Solicitud explícita Llamada a una función del SO  Con un trap el SO conoce si una condición de error o de excepción es irreversible, si es así

se pone en estado saliente y se hace un cambio de proceso. CAMBIO DE MODO  En muchos SO la existencia de interrupciones no implica cambio de proceso.

CAMBIO DE ESTADO DEL PROCESO  Un cambio de modo puede ocurrir sin que se cambie el estado del proceso  Si el proceso actualmente en estado Ejecutando, se va a mover a cualquier otro estado,

entonces el SO debe realizar cambios sustanciales en su entorno: 1. Salvar el estado del proceso 2. Actualizar el bloque de control del proceso que está actualmente ejecutando 3. Mover el BCP a la cola apropiada 4. Seleccionar un nuevo proceso 5. Actualizar su PCB 6. Actualizar la estructura de datos y de gestión de memoria 7. restaurar el estado del procesador al que tenia en el momento en el que el proceso

seleccionado salio de ejecutando. EJECUCIÓN DEL SISTEMA OPERATIVO  El SO es un conjunto de programas ejecutados por un procesador  Un SO cede el control y depende del procesador para recuperarlo

NÚCLEO SIN PROCESOS  La ejecución del SO está fuera de todo proceso en un modo privilegiado.  Cuando un proceso llama al sistema, el contexto se guarda y el control pasa al núcleo.

docsity.com

17

 El SO puede realizar la salvaguarda del contexto y la activación de otro proceso EJECUCIÓN DENTRO DE LOS PROCESOS DE USUARIO  Una alternativa es ejecutar virtualmente todo el SW del SO en contexto de proceso de

usuario.  Así el SO se percibe como un conjunto de rutinas que el usuario invoca para realizar

diferentes funciones, ejecutadas dentro del entorno del proceso.  Se usa una pila de núcleo separada para manejar llamadas/retornos.  Cuando ocurre una interrupción, trap o llamada al sistema, el proceso se pone en modo

núcleo y el control se pasa al SO, de esta forma se realiza un cambio de modo dentro del mismo proceso.

 El usuario no puede interferir con las rutinas del SO, incluso cuando se están ejecutando dentro del entorno del proceso de usuario.

SISTEMAS OPERATIVOS BASADOS EN PROCESOS  SO como una colección de procesos de sistema  El SW que es parte del núcleo se ejecuta en modo núcleo, las principales funciones del

núcleo se organizan como procesos independientes.  SO modulares con mínimas y claras interfaces entre los módulos

CAPÍTULO 4: HILOS, SMP Y MICRO NÚCLEOS 4.1. PROCESOS E HILOS  Concepto de procesos como poseedor de dos características:

o Propiedad de recursos. Un espacio de direcciones virtuales para el manejo de la imagen del proceso. Proceso o tarea.

o Planificación/ejecución. La ejecución de un proceso sigue una traza a través de uno o más programas. Un proceso tiene un estado de ejecución y una prioridad de activación y ésta es la entidad que se planifica y activa por el SO. Hilos o proceso ligero.

MULTIHILO  Capacidad de un SO de dar soporte a múltiples hilos de ejecución en un solo proceso.  En un entorno multihilo, un proceso se define como la unidad de asignación de recursos y

una unidad de protección.  Dentro de un proceso puede haber uno o más hilos, cada uno con:

o Un estado de ejecución o Un contexto o Una pila de ejecución o Espacio de almacenamiento para variables locales. o Accesos a la memoria y recursos de su proceso

 Sigue habiendo un único PCB pero muchos TCB con los valores de los registros, la prioridad y otra información relativa al estado del hilo.

 Todos los hilos de un proceso comparten el estado y los recursos de ese proceso, residen en el mismo espacio de direcciones y tienen acceso a los mismos datos

 Cuatro ejemplos de uso de hilos: o Trabajo en primer plano y en segundo plano o Procesamiento asíncrono o Velocidad de ejecución (en paralelo) o Estructura modular de programas

docsity.com

18

FUNCIONALIDADES DE LOS HILOS  Tienen estado de ejecución y se pueden sincronizar entre ellos

ESTADO DE LOS HILOS  Ejecutando, listo y bloqueado.  Operaciones básicas relacionadas con los cambios de estado:

o Creación: cuando se crea un nuevo proceso también se crea un hilo de dicho proceso. Ese hilo puede crear otros hilos

o Bloqueo: cuando un hilo espera un evento. El bloqueo de un hilo implica el bloqueo del proceso entero

o Desbloqueo: cuando sucede el evento pro el que el hilo está bloqueado, el hilo se pasa a la cola de listos.

o Finalización: cuando se completa se libera contexto y pila. SINCRONIZACIÓN DE HILOS  Todos los hilos de un proceso comparte el mismo espacio de direcciones y otros recursos

por lo que deben sincronizar su uso. HILOS DE NIVEL DE USUARIO Y DE NIVEL DE NÚCLEO HILOS DE NIVEL DE USUARIO (ULT)  En un entorno ULT puro, la aplicación gestiona todo el trabajo de los hilos y el núcleo no es

consciente de la de la existencia de los mismos.  Por los tanto, una aplicación comienza con un solo hilo y ejecutando en ese hilo. La

aplicación puede crear un nuevo hilo a ejecutar dentro del mismo proceso. Toda esta actividad se realiza en espacio usuario y dentro de un solo proceso.

 El uso de ULT en lugar de KLT presenta las ventajas: o El cambio de hilo no requiere privilegios de modo núcleo porque está todo dentro

del mismo proceso o La planificación puede especificarse por parte de la aplicación. o Los ULT puede ejecutar en cualquier SO

 Desventajas: o Muchas llamadas al sistema son bloqueantes o En une estrategia ULT, un aplicación multihilo no puede sacar ventaja del

multiproceso. HILOS A NIVEL DE NÚCLEO (KLT)  El núcleo gestiona todo el trabajo de gestión de hilos, manteniendo la información necesaria

por cada hilo.  La planificación se hace a nivel hilo.  Ventaja: las rutinas de núcleo pueden ser en si multihilo.  Desventaja: cambio de hilos requiere cambio de modo.

ENFOQUES COMBINADOS  La creación de hilos se realiza por completo en el espacio de usuario. Los múltiples ULT de

una aplicación se asocian en un número de KLT OTRAS CONFIGURACIONES

Hilos:Procesos Descripción 1:1 Cada hilo de ejecución es un único proceso con su propio espacio de

direcciones y recursos M:1 Un proceso define un espacio de direcciones y pertenencia dinámica de

docsity.com

19

recurso. Se pueden crear y ejecutar múltiples hilos en ese proceso 1:M Un hilo puede migrar de un entorno de proceso a otro. Esto permite a los hilos

moverse entre distintos sistemas. SO distribuidos M:N Combina M:1 u 1:M

RELACIÓN MUCHOS-A-MUCHOS  Un hilo es una ruta de ejecución, con una pila de ejecución, estado del procesador e

información de planificación.  El programa completo puede implementarse como un solo proceso  El programa principal y el subprograma de E/S podrían implementarse como dos procesos

independientes.  Tratar al programa principal y al subprograma y al subprograma de E/S como una sola

actividad que se puede implementar en un solo hilo. 4.2. MULTIPROCESAMIENTO SIMÉTRICO ARQUITECTURA SMP  Flynn propone las siguientes categorías de computadores:

o Única instrucción, único flujo de datos (SISD): un solo procesador ejecuta en una única instrucción que opera sobre datos almacenados enana sola memoria.

o Única instrucción, múltiples flujos de datos (SIMD): una única instrucción de máquina controla la ejecución simultánea de un número de elementos de proceso.

o Múltiples instrucción, único flujo de datos (MISD): se trasmite una secuencia de datos a un conjunto de procesadores, cada uno de los cuales ejecuta una secuencia de instrucciones diferentes

o Múltiples instrucción, múltiples flujos de datos (MIMD): un conjunto de procesadores ejecuta simultáneamente diferentes secuencias de instrucciones en diferentes conjuntos de datos. Se puede dividir por el tipo de comunicación  Si comparten una memoria: multiprocesador de mem compartida

 Maestro/esclavo (si se cae el maestro se caen todos y cuello de botella en el maestro)

 SMP  A través de redes: clusters

CONSIDERACIONES DE DISEÑO DE SISTEMAS OPERATIVOS MULTIPROCESADOR

(Para que se vea para el usuario como un uniprocesador multiprogramado)  Procesos e hilos simultáneos concurrentes: las rutinas del núcleo necesitan ser reentrantes

para permitir que varios procesadores ejecuten el mismo código de núcleo simultáneamente.

 Planificación  Sincronización: fuerza a la exclusión mutua y el orden de los eventos  Gestión de memoria  Fiabilidad y tolerancia a fallos: el sistema no se puede caer si falla un procesador

MICRONÚCLEOS  Es la pequeña parte central de un sistema operativo que proporciona las bases para

extensiones modulares  Este enfoque proporciona un alto grado de flexibilidad y modularidad

ARQUITECTURA MICRONÚCLEO

docsity.com

20

 El enfoque de SO por capas plantea muchas capas con funciones organizadas jerárquicamente y solo hay interacción entre las capas adyacentes. Pero es difícil mantener y dar seguridad porque hay mucha interacción entre capas.

 El micronúcleo plantea que solo las funciones esenciales del SO estén en el núcleo. Los otros se construyen sobre el micronúcleo y son ejecutadas en modo usuario. Se comportan como servidores de procesos

BENEFICIOS DE UNA ORGANIZACIÓN MICRONÚCLEO  Interfaces uniformes en las peticiones realizadas por un proceso.  Extensibilidad: permite agregar nuevos servicios o realizar múltiples servicios en una

misma área funcional  Flexibilidad: cualquier cambio es pequeño  Portatibilidad: los cambios necesarios para transferir el sistema a otro procesador significa

hacer cambios solo en el núcleo  Fiabilidad: el Micronúcleo se puede verificar en forma rigurosa  Soporte de sistemas distribuidos  Soporte de SO orientados a objetos

RENDIMIENTO DEL MICRONÚCLEO  Desventaja: lleva más tiempo construir y enviar mensajes a través del micronúcleo, o hacer

llamadas a servicios  Incrementa el cambio de estado y de proceso.

DISEÑO DEL MICRONÚCLEO  Gestión de memoria a bajo nivel: tiene que gestionar la memoria a nivel HW para dar

protección a los procesos. Basta con que el Micronúcleo se responsabilice de la asignación de cada página virtual a un marco físico

 Comunicación entre procesos: la forma básica son los mensajes. Incluye una cabecera y un cuerpo. Un puerto es una cola de mensajes destinada a un proceso en particular.

 Gestión de E/S e interrupciones: manejar las interrupciones de HW como mensajes e incluir los puertos de E/S en los espacios de direcciones.

CAPÍTULO 5: CONCURRENCIA. EXCLUSIÓN MUTUA Y SINCRONIZACIÓN CONCEPTOS PREVIOS  Multiprogramación: gestión de múltiples procesos dentro de un sistema monoprocesador  Multiprocesamiento: gestión de múltiples procesos dentro de un multiprocesador  Procesamiento distribuido: Gestión de múltiples procesos que ejecutan sobre múltiples

sistemas de cómputo distribuidos.  La concurrencia abarca: la comunicación entre procesos y la compartición de, o

competencia por, recursos; la sincronización de actividades de múltiples procesos y la reserva de tiempo de procesador para cada proceso.

 La concurrencia aparece entres contextos diferentes: o Múltiples aplicaciones o Aplicaciones estructuradas o Estructura del SO

 Términos claves: o Sección crítica: sección de código dentro de un proceso que requiere acceso a

recursos compartidos que no pueden ser ejecutados mientras otros procesos están en una sección de código correspondiente

docsity.com

21

o Interbloqueo: dos o más procesos son incapaces de actuar porque cada uno está esperando que alguno de los otros haga algo.

o Círculo vicioso: dos o más procesos cambian continuamente su estado en respuesta a cambios en otros procesos, sin realizar ningún trabajo útil.

o Exclusión mutua: requisito de que cuando un proceso esté en una sección crítica, ningún otro proceso pueda entrar.

o Condición de carrera: situación en la cual múltiples hilos o procesos leen y escriben datos compartidos y el resultado final depende de la coordinación relativa de sus ejecuciones.

o Inanición: situación en la cual un proceso preparado para avanzar es soslayado indefinidamente por el planificador.

5.1. PRINCIPIOS DE LA CONCURRENCIA  Los procesos se entrelazan en el tiempo para ofrecer la apariencia de ejecución simultánea.

En un sistema de múltiples procesadores también se pueden solapar.  Los problemas surgen dado que no pueden predecirse la velocidad relativa de ejecución de

los procesos.  Surgen problemas con las variables globales y asignación de recursos.  En un sistema monoprocesador, el motivo por el que se tiene un problema es que una

interrupción puede parar la ejecución de instrucciones en cualquier punto de un proceso. En los multiprocesadores además surge por la ejecución simultánea

PREOCUPACIONES DEL SISTEMA OPERATIVOS  El SO debe ser capaz de seguir la pista de varios procesos.  El SO debe ubicar y desubicar varios recursos para cada proceso activo:

o Tiempo de procesador o Memoria o Ficheros o Dispositivos de E/S

 El SO debe proteger los datos y recursos físicos de cada proceso frente a otros  El funcionamiento del proceso y el resultado que produzca debe ser independiente de la

velocidad a la que suceda su ejecución en relación con la velocidad de otros procesos concurrentes.

Grado de percepción Relación Influencia que un proceso

tiene sobre el otro Potenciales

problemas de control Procesos que no se perciben entre si

Competencia Los resultados de uno son independientes del otro. La temporización puede verse afectada

Exclusión mutua. Interbloqueo. Inanición.

Procesos que se perciben indirectamente entre si

Cooperación por compartición

Los resultados de uno pueden depender del otro. La temporización puede verse afectada

Exclusión mutua. Interbloqueo. Inanición. Coherencia de datos.

Procesos que se perciben directamente entre si

Cooperación por comunicación

Los resultados de uno pueden depender del otro. La temporización puede verse afectada

Interbloqueo. Inanición.

COMPETENCIA ENTRE PROCESOS POR RECURSOS  Entra en conflicto cuando quieren un recurso compartido.

docsity.com

22

 Se necesita la exclusión mutua, pero puede provocar interbloque (ninguno libera el recurso que tiene porque para avanzar necesita el otro recurso que tiene le otro proceso), e inanición

 Un recurso es crítico cuando dos o más procesos lo pueden requerir simultáneamente, y esa parte de código se llama sección crítica.

 Una sección crítica está definida para cada recurso crítico  Solo un proceso a la vez puede entrar en la sección crítica de un mismo proceso.  Para esto se definen funciones: entrarcrítica, salircrítica

COOPERACIÓN ENTRE PROCESOS VÍA COMPARTICIÓN  Los procesos deben cooperar para asegurar que los datos que comparten son manipulados

adecuadamente.  Se presentan exclusión mutua, interbloque e inanición.  Solo las operaciones de escritura deben ser mutuamente excluyentes. Se pueden hacer

muchas lecturas pero una escritura en simultáneo.  Surge el problema de coherencia de los datos que puede ser evitado declarando en cada

proceso la secuencia completa como una sección crítica. COOPERACIÓN ENTRE PROCESOS VÍA COMUNICACIÓN  La comunicación proporciona una manera de sincronizar o coordinar actividades  La exclusión mutua no es un requisito de control.  Están presentes el interbloqueo y la inanición.

REQUISITOS PARA LA EXCLUSIÓN MUTUA  La exclusión mutua debe hacerse cumplir  Un proceso que se pare en su sección no crítica debe hacerlo sin interferir con otros

procesos  No debe ser posible que un proceso que solicite acceso a una sección crítica sea postergada

indefinidamente  Cuando ningún proceso esté en una sección crítica, a cualquier proceso que solicite entrar

en su sección crítica debe permitírsele entrar sin demora.  Un proceso permanece dentro de su sección crítica sólo por un tiempo finito

5.2. EXCLUSIÓN MUTUA: SOPORTE HARDWARE DESHABILITAR INTERRUPCIONES  En un monoprocesador basta con impedir que un proceso sea interrumpido

while (true){ /*Deshabilito las interrupciones*/ /*Sesión crítica*/ /*Habilito las interrupciones*/ /*Resto*/ }

 La eficiencia baja porque limita la capacidad del procesador para enlazar procesos. Y no soluciona en arquitectura multiprocesadores.

INSTRUCCIONES MÁQUINA ESPACIALES.  Instrucciones de máquina que llevan acabo dos acciones atómicas (se realiza en un único

paso y no puede ser interrumpida), sobre una posición de memoria con un único ciclo de búsqueda de instrucción.

docsity.com

23

 Durante la ejecución de la instrucción, el acceso a la posición de memoria se le bloquea a todas las otras instrucciones que referencia esa posición.

INSTRUCCIÓN TEST AND SET Boolean testset (int i) { If (i ==00) {i=1; return true;}

Else {return false;} }  La instrucción comprueba el valor de su argumento i. Si es 0 entonces la reemplaza por 1 y

devuelve cierto.  El término de espera activa o espera cíclica se refiere a una técnica en la cual un proceso no

puede hacer nada más hasta obtener permiso para entrar a su sección crítica, pero continúa ejecutando una instrucción o un conjunto de instrucción que comprueban la variable apropiada para conseguir entrar.

INSTRUCCIÓN EXCHANGE Void exchange (int registro, int memoria) { Int temp;

Temp = memoria; Memoria = registro; Registro = temp;

}  Cerrojos. Si un cerrojo = 1 un proceso está en la sección crítica y es cuya llave es igual a 0

PROPIEDADES DE LA SOLUCIÓN INSTRUCCIÓN MÁQUINA  Ventajas:

o Es aplicable a cualquier número de procesos sobre un procesador único o multiprocesadores de memoria principal compartida

o Es simple y fácil de verificar. o Puede ser utilizado para dar soporte a múltiples secciones críticas

 Desventajas: o Se emplea espera activa. Continua consumiendo tiempo de procesador o Es posible la inanición o Es posible el interbloqueo

5.3 SEMÁFOROS  Principio fundamental: dos o más proceso puede cooperar por medio de simples señales,

tales que un proceso puede ser obligado a parar en un lugar específico hasta que haya recibido una señal específica.

 Trasmitir una señal vía semáforo: semSignal(s). Recibir semWait(s) atómicas  El semáforo puede ser visto como una variable que contiene un valor entero sobre el cual

sólo están definidas tres operaciones: o Puede ser inicializado a un valor no negativo o semWait(s) decrementa el valor del semáforo. Si pasa a ser negativo el proceso se

bloquea

docsity.com

24

o semSignal(s) incrementa el valor del semáforo. Si el valor es menor o igual que cero, entonces se desbloquea uno de los procesos bloqueados en la operación semWait(s)

 Un semáforo binario realiza las misma funciones pero solo puede contener el valor 0 o 1  Siempre se utiliza una cola para mantener los procesos esperando por el semáforo.  Si el semáforo incluye una política FIFO se dice que es fuerte, sino débil.  Los fuertes garantizan que no va a haber inanición, los débiles no.

EXCLUSIÓN MUTUA  La solución más directa es el semáforo. Siempre se inicializa en 1 para que el primer

proceso que ejecute semWait sea capaz de entrar inmediatamente  El contenido del semáforo indica la cantidad de procesos bloqueados si <0  Sino indica la posibilidad de sincronización y exclusión mutua

EL PROBLEMA PRODUCTOR/CONSUMIDOR  Hay uno o más procesos generando algún tipo de dato y poniéndolos en un buffer. Hay un

único consumidor que extrae. El sistema está obligado a impedir la superposición de las operaciones sobre los datos.

 Bloquearse cuando: o Productor: al insertar con el buffer lleno o Consumidor: al extraer con el buffer vacío

 Desbloquearse cuando: o Consumidor: dato insertado o Productor: dato extraído

s=1; n=0; e=/*tamaño de buffer*/ Productor: While(true){ Producir(); P(e); P(s); Añadir(); V(s); V(n);}

Consumidor: While(true){ P(n); P(s); Extraer(); V(s); V(e); Consumir();}

5.4. MONITORES  Un monitor es una construcción del lenguaje de programación que proporciona una

funcionalidad equivalente a la de lo semáforos pero es más fácil de controlar MONITOR CON SEÑALES  Un monitor es un módulo SW consistente en uno o más procedimientos, una secuencia de

inicialización y datos locales.  Características:

o Las variables locales de datos son sólo accesibles por los procedimientos del monitor y no por ningún procedimiento externo

o Un proceso entra en el monitor invocando uno de sus procedimientos o Solo un proceso puede estar ejecutando dentro del monitor al tiempo

 El monitor proporciona exclusión mutua.  Un monitor soporta la sincronización mediante el uso de variables condición que están

contenidas dentro del monitor y son accesibles solo desde el monitor. Y se manejan igual que los semáforos, cWait(c) y cSignal(c)

docsity.com

25

 Un monitor tiene un único punto de entrada. Si hay un proceso en el monitor y otro quiere entrar se inserta a la cola de bloqueados de el monitor hasta que este salga. Si el proceso se olvida de salir el monitor lo hará por él en un determinado momento, agregándolo a la cola de bloqueados.

 La ventaja que tienen sobre los semáforos es que todas las funciones de sincronización están confinadas en el monitor.

MODELO ALTERNATIVO DE MONITORES CON NOTIFICACIÓN Y DIFUSIÓN  Cuando surge algo se pasan todos los proceso a Listo  Dos desventajas:

o Si el proceso que realiza el signal no ha terminado con el monitor, entonces se necesitarán dos cambios de procesos adicionales: uno para bloquearse este proceso y otro para retomarlo cuando el monitor quede disponible

o La planificación de procesos asociada con una señal debe ser perfectamente fiable. 5.5. PASO DE MENSAJES SINCRONIZACIÓN  Cuando send se ejecuta en un proceso: el proceso puede bloquearse o no  Cuando se ejecuta un receive:

o Si no hay mensajes se bloquea o continua con otra cosa o Si hay mensaje lo recibe y continua

 Conjuntos: o Envío bloqueante, recepción bloqueante: peligro de que los procesos generen

mensajes repetitivamente. o Envío no bloqueante, recepción bloqueante o Envío no bloqueante, recepción no bloqueante: se le puede permitir al proceso

receptor comprobar si hay un mensaje en espera antes de realizar el relieve y permitirle al proceso especificar más de un origen en recieve.

DIRECCIONAMIENTO  Direccionamiento directo: send incluye el identificador del proceso destinatario. El

parámetro origen de la primitiva receive tomo un valor devuelto por la operación de recepción cuando se completa.

 Direccionamiento indirecto: son enviados a una estructura de datos compartida que consiste en colas que pueden contener mensajes temporales. Permite una mayor flexibilidad. También permite establecer distintos tipos de conexiones:

o Uno-a-uno: privada o Muchos-a-uno: cliente/servidor. El buzón es el puerto o Uno-a-muchos: un mensaje debe ser difundido o Muchos-a-muchos: permite a múltiples procesos servidores proporcionar servicio

concurrente a múltiples clientes. FORMATO DE MENSAJE  El mensaje está dividido en dos partes: una cabecera, que contienen información acerca del

mensaje, y un cuerpo, que contiene el contenido real del mensaje.  La cabecera puede contener una identificación del tipo origen y del destinatario previsto del

mensaje, un campo de longitud y un campo de tipo. EXCLUSIÓN MUTUA  Se asume receive bloqueante y send no bloqueante.

docsity.com

comentarios (0)

No hay comentarios

¡Escribe tu el primero!

Esta solo es una pre-visualización

3 shown on 82 pages

descarga el documento