unidad 1 - cursos rubisoll » otro sitio más de … · web view1.1 fundamentos de sistemas...

18
Administración de Servidores II TIC ___________________________________________________________ ___________ Unidad 1 1.1 Fundamentos de Sistemas Operativos Existen diversos programas que se manejan en una computadora. De todos los programas y aplicaciones comerciales que se conocen hoy en día, los más importantes son los llamados programas del sistema, que son programas que controlan el hardware de manera directa o indirecta. Entre ellos existen: editores, compiladores, traductores, ligadores, etc,. Sin embargo el más importante de todos es el Sistema Operativo. Definición (de Sistema Operativo): Software de Sistema que se encarga de la gestión de recursos y su administración tanto de software como de hardware, ocultando los detalles al usuario, permitiéndole una interacción más cómoda con los mismos. Así existen dos formas de visualizar a los sistemas operativos: Top-Down (Arriba-Abajo): Como un software capaz de comunicarse con los recursos de hardware de la computadora sin mostrar los detalles al usuario. Bottom-Up (Abajo-Arriba): Visto como un software gestor de recursos de hardware y su control para que el usuario obtenga la información de forma rápida y correcta. Un sistema operativo tradicional se puede ver como un modelo en capas superpuestas(capas de cebolla) desde la mas interna, que esta pegada con el hardware de la computadora, y la mas externa que esta en interacción directa con el usuario. Estos componentes son:

Upload: phamdan

Post on 21-Oct-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

Administración de Servidores II TIC______________________________________________________________________

Unidad 1

1.1 Fundamentos de Sistemas Operativos

Existen diversos programas que se manejan en una computadora. De todos los programas y aplicaciones comerciales que se conocen hoy en día, los más importantes son los llamados programas del sistema, que son programas que controlan el hardware de manera directa o indirecta.Entre ellos existen: editores, compiladores, traductores, ligadores, etc,. Sin embargo el más importante de todos es el Sistema Operativo.

Definición (de Sistema Operativo): Software de Sistema que se encarga de la gestión de recursos y su administración tanto de software como de hardware, ocultando los detalles al usuario, permitiéndole una interacción más cómoda con los mismos.

Así existen dos formas de visualizar a los sistemas operativos:

Top-Down (Arriba-Abajo): Como un software capaz de comunicarse con los recursos de hardware de la computadora sin mostrar los detalles al usuario.

Bottom-Up (Abajo-Arriba): Visto como un software gestor de recursos de hardware y su control para que el usuario obtenga la información de forma rápida y correcta.

Un sistema operativo tradicional se puede ver como un modelo en capas superpuestas(capas de cebolla) desde la mas interna, que esta pegada con el hardware de la computadora, y la mas externa que esta en interacción directa con el usuario.

Estos componentes son:

Kernel o Núcleo. Es el programa medular que ejecuta programas y gestiona dispositivos de hardware tales como los discos y las impresoras.

Shell. Proporciona una interfaz para el usuario. Recibe ordenes del usuario y las envía al núcleo para ser ejecutadas.

Sistema de archivos. Organiza la forma en que se almacenan los archivos en dispositivos de almacenamiento tales como los discos.

Aplicaciones Son programas especializados, tales como editores, compiladores y programas de comunicaciones, que realizan operaciones de computación estándar. Una de las aplicaciones más utilizadas es la interfaz gráfica que facilita enormemente la interacción humano computadora.

Administración de Servidores II TIC______________________________________________________________________

Según Tanenbaum existen nueve categorías o clasificaciones de sistemas operativos, aún cuando no se trate de una clasificación generalizada o universalmente aceptada. Sin embargo se puede pensar que alrededor de las últimas cinco décadas el propósito con el que se han construido sistemas operativos ha variado vertiginosamente. Por lo anterior se puede clasificar a los sistemas operativos de acuerdo a la problemática que se resuelve con dichos sistemas, como sigue:

Mainframe Servidores Multiprocesadores Computadoras Personales Computadoras de Bolsillo Integrados

Sistemas Operativos de Mainframe

Por definición un mainframe es una computadora del tamaño de un cuarto completo y que tienen una gran capacidad de almacenamiento. Se utilizan como servidores de alto rendimiento.Luego los sistemas operativos que se usan en los mainframes están orientados hacia el procesamiento de varios trabajos a la vez y que requieren una gran cantidad de operaciones E/S.Entre los servicios que ofrecen están:

