category

14
I.S.T.E.L .A.M Nombre: juan Chonata Materia: sistemas Fecha: 25/10/2012

Upload: juan180

Post on 28-Nov-2014

704 views

Category:

Technology


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Category

I.S.T.E.L.A

.M

Nombre: juan Chonata

Materia: sistemas

Fecha: 25/10/2012

Page 2: Category

Arquitectura de Sistema Operativo Windows

Introducción

Con el paso de los años se ha producido una evolución gradual de la estructura y capacidades de los Sistemas Operativos. Sin embargo, recientemente se ha introducido un cierto número de nuevos elementos de diseño en los nuevos Sistemas Operativos y en las nuevas versiones de los Sistemas Operativos existentes. Estos Sistemas Operativos modernos responden a nuevos desarrollos del hardware y nuevas aplicaciones. Entre estos dispositivos de hardware están las máquinas multiprocesador, incrementos enormes de la velocidad de la máquina, alta velocidad en los enlaces de las redes de comunicación e incremento en el tamaño y variedad de los dispositivos de almacenamiento de memoria. En los campos de aplicación que han influido en el diseño de los Sistema Operativos están las aplicaciones multimedia, el acceso a Internet y páginas Web y la ejecución cliente/servidor.

El porcentaje de cambios en las demandas de los Sistemas Operativos, requiere no solamente las modificaciones y mejoras en las arquitecturas ya existentes, sino nuevas formas de organización del Sistema Operativo. Muchos de los diferentes enfoques y elementos de diseño se han probado tanto en Sistemas Operativos experimentales como comerciales, y muchos de ellos encajan dentro de las siguientes categorías

Page 3: Category

Sistemas Operativos

1_ Arquitectura Micronúcleo.

2_ Multihilos.

3_Multiproceso Simétrico.

4_Sistemas Operativos Distribuidos.

5_Diseño Orientado a Objeto.

La mayor parte de los Sistemas Operativos hasta hace poco tiempo se caracterizaban por un gran núcleo monolítico. Gran parte de la funcionalidad que se pensaba debía tener un Sistema Operativo la proporcionaba este gran núcleo, incluyendo planificación, sistema de archivos, redes, controladores de dispositivos, gestión de memoria y muchas cosas más. Normalmente un núcleo monolítico está implementado como un único proceso, con todos sus componentes compartiendo el mismo espacio de direcciones.

La arquitectura micronúcleo asigna solamente unas pocas funciones esenciales al núcleo, incluyendo espacios de direcciones, comunicación entre procesos (IPC) y planificación básica. Otros servicios del Sistema Operativo los proporciona procesos, algunas veces llamados servidores, que se ejecutan en modo usuario y que el micronúcleo trata como a cualquier otra aplicación. Este enfoque desconecta el núcleo y el desarrollo de servidores. Los servidores pueden estar diseñados para aplicaciones específicas o necesidades del entorno. El enfoque del micronúcleo simplifica la implementación, proporciona flexibilidad y se adapta bien para entornos distribuidos. En esencia, un micronúcleo interactúa de la misma forma con procesos servidores locales y remotos, facilitando la construcción de sistemas distribuidos.

Este trabajo intenta abordar la arquitectura del Sistema Operativo Windows y los servicios que cada uno de sus componentes brinda para llevar a cabo cada una de las categorías antes expuestas.

Page 4: Category

Visión General de la Arquitectura de Windows.

Un Sistema Operativo serio, capaz de competir en el mercado con otros como Unix que ya tienen una posición privilegiada, en cuanto a resultados, debe tener una serie de características que le permitan ganarse ese lugar. Algunas de estas son:

Que corra sobre múltiples arquitecturas de hardware y plataformas. Que sea compatible con aplicaciones hechas en plataformas anteriores, es decir que

corrieran la mayoría de las aplicaciones existentes hechas sobre versiones anteriores a la actual, nos referimos en este caso particular a las de 16-bit de MS-DOS y Microsoft Windows 3.1.

Reúna los requisitos gubernamentales para POSIX (Portable Operating System Interface for Unix).

Reúna los requisitos de la industria y del gobierno para la seguridad del Sistema Operativo.

