3 unidad so2

19
3.1. CONCEPTOS BÁSICOS DE PROCESOS Y PROCESADORES * Un proceso es un concepto manejado por el sistema operativo que consiste en el conjunto formado por: Las instrucciones de un programa destinadas a ser ejecutadas por el microprocesador. Su estado de ejecución en un momento dado, esto es, los valores de los registros de la CPU para dicho programa. Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos. * Un microprocesador es un circuito electrónico integrado que actúa como unidad central de proceso de un ordenador, proporcionando el control de las operaciones de cálculo. Están formados por componentes extremadamente pequeños formados en una única pieza plana de poco espesor. Su componente principal son los semiconductores, principalmente silicio y germanio. Pueden llegar a tener varias decenas de millones transistores, además de otros componentes electrónicos como diodos, resistencias, condensadores todo ello en varios milímetros cuadrados. 3.2. MÉTODOS DE DISTRIBUCIÓN DE CARGA (HILOS, TAREAS, PROCESOS). 3.3. MODELOS DE PROCESADORES: DE ESTACIÓN DE TRABAJO, DE PILA DE PROCESADORES, HIBRIDO En un sistema distribuido, con varios procesadores, un aspecto fundamental del diseño es cómo se utiliza. Los procesadores distribuidos se pueden organizar de varias formas

Transcript of 3 unidad so2

Page 1: 3 unidad so2

3.1. CONCEPTOS BÁSICOS DE PROCESOS Y PROCESADORES

  * Un proceso es un concepto manejado por el sistema operativo que consiste en el

conjunto formado por: Las instrucciones de un programa destinadas a ser ejecutadas

por el microprocesador. Su estado de ejecución en un momento dado, esto es, los

valores de los registros de la CPU para dicho programa. Su memoria de trabajo, es

decir, la memoria que ha reservado y sus contenidos.

  * Un microprocesador es un circuito electrónico integrado que actúa como unidad

central de proceso de un ordenador, proporcionando el control de las operaciones de

cálculo. Están formados por componentes extremadamente pequeños formados en

una única pieza plana de poco espesor. Su componente principal son los

semiconductores, principalmente silicio y germanio. Pueden llegar a tener varias

decenas de millones transistores, además de otros componentes electrónicos como

diodos, resistencias, condensadores todo ello en varios milímetros cuadrados.

3.2. MÉTODOS DE DISTRIBUCIÓN DE CARGA (HILOS, TAREAS,

PROCESOS).

3.3. MODELOS DE PROCESADORES: DE ESTACIÓN DE TRABAJO,

DE PILA DE PROCESADORES, HIBRIDO

En un sistema distribuido, con varios procesadores, un aspecto fundamental del diseño

es cómo se utiliza.

Los procesadores distribuidos se pueden organizar de varias formas

Modelo de estación de trabajo. El sistema consta de estaciones de trabajo (PC)

dispersas conectadas entre sí mediante una red de área local (LAN).

Pueden contar o no con disco rígido en cada una de ellas.

Los usuarios tienen:

-Una cantidad fija de poder de cómputo exclusiva.

-Un alto grado de autonomía para asignar los recursos de su estación de

trabajo.

Uso de los discos en las estaciones de trabajo

Page 2: 3 unidad so2

Sin disco:

-Bajo costo, fácil mantenimiento del hardware y del software, simetría y

flexibilidad.

-Gran uso de la red, los servidores de archivos se pueden convertir en cuellos

de botella.

Disco para paginación y archivos de tipo borrador:

-Reduce la carga de la red respecto del caso anterior.

-Alto costo debido al gran número de discos necesarios.

Disco para paginación, archivos de tipo borrador y archivos binarios

(ejecutables):

-Reduce aún más la carga sobre la red.

-Alto costo y complejidad adicional para actualizar los binarios.

Disco para paginación, borrador, binarios y ocultamiento de archivos:

-Reduce aún más la carga de red y de los servidores de archivos.

-Alto costo.

-Problemas de consistencia del caché.

Sistema local de archivos completo:

-Escasa carga en la red.

-Elimina la necesidad de los servidores de archivos.

-Pérdida de transparencia.