Procesamiento por LotesTransacciones Tiempo Compartido.

Ejemplos de sistemas para mainframes se encuentran: OS/360 y 390 de IBM, sin embargo han sido reemplazados gradualmente por variantes de UNIX como Linux.

Sistemas Operativos para Servidores

Una computadora personal con altas prestaciones, estaciones de trabajo o mainframes se puede considerar como un servidor. Un sistema operativo que se ejecuta bajo este esquema de hardware, debe atender las siguientes necesidades:

Multiusuario Sharing (software y hardware) Servicios Remotos: Sistemas de Archivos, Impresión, Web, etc.

Principalmente se utilizan en la provisión de servicios hacia clientes específicos y en almacenamiento a gran escala.Ejemplos de sistemas operativos para servidores son: Solaris, FreeBSD, Linux, y Windows Server 200x.

Administración de Servidores II TIC______________________________________________________________________

Sistemas Operativos Multiprocesadores

Debido al avance de la tecnología se han construido procesadores cada vez más sofisticados, sin embargo el avance tecnológico tiene limitantes sobre todo en el espacio y el rendimiento para colocar procesadores. Dado lo anterior es necesario reunir el poder de procesamiento de varios procesadores en un CPU a través de un solo sistema.Así existen dos necesidades subyacentes para que el sistema operativo funcione de forma adecuada:

Carga de Trabajo en cada procesador Tiempo de comunicación

Dependiendo del nivel de sincronización y del tamaño de lo que se comparta se logra un mejor desempeño, aún cuando estos parámetros de alguna manera se contravengan. A esta clase de sistemas se le denomina computadoras en paralelo, multi computadora ó multiprocesadores. Dado lo anterior es necesario implementar sistemas operativos que soporten los conceptos anteriores, para tal efecto se han diseñado recientemente procesadores multi núcleo que funcionan en computadora personales, entre otros dispositivos. En cuanto a la forma de implementar estas tecnologías para que funcionen en el hardware mencionado se cuenta con un bagaje de investigación suficiente, sin embargo el reto es hacer que las aplicaciones se ejecuten aprovechando el poder de cómputo. Es importante mencionar que muchos de esos sistemas se denominan como arquitecturas alternativas y merecen mayor atención en secciones posteriores.Como ejemplo de estos sistemas operativos están muchos sistemas operativos populares como Windows y Linux en varias versiones.

Sistemas Operativos de computadoras personales

El concepto de multiprogramación es muy importante en este tipo de sistemas, esto es, la capacidad de tener varios programas para ser ejecutados, en particular se realiza esto cuando se arranca el sistema. Existen muchísimas aplicaciones en este tipo de sistemas y son tan conocidos que no hay muchos detalles técnicos que merezcan relevancia, a tal grado que muchas personas de otras disciplinas creen que este es el único tipo de sistema que existe. Los más comunes son: FreeBSD, Windows Vista, Mac Os, etc.

Sistemas operativos en computadoras de bolsillo

Una computadora personal de tamaño bolsillo abarca un grupo de dispositivos que están bastante limitados con respecto al procesamiento, cantidad de memoria y disco duro, pero que son capaces de resolver las necesidades en cuanto a aplicaciones que los usuarios les piden.En muchas ocasiones poseen un sistema operativo que se ejecuta en modo protegido de 32 bits, por lo cual no es posible modificar ciertos parámetros de l sistema.

Administración de Servidores II TIC______________________________________________________________________

Un ejemplo de estos sistemas son las PDA (Personal Digital Assistant) la cual realiza una pequeña variedad de tareas, otro ejemplo son los teléfonos celulares, que realizan las mismas tareas pero no tienen la pantalla o teclado que los PDA. Un ejemplo tradicional de sistema operativo para estos dispositivos es Symbian OS y Palm OS.

Sistemas Operativos Integrados

