lunes, 20 de octubre de 2008

Discos Magnéticos

Discos Magnéticos: representa la mayor parte de almacenamiento secundario en los sistemas modernos de cómputo. Cada Plato del disco tiene una forma circular como un CD, su diámetro común va de 1.8 a 5.25 pulgadas. Las dos superficies de un plato se cubren con un material magnético similar al de la cinta magnética; la información se almacena grabando magnéticamente en los platos.
Estructura: Las cabezas están unidas a un Brazo de disco, el cual mueve todas las cabezas como una unidad. la superficie de un plato está divida en Pistas (tracks), las cuales se subdividen en sectores. el conjunto de pistas que se encuentran en una posición del brazo forman un Cilindro . La capacidad de almacenamiento de las unidades de disco comunes se mide en gigabytes.
Funcionamiento: Un motor de la unidad lo hace girar a alta velocidad y puede girar de 50 a 150 revoluciones por segundo. La velocidad se divide en dos partes: La Tasa de Transferencia, la cual los datos fluyen entre la unidad y la computadora. El Tiempo de Posicionamiento, tambien denominado tiempo de acceso aleatorio, consta del tiempo para mover el brazo del disco al cilindro deseado, denominado tiempo de busqueda, y del tiempo para que el sector deseado gire a la cabeza del disco.
Un disco puede ser Removible, por lo regular consisten en un plato contenido en una caja plástica para evitar daño mientras no esta en la unidad de discos. Los Discos Flexibles, son discos magnéticos removibles, baratos que tienen una cubierta de plástico suave que contiene un plato flexible. La capacidad de almacenamiento es tipicamente de 1 megabyte o una cantidad similar.
Cintas Magnéticas: es relativamente permanente y puede contener grandes cantidades de datos, el acceso aleatorio a la cinta magnética es aproximadamente mil veces más lento que el acceso aleatorio al disco magnético, por lo que no son útiles para almacenamiento secundario.
Funcionamiento: una cinta se mantiene en un carrete y se bobina o rebobina pasando por una cabeza de lectura-escritura. las capacidades de las cintas varian de forma considerable, algunas pueden retener 20 veces más datos que una unidad de disco grande, se clasifican por ancho, incluyendo las de 4,8 y 19 milimetros, 1/4 y 1/2 pulgadas.

miércoles, 15 de octubre de 2008

definiciones

Multiusuario
La palabra multiusuario se refiere a un concepto de sistemas operativos, pero en ocasiones también puede aplicarse a programas de computadora de otro tipo (e.g. aplicaciones de base de datos). En general se le llama multiusuario a la característica de un sistema operativo o programa que permite proveer servicio y procesamiento a múltiples usuarios simultáneamente (tanto en paralelismo real como simulado).
Actualmente este tipo de sistemas se emplean especialmente en redes, pero los primeros ejemplos de sistemas multiusuario fueron sistemas centralizados que se compartían a través del uso de múltiples dispositivos de interfaz humana (e.g. una unidad central y múltiples pantallas y teclados).
Los recursos que se comparten son por lo regular una combinación de:
Procesador.
Memoria.
Almacenamiento secundario (almacenaje en disco duro).
Programas.
Periféricos como impresoras, plotters, scanners, etc.
De tal modo que los múltiples usuarios tienen la impresión de utilizar una computadora y un sistema operativo unificado, que les están dedicados por completo.
//
Tipos de multitarea
Cooperativa
Los procesos de usuario son quienes ceden la CPU al sistema operativo a intervalos regulares. Muy problemática, puesto que si el proceso de usuario se interrumpe y no cede la CPU al sistema operativo, todo el sistema estará trabado, es decir, sin poder hacer nada. Da lugar también a latencias muy irregulares, y la imposibilidad de tener en cuenta este esquema en sistemas operativos de tiempo real. Un ejemplo sería Windows hasta la versión 95.
Preferente
El sistema operativo es el encargado de administrar el/los procesador(es), repartiendo el tiempo de uso de este entre los procesos que estén esperando para utilizarlo. Cada proceso utiliza el procesador durante cortos períodos de tiempo, pero el resultado final es prácticamente igual que si estuviesen ejecutándose al mismo tiempo. Ejemplos de sistemas de este tipo serían Unix y sus clones (FreeBSD, Linux...), VMS y derivados, AmigaOS, Windows NT...
Real
Sólo se da en sistemas multiprocesador. Es aquella en la que varios procesos se ejecutan realmente al mismo tiempo, en distintos microprocesadores. Suele ser también preferente. Ejemplos de sistemas operativos con esa capacidad: variantes Unix, Linux, Windows NT
Multiprogramación
Se denomina multiprogramación a la técnica que permite que dos o más procesos ocupen la misma unidad de memoria principal y que sean ejecutados al "mismo tiempo" (seudo-paralelismo, en una única CPU sólo puede haber un proceso a la vez) en la unidad central de proceso o CPU.
Aporta las siguientes ventajas:
La ya mencionada, varios procesos en ejecución.
Permite el servicio interactivo simultáneo a varios usuarios de manera eficiente.
Aprovecha los tiempos que los procesos pasan esperando a que se completen sus operaciones de E/S
Aumenta el uso de la CPU.
Las direcciones de los procesos son relativas, el programador no se preocupa por saber en dónde estará el proceso dado que el sistema operativo es el que se encarga de convertir la dirección lógica en física.
Un proceso entra a ejecutarse y llega al momento en que tiene que hacer espera por un dispositivo de entrada y/o salida por ejemplo, el CPU estará ocioso mientras espera que el proceso pueda usar el dispositivo para así finalmente ejecutarse. Los sistemas de multiprogramación evitan eso ya que durante ese tiempo de esperar pasan a ejecutar otro proceso teniendo así al computador ocupado.
MULTIPROCESAMIENTO
Generalidades de Multiprocesadores. Un multiprocesador se define como una computadora que contiene dos o más unidades de procesamiento que trabajan sobre una memoria común bajo un control integrado. Si el sistema de multiprocesamiento posee procesadores de aproximadamente igual capacidad, estamos en presencia de multiprocesamiento simétrico; en el otro caso hablamos de multiprocesamiento asimétrico.
Si un procesador falla, los restantes continúan operando, lo cual no es automático y requiere de un diseño cuidadoso. Un procesador que falla habrá de informarlo a los demás de alguna manera, para que se hagan cargo de su trabajo. Los procesadores en funcionamiento deben poder detectar el fallo de un procesador Determinado. El Sistema Operativo debe percibir que ha fallado un procesador determinado y ya no podrá asignarlo y también debe ajustar sus estrategias de asignación de recursos para evitar la sobrecarga del sistema que está degradado.