Modelo de la pila de procesadores. Se dispone de un conjunto de cpu que se

pueden asignar dinámicamente a los usuarios según la demanda.

-Los usuarios no disponen de estaciones de trabajo sino de terminales gráficas

de alto rendimiento.

-No existe el concepto de propiedad de los procesadores, los que pertenecen a

todos y se utilizan compartidamente.

-El principal argumento para la centralización del poder de cómputo como una

pila de procesadores proviene de la teoría de colas:

-Llamamos “l” a la tasa de entradas totales de solicitudes por segundo de todos

Page 3: 3 unidad so2

los usuarios combinados.

-Llamamos “m” a la tasa de procesamiento de solicitudes por parte del servidor.

Para una operación estable debe darse que “m > l”:

-Se pueden permitir pequeños lapsos de tiempo en los que la tasa de entrada

exceda a la de servicio.

-Llamamos “T” al promedio de tiempo entre la emisión de una solicitud y la

obtención de una respuesta completa:

T = 1 / ( m - l ).

Cuando “ l ” tiende a “0”, “T” no tiende a “0”.

Supongamos que tenemos “n” multiprocesadores personales, cada uno con

cierto número de cpu y con su propio sistema de colas con tasas “ l ” y “ m ” y

tiempo “T”:

Si reunimos todas las cpu y formamos una sola pila de procesadores tendremos

un solo sistema de colas en vez de “n” colas ejecutándose en paralelo.

La tasa de entrada será “n l”, la tasa de servicio será “n m” y el tiempo

promedio de respuesta será:

T1 = 1 / (n m - n l) = 1 / n ( m - l) = T / n.

Modelo híbrido. Consta de estaciones de trabajo y una pila de procesadores. El

sistema operativo permtemas de un hilo por proceso. El soporte de lenguaje de

programacion utiliza un hilo del nucleo para implementar un grupo de hilos de

usuario. Proporciona flexibilidad y un maximo rendimiento potencial al

programador de la aplicacion.

3.4. ASIGNACIÓN DE PROCESADORES: MODELO Y ALGORITMOS

CON SUS ASPECTOS DE DISEÑO E IMPLANTACIÓN

Aspectos del Diseño de Algoritmos de Asignación de Procesadores

Los principales aspectos son los siguientes:

Page 4: 3 unidad so2

Algoritmos deterministas vs. Heurísticos.

Algoritmos centralizados vs. Distribuidos.

Algoritmos óptimos vs. Subóptimos.

Algoritmos locales vs. Globales.

Algoritmos iniciados por el emisor vs. Iniciados por el receptor.

Los algoritmos deterministas son adecuados cuando se sabe anticipadamente todo

acerca del comportamiento de los procesos, pero esto generalmente no se da, aunque

puede haber en ciertos casos aproximaciones estadísticas. Los algoritmos heurísticos

son adecuados cuando la carga es impredecible.

Los diseños centralizados permiten reunir toda la información en un lugar y tomar una

mejor decisión; la desventaja es que la máquina central se puede sobrecargar y se

pierde robustez ante su posible falla.

Generalmente los algoritmos óptimos consumen más recursos que los subóptimos,

además, en la mayoría de los sistemas reales se buscan soluciones subóptimas,

heurísticas y distribuidas.

Cuando se va a crear un proceso se debe decidir si se ejecutará en la máquina que lo

genera o en otra (política de transferencia): La decisión se puede tomar “solo con

información local” o “con información global”.

Los algoritmos locales son sencillos pero no óptimos.

Los algoritmos globales son mejores pero consumen muchos recursos.

Cuando una máquina se deshace de un proceso la política de localización debe decidir

dónde enviarlo:

Necesita información de la carga en todas partes, obteniéndola de: Un emisor

sobrecargado que busca una máquina inactiva.

Un receptor desocupado que busca trabajo.

Page 5: 3 unidad so2

‘’‘Aspectos de la Implantación de Algoritmos de Asignación de Procesadores’‘’

Casi todos los algoritmos suponen que las máquinas conocen su propia carga y que

pueden informar su estado: La medición de la carga no es tan sencilla.