Un sistema embedded, es decir, incrustados ó embebidos, operan en sistemas que no se consideran como una computadora tradicional, se trata de dispositivos electrónicos que en sí no tienen aplicaciones especializadas, más bien son aparatos que contienen un único chip ROM , que se puede considerar como una desventaja sin embargo tienen la ventaja de que existe la seguridad de que no se contaminará con software malicioso. Ejemplos de aparatos que utilizan estos sistemas son hornos de microondas, teléfonos celulares, reproductores de MP3, etc. Ejemplos de esto son los sistemas operativos como QNX y VxWords son bastante populares.

Sistemas Operativos de Nodos Sensores

Los sensores son un conjunto de dispositivos que realizan el registro de un evento que sucede en el mundo real. Para mejorar el desempeño de un sistema más complejo se pueden colocar en redes, donde cada nodo es una computadora en sí con CPU, RAM, ROM y un número variable de sensores ambientales.Por todo lo anterior el sistema operativo tiene que ser pequeño y simple, ya que los dispositivos tienen poca memoria RAM, y están en operación en dependencia directa de la cantidad de energía suministrada. Al igual que con lo sistema integrados, todos los programas son precargados en el hardware, lo cual simplifica el diseño de los mismos. Existen sensores para detectar incendios forestales, registro de asistencia, detectores de metales, y un largo etc.Un ejemplo de sistemas operativos es TinyOS que se emplea en los sensores.

Sistemas Operativos en Tiempo Real

El parámetro clave es el tiempo. Se cuenta con en un tiempo predeterminado un conjunto de dispositivos realizan una tarea y puede ser que se deba cumplir sin excepción en un período de tiempo, en ese caso se dice que el sistema es un sistema en tiempo real duro, en otro si se aceptan que muy ocasionalmente se pueda fallar a un tiempo predeterminado, se dice que es un sistema en tiempo real suave.Por lo anterior el diseño de los sistemas operativos en este caso se construyen como un conjunto de bibliotecas enlazas con programas de aplicación, acoplando de forma estrecha y no hay protección entre las partes del sistema.Un ejemplo de sistema operativo en Tiempo Real es e-Cos.

Administración de Servidores II TIC______________________________________________________________________

Sistemas Operativos de Tarjetas Inteligentes

Un dispositivo denominado tarjeta inteligente es una tarjeta del tamaño de una tarjeta de crédito con un chip CPU. Algunos funcionan a nivel físico como una USB, otras usan inducción para energizarse. Las funciones de este tipo de aparatos son bastante limitadas, aunque es variada en general.Actualmente Java a contribuido bastante al desarrollo de aplicaciones para dispositivos, debido a que basta con colocar el interprete de la Máquina Virtual de Java (JVM) en la ROM y los applets se descargan en la tarjeta y son interpretados por la JVM. En algunos casos existe el problema de la multiprogramación debido a que los applets pueden cargase de manera simultánea.

Arquitectura de Computadoras

Se puede definir una arquitectura de computadoras como los atributos de un sistema que son visibles para un programador, es decir aquellos atributos que impactan directamente en la ejecución lógica de un programa. El computador en si mismo tiene dos aspectos principales para poder entender su funcionamiento a nivel de programación:

Almacenamiento Procesamiento

Para solventar esta funcionalidad se tienen los siguientes componentes principales:

Unidad Central de Procesamiento (CPU) controla el funcionamiento del computador y lleva a cabo el procesamiento de información.

Memoria Principal: Almacena Datos E/S: Transfiere datos entre el computador y el entorno externo. Sistema de Interconexión: es un mecanismo que proporciona la

comunicación entre la CPU, la memoria principal y la E/S.

La CPU, como componente principal se compone de los siguientes partes:

Unidad de Control: Controla el Funcionamiento de la CPU. Unidad Aritmético Lógica: Funciones de procesamiento de

procesamiento de datos del computador. Registros: Proporcionan almacenamiento interno de la CPU. Interconexiones CPU: mecanismos para comunicación entre los otros

componentes.

Cada CPU (como ya se mencionó también llamado procesador) tiene subyacente un lenguaje ensamblador que se encarga de ejecutar e interpretar las instrucciones a más bajo nivel con números binarios almacenados en el computador. Hoy en día los ensambladores han cambiado de forma substancial orientándose a ser un lenguaje simbólico, cada línea representa una posición de memoria y consta de tres campos separados por espacios.

Administración de Servidores II TIC______________________________________________________________________

Arquitectura CISC