//
Sistemas de tiempo compartido
La primera representación de sistemas multiusuario fue en la forma de sistemas de tiempo compartido en grandes ordenadores destinados a dar servicio a más de una persona al mismo tiempo. El tiempo compartido ejecuta programas separados de forma concurrente, intercambiando porciones de tiempo en el procesador asignadas a cada programa (usuario).
Sistemas operativos multiusuario
Desde el principio del concepto, la compartición de los recursos de procesamiento, almacenaje y periféricos facilita la reducción de tiempo ocioso en el (o los) procesador(es), e indirectamente implica reducción de los costos de energía y equipamiento para resolver las necesidades de cómputo de los usuarios. Ejemplos de sistemas operativos con característica de multiusuario son VMS y Unix, así como sus múltiples derivaciones (e.g. IRIX, Solaris, etc.) y los sistemas "clones de Unix" como Linux, FreeBSD y Mac OS X.
En la familia de los sistemas operativos Microsoft Windows, desde Windows 95 hasta la versión Windows VISTA, proveen soporte para ambientes personalizados por usuario, pero no admiten la ejecución de múltiples sesiones de usuario, haciendo necesaria la finalización de una sesión para poder inicar otra distinta (y por lo tanto son, en esencia, sistemas operativos monousuario); Las versiones de Windows 2000 server y Windows 2003 server ofrecen el servicio Terminal Server el cual permite la ejecución remota de diferentes sesiones de usuario.

Sistemas operativos multiproceso
Un sistema operativo multiproceso o multitarea es aquel que permite ejecutar varios procesos de forma concurrente, la razón es porque actualmente nuestras CPUs sólo pueden ejecutar un proceso cada vez. La única forma de que se ejecuten de forma simultánea varios procesos es tener varias CPUs (ya sea en una máquina o en varias, en un sistema distribuido).
La magia de un sistema operativo multiproceso reside en la operacíon llamada cambio de contexto. Esta operación consiste en quitar a un proceso de la CPU, ejecutar otro proceso y volver a colocar el primero sin que se entere de nada.