Sea fácilmente adaptable al mercado global soportando código Unicode. Sea un sistema que corra y balancee los procesos de forma paralela en varios

procesadores a la vez. Sea un Sistema Operativo de memoria virtual.

Uno de los pasos más importantes que revolucionó los Sistemas Operativos de la Microsoft fue el diseño y creación de un Sistema Operativo extensible, portable, fiable, adaptable, robusto, seguro y compatible con sus versiones anteriores (Windows NT).

Y para ello crearon la siguiente arquitectura modular:

Page 5: Category
Page 6: Category

Arquitectura Micronúcleo

Estructura So Por Micronúcleo (Microkernel)

Micronúcleo es un tipo de núcleo de un sistema operativo que provee un conjunto de primitivas o llamadas al sistema mínimas, para implementar servicios básicos como espacios de direcciones, comunicación entre procesos y planificación básica. Todos los otros servicios (gestión de memoria, sistema de archivos, operaciones de E/S, etc.), que en general son provistos por el núcleo, se ejecutan como procesos servidores en espacio de usuario"

Cuando leemos esto asumimos que esta estructura es basada en un núcleo mas pequeño que el núcleo monolítico, tiene operaciones mas básicas en el SO teniendo comunicación con el resto de operaciones faltantes (esto en código maquina).Se basa en una programación modular, aportando así flexibilidad al SO, control de errores mucho mas fácil y rápido, pero bajando en rendimiento.

El microkernel se encarga de la planificación de hilos (post anterior), no de procesos, esto hace posible tener varias tareas (multitarea), siendo así el microkernel el que planifica todo el código que corre en el sistema.

Alguna de las tareas que realiza el microkernel son:

- Manipulación de las interrupciones en el sistema desde dispositivos físicos.

- Manipula excepciones del procesador.

- Proporciona soporte para la recuperación de un sistema con alguna falla de caída de energía.

La arquitectura de microkernel es complejo, sofisticado pero mas centrado en su que hacer para el SO, toda acción pasa por el microkernel, lo cual hace a un SO mas seguro que uno SO con arquitectura kernel monolítico, ya que si el que solicita hacer la acción no posee los permisos necesarios el microkernel no lo deja hacer nada.

Page 8: Category

Multihilos

Definición:

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

Multithilo (multithreading en inglés) tienen soporte en hardware para ejecutar eficientemente múltiples hilos de ejecución.

El paradigma de multihilo ha llegado a ser más popular a medida que los esfuerzos para llevar más adelante el paralelismo a nivel de instrucción se han atascado desde finales de los años 1990. Esto permitió que re emergiera a una posición destacada el concepto del computación de rendimiento a partir del más especializado campo del procesamiento transaccional:

Aunque es muy difícil acelerar un solo hilo o un solo programa, la mayoría de los sistemas de computadores son realmente multitarea entre múltiples hilos o programas.

Las técnicas que permitirían acelerar el rendimiento total del procesamiento del sistema en todas las tareas (tasks) darían como resultado un aumento significativo del rendimiento.

Las dos principales técnicas para computación de rendimiento son el multiproceso y el multihilo.

Una cierta crítica del multihilo incluye:

Los múltiples hilos pueden interferir uno con el otro al compartir recursos de hardware como cachés o Translation Lookaside Buffer (TLB).

Los tiempos de ejecución de un solo hilo no son mejorados, sino por el contrario, pueden ser degradados.

El soporte de hardware para multihilo es más visible al software que el multiprocesamiento, por lo tanto requiriendo más cambios tanto a las aplicaciones como el sistema operativo.

Las técnicas de hardware usadas para soportar multihilo a menudo paralelizan las técnicas de software usadas para la multitarea de los programas de computadora.

Multihilos

Page 9: Category

Multiproceso Simétrico

Multiproceso Simétrico.

Explicación detallada

La arquitectura SMP (Multi-procesamiento simétrico, también llamada UMA, de Uniform Memory Access), se caracteriza por el hecho de que varios microprocesadores comparten el acceso a la memoria. Todos los microprocesadores compiten en igualdad de condiciones por dicho acceso, de ahí la denominación "simétrico".