Un procesador CISC tiene un conjunto de instrucciones enriquecido con gran variedad e instrucciones e instrucciones complejas, en un esfuerzo de simplificar los compiladores y mejorara las prestaciones.La tendencia en CISC estuvo orientada a fabricar computadoras que ahorraran espacio de memoria, lo que como puede verse no ocurrió, los procesadores CISC tienen una gran cantidad de memoria.

Las principales características de un procesador CISC se enumeran a continuación:

Enorme cantidad de instrucciones, de 100 a 250 Especialización de las instrucciones que no se usan con mucha

frecuencia Muchos modos de direccionamiento de 5 a 20 modos diferentes Formato de instrucciones de extensión variables Instrucciones para la manipulación de la memoria

Los objetivos de utilizar estas características en la fabricación de los procesadores están enfocados a las siguientes funcionalidades:

Realizar un control micro programado de las instrucciones Facilitar el uso de software de programación, en especial compiladores Disminuir el costo total del software y del sistema en general “Responsabilizar” software del paralelismo que se quiera lograr Diseñar ALU’s eficientes para ejecutar las instrucciones matemáticas

Como se puede apreciar una arquitectura del tipo CISC está orientada más que todo al software. El producir esta clase de tecnología es bastante caro en términos de hardware y se considera que aun cuando el costo de la memoria RAM ha disminuido considerablemente se necesita una gran cantidad de esta por las operaciones de carga, almacenamiento y control. En sí es bastante popular el fabricar procesadores de propósito general con esta arquitectura, como ejemplos:

Motorola Serie 68000 Intel Inside x86, Pentium Zilog Z80

Arquitectura RISC

Una arquitectura RISC (Reduced Instruction Set Computer: Computadora de Conjunto Reducido de Instrucciones), tiene características comunes a todos los procesadores que están agrupados bajo esta arquitectura que son:

Administración de Servidores II TIC______________________________________________________________________

Relativamente pocas instrucciones Relativamente pocos modos de direccionamiento El acceso a memoria limitado a instrucciones de carga y

almacenamiento Todas las operaciones realizadas dentro de los registros de la CPU Formatos de instrucciones decodificados con facilidad y de longitud fija Ejecución del ciclo de instrucciones única Control por circuitería en lugar de micro programado

Se considera que los objetivos al tener estas características son:

Realizar operaciones directamente en los registros Facilidad en la decodificación de las instrucciones Rapidez en el control y la capacidad de procesamiento Se ejecuta una instrucción por ciclo, gracias que se realiza

paralelamente operaciones de recuperación, decodificación y ejecución.

Entre otras las características que se derivan de las funcionalidades y de las características de RISC, pero que no son exclusivas de esta arquitectura son las siguientes:

Gran cantidad de registros en el procesador Uso de ventanas de registros traslapados para acelerar la llamada y el

retorno de procedimientos Paralelismo de las instrucciones eficiente Compiladores soportados para la traducción eficiente de programas en

lenguaje de alto nivel a lenguaje máquina.

Una ventaja adicional a lo ya expuesto se refiere a la cantidad de memoria que los procesadores RISC son capaces de ahorrar debido a que no utilizan tanta memoria para cargar o para almacenar datos como en las arquitecturas CISC.Ejemplo de procesadores fabricados bajo esta arquitectura se encuentran:

Power PC SPARC DEC Alpha MIPS

Arquitecturas Alternativas de Sistemas

Sistemas operativos en Red

En general la evolución de los sistemas operativos ha sido rápida y decida debido a la participación de muchas empresas de software, universidades, etc. A pesar de lo que se describió en la sección anterior la evolución de las comunicaciones ha jugado un papel preponderante desde la década de los 80 con el crecimiento de las redes de computadoras personales que necesitan un sistema operativo de red ó bien un sistema operativo distribuido.

Administración de Servidores II TIC______________________________________________________________________

En un sistema operativo de red los usuarios saben que están conectados a la red y que pueden compartir recursos, sin embargo cada equipo ejecuta con sus propios recursos su propio sistema operativo, constituyéndose cada equipo como un nodo local con sus propias reglas y sus propios usuarios.Esencialmente el sistema operativo de red provee una solución general mediante la red a un problema complejo decididamente acotado y estudiado, su estructura y en general el funcionamiento se asemeja a un sistema operativo monoprocesador.Por razones de operación y buscando un mejor rendimiento se generó un desarrollo de sistemas distribuidos con varios procesadores, pero haciendo creer al usuario que se trata de un sistema operativo tradicional.