Un método consiste en contar el número de procesos (hay que considerar los procesos

latentes no activos). Otro método consiste en contar solo los procesos en ejecución o

listos.

También se puede medir la fracción de tiempo que la CPU está ocupada.

Otro aspecto importante es el costo excesivo en consumo de recursos para recolectar

medidas y desplazar procesos, ya que se debería considerar el tiempo de CPU, el uso

de memoria y el ancho de banda de la red utilizada por el algoritmo para asignación de

procesadores.

Se debe considerar la complejidad del software en cuestión y sus implicancias para el

desempeño, la correcta y la robustez del sistema.

Si el uso de un algoritmo sencillo proporciona casi la misma ganancia que uno más caro

y más complejo, generalmente será mejor utilizar el más sencillo.

Se debe otorgar gran importancia a la estabilidad del sistema:

Las máquinas ejecutan sus algoritmos en forma asíncrona por lo que el sistema nunca

se equilibra.

La mayoría de los algoritmos que intercambian información:

Son correctos luego de intercambiar la información y de que todo se ha registrado.

Son poco confiables mientras las tablas continúan su actualización, es decir que se

presentan situaciones de no equilibrio.

Modelos de Asignación

Generalmente se utilizan las siguientes hipótesis:

Page 6: 3 unidad so2

Todas las máquinas son idénticas (o al menos compatibles en el código);

difieren a lo sumo en la velocidad.

Cada procesador se puede comunicar con los demás.

Las estrategias de asignación de procesadores se dividen en:

No migratorias:

Una vez colocado un proceso en una máquina permanece ahí hasta que

termina.

Migratorias:

Un proceso se puede trasladar aunque haya iniciado su ejecución.

Permiten un mejor balance de la carga pero son más complejas.

Los algoritmos de asignación intentan optimizar algo:

Uso de las CPU:

Maximizar el número de ciclos de CPU que se ejecutan para trabajos de los

usuarios.

Minimizar el tiempo de inactividad de las CPU.

Tiempo promedio de respuesta:

Minimizar no los tiempos individuales de respuesta sino los tiempos promedio

de respuesta.

Tasa de respuesta:

Minimizar la tasa de respuesta, que es el tiempo necesario para ejecutar un

proceso en cierta máquina dividido por el tiempo que tardaría en cierto

procesador de referencia.

Page 7: 3 unidad so2

3.5. COPLANIFICACIÓN

El concepto de coplanificación:

Toma en cuenta los patrones de comunicación entre los procesos durante la

planificación.

Debe garantizar que todos los miembros del grupo se ejecuten al mismo

tiempo.

Se emplea una matriz conceptual donde:

Las filas son espacios de tiempo.

Las columnas son las tablas de procesos de los procesadores.

Cada procesador debe utilizar un algoritmo de planificación round robín:

Todos los procesadores ejecutan el proceso en el espacio “0” durante un cierto

periodo fijo.

Todos los procesadores ejecutan el proceso en el espacio “1” durante un cierto

periodo fijo, etc.

Se deben mantener sincronizados los intervalos de tiempo.

Todos los miembros de un grupo se deben colocar en el mismo número de

espacio de tiempo pero en procesadores distintos.

3.6. TOLERANCIA A FALLOS: NIVEL PROCESO, NIVEL

ALMACENAMIENTO

Tolerancias a fallos en informática (en inglés failover, suele confundírse con el

término concurrencia) se determina a la capacidad de un sistema de almacenamiento de

Page 8: 3 unidad so2

acceder a información aún en caso de producirse algún fallo. Esta falla puede deberse a daños

físicos (mal funcionamiento) en uno o más componentes de hardware lo que produce la pérdida

de información almacenada. La tolerancia a fallos requiere para su implementación que el

sistema de almacenamiento guarde la misma información en más de un componente de

hardware o en una máquina o dispositivo externos a modo de respaldo. De esta forma, si se

produce alguna falla con una consecuente pérdida de datos, el sistema debe ser capaz de

acceder a toda la información recuperando los datos faltantes desde algún respaldo disponible.

Por lo general, el término tolerancia a fallos está asociado al almacenamiento

en RAID (Redundant Array of Independent Disks). Los RAID (a excepción de RAID 0) utilizan la