Concepto de hebras y sistemas operativos Multithread y Multiproceso
Una hebra es un punto de ejecución de un proceso. Un proceso tendrá una o más hebras. Las hebras representan un método software para mejorar el rendimiento de los sistemas operativos reduciendo el recargo por el cambio de contexto entre procesos. Las hebras de un mismo proceso compartirán recursos, como memoria, archivos... Las hebras asumirán el papel de los procesos como unidad de planificación. Un proceso será una unidad propietaria de recursos para una serie de hebras.
Existen varios sistemas operativos multitarea y multithread: Windows NT, OS/2, NeXTStep, Solaris... Los UNIX tradicionales poco a poco irán adoptando el API de las hebras de POSIX (documento disponible en ftp://ftp.gui.uva.es/pub/windows/winNT/doc/varios ).
Windows NT
Cuando se empezó el diseñe Windows NT, Microsoft sabía que tendría que soportar el multiproceso y la multithread. Otra característica importante en el dise񯠤e NT es que su arquitectura base es la de cliente-servidor, por lo cual en NT tendremos una serie de procesos servidores que se comunicaran con sus clientes a través de un mecanismo de paso de mensajes. Y por último hay que decir que NT sigue de cerca la metodología de la programación orientada al objeto. Aún NT no es orientado al objeto, pero esta preparado para ser un sistema operativo orientado al objeto. Para representar los recursos del sistema, se utilizan clases de objeto. Las threads como cualquier otro recurso del sistema se representarán como un objeto, de esta forma se facilita su uso ya que la forma de manejar cualquier recurso del sistema será muy parecida, ya que todos son objetos. Para que NT ejecute un proceso tendrá que tener el mínimo de una thread, ya que lo que el kernel planifica son threads.


Sistemas Paralelos
Los sistemas paralelos son aquellos que tienen la capacidad de realizar varias operaciones de manera simultánea. Generalmente estos sistemas suelen manejar grandes cantidades de información del orden de los terabytes y pueden procesar cientos de peticiones por segundo. Los sistemas paralelos están formados por varios sistemas que comparten la información, los recursos y la memoria de alguna manera.
Los arquitectos de sistemas de pruebas deben interpretar las tecnologías cambiantes, tal como el caso de los procesadores multinúcleo y los buses de datos de alta velocidad, a medida que ellos diseñen, desarrollen e implementen sistemas de prueba.

Los sistemas operativos web generalmente también se los conoce como escritorios Web:
Un escritorio web o webtop es un sistema de aplicación de red para integrar aplicaciones web en un espacio de trabajo basado en web. Es un escritorio virtual en la web, corriendo en un navegador de web como software. Los escritorios web a menudo están caracterizados por un entorno similar al de Windows, Mac, o Linux, pero ahora se considera que tiene mucha más funcionalidad al depender de la Internet. Los beneficios típicos incluyen la habilidad de guardar trabajo y configuraciones en la Internet en vez de hacerlo en un escritorio local.

Los WebOS proporcionan servicios básicos de sistemas operativos necesarios para construir aplicaciones que están distribuidas geográficamente, altamente disponibles, escalables y reconfigurables dinámicamente.

Común a todo los usos, un sistema operativo Web es diferente de los sistemas operativos de Internet en que es independiente del sistema operativo tradicional de la computadora individual. El término "sistema operativo de Internet" resulta apropiado cuando una plataforma web incluye funciones pertinentes a medios de Internet, tales como tarjetas inalámbricas y otros dispositivos como también páginas web.
En esta mini-guía me referiré a WebOS como un escritorio virtual en la web, accesible vía un navegador, con múltiples aplicaciones integradas que permiten al usuario administrar y organizar fácilmente sus datos desde cualquier ubicación.
Para este propósito, he analizado los WebOS más interesantes disponibles actualmente dando una descripción detallada de sus prestaciones. Usted descubrirá que algunos de ellos ya han alcanzado un buen nivel de implementación, mientras que otros aún están en sus etapas iniciales. Al analizar estos servicios he identificado las siguientes características como criterio de comparación de esta lista:
API abierta: la topología de la Interfaz de Programación de Aplicaciones que utiliza
Código abierto: la posibilidad para que usuarios y desarrolladores contribuyan al enriquecimiento del WebOS y creación de nuevos widgets
Aplicaciones integradas: las aplicaciones que tiene el WebOS por defecto (el cual puede ser un editor de texto, un mensajero instantáneo, etc.)
Reproductor de audio-video: la disponibilidad de un reproductor de medios dentro del WebOS
Herramienta de edición de fotos: la disponibilidad de una herramienta que le permita al usuario editar imágenes
Cliente de e-mail: la presencia de un cliente de email
Mensajería Instantánea: la disponibilidad de un mensajero instantáneo integrado
Calendario: la existencia de un Calendario
Herramientas de Colaboración - Conferencia: la presencia de herramientas de colaboración online (tales como VoIP, herramientas de conferencia web, etc.)
Mini-Navegador: la integración de un navegador web
Almacenamiento de archivos: la cantidad de espacio – si hubiera disponible – para almacenar archivos online
Soporte para compartir archivos: el soporte para compartir archivos con otros usuarios
Búsqueda de escritorio: la presencia de un motor de búsqueda de escritorio dentro del WebOS
Lector/agregador de alimentadores RSS: la disponibilidad de un lector RSS
Soporte para widgets: el soporte para widgets (pequeñas aplicaciones)
Juegos: la disponibilidad de juegos dentro del WebOS

WebOS disponibles:
Desktop On Demand es un sistema operativo web que le permite acceder a sus archivos y aplicaciones como si estuviera sentado frente a su computadora. Desktop On Demand tiene un navegador web integrado, un editor de texto y planilla de cálculo y también un reproductor de medios. Asimismo, le permite conectarse a sus redes favoritas de Mensajería Instantánea y chequear su email.
YouOS es un sistema operativo web que le permite correr diferentes aplicaciones dentro de un navegador web. Puede usar pequeñas aplicaciones del tipo sticky notes (notas autoadhesivas) y relojes, además de aplicaciones grandes como procesador de palabras, reproductor mp3 y mensajero instantáneo. Las contribuciones de los usuarios de YouOS son bienvenidas para su desarrollo, ya que es de código abierto, siendo muy sencillo mejorar aplicaciones existentes o crear una nueva.
Goowy es un WebOS que tiene varias aplicaciones como por ejemplo subir archivos, aplicaciones de correo electrónico, lector RSS, mensajero instantáneo, favoritos, administrador de calendario y contactos. Goowy también incluye un mensajero instantáneo que le permite chatear con sus compañeros a través de cualquier red y un cliente de e-mail. Además, Goowy le proporciona noticias personalizadas, soporte RSS, almacenamiento de archivos, compartir archivos y algunos juegos.
Desktoptwo es un WebOS que integra un reproductor MP3, lector RSS reader, mensajero instantáneo, un editor de texto y HTML además de un cliente email. Desktoptwo tiene una función especial que le permite al usuario mostrar su escritorio web tanto en una ventana emergente como en la página actual: estas funciones particularmente útil cuando el usuario está navegando en la web con un navegador que bloquea las ventanas emergentes

Estructura de los sistemas operativo

· Sistemas monolíticos
Este tipo de organización es, con diferencia, la más común. El sistema operativo se escribe como una colección de procedimientos, cada uno de los cuales puede llamar a los demás cada vez que así lo requiera. Cuando se usa esta técnica, cada procedimiento del sistema tiene una interfaz bien definida en términos de parámetros y resultados, y cada uno de ellos es libre de llamar a cualquier otro, si éste último proporciona un cálculo útil para el primero.
· Modelo cliente-servidor
Una tendencia de los sistema operativos modernos es la de trasladar el código a capas superiores, y eliminar la mayor parte posible del sistema operativo para mantener un núcleo mínimo. El punto de vista usual es el implantar la mayoría de las funciones del sistema operativo como procesos de usuario. Para solicitar un servicio, como la lectura de un bloque de cierto fichero, un proceso de usuario (denominado en este caso proceso cliente) envía la solicitud a un proceso servidor, que realiza el trabajo y devuelve la respuesta.

miércoles, 8 de octubre de 2008

Sistemas de Tiempo Real

Sistemas de Tiempo Real
Se emplea cuando existen requerimientos rígidos de tiempo sobre la operación de un procesador o el flujo de datos, por ello, en ocasiones se emplea como dispositivo de control en aplicaciones dedicadas.
El procesamiento debe realizarse dentro de los límites definidos, o el sistema fallara. Por ejemplo, no funcionara si un vaso de robot se le instruyera para detenerse después de haber chocado con el auto. Un sistema de tiempo real se considera que funciona correctamente solo si entrega el resultado correcto dentro de las restricciones de tiempo. Compare este requerimiento con un sistema de tiempo compartido, en donde es deseable (pero no obligatorio) responder rápidamente, o con un sistema por lotes, en donde tal vez no existan restricciones de tiempo en absoluto.
Hay dos tipos de sistema de tiempo real:
Sistema estricto de tiempo real
Garantiza que las tareas críticas se completen a tiempo, esta meta requiere que se establezca un límite de todas las demoras en el sistema; desde la recuperación de datos almacenados hasta el tiempo que requiere el sistema operativo para terminar cualquier solicitud que se haga. Tales restricciones de tiempo determinan los servicios que están disponibles en los sistemas estrictos de tiempo real.
Sistema suave de tiempo real
Una tarea crítica de tiempo real tiene prioridad sobre otras tareas, y retiene dicha prioridad hasta que se complete. Como en el caso de los sistemas estrictos de tiempo real, las demoras del kernal necesitan limitarse; una tarea de tiempo real no puede mantenerse esperando de manera indefinida para q el kernel la ejecute.
Estos sistemas necesitan características avanzadas de sistemas operativos que no son soportados por los sistemas estrictos de tiempo real. Debido al uso extendido de la funcionalidad suave de tiempo real, este a logrado introducirse en la mayoría de los sistemas operativos actuales, incluyendo versiones importantes de UNIX.
El tipo de planificación necesaria para implementar la funcionalidad suave del tiempo real en un sistema operativo.