Arquitecturas Paralelas

Así los problemas que resolvían los sistemas operativos crecieron junto con los procesadores ó tal vez de manera simétrica.Cuando los problemas se hicieron “muy duros” (difícil computacionalmente hablando) de resolver mediante un solo procesador o bien cuando su capacidad para obtener resultados sin emplear muy altas prestaciones se hizo evidente. Para solucionar este problema se tuvo que pensar en organizar las computadoras de forma que se escalaran las posibilidades, esto es, tratar de organizar el conjunto de instrucciones de forma que hubieran cooperación entre las tareas de varios procesadores, y también en un tiempo determinado sin necesidad de gastar recursos económicos buscando mainframes o máquinas con muchos procesadores a la vez.La solución de hacer todo al mismo tiempo dentro de varios servidores llevo a paralelizar ó realizar computo colaborativo.Actualmente los tipos de sistemas paralelos se han clasificado como sigue:

Una secuencia de Instrucciones una secuencia de datos Una secuencia de instrucción, múltiple secuencias de datos Múltiples secuencias de instrucciones, una secuencia de datos Múltiples secuencias de instrucciones, múltiples secuencias de datos

En el primer tipo se agrupan los mono procesadores sistemas que son comúnmente utilizados para procesar pocas peticiones al mismo tiempo.En los segundos se encuentra los procesadores vectoriales y matriciales, luego cada proceso asociado tiene una memoria asociada, de forma que cada instrucción se ejecuta por cada procesador, con un conjunto de datos diferentes.En el tercer grupo las secuencias de datos son transmitidas a un conjunto de procesadores, los cuales ejecutan una secuencia de datos diferentes. Hasta el momento no se ha implementado esta clase de estructura.Por último un conjunto de procesadores teien simultáneamente instrucciones diferentes con conjunto de datos diferentes, esto implica que existe posibilidad de distribuir la memoria o de compartirla.

Administración de Servidores II TIC______________________________________________________________________

En el caso de la memoria compartida se habla de un sistema fuertemente acoplado que puede hacer multiprocesamiento simétrico o bien acceso no uniforme a memoria ( el acceso a ciertas zonas de memoria es diferente entre sí, es decir, cada zona tiene un tiempo diferente de acceso).En el caso de la memoria distribuida se considera un sistema débilmente acoplado dando cabida a los clústers.

Vectores

La computación vectorial ha sido diseñada, a diferencia de los mainframes, con un propósito específico: realizar operaciones de punto flotante de manera masiva y con gran precisión.En el caso de realizar arreglos de vectores a través de la optimización de los mainframes y de tecnología que ofrece mayores prestaciones que estos, y que todavía siguen evolucionando conforme el tiempo pasa.Los procesadores matriciales son diseñados para propósito general, capaz de procesar cantidades enormes de información, pero sobre todo sin realizar cálculos tradicionales, más bien orientados hacia los vectores.En lugar de considerar cálculos aislados el procesamiento vectorial se enfoca en tratar a los vectores y a las matrices como si fueran escalares aprovechando el paralelismo existente entre operaciones similares a un solo número o escalar pero que se pueden extender hacia vectores.Los procesadores vectoriales o vectores actualmente tienen tres categorías principales:

ALU segmentada ALU paralelas Procesadores Paralelos

Administración de Servidores II TIC______________________________________________________________________

Alternativas para vectores

En particular una ALU segmentada es capaz de repartir o descomponer una sola operación en etapas para que se ejecuten de forma concurrente sobre conjuntos de datos distintos.Las ALU paralelas se ajustan bien al procesamiento vectorial introduciendo los elementos vectoriales en forma cíclica hasta que se han procesado todos los elementos, con las consabidas complejidades que se presentan.El procesamiento vectorial se puede obtener utilizando varios procesadores en paralelo, sin embargo es necesario una concienzuda programación para obtener los elementos deseados y controlar las tareas que se introducen por cada vez. Además se debe contar con un conjunto de hardware y software que coordine todas las demás actividades.Un ejemplo de máquina que utiliza vectores es la IBM 3090 que fue diseñada para la arquitectura IBM 370, primeramente se acopla hacia el sistema básico, pero esta altamente integrada en él.De entre sus principales características se encuentran:

Solapamiento de los Cálculos Carga de bloques en los registros ALU segmentada

Finalmente es de notarse que la gran mayoría de lo que se ha llamado vectores o procesadores vectoriales se han referido a los procesadores con ALU segmentada, y en otros casos el termino procesador matricial se usa para las ALU paralelas. Aunado a lo anterior el procesador matricial también s confundido con un coprocesador o procesador de propósito general usado en cálculos vectoriales.

Administración de Servidores II TIC______________________________________________________________________

A manera de aclaración se sabe que los procesadores matriciales se pueden utilizar con ALU segmentada y con ALU paralela.

Clúster

Un clúster e un grupo de computadoras completas interconectadas que trabajan como un único recurso de cómputo, viéndose como un sistema único, en particular y de manera general cada computadora asociada al clúster se le denomina nodo.Para cada clúster se necesita un diseño o requisito de objetivo:

Escalabilidad Absoluta Una configuración adecuada debe mejorar las prestaciones de una computadora potente, esto es, un clúster debe poder mejorar por mucho el poder de procesamiento de una sola computadora aislada de forma independiente.

Escalabilidad Incremental Se debe poder añadir mediante la configuración adecuada, un conjunto de nuevos sistemas en ampliaciones sucesivas.

Alta disponibilidad Cada nodo es un procesador autónomo, el fallo de uno de los nodos no debe influir en el rendimiento o desempeño de todo el sistema. Lo anterior se logra debido a una correcta elección de software.

Mejorar la relación Precio/prestaciones: La estandarización de muchos sistemas entre ellos Linux, permite configurar de manera fácil un cluster a menor costo que lo normal y con una mayor potencia de procesamiento entre otras prestaciones.

El uso de clúster también supone la creación de sistemas operativos que den funcionalidad y exploten las características de esta arquitectura, por lo tanto existen dos parámetros que se deben tener en consideración para realizar un clúster:

Gestión de Fallos: Realizar una configuración eficiente para que el clúster tolere los fallos y esté disponible la mayor cantidad de tiempo posible hacia los usuarios, esto implica la recuperación de las tareas que se pierden como consecuencia, tal situación no es soportada por la mayoría de los clúster actuales. Para suplir esta deficiencia se pueden usar discos compartidos y redundantes para concluir las transacciones completadas, a través del mecanismo de transferencia por fallo (failover) y/o a través de la recuperación del sistema después del fallo (failback).

Equilibrio de Carga: Un clúster debe ser capaz de recibir o perder procesadores dentro del ámbito de operación del mismo, pero además debe asignar tareas automáticamente para que las tareas sean distribuidas adecuadamente y se tenga un mejor rendimiento. Lo anterior es posible lograrlo mediante niveles de software intermedios entre el sistema operativo y las aplicaciones (middleware) para reconocer los servicios en distintos miembros del clúster y migrar de un miembro a otro.

Administración de Servidores II TIC______________________________________________________________________

La clasificación de los clúster tiene bastantes variables a considerar. Sin embargo la clasificación más aceptada considera cuales de estos sistemas acceden al mismo disco o a un arreglo de discos diferentes, con lo cual la interconexión juega un papel preponderante.

Configuraciones de Discos para Clúster

Como se puede ver en la figura anterior los clúster son capaces de colocar un RAID (Redundant Array Independent Disk), esto es, un arreglo de discos independientes en los que la capacidad de almacenamiento quede garantizada mediante la regeneración automática en la configuración. Debido a lo anterior se puede clasificar a los clúster de acuerdo a la forma como están distribuyendo la capacidad de almacenamiento y así cumplen con las características de alta disponibilidad y altas prestaciones así como de equilibrar los costos convirtiéndose en un poderoso auxiliar en la construcción de dispositivos de computo de alto rendimiento.A pesar de que la clasificación anterior se considera importante la funcionalidad del sistema, esto es, de acuerdo al funcionamiento interno del sistema es como se clasifican los clúster, a pesar de que la clasificación anterior es bastante reconocida.