administración del procesador
Post on 13-Dec-2015
216 Views
Preview:
DESCRIPTION
TRANSCRIPT
Ingeniería de Sistemas Universidad Nacional de Trujillo
30/07/2015
“ADMINISTRACIÓN DEL PROCESADOR”
SISTEMAS OPERATIVOS
UNIVERSIDAD NACIONAL DE
TRUJILLO
INGENIERO:
- Ing. AGREDA GAMBOA, EMERSON DAVID
INTEGRANTES:
- ALFARO GOMEZ, ERICK GIANPIER
- ARIAS TANDAYPAN, JORGE LUIS
- CASTILLO VELASQUEZ, NELLY ROSALIA
- HARO GUITIERREZ, JUAN JEINY
- VARGAS OTINIANO, ALVARO ALFREDO
SISTEMAS OPERATIVOS Ingeniería de Sistemas
Universidad Nacional de Trujillo | 1
DEDICATORIA
"Este proyecto va dedicado en primer lugar a dios y a la Santísima Virgen de
la Puerta, por darnos las fuerzas para continuar en lo adverso y por cada día de
vida que nos brinda, por guiarnos en el sendero de lo sensato y darnos sabiduría en
las situaciones difíciles. También, a nuestros respectivos padres, por darnos la vida
y luchar día a día para que logremos escalar y conquistar cada peldaño en este
camino ascendente de la vida, así como estar con nosotros a pesar de nuestras
caídas y motivarnos a seguir adelante; por ser nuestro ejemplo y enseñarnos a
luchar en esta vida llena de adversidades y a conquistar las metas que nos
propongamos hasta agotar los recursos que sean necesarios. Este trabajo va
dedicado para ellos."
SISTEMAS OPERATIVOS Ingeniería de Sistemas
Universidad Nacional de Trujillo | 2
INTRODUCCIÓN
los sistemas operativos son y serán el corazón de todos los equipos de
cómputo es por ello que es indispensable conocer cuáles son las funciones que
realiza el sistema operativo para poder realizar las tareas que se le encomienda, es
decir los sistemas operativos manejan muchísimos procesos claro que todos estos
procesos se llevan a cabo con ayuda del procesador, un proceso tiene muchas
definiciones entre ellas se encuentra la siguiente: un proceso es un programa que
se encuentra en ejecución durante un determinado tiempo.
En este trabajo se encuentra información muy completa de la forma en que
se realizan los procesos en el procesador, entre ellos se encuentran la concurrencia
entre procesos, la forma de planificación de los procesos, los tipos de interbloqueo
y las técnicas de administración de procesos.
En el desarrollo del trabajo presentamos las definiciones que cada tipo de
planificación utiliza, los objetivos que utilizan para ser la base de cada estructura
de los procesos, otro punto importante que estaremos utilizando en este trabajo es
que mostramos la forma de solucionar los problemas por cualquier tipo de bloqueo
o por cualquier interrupción del sistema operativo.
Para terminar este trabajo presentamos algunas técnicas de administración
en las que indicamos cual es la forma en que se deben de implementar para realizar
operaciones con el procesador o para hacer funcionar mejor el procesador.
SISTEMAS OPERATIVOS Ingeniería de Sistemas
Universidad Nacional de Trujillo | 3
ÍNDICE ADMINISTRACIÓN DEL PROCESADOR ................................................................................................. 4
1 MULTIPROCESAMIENTO .................................................................................................................. 4
1.1 Sistemas de Multiprocesamiento ................................................................................................... 4
1.2 Modelos arquitectónicos para un multiprocesador ...................................................................... 6
1.3 Explotación del Paralelismo ........................................................................................................... 7
1.4 Paralelismo Masivo ......................................................................................................................... 7
1.5 Metas de los sistemas de multiprocesamiento ............................................................................... 8
1.6 Detección automática del paralelismo ........................................................................................... 8
1.7 Paralelismo Masivo ......................................................................................................................... 8
1.8 Metas de los sistemas de multiprocesamiento ............................................................................... 8
1.9 Detección automática del paralelismo ........................................................................................... 8
1.10 Multitarea ........................................................................................................................................ 9
1.10.1 Tipos de Multitarea ................................................................................................................ 9
2 SISTEMAS OPERATIVOS MULTIPROCESADORES ................................................................... 10
2.1 CARACTERÍSTICAS: ................................................................................................................. 10
2.2 Funciones: ...................................................................................................................................... 11
2.2.1 Maestro / Satélite: ................................................................................................................ 11
2.2.2 Ejecutivos Separados: .......................................................................................................... 12
2.2.3 Tratamiento Simétrico: ........................................................................................................ 12
2.3 ESTRUCTURA FUNCIONAL: ................................................................................................... 12
2.4 VENTAJAS: .................................................................................................................................. 14
2.4.1 Rendimiento y potencia de cálculo ...................................................................................... 14
2.4.2 Tolerancia a fallos: ............................................................................................................... 14
2.4.3 Flexibilidad ........................................................................................................................... 15
2.4.4 Crecimiento Modular ........................................................................................................... 15
2.4.5 Especialización Funcional .................................................................................................... 15
3 RECUPERACIÓN DE ERRORES ...................................................................................................... 15
3.1 Rutinas de Manejo de Errores: .................................................................................................... 15
3.2 Tipos de Errores ............................................................................................................................ 16
3.3 Herramientas para disminuir el número de errores .................................................................. 16
3.4 Recuperación de Errores Sintácticos .......................................................................................... 16
3.5 Errores en Análisis LR ................................................................................................................. 17
3.6 Estrategias de Recuperación ........................................................................................................ 17
4 MULTIPROCESAMIENTO SIMETRICO ........................................................................................ 19
4.1 Ventajas ......................................................................................................................................... 20
4.2 Desventajas .................................................................................................................................... 21
BIBLIOGRAFIA ............................................................................................................................................ 22
SISTEMAS OPERATIVOS Ingeniería de Sistemas
Universidad Nacional de Trujillo | 4
ADMINISTRACIÓN DEL PROCESADOR
1 MULTIPROCESAMIENTO
Multiprocesamiento o multiproceso es el uso de dos o más procesadores (CPU) en una
computadora para la ejecución de uno o varios procesos (programas corriendo). Algunas
personas, en el idioma español hacen sinónimo este término con el de multitareas (del inglés
multitasking) el cual consiste en la ejecución de uno o más procesos concurrentes en un
sistema. Así como la multitarea permite a múltiples procesos compartir una única CPU,
múltiples CPUs pueden ser utilizados para ejecutar múltiples procesos o múltiples hilos
(Threads) dentro de un único proceso.
Los algoritmos que utilizan los sistemas operativos para aprovechar los procesadores
han sido ampliamente estudiados en libros clásicos como el de Madnick y Donovan, el de
Andrew S. Tanenbaum y el de Abraham Silberschatz, entre otros
1.1 Sistemas de Multiprocesamiento
Un sistema de multiprocesamiento consiste en una computadora que tiene más
de un procesador (o bien en una serie de computadoras con CPU’s o procesadores
independientes). La mayoría de computadoras supervisoras se diseñan específicamente
para dar soporte a múltiples procesadores. Incluyen un bus de altas prestaciones, decenas
de MB para memoria con corrección de errores, sistemas de disco redundantes,
arquitecturas avanzadas de sistemas que reducen los cuellos de botella utilidades
redundantes, como múltiples fuentes de alimentación.
Existen dos tipos de diseños de sistemas multiprocesador:
Simétrico: Los microprocesadores del sistema comparten los recursos del sistema,
como la entrada salida de memoria y disco. Se distribuye uniformemente la carga
de trabajo a los procesadores disponibles, de modo que uno no esté inactivo
mientras otro tiene un exceso de trabajo con una tarea específica. Las prestaciones
se incrementan para todas las tareas al añadir microprocesadores, su desventaja es
que los sistemas operativos que soportan este tipo de multiprocesamiento son más
difíciles de diseñar.
SISTEMAS OPERATIVOS Ingeniería de Sistemas
Universidad Nacional de Trujillo | 5
Asimétrico: Diferentes microprocesadores gobiernan las distintas tareas y
recursos del sistema. El enfoque principal que adoptan es el incremento de
rendimiento del sistema para múltiples usuarios de red en múltiples segmentos de
red de área local. Los sistemas supervisores dan soporte a múltiples tarjetas de
red, lo que incrementa el número de posibles segmentos. El bus de alta velocidad
del servidor proporciona transferencia rápida de información entre los segmentos
de red. Cada CPU se dedica a una función específica tal como entrada / salida de
la tarjeta de interfaz de red u operaciones con archivos.
Podemos concluir que el hardware permite el progreso simultáneo de varias
actividades (varios CPUS’s con memoria local).
Concurrencia
Los procesos son concurrentes su ejecución se solapa en el tiempo. Una
operación de un proceso empieza antes de que termine la última operación del otro
proceso. La sincronización es un término general para las restricciones de tiempo
de este tipo de comunicación impuesta sobre las interacciones entre procesos
concurrentes.
La forma más simple de interacciones es un intercambio de señales de
sincronización entre dos procesos. Un ejemplo bien conocido es el uso de
interrupciones para indicar al procesador que la finalización de operaciones
asíncronas de periféricos.
SISTEMAS OPERATIVOS Ingeniería de Sistemas
Universidad Nacional de Trujillo | 6
Otro tipo de señales de sincronización, los sucesos, sirven para sincronizar
procesos concurrentes. Cuando un proceso decide esperar un suceso, se retarda la
ejecución de su próxima operación hasta que otro proceso indica la ocurrencia del
suceso.
Modificación Pérdida
Dependencia no comprometida.- Se presenta cuando se permite a una
transacción leer un registro que ha sido puesto al día por otra transacción y ésta
última todavía no lo ha comprometido; pues si todavía no está comprometido,
siempre existe la posibilidad de que nunca se comprometa, y en cambio, se anule
en cuyo caso la primera transacción habrá visto algunos datos que ya no existen.
Análisis Inconsistente
Ventajas del multiprocesamiento.- El beneficio del multiprocesamiento es
el procesamiento en paralelo, donde un solo proceso o aplicación es separado en
múltiples partes que pueden ejecutarse simultáneamente en diversos CPU’s. Hasta
recientemente el procesamiento en paralelo normalmente requería una
programación especial de aplicaciones y por ello fue usado en supercomputadoras
y sistemas similares. Ahora las técnicas multi-hilos han traído esta capacidad a los
nuevos sistemas multiprocesadores.
1.2 MODELOS ARQUITECTÓNICOS PARA UN MULTIPROCESADOR
Las mejoras en microprocesadores cada vez son más complejas: cada avance
implica crecer en complejidad, potencia y superficie, lenta pero clara mejora en el
software, que permite explotar el paralelismo.
Las arquitecturas actuales son muy diversas: hay más investigación que
resultados definitivos.
Dos factores clave para la extensión de los Multiprocesadores:
SISTEMAS OPERATIVOS Ingeniería de Sistemas
Universidad Nacional de Trujillo | 7
Flexibilidad: El mismo sistema puede usarse para un único usuario
incrementado el rendimiento en la ejecución de una única aplicación o para
varios usuarios y aplicaciones en un entorno compartido.
Coste-rendimiento: Actualmente estos sistemas se basan en procesadores
comerciales, por lo que su costo se ha reducido drásticamente. La inversión
más fuerte se hace en la memoria y la red de interconexión. Como su nombre
indica son aquellos sistemas operativos que están montados sobre
computadoras que están compuestas por más de un procesador, supongamos
un computadora que en vez de tener un procesador, tuviera dos o más
procesadores conectados entre sí dentro de la misma placa base, esto sería un
sistema multiprocesador.
1.3 Explotación del Paralelismo
La mayoría de los sistemas de multiprocesamiento tienen como meta principal
el incremento de la capacidad de ejecución. La programación sigue siendo esencialmente
secuencial y generalmente no se explota la concurrencia. Las principales razones son las
siguientes:
Las personas piensan en forma secuencial.
Ningún lenguaje humano proporciona expresiones de paralelismo, pero
existen lenguajes de computación con soporte de concurrencia.
El multiprocesamiento no ha sido usado para explotar el paralelismo.
El hardware tradicional está orientado hacia la operación secuencial.
Es muy difícil depurar programas en paralelo.
Los multiprocesadores no se utilizan a menudo para explotar el paralelismo ya
que es muy escaso el software que explote el paralelismo. Lo deseable es que los
sistemas operativos y compiladores puedan detectar e implementar el paralelismo
automáticamente.
1.4 PARALELISMO MASIVO
Se debe disponer de suficientes procesadores como para que todas las
operaciones que puedan ser ejecutadas en paralelo puedan ser asignadas a procesadores
separados. Esto ofrece una forma de ejecutar un programa en el menor tiempo posible.
La cuestión central es, disponiendo del paralelismo masivo, ¿cuál es el tiempo mínimo
requerido para ejecutar un algoritmo determinado?
SISTEMAS OPERATIVOS Ingeniería de Sistemas
Universidad Nacional de Trujillo | 8
1.5 METAS DE LOS SISTEMAS DE MULTIPROCESAMIENTO
Las metas de los sistemas de multiprocesamiento generalmente son la
confiabilidad y la disponibilidad muy altas, como así también el incremento del poder
de computación. El diseño modular proporciona una flexibilidad importante y facilita la
expansión de la capacidad.
1.6 DETECCIÓN AUTOMÁTICA DEL PARALELISMO
Los multiprocesadores hacen posible la explotación del paralelismo. Los
sistemas de computación obtienen los beneficios del procesamiento concurrente más por
la “multiprogramación” de varios procesos y menos por la explotación del “paralelismo”
dentro de un solo proceso. La detección del paralelismo es un problema complejo y la
puede efectuar el programador, el traductor del lenguaje, el hardware o el Sistema
Operativo. El paralelismo dentro de los programas puede ser “explícito” o “implícito”.
Las principales características del paralelismo explícito son las que se detallan a
continuación:
Es indicado de forma específica por un programador mediante una
“construcción de concurrencia”
Se pueden utilizar procesadores separados para ejecutar cada proposición.
Es susceptible de errores de programación difíciles de detectar y depurar.
El programador puede omitir situaciones donde se aplica el paralelismo.
1.7 PARALELISMO MASIVO
Se debe disponer de suficientes procesadores como para que todas las
operaciones que puedan ser ejecutadas en paralelo puedan ser asignadas a procesadores
separados. Esto ofrece una forma de ejecutar un programa en el menor tiempo posible.
La cuestión central es, disponiendo del paralelismo masivo, ¿cuál es el tiempo mínimo
requerido para ejecutar un algoritmo determinado?
1.8 METAS DE LOS SISTEMAS DE MULTIPROCESAMIENTO
Las metas de los sistemas de multiprocesamiento generalmente son la
confiabilidad y la disponibilidad muy altas, como así también el incremento del poder
de computación. El diseño modular proporciona una flexibilidad importante y facilita la
expansión de la capacidad.
1.9 DETECCIÓN AUTOMÁTICA DEL PARALELISMO
SISTEMAS OPERATIVOS Ingeniería de Sistemas
Universidad Nacional de Trujillo | 9
Los multiprocesadores hacen posible la explotación del paralelismo. Los
sistemas de computación obtienen los beneficios del procesamiento concurrente más por
la “multiprogramación” de varios procesos y menos por la explotación del “paralelismo”
dentro de un solo proceso. La detección del paralelismo es un problema complejo y la
puede efectuar el programador, el traductor del lenguaje, el hardware o el Sistema
Operativo. El paralelismo dentro de los programas puede ser “explícito” o “implícito”.
Las principales características del paralelismo explícito son las que se detallan a
continuación:
Es indicado de forma específica por un programador mediante una
“construcción de concurrencia”
Se pueden utilizar procesadores separados para ejecutar cada proposición.
Es susceptible de errores de programación difíciles de detectar y depurar.
El programador puede omitir situaciones donde se aplica el paralelismo.
1.10 Multitarea
La multitarea es la característica de los sistemas operativos modernos de permitir
que varios procesos se ejecuten —al parecer— al mismo tiempo compartiendo uno o
más procesadores.
Los sistemas operativos multitarea son capaces de dar servicio a más de un
proceso a la vez para permitir la ejecución de muchos más programas.
En esta categoría también se encuentran todos los sistemas que cumplen
simultáneamente las necesidades de dos o más usuarios —llamados sistemas
multiusuario— que compartan los mismos recursos. Este tipo de sistemas se emplea
especialmente en redes. En resumen, se trata de fraccionamiento del tiempo (timesharing
en inglés).
1.10.1 Tipos de Multitarea
A. Cooperativa
El sistema operativo da el control a un proceso, y es este el que
cede de nuevo el control pasando a estar en espera cuando decide
voluntariamente que no puede seguir su ejecución. Al depender del propio
proceso en ejecución, puede ser problemática, puesto que si el proceso de
usuario se interrumpe y no cede la CPU al sistema operativo, todo el
sistema quedará bloqueado, es decir, sin poder hacer nada. Da lugar
SISTEMAS OPERATIVOS Ingeniería de Sistemas
Universidad Nacional de Trujillo | 10
también a latencias muy irregulares y la imposibilidad de tener en cuenta
este esquema en sistemas operativos de tiempo real. Las versiones de
Windows desde la 3 hasta el 95, todas ejecutadas bajo MS.DOS realmente
por lo que no son auténticos Sistemas Operativos sino añadidos sobre el
mismo, son un ejemplo de este tipo de Multitarea.
B. Apropiativa o preferente
El sistema operativo es el encargado de administrar el/los
procesador(es) repartiendo el tiempo de uso entre los procesos que estén
esperando para utilizarlo. Cada proceso utiliza el procesador durante
lapsos cortos, pero el resultado final es virtualmente igual a ejecutarse
todo al mismo tiempo. Ejemplos de sistemas de este tipo serían Unix y
sus derivados (FreeBSD, Linux), VMS y derivados, AmigaOS, Windows
NT.
C. Real
Solo se da en sistemas con multiprocesador; varios procesos se
ejecutan realmente al mismo tiempo en distintos microprocesadores; suele
ser también preferente. Ejemplos de sistemas operativos con esa
capacidad: variantes de Unix, Windows NT, Mac OS X.
2 SISTEMAS OPERATIVOS MULTIPROCESADORES
Un sistema operativo multiproceso se refiere al número de procesadores del sistema,
que es más de uno y éste es capaz de usarlos todos para distribuir su carga de trabajo.
2.1 CARACTERÍSTICAS:
Sistemas multiprocesador con más de una CPU en comunicación cercana.
Cada procesador controla sus propios recursos dedicados.
La contención sobre las tablas del Sistema Operativo es mínima.
El Sistema Operativo administra un grupo de procesadores idénticos, donde
cualquiera puede utilizar cualquier dispositivo de Entrada / Salida y cualquiera puede
referenciar a cualquier unidad de almacenamiento.
Sistemas de fallos controlados por software
Todos los procesadores pueden cooperar en la ejecución de un proceso determinado.
Es posible equilibrar la carga de trabajo más precisamente que en las otras
organizaciones.
SISTEMAS OPERATIVOS Ingeniería de Sistemas
Universidad Nacional de Trujillo | 11
El Sistema Operativo administra un grupo de procesadores idénticos, donde
cualquiera puede utilizar cualquier dispositivo de Entrada / Salida y cualquiera puede
referenciar a cualquier unidad de almacenamiento.
El procesador ejecutivo es el responsable (uno sólo) en un momento dado de las tablas
y funciones del sistema; así se evitan los conflictos sobre la información global.
Incremento del rendimiento y la confiabilidad.
La reconfiguración de los dispositivos de Entrada / Salida puede implicar el cambio
de dispositivos a diferentes procesadores con distintos Sistemas Operativos.
2.2 Funciones:
Las capacidades funcionales de los Sistemas Operativos de multiprogramación
y de multiprocesadores incluyen lo siguiente:
Asignación y administración de recursos.
Protección de tablas y conjuntos de datos.
Prevención contra el interbloqueo del sistema.
Terminación anormal.
Equilibrio de cargas de Entrada / Salida.
Equilibrio de carga del procesador.
Reconfiguración.
Las tres últimas son especialmente importantes en Sistemas Operativos de
multiprocesadores, donde es fundamental explotar el paralelismo en el hardware y en los
programas y hacerlo automáticamente. Las organizaciones básicas de los Sistemas
Operativos para multiprocesadores son las siguientes:
Maestro / satélite.
Ejecutivo separado para cada procesador.
Tratamiento simétrico (o anónimo) para todos los procesadores.
2.2.1 Maestro / Satélite:
Es la organización más fácil de implementar. No logra la utilización
óptima del hardware dado que sólo el procesador maestro puede ejecutar el
Sistema Operativo y el procesador satélite sólo puede ejecutar programas del
usuario. Las interrupciones generadas por los procesos en ejecución en los
procesadores satélites que precisan atención del Sistema Operativo deben ser
SISTEMAS OPERATIVOS Ingeniería de Sistemas
Universidad Nacional de Trujillo | 12
atendidas por el procesador maestro y por ello pueden generarse largas colas de
requerimientos pendientes.
2.2.2 Ejecutivos Separados:
Cada procesador tiene su propio Sistema Operativo y responde a
interrupciones de los usuarios que operan en ese procesador.
Existen tablas de control con información global de todo el sistema (por
ejemplo, lista de procesadores conocidos por el Sistema Operativo) a las
que se debe acceder utilizando exclusión mutua.
Es más confiable que la organización maestro / satélite.
Cada procesador controla sus propios recursos dedicados.
La reconfiguración de los dispositivos de Entrada / Salida puede implicar
el cambio de dispositivos a diferentes procesadores con distintos Sistemas
Operativos.
La contención sobre las tablas del Sistema Operativo es mínima.
Los procesadores no cooperan en la ejecución de un proceso individual, que
habrá sido asignado a uno de ellos.
2.2.3 Tratamiento Simétrico:
Es la organización más complicada de implementar y también la más
poderosa y confiable.
El Sistema Operativo administra un grupo de procesadores idénticos, donde
cualquiera puede utilizar cualquier dispositivo de Entrada / Salida y
cualquiera puede referenciar a cualquier unidad de almacenamiento.
El Sistema Operativo precisa código reentrante y exclusión mutua.
Es posible equilibrar la carga de trabajo más precisamente que en las otras
organizaciones.
Adquieren significativa importancia el hardware y el software para
resolución de conflictos.
Todos los procesadores pueden cooperar en la ejecución de un proceso
determinado.
El procesador ejecutivo es el responsable (uno sólo) en un momento dado
de las tablas y funciones del sistema; así se evitan los conflictos sobre la
información global.
2.3 ESTRUCTURA FUNCIONAL:
SISTEMAS OPERATIVOS Ingeniería de Sistemas
Universidad Nacional de Trujillo | 13
En términos muy generales podemos caracterizar a los multiprocesadores
atendiendo a 2 criterios:
Un multiprocesador es un único computador que incluye múltiples
procesadores.
Los procesadores se pueden comunicar y cooperar a diferentes niveles para
resolver un problema dado. La comunicación se puede realizar enviando
mensajes de un procesador a otro o compartiendo una memoria común.
Existen algunas similitudes entre los multiprocesadores y los sistemas
multicomputador, ya que ambos están motivados por el mismo objetivo básico: soportan
operaciones concurrentes en el sistema. Sin embargo, existe una distinción importante
entre ellos basada en el grado en que comparte recursos y cooperan en la solución de
problemas. Un SISTEMA MULTICOMPUTADOR consta de varios computadores
autónomos que pueden o no comunicarse entre ellos. Un SISTEMA
MULTIPROCESADOR está controlado por un sistema operativo que proporciona
interacción entre los procesadores y sus programas a nivel de procesos.
A continuación describimos 2 conjuntos diferentes de modelos arquitectónicos
para un multiprocesador.
GRADOS DE
ACOPLAMIENTO
EN
MULTIPROCESAMIENTO
DESCRIPCIÓN
LIGERAMENTE
ACOPLADO
Incluye la conexión de dos o más sistemas
independientes por medio de un enlace de comunicación.
Cada sistema tiene su propio Sistema Operativo y
almacenamiento.
Los sistemas pueden funcionar independientemente y se
comunican cuando sea necesario.
Los sistemas separados pueden acceder a los archivos de
los otros e intercambiar tareas a procesadores menos
cargados.
RÍGIDAMENTE ACOPLADO
Utiliza un solo almacenamiento compartido por varios
procesadores.
Emplea un solo Sistema Operativo que controla todos los
procesadores y el hardware del sistema.
Tabla N° 1: Grados de acoplamiento de multiprocesamiento.
SISTEMAS OPERATIVOS Ingeniería de Sistemas
Universidad Nacional de Trujillo | 14
Figura N° 1: Multiprocesamiento ligeramente acoplado.
Figura N° 2: Multiprocesamiento rígidamente acoplado.
2.4 VENTAJAS:
2.4.1 Rendimiento y potencia de cálculo
Dedicando múltiples procesadores a la ejecución de una aplicación es
posible obtener ganancias significativas de velocidad. Los problemas que
suponen las interacciones más extensas o más frecuentes entre procesadores
pueden resolverse más rápidamente que en un sistema distribuido ya que el
ancho de banda de comunicación entre procesadores es más elevado.
2.4.2 Tolerancia a fallos:
La redundancia inherente a los multiprocesadores puede emplearse para
aumentar la disponibilidad y eliminar puntos de fallo.
SISTEMAS OPERATIVOS Ingeniería de Sistemas
Universidad Nacional de Trujillo | 15
2.4.3 Flexibilidad
Un sistema multiprocesador podría tener capacidad para reconfigurarse
dinámicamente y ajustarse de tal modo que optimice diferentes objetivos para
diferentes aplicaciones, tales como aumento de productividad, ganancia de
velocidad de las aplicaciones o incluso ciertos aspectos de tolerancia a fallos.
2.4.4 Crecimiento Modular
Hasta cierto punto, un diseño modular de un sistema puede adaptarse a
las necesidades de una instalación específica añadiéndole exactamente el tipo de
componente que más probablemente alivie un cuello de botella importante, tal
como procesadores, memorias o dispositivos de E/S.
2.4.5 Especialización Funcional
Se puede añadir procesadores comerciales con relaciones
coste/rendimiento varios órdenes de magnitud inferiores a la de los
supercomputadores pueden estructurase en multiprocesadores con una relación
coste/ efectividad adecuada a un amplio rango de aplicaciones.
3 RECUPERACIÓN DE ERRORES
3.1 RUTINAS DE MANEJO DE ERRORES:
Ocupan gran parte de los compiladores.
Objetivos:
- Informar con claridad y exactitud.
- Recuperación rápida (recuperación no es corrección)
- No debe retrasar el procesamiento de programas sin errores.
- No debe generar errores en cascada, como por ejemplo, eliminar
identificador.
Acciones posibles:
- Detectar errores.
- Informar de los errores.
- Recuperación ante los errores.
- Corregir errores.
Es más rápido re-compilar que leer el siguiente error.
SISTEMAS OPERATIVOS Ingeniería de Sistemas
Universidad Nacional de Trujillo | 16
3.2 TIPOS DE ERRORES
Léxicos: escribir mal un identificador, número, etc.
Sintácticos: no poner un “;” al final de una sentencia, o tener una estructura
incorrecta.
Semánticos: multiplicar por una variable booleana.
Lógicos: bucles infinitos
3.3 HERRAMIENTAS PARA DISMINUIR EL NÚMERO DE ERRORES
Existen herramientas con diferentes funcionalidades que permiten la detección de
errores y a la vez solucionarlos, permitiendo que la secuencia siga correctamente.
Dependiendo del tipo de error, las herramientas deben tener ciertas características:
Léxicos: herramientas que completen palabras que detecten que están
incompletas.
Sintácticos: herramientas de edición basados en sintaxis.
Semánticos: herramienta que se encargue de buscar funciones/clases e indicar
los tipos especificados.
3.4 RECUPERACIÓN DE ERRORES SINTÁCTICOS
Ejemplo 1: Análisis Descendente
Gramática:
S::= a A S | b A
A::= c A | d
Tabla:
Entrada: a b …
Estado del análisis cuando detecta el error:
Pila de Entrada
$S a b …
$SAa a b …
$SA b …
Error: Se ha encontrado un b, cuando se esperaba un c o d
Podría eliminarse
ΣN a b c d
S aAS bA
A cA d
SISTEMAS OPERATIVOS Ingeniería de Sistemas
Universidad Nacional de Trujillo | 17
3.5 ERRORES EN ANÁLISIS LR
Ejemplo 2: Análisis Descendente
Gramática
1. S:: = A A
2. A:: = x A
3. A:: = y
Entrada: xy
acción ir a
x y $ S A
0 d3 d4 1 2
1 acpt
2 d3 d4 5
3 r3 d4 6 6
4 r3 r3 r3 7
5 r1 8
6 r2 r2 r2
Estado del análisis cuando detecta el error:
Pila Entrada
0x3A6 $
0A2 $
0A2 $
Se podría añadir un token.
3.6 ESTRATEGIAS DE RECUPERACIÓN
No hay una estrategia de aceptación universal, es más, abundan técnicas heurísticas y ad
hoc.
Existe un principio general de recuperación:
Minimizar tokens eliminados/modificados.
Dejar el analizador listo para continuar procesando.
Las principales estrategias de recuperación son:
Modelo de pánico/alarma
Es el método más sencillo.
Lo pueden usar la mayoría de los AS.
No entra en lazos infinitos
SISTEMAS OPERATIVOS Ingeniería de Sistemas
Universidad Nacional de Trujillo | 18
Adecuado para lenguajes en los que son raros múltiples errores en la misma
proposición
Funcionamiento general: El AS desecha símbolos de la entrada, uno por
uno, hasta encontrar un token de sincronización para continuar.
- Delimitadores: punto y coma, palabras clave como end.
Su mayor inconveniente es que podría omitirse una gran cantidad de
símbolos sin analizar.
Nivel de frase
Correcciones en la cadena de entrada.
Funcionamiento: Una vez descubierto el error, se corrige (localmente) la
entrada por un prefijo que permite continuar el AS.
- Sustituir una coma por punto y coma, insertar un punto y coma, etc.
Inconvenientes:
- Dificultad para resolver situaciones en las que el error se produjo
antes de la detección de éste.
- Pueden producir lazos infinitos (evitar insertar símbolos antes del
símbolo actual de entrada).
Producción de error
Funcionamiento:
- Conocidos los errores más comunes, se extiende la gramática con
producciones de error.
- Reconocido el error, se dan diagnósticos precisos de la construcción
errónea.
Inconvenientes
- Dificultad para ir más allá de los casos particulares más frecuentes.
- Generación de ambigüedades
Corrección Global
Algoritmos que eligen una secuencia mínima de cambios para obtener una
corrección global de menor costo.
Su único inconveniente es que las técnicas son costosas en tiempo y en
espacio: métricas de distancia, búsqueda, optimización, etc.
SISTEMAS OPERATIVOS Ingeniería de Sistemas
Universidad Nacional de Trujillo | 19
4 MULTIPROCESAMIENTO SIMETRICO
A medida que aumenta la siempre creciente demanda de mayores prestaciones, y
conforme el coste de los microprocesadores se reduce, los fabricantes han introducido los
sistemas SMP. El término SMP, sistema multiprocesador simétrico, se refiere a la arquitectura
hardware del sistema multiprocesador y al comportamiento del sistema operativo que utiliza
dicha arquitectura. Un SMP es un computador con las siguientes características:
1) Tiene dos o más procesadores similares de capacidades comparables.
2) Los procesadores comparten la memoria principal y la E/S, y están interconectados
mediante un bus u otro tipo de sistema de interconexión, de manera que el tiempo de
acceso a memoria es aproximadamente el mismo para todos los procesadores.
3) Todos los procesadores comparten los dispositivos de E/S, pero pueden hacerlo bien a
través de los mismos canales, o bien a través de otros caminos de acceso al mismo
dispositivo.
4) Todos los procesadores pueden desempeñar las mismas funciones (de ahí el término
simétrico).
5) El sistema está controlado por un sistema operativo que posibilita la interacción entre
los procesadores y sus programas.
La última de las características anteriores apunta a una de las diferencias de los SMP
respecto a los sistemas multiprocesadores débilmente acoplados, como son los ‘clusters’. En
estos, la unidad de interacción es normalmente un mensaje o un fichero completo. Sin embargo,
en un SMP, la interacción se puede producir a través de elementos de datos individuales, y puede
existir un elevado nivel de cooperación entre procesadores. De ahí que esten clasificados como
sistemas fuertemente acoplados.
A continuación se relacionan las ventajas potenciales de un SMP respecto a una
arquitectura monoprocesador:
Prestaciones: Si el trabajo a realizar por un computador puede organizarse de
forma que diferentes partes puedan realizarse en paralelo, concurrentemente,
entonces un sistema con varios procesadores proporcionará mejores prestaciones
que uno con un sólo procesador del mismo tipo.
Disponibilidad: Como en un SMP todos los procesadores pueden realizar las
mismas funciones, un fallo en un procesador no hará que el computador se detenga.
SISTEMAS OPERATIVOS Ingeniería de Sistemas
Universidad Nacional de Trujillo | 20
Crecimiento incremental: Se pueden aumentar las prestaciones del sistema
añadiendo más procesadores.
Escalado: Los fabricantes pueden ofrecer una gama de productos con diferentes
precios y prestaciones, en función del número de procesadores que configuran el
sistema.
Sin embargo, los beneficios anteriores no son beneficios garantizados, sino potenciales.
Por su parte, el sistema operativo debe proporcionar herramientas y funciones que permitan
explotar el paralelismo del programa y proyectarlo sobre los diferentes procesadores de un SMP.
Los sistemas SMP poseen una característica muy atractiva, y es que la existencia de
varios procesadores es transparente al usuario. Es el sistema operativo el que posibilita la
sincronización entre los procesadores, y la planificación de los hilos o de los procesos, puesto
que es el responsable de asignarlos a los distintos procesadores.
4.1 VENTAJAS
1. Este tipo de sistemas tienden a ser más eficientes porque las tareas tanto del sistema
operativo como de los usuarios pueden ser distribuidas en forma balanceada a todos
los procesadores.
2. El tiempo de inactividad de un procesador mientras otro está sobre trabajando es
mínimo.
3. Si un procesador falla, es posible que sus tareas sean repartidas entre los demás y
no es necesario que todo el sistema sea parado o que falle el sistema.
4. La portabilidad del sistema es mayor debido a que no sigue la arquitectura de
master/Slave.
5. Los sistemas SMP permiten que cualquier procesador trabaje en cualquier tarea sin
importar su localización en memoria.
6. La memoria globalmente compartida también vuelve fácil la sincronización de los
datos.
7. Muchos procesos pueden ejecutarse simultáneamente (N procesos si hay N CPU)
sin que haya deterioro del desempeño.
8. Permite compartir dinámicamente trabajos y recursos entre los distintos
procesadores, y puede reducir la varianza entre los sistemas.
SISTEMAS OPERATIVOS Ingeniería de Sistemas
Universidad Nacional de Trujillo | 21
4.2 DESVENTAJAS
1. Conforme se añaden procesadores, el tráfico en el bus de memoria se satura.
2. Al manejarse ocho o más procesadores, el cuello de botella se vuelve crítico,
inclusive para los mejores diseños, por lo que SMP es considerada
una tecnología poco escalable.
3. Los sistemas operativos que soportan este tipo de multiprocesamiento son más
difíciles de diseñar.
4. Dado que las CPU son independientes, una podría estar ociosa mientras otra está
sobrecargada, con la consiguiente ineficiencia.
SISTEMAS OPERATIVOS Ingeniería de Sistemas
Universidad Nacional de Trujillo | 22
BIBLIOGRAFIA Procesos y Administración del procesador:
http://exa.unne.edu.ar/informatica/SO/SO2.htm (Consultado el 22 de julio)
Sistemas Operativos de Multiprocesador:
http://somultiprocesador-y-
distribuidos.wikispaces.com/Sistemas+Operativos+de+Multiprocesador (Consultado el 22
de julio)
PDF: Sistemas Operativos. Autor: Mg. David Luis la Red Martínez.
http://sistop.gwolf.org/biblio/Sistemas_Operativos_-_Luis_La_Red_Martinez.pdf
(Consultado el 22 de julio)
Recuperación de Errores
http://www.giaa.inf.uc3m.es/docencia/II/PL1/PL1erroresSintactico.pdf (Consultado el 22
de julio)
http://slideplayer.es/slide/3922895/ (Consultado el 22 de julio)
Multiprocesamiento Simétrico
http://ocw.uv.es/ingenieria-y-arquitectura/sistemas-electronicos-para-el-tratamiento-de-la-
informacion/seti_materiales/seti10_ocw.pdf (Consultado el 19 de julio)
https://eciencia.urjc.es/bitstream/handle/10115/5245/tesis_pablo_huerta.pdf?sequence=1
(Consultado el 19 de julio)
top related