técnica Mirroring (en espejo) que permite la escritura simultánea de los datos en más de un

disco del array.

Los sistemas de almacenamiento con tolerancia a fallos son vitales en ambientes donde se

trabaje con información crítica, como el caso de los bancos, entidades gubernamentales,

algunas empresas, etc. El nivel de tolerancia a fallos dependerá de la técnica de

almacenamiento utilizada y de la cantidad de veces que la información está duplicada, sin

embargo, la tolerancia nunca es del 100% puesto que si fallan todos los "mirrors" disponibles,

incluyendo el origen, los datos quedan incompletos por lo tanto la información se leerá corrupta.

3.7. ESQUEMAS DE SEGURIDAD EN SISTEMAS DISTRIBUIDOS

Es la capacidad del sistema para proteger datos, servicios y recursos de usuarios no

autorizados. El fin de la seguridad es garantizar la protección o estar libre de todo

peligro y/o daño, y que en cierta manera es infalible. Como esta característica,

particularizando para el caso de sistemas operativos o redes de computadores, es muy

difícil de conseguir (según la mayoría de expertos, imposible), se suaviza la definición

de seguridad y se pasa a hablar de fiabilidad (probabilidad de que un sistema se

comporte tal y como se espera de el) más que de seguridad; por tanto, se habla de

sistemas fiables en lugar de hacerlo de sistemas seguros. A grandes rasgos se entiende

que mantener un sistema seguro (confiable) consiste básicamente en garantizar tres

aspectos: confidencialidad, integridad y disponibilidad. Algunos estudios integran la

seguridad dentro de una propiedad más general de los sistemas, la confiabilidad,

entendida como el nivel de calidad del servicio ofrecido. Consideran la disponibilidad

como un aspecto al mismo nivel que la seguridad y no como parte de ella, por lo que

Page 9: 3 unidad so2

dividen esta última en sólo las dos facetas restantes, confidencialidad e integridad. En

este trabajo no seguiremos esa corriente por considerarla minoritaria.

La confidencialidad: Nos dice que los objetos de un sistema han de ser

accedidos únicamente por elementos autorizados a ello, y que esos elementos

autorizados no van a convertir esa información en disponible para otras

entidades.

La integridad: Significa que los objetos sólo pueden ser modificados por

elementos autorizados, y de una manera controlada.

La disponibilidad: Indica que los objetos del sistema tienen que permanecer

accesibles a elementos autorizados; es el contrario de la negación de servicio.

3.8. SISTEMAS OPERATIVOS DISTRIBUIDOS EN TIEMPO REAL

3.9. BALANCEO DE CARGA EN SISTEMAS DISTRIBUIDOS

SISTEMAS DISTRIBUIDOS

1. Equilibrio o balanceo de cargas y compartición de recursos en Sistemas Distribuidos

Un sistema distribuido se define como una colección de computadores autónomos

conectados por una red, el cual consta de un software distribuido adecuado para que

el sistema sea visto por los usuarios como una única entidad. Además de realizar la

importante función de la comunicación, los sistemas distribuidos, se encuentra la

forma en que los procesos cooperan y se sincronizan entre sí. 

Equilibrio de cargas

Un proceso es un programa en ejecución, es decir, es la actividad que resulta de la

ejecución de un algoritmo, con sus datos, sobre un procesador. En una computadora,

los procesos no se suelen ejecutar de forma aislada, sino que acostumbran a

ejecutarse con otros de forma solapada en el tiempo, ya que compartiendo

adecuadamente los recursos físicos se puede obtener una aceleración global de la

velocidad de cálculo del sistema. De esta manera, puede decirse que dos procesos

son concurrentes si su ejecución se solapa en el tiempo. Como resultado en la

ejecución concurrente de procesos, es necesario realizar el “Equilibrio de cargas”.

Page 10: 3 unidad so2

El equilibrio o balanceo de cargas es el esquema aplicado al procesamiento distribuido

y/o al sistema de comunicación con el fin de que un dispositivo no se sature. Es

especialmente importante en redes donde es muy difícil predecir el número de

peticiones que se van a cursar a un servidor. Por ejemplo, los sitios web muy