Los sistemas SMP permiten que cualquier procesador trabaje en cualquier tarea sin importar su localización en memoria; con un propicio soporte del sistema operativo, estos sistemas pueden mover fácilmente tareas entre los procesadores para garantizar eficientemente el trabajo.

Una computadora SMP se compone de microprocesadores independientes que se comunican con la memoria a través de un bus compartido. Dicho bus es un recurso de uso común. Por tanto, debe ser arbitrado para que solamente un microprocesador lo use en cada instante de tiempo. Si las computadoras con un solo microprocesador tienden a gastar considerable tiempo esperando a que lleguen los datos desde la memoria, SMP empeora esta situación, ya que hay varios parados en espera de datos.

Conceptos relacionados

Arquitectura Numa

Multiproceso simétrico, una de las formas más fáciles y baratas de aumentar el rendimiento del hardware es poner más de una CPU en la placa. Esto se puede realizar haciendo que CPU diferentes tengan trabajos diferentes (multiproceso asimétrico) o haciendo que todos se ejecuten en paralelo, realizando el mismo trabajo (multiproceso simétrico o SMP). El hacer multiproceso asimétrico requiere un conocimiento especializado sobre las tareas que la computadora debe ejecutar, que no es fácilmente discernible en un sistema operativo de propósito general como Linux. En cambio el multiproceso simétrico es relativamente fácil de implementar.

En un entorno de multiproceso simétrico, las CPU comparten la misma memoria, y como resultado, el código que corre en una CPU puede afectar a la memoria usada por otra. No se puede estar seguro de que una variable que se ha establecido a un cierto valor en la línea anterior todavía tenga el mismo valor; la otra CPU puede modificar el valor de la variable. No es posible programar algo de esta manera.

En el caso de la programación de procesos esto no suele ser un problema, porque un proceso normalmente sólo se ejecutará en una CPU a la vez. El núcleo, sin embargo, podría ser llamado por diferentes procesos ejecutándose en CPU diferentes.