demandados suelen emplear dos o más servidores bajo un esquema de balanceo de

carga. Los sistemas distribuidos proveen este tipo de equilibrio a través de varios

mecanismos tales como el agrupamiento y la migración de procesos. El agrupamiento

combina muchas computadoras para mejorar el tiempo de respuesta global, entre las

cuáles se distribuyen los procesos. Si un servidor comienza a saturarse las peticiones

son redireccionadas a otro(s). El agrupamiento generalmente emplea compartición de

carga y migración de procesos. Existen varios algoritmos para llevar a cabo el proceso

de equilibrio de cargas:

• Balanceo centralizado: un nodo ejecuta el algoritmo y mantiene el estado global del

sistema. Este método no es extensible a problemas más grandes ya que el nodo

encargado del balanceo se convierte en un cuello de botella.

• Balanceo completamente distribuido: cada procesador mantiene su propia visión del

sistema intercambiando información con sus vecinos y así hacer cambios locales. 

• Balanceo semi-distribuido: divide los procesadores en regiones, cada una con un

algoritmo centralizado local. Otro algoritmo balancea la carga entre las regiones.

Compartición de recursos

Los recursos abarcan el abanico de entidades que pueden compartirse en un sistema

distribuido. El cual puede ir desde componentes de hardware como discos e

impresoras hasta elementos de software como archivos, ventanas, bases de datos y

otros objetos de datos.

Los recursos en un sistema distribuido están físicamente encapsulados en una de las

computadoras y sólo pueden ser accedidos por otras computadoras mediante las

comunicaciones (la red). Para que la compartición de recursos sea efectiva, ésta debe

ser manejada por un programa que ofrezca un interfaz de comunicación permitiendo

que el recurso sea accedido, manipulado y actualizado de una manera fiable y

consistente. Surge el término genérico de gestor de recursos.

Un gestor de recursos es un modulo de software que maneja un conjunto de recursos

de un tipo en particular. Cada tipo de recurso requiere algunas políticas y métodos

específicos junto con requisitos comunes para todos ellos. Éstos incluyen la provisión

de un esquema de nombres para cada clase de recurso, permitir que los recursos

individuales sean accedidos desde cualquier localización; la traslación de nombre de

recurso a direcciones de comunicación y la coordinación de los accesos concurrentes

que cambian el estado de los recursos compartidos para mantener la consistencia.

Page 11: 3 unidad so2

Un sistema distribuido puede verse como un conjunto de gestores de recursos y un

conjunto de programas que usan los recursos. Los usuarios de los recursos se

comunican con los gestores de los recursos para acceder a los recursos compartidos

del sistema. Dos ejemplos de sistemas distribuidos serían el modelo cliente-servidor y

el modelo basado en objetos.

2. Crecimiento integral dentro de las organizaciones orientado en un ambiente

distribuido

El uso de los sistemas distribuidos dentro de las organizaciones, ha experimentado un

crecimiento acelerado en los últimos años, como resultado del desarrollo tecnológico.

La misma dinámica actual ha obligado a las organizaciones a contar con sistemas

cada vez más rápidos y eficientes que las ubiquen en posiciones competitivas.

Más recientemente, la disponibilidad de computadoras personales de alta capacidad,

estaciones de trabajo y servidores, ha resultado en un mayor desplazamiento hacia los

sistemas distribuidos dejando de lado cada vez más, los sistemas centralizados

multiusuario. Esta tendencia se ha acelerado por el desarrollo de software para

sistemas distribuidos, diseñado para soportar el desarrollo de aplicaciones distribuidas.

Este software permite a las computadoras coordinar sus actividades y compartir los

recursos del sistema - hardware, software y datos.

Los sistemas distribuidos son implementados en diversas plataformas hardware,

desde unas pocas estaciones de trabajo conectadas por una red de área local, hasta

Internet, una colección de redes de área local y de área extensa interconectadas, que

enlazan millones de computadoras.

Por otra parte, las aplicaciones de los sistemas distribuidos varían desde la provisión

de capacidad de computo a grupos de usuarios, hasta sistemas bancarios,

comunicaciones multimedia y abarcan prácticamente todas las aplicaciones

comerciales y técnicas de las computadoras. Los requisitos de dichas aplicaciones

incluyen un alto nivel de fiabilidad, seguridad contra interferencias externas y

privacidad de la información que el sistema mantiene.

Se deben proveer accesos concurrentes a bases de datos por parte de muchos

usuarios, garantizar tiempos de respuesta, proveer puntos de acceso al servicio que

están distribuidos geográficamente, potencial para el crecimiento del sistema para

acomodar la expansión del negocio y un marco para la integración de sistema usados

por diferentes compañías y organizaciones de usuarios

3. Servidor DNS

Un servidor DNS (Domain Name System) es un sistema de nombres que permite

traducir de nombre de dominio a dirección IP y vice-versa. Se utiliza para proveer a las

computadoras de los usuarios (clientes) un nombre equivalente a las direcciones IP. El

Page 12: 3 unidad so2

uso de este servidor es transparente para los usuarios cuando éste está bien

configurado.

El sistema de nombres de dominios en Internet es un sistema distribuido, jerárquico,

replicado y tolerante a fallas. El punto central se basa en un árbol que define la

jerarquía entre los dominios y los sub-dominios. En un nombre de dominio, la jerarquía

se lee de derecha a izquierda. Por ejemplo, en dcc.uchile.cl, el dominio más alto es cl.

Para que exista una raíz del árbol, se puede ver como si existiera un punto al final del

nombre: dcc.uchile.cl., y todos los dominios están bajo esa raíz (también llamada

``punto"). 

Cada componente del dominio (y también la raíz) tiene un servidor primario y varios

servidores secundarios. Todos estos servidores tienen la misma autoridad para

responder por ese dominio, pero el primario es el único con derecho para hacer

modificaciones en él. Por ello, el primario tiene la copia maestra y los secundarios

copian la información desde él. 

Tipos de servidores DNS 

• Primarios: Guardan los datos de un espacio de nombres en sus archivos

• Secundarios: Obtienen los datos de los servidores primarios a través de una

transferencia de zona.

• Locales o Caché: Funcionan con el mismo software, pero no contienen la base de

datos para la resolución de nombres. Cuando se les realiza una consulta, estos a su

vez consultan a los servidores secundarios, almacenando la respuesta en su base de

datos para agilizar la repetición de estas peticiones en el futuro.

4. Active Directory Service

Es conocido como uno de los programas informáticos desarrollado por Microsoft,

Active Directory (también conocido como NT Directory Service) ofrece varios servicios

de autenticación, DNS y servicios de directorio que son importantes para la gestión de

datos y seguridad de datos. Este software se introdujo en 1999 y se inició con el

programa Windows 2000 Server. El programa es una agrupación lógica de los

sistemas informáticos y los usuarios de computadoras dentro de un único dominio, que

es controlada por los controladores de dominio. 

La estructura de este servicio de directorio tiene tres categorías:, los usuarios,

servicios y recursos. Los objetos en el directorio se clasifican en estos niveles. Los

objetos tienen distintos conjuntos de atributos que fueron identificados por el directorio.

Los atributos son importantes para el adecuado almacenamiento de los objetos. 

Niveles 

Active Directory tiene tres niveles, el bosque, los árboles y los dominios. El bosque es

el más alto nivel, que representa a las reglas y los atributos de cada objeto en el

Page 13: 3 unidad so2

directorio. A continuación el bosque es el árbol, que se compone de varios dominios

que están conectados en una jerarquía de confianza transitiva. Al lado del árbol son

los dominios, que se clasifican en las estructuras de nombre. 

En los dominios son los objetos que se clasifican en varios contenedores conocidos

como unidades organizativas. Estas unidades son muy importantes para los

administradores a utilizar el software de computadora fácilmente. Para ayudar a los

administradores en el mantenimiento de redes informáticas, el directorio también

cuenta con sitios, que son muy útiles en el control de tráfico de red. 

Para evitar los problemas relativos a la seguridad de datos, la información almacenada

en Active Directory se asegura en varios controladores de dominio. Este programa de

computadora se integra con los servidores diferentes, como TCP / IP y DNS.