En la versión 2.0.x del núcleo de Linux, esto no es un problema porque el núcleo entero está en un gran `spinlock'. Esto significa que si una CPU está dentro del núcleo y otra CPU quiere entrar en él, por ejemplo por una llamada al sistema, tiene que esperar hasta que la primera CPU haya acabado. Esto es lo que hace el SMP en Linux; es seguro, pero ineficiente.

Page 10: Category

Sistemas Operativos Distribuidos

Sistemas Operativos Distribuidos

Los sistemas operativos distribuidos desempeñan las mismas funciones que un sistema operativo normal, pero con la diferencia de trabajar en un entorno distribuido. Su Misión principal consiste en facilitar el acceso y la gestión de los recursos distribuidos en la red.

En un sistema operativo distribuido los usuarios pueden acceder a recursos remotos de la misma manera en que lo hacen para los recursos locales. Permiten distribuir trabajos, tareas o procesos, entre un conjunto de procesadores. Puede ser que este conjunto de procesadores esté en un equipo o en diferentes, lo cual es transparente para el usuario.

Los sistemas distribuidos deben de ser muy confiables y estables ya que si un componente del sistema se descompone otro componente debe de ser capaz de remplazarlo inmediatamente y no afectar los procesos del sistema.

Características básicas

Los sistemas operativos distribuidos están basados en las ideas básicas:

• Transparencia

• Eficiencia

• Flexibilidad

• Escalabilidad

Existen dos esquemas básicos: Los Fuertemente Acoplados y los débiles. Un sistema fuertemente acoplado es aquel que comparte la memoria y un reloj global, cuyos tiempos de acceso son similares para todos los procesadores. En un sistema débilmente acoplado los procesadores no comparten ni memoria ni reloj, ya que cada uno cuenta con su memoria local.

Transparencia

El concepto de transparencia de un Sistema operativo distribuido va ligado a la idea de que todo el sistema funcione de forma similar en todos los puntos de la red, debido a esto queda como labor del sistema operativo coordinar el mecanismo que logre la unificación de todos los sistemas y recursos totalmente transparente para el usuario o aplicación.

El que el sistema disponga de varios procesadores debe lograr un mayor rendimiento del sistema, pero el sistema operativo debe controlar que tanto los usuarios como los programadores vean el núcleo del sistema distribuido como un único procesador, Es decir que la programación y la ejecución de los programas y tareas sean exactamente iguales que las de los sistemas operativos normales en aspectos visuales y de programación, pero mas rápidos y eficientes por la distribución de la tareas.

Page 11: Category

Diseño Orientado a Objeto

Modelo de Estructura de Objetos (OSM)

El OSM es el modelo fundamental que provee un medio uniforme para modelar el sistema desde la captura de requerimientos en la etapa inicial del análisis hasta la implementación, atravesando todo el ciclo de desarrollo del sistema.

Este modelo identifica:

las clases de objetos en la aplicación

como las clases de objetos se asocian unas con otras

como se comunican los objetos

los detalles de cada clase de objetos, incluyendo atributos y operaciones

Durante el proceso de análisis y diseño, el OSM es definido en sucesivos niveles incrementales de detalle, hasta que el nivel necesario para la implementación es alcanzado.

Todos los demás modelos capturan detalles que alimentan es modelo.

El desarrollo de OSM es un proceso aditivo, diferenciándose esto del enfoque transformacional característico de otros métodos como el estructurado, donde los DFD del análisis son transformados en diagramas de estructura durante el diseño, con los consiguientes problemas que esto acarrea.

Durante el ciclo de desarrollo se aportan los siguientes elementos al modelo:

Análisis del Negocio: se reconocen objetos claves del negocio y generan las abstracciones en las clases apropiadas (objetos entidad).

Análisis de Requerimientos: se identifican asociaciones estructurales entre objetos y nuevas clases (entidad).

Diseño lógico: Se incorporan todas las clases necesarias para la aplicación incluyendo los objetos de interfaz y de control.

Diseño Físico: se incorporan todos los detalles remanentes para la implementación física de cada clase de objetos.

Page 12: Category

Diseño orientado a objetos

Análisis y diseño orientado a objetos (ADOO) es un enfoque de la ingeniería de software que modela un sistema como un grupo de objetos que interactúan entre sí. Este enfoque representa un dominio en términos de conceptos compuestos por verbos y sustantivos, clasificados de acuerdo a su dependencia funcional. En este método de análisis y diseño se crea un conjunto de modelos utilizando una notación acordada como, por ejemplo, el lenguaje unificado de modelado (UML). ADOO aplica técnicas de modelado de objetos para analizar los requerimientos para un contexto - por ejemplo, un sistema de negocio, un conjunto de módulos de software - y para diseñar una solución para mejorar los procesos involucrados. No está restringido al diseño de programas de computadora, sino que cubre sistemas enteros de distinto tipo. Las metodologías de análisis y diseño más modernas son casos de uso guiados a través de requerimientos, diseño, implementación, pruebas, y despliegue.

Sistemas Operativos hasta hace poco tiempo se caracterizaban por un gran núcleo monolítico. Gran parte de la funcionalidad que se pensaba debía tener un Sistema Operativo la proporcionaba este gran núcleo, incluyendo planificación, sistema de archivos, redes, controladores de dispositivos, gestión de memoria y muchas cosas más. Normalmente un núcleo monolítico está implementado como un único proceso, con todos sus componentes compartiendo el mismo espacio de direcciones.

La arquitectura Micronúcleo asigna solamente unas pocas funciones esenciales al núcleo, incluyendo espacios de direcciones, comunicación entre procesos (IPC) y planificación básica. Otros servicios del Sistema Operativo los proporciona procesos, algunas veces llamados servidores, que se ejecutan en modo usuario y que el Micronúcleo trata como a cualquier otra aplicación. Este enfoque desconecta el núcleo y el desarrollo de servidores. Los servidores pueden estar diseñados para aplicaciones específicas o necesidades del entorno. El enfoque del Micronúcleo simplifica la implementación, proporciona flexibilidad y se adapta bien para entornos distribuidos. En esencia, un Micronúcleo interactúa de la misma forma con procesos servidores locales y remotos, facilitando la construcción de sistemas distribuidos.

Page 13: Category

IMÁGENES

Page 14: Category

Fin de la presentación

GRACIAS