jueves, 26 de enero de 2012

Buffer y Sistemas Operativos Distribuidos.

Buffer.
Es un espacio de memoria, en el que se almacenan datos para evitar que el programa o recurso que los requiere, ya sea hardware o software, se quede sin datos durante una transferencia.
Normalmente los datos se almacenan en un buffer mientras son transferidos desde un dispositivo de entrada (como un ratón) o justo antes de enviarlos a un dispositivo de salida (como unos altavoces). También puede utilizarse para transferir datos entre procesos, de una forma parecida a los bufferes utilizados en telecomunicaciones. Un ejemplo de esto último ocurre en una comunicación telefónica, en la que al realizar una llamada esta se almacena, se disminuye su calidad y el numero de bytes a ser transferidos, y luego se envían estos datos modificados al receptor.
Pueden ser implementados por software o hardware, aunque la gran mayoría son del primer tipo. Normalmente se usan cuando la frecuencias de transferencia de datos es distinta a la de procesado, dependiendo de las limitaciones del sistema, o también cuando la frecuencia es variable, como en la recepción de vídeo online (streaming). Estas diferencias temporales de transmisión son normalmente ajustadas mediante la implementación de un algoritmo con cola (o estructura de tipo FIFO) en memoria, para así escribir datos en la cola a una frecuencia y leerlos a otra. Esto ocurre en el envió de datos de un procesador a una impresora para que los imprima, la velocidad de impresión de la fotocopiadora en comparación a la del procesador es muy lenta, debido a esto la impresora tendrá que tener una cola FIFO(software), para ir acumulando los trabajos que todavía no se han podido imprimir.

Aplicaciones.
Los buffers se utilizan, a menudo, conjuntamente con E/S de hardware, tal como unidades de disco, enviar o recibir datos a/o desde una red, o reproducción de sonido en un altavoz. 

En telecomunicaciones
- Interconectando dos circuitos digitales que funcionan a diversas tarifas.
- Datos de posesión para el uso en un momento posterior.
- Permitir que las correcciones que miden el tiempo sean hechas en una secuencia de datos.
- Recoger los bits de datos binarios en los grupos que pueden funcionar encendido como unidad.
- Retraso de la época de tránsito de una señal para permitir que otras operaciones ocurran.

Ejemplos de buffer e/s.

- El buffer de teclado es una memoria intermedia en la que se van almacenando los caracteres que un usuario teclea, los cuales son tratados por el computador a penas se libere un recurso.
- En Audio o video en streaming por Internet. Se tiene un buffer para que haya menos posibilidades de que se corte la reproducción cuando se reduzca o corte el ancho de banda.
- Un buffer adecuado permite que en el salto entre dos canciones no haya una pausa molesta.
- Las grabadoras de CD o DVD, tienen un buffer para que no se pare la grabación. Hoy en día hay sistemas para retomar la grabación pero antes suponía que el CD no quedaba bien grabado y muchas veces era inservible.


Que es un sistema operativo?

Un sistema operativo es un conjunto de sistemas y procedimientos que actúa como intermediario entre el usuario y el hardware de un computador y su propósito es proporcionar un entorno en el cual el usuario pueda ejecutar programas. El objetivo principal de un sistema operativo es lograr que el sistema de computación se use de manera cómoda, y el objetivo secundario es que el hardware del computador se emplee de manera eficiente.


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 reemplazarlo 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

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.

Eficiencia:

La idea base de los sistemas operativos distribuido es la de obtener sistemas mucho mas rápidos que los utilizados de procesador único, Y para lograr esto tenemos que olvidar la idea antigua de ejecutar los programas en estos procesadores y pensar en distribuir las tareas a los procesadores libres mas rápidos en cada momento.
El concepto global de que un procesador haga todas las tareas y la desarrolle rápido depende de muchos factores concretos: Velocidad, Memoria y tipo de procesamiento, Pero para un sistema operativo distribuido esto es mucho mas fácil y eficiente, solo buscara un procesador mas rápido y mas libre para que desarrolle las tareas y hará un display de los resultados obtenidos.

Flexibilidad:

La Flexibilidad dentro de sistema operativo distribuido, describe su capacidad para soportar cambios, actualizaciones y mejoras que le permitan irse desarrollando al mismo ritmo de la evolución tecnológica.

Dicha capacidad es una virtud y un conflicto. Una Virtud debido a las grandes necesidades de los sistemas operativos de mejorar después de las primeras versiones y un conflicto que surge entre los sistemas de con Núcleo Monolítico y los sistemas con Micro núcleo las cuales son dos arquitecturas distintas del núcleo del sistema operativo.


Escalabilidad:

Un sistema operativo distribuido debería funcionar tanto para una docena de computadoras como para mil en una sola red, el tipo de red utilizada no debe de ser un problema ni su topología (LAN o WAN) (TOKEN RING o ETHERNET) y mucho menos la distancia entre los equipos. Sin embargo todo esto influye, Aunque estos puntos serian muy deseables, pude que la solución válida para unas cuantas computadoras no sean aplicables como para mil. Del mismo modo el tipo de red condiciona grandemente el rendimiento del sistema y puede que lo funcione para un tipo de red requiera modificaciones para otro.

Funcionamiento Lógico del Sistema

Un sistema operativo distribuido dentro de sus funciones básicas, es capaz de encontrar mecanismos para la asignación de tareas a procesadores que pueden estar dentro o fuera del equipo que está ejecutando el programa.

Añadido a esto los sistemas operativos distribuidos brindan mas servicios de distribución como son los siguientes:

• Servicios de Comunicación
• Sistemas de Ficheros (File Sharing)
• Servicios de Nombres
• Servicios de Sincronización y Coordinación
• Memoria Compartida Distribuida
• Gestión de Procesos
• Servicio de Seguridad


Servicios de Comunicación

Los servicios de comunicación son los típicos servicios de red, pero en el caso de los sistemas operativos distribuidos son mas especializados en ciertas áreas.
Los sistemas operativos distribuidos utilizan un concepto de interconexión llamado Multicast (Comunicación en Grupo) que le permite a todos los computadores del sistema trabajar como un solo elemento de la red.

Toda la coordinación de los SOD son sincronizados por medio de SOCKETS lo cuales son paso de mensajes por la red que le permiten a los sistemas verificar cual es el equipo que esta disponible o simplemente el estado de un equipo actual. Los SOCKETS también son utilizados para la actualización del reloj.


Sistemas de Ficheros

El concepto del sistema de ficheros esta basado en la gestión de distintos dispositivos en diferentes nodos ofreciendo a usuarios la misma visión que un Sistema Centralizado.

Dicho sistema permite que los usuarios compartan información de forma transparente. Un buen ejemplo de esto es los contactos compartidos de cada terminal los cuales se reflejan en un solo modulo de contactos cada vez que una persona abre sus contactos.


Servicios de Nombres

Estos servicios identifican y localizan los recursos en el entorno distribuido. Existen dos: Páginas Blancas y Paginas Amarillas. El servicio de páginas blancas es el propiamente dicho de nombres y el de páginas amarillas es el de directorios.


Servicios de Sincronización y coordinación.

Los servicios de Sincronización son los que nos permiten mantener el los relojes de las computadoras individuales en un tiempo aproximado y apropiado.
La sincronización puede ser de relojes Físicos, los cuales sincronizan los relojes de hardware y de Relojes Lógicos, los cuales ordenan la entrada, ejecución y salida de los eventos.


Memoria Compartida Distribuida (DSM)

En un sistema operativo distribuido, la memoria pasa a ser físicamente privada pero lógicamente compartida. Es decir, un computador ejecuta los programas en su memoria propia, pero en caso de necesitar mas memoria utilizara los recursos disponibles de otra computadora que este capacitada y preparada dentro de la red para compartir su memoria.
La Memoria compartida distribuida ayuda a que no se formen los famosos cuellos de botella, debido que busca los recursos necesarios para lograr cumplir todas las tareas asignadas.

Gestión de procesos.

La gestión de proceso Crea, destruye, Para y  reanuda los procesos, Ofreciendo mecanismos para que se comuniquen y sincronicen.


Servicios de Seguridad

Los servicios de seguridad de un SOD van ligados a permisos de acceso tanto a los datos compartidos como a los recursos. Los recursos de memoria por ejemplo, son asignados permisos a la cantidad de memoria compartida siguiendo las necesidades físicas de cada computadora.

domingo, 11 de diciembre de 2011

Organización y Acceso de los Archivos.

Pilas: la forma menos complicada de organización de archivos puede denominarse la pila. Los datos se recolectan en el orden en que llegan. Cada registro consiste en una ráfaga de datos. El propósito de la pila es simplemente acumular la masa de datos y guardarlo.
Como no hay estructura para el archivo de la pila. El acceso a registro es por búsqueda exhaustiva. Si se quiere todos los registros que contienen un campo particular o que tienen un valor determinado para ese campo, debe buscarse en el archivo entero.
Los archivos de pilas se aplican cuando los datos se recogen y almacenan antes de procesarlos o cuando no son fáciles de organizar. Este tipo de archivo usa bien el espacio cuando los datos almacenados varían en tamaño y en estructuras. Este tipo de archivos no se adapta a la mayoría de las aplicaciones.

Un archivo: es una estructura de datos consistente en una secuencia de elementos o componentes llamados registros, todos del mismo tipo, ya sea simple o estructurado. A diferencia de los arrays un archivo puede almacenarse en un dispositivo auxiliar disco, cintas, etc. de forma que los datos obtenidos durante y después del procesamiento ni se pierdan.
Los archivos no están limitados por la memoria de su computadora, donde están contenidas las estructuras de datos. En teoría se dispone de una unidad de disco de 20 MB, podría alojar un archivo de datos de igual tamaño, incluso con memoria de 128 KB o 640 KB, típicos de las computadoras actuales.

Archivos Secuenciales: la forma más común de estructura de archivo es el archivo secuencial. En este tipo de archivo, un formato fijo es usado para los registros. Todos los registros tienen el mismo tamaño, constan del mismo número de campos de tamaño fijo en un orden particular. Como se conocen la longitud y la posición de cada campo, solamente los valores de los campos se necesitan almacenarse; el nombre del campo y longitud de cada campo son atributos de la estructura de archivos.

Archivos Secuenciales indexados: un método popular para superar las desventajas de los archivos secuenciales es el del archivo secuencias indexado. El archivo secuencial indexado mantiene las características básicas de los archivos secuenciales: los registros están organizados en una secuencia basada en un campo. 

Archivos Indexados: los archivos secuenciales indexados retienen la limitación del archivo secuencial: la eficacia en el procesamiento se limita al basado en un único campo del archivo. Cuando es necesario buscar un registro basándose en algún otro atributo distinto del campo clave ambas formas de archivo secuencial no son adecuadas. En algunas aplicaciones esta flexibilidad es deseable.
Para alcanzar esta flexibilidad, se necesita una estructura que utilice múltiples índices, uno para cada tipo de campo que pueda ser objeto de la búsqueda.

Archivos Directos o de Dispersión: los archivos directos explotan la capacidad de los discos para acceder directamente a cualquier bloque de dirección conocida. Como en los archivos secuenciales y secuenciales indexados, se requiere un campo clave en cada registro. 

Directorios de Archivo: asociado con algunos sistemas de gestión de archivos o cualquier colección de archivos suele haber un directorio de archivos. El directorio contiene información acerca de los archivos, incluyendo atributos, localización y propietario. Mucha de esta información, especialmente la concernida con el almacenamiento es gestionada por el sistema operativo. El directorio es propiamente un archivo, poseído por el sistema operativo y, accesible a traces de diversas rutinas de gestión de archivos

Compartir Archivos
En un sistema multiusuario, casi siempre existe la necesidad de permitir a los usuarios
Compartir archivos. Dos problemas surgen:
1.      Los derechos de accesos
2.      Gestión de los accesos simultáneos


Asignación de Archivos
Surgen varias cuestiones:
1. Cuando se crea un archivo nuevo. ¿ se asigna de una sola vez el máximo espacio que necesite?
2. El espacio se asigna a un archivo en forma de una o más unidades contiguas que se llaman secciones. Un tamaño de una sección puede variar desde un único bloque a un archivo entera. Que tamaño de sección debería usarse para asignar archivos?
3. ¿Qué tipos de estructura de datos o tabla se usaran para guardar constancia de las secciones asignadas a un archivo. Dicha tabla se conoce normalmente como tabla de asignación de archivos (FAT).

Gestión del Almacenamiento secundario: en el almacenamiento secundarlo, un archivo consiste en una colección de bloques. El sistema de gestiónele archivos es el responsable de la asignación de los bloques a archivos.




domingo, 6 de noviembre de 2011

Procesos.

Un proceso es un conjunto de instrucciones de un programa destinadas a ser ejecutadas por el microprocesador,  un estado de ejecución en un momento dado,  una memoria de trabajo y  una información que permite al sistema operativo su planificaciónLos procesos son creados y destruidos por el sistema operativo, así como también este se debe hacer cargo de la comunicación entre procesos. Cuando se ejecutan dos o mas procesos estos pueden cooperar mediante señales de forma que uno obliga a detenerse a los otros hasta que reciban una señal para continuar, usando una variable de tipo semáforo para sincronizar los procesos, de manera que si un proceso esta esperando una señal, se suspende hasta que la señal se envíe; manteniendo una cola de espera en el semáforo. Ustedes se preguntaran ¿como yo se, que proceso se ejecutaría primero si doy click simultáneamente a dos programas? pues la respuesta esta en la política first in, first out en español primero en entrar primero en salir, política que es utilizada en estructuras de datos, contabilidad de costes y teoría de colas.

Los estados de los procesos:


  • Ejecución: el proceso está actualmente en ejecución.
  • Bloqueado: el proceso no puede ejecutar hasta que no se produzca cierto suceso, como una operación de Entrada/Salida.
  • Listo: el proceso está listo para ser ejecutado, sólo está esperando que el planificador así lo disponga.



lunes, 24 de octubre de 2011

Sistemas Operativos

Sistemas Operativos fácilmente se puede definir como un programa o conjunto de programas de computadora destinado a permitir una gestión eficaz de sus recursos. Este comienza a trabajar cuando se enciende el computador, y gestiona el hardware de la máquina desde los niveles más básicos, permitiendo también la interacción con el usuario.

Los Sistemas Operativos están divididos en 4 categorías:
-  SO Multitareas: es el modo de funcionamiento disponible en algunos sistemas operativos, mediante el cual una computadora procesa varias tareas al mismo tiempo. 

-  SO Monotareas: estos son más primitivos y es todo lo contrario al visto anteriormente, es decir, solo pueden manejar un proceso en cada momento o que solo puede ejecutar las tareas de una en una.

-  SO Monousuarios:  son aquellos que nada más puede atender a un solo usuario, gracias a las limitaciones creadas por el hardware, los programas o el tipo de aplicación que se esté ejecutando.

-  SO Multiusuarios: es todo lo contrario a monousuario; y en esta categoría se encuentran todos los sistemas que cumplen simultáneamente las necesidades de dos o más usuarios, que comparten mismos recursos. Este tipo de sistemas se emplean especialmente en redes.

Ventajas y Desventajas:

Ventajas de Linux:
·  Más seguro La plataforma Linux es más robusta lo cual hace más difícil que algún intruso pueda violar el sistema de seguridad

·  Más rápido Al tener una plataforma más estable, esto favorece el desempeño de aplicaciones de todo tipo tales como: bases de datos, aplicaciones XML, multimedia, etc.

·  Más económico El software Linux así como también un sin número de aplicaciones son de código abierto (gratuitos).
Desventajas de Linux:
·  Linux no cuenta con una empresa que lo respalde, por lo que no existe un verdadero soporte como el de otros sistemas operativos.
·  La pendiente de aprendizaje es lenta.
·  No es tan fácil de usar como otros sistemas operativos, aunque actualmente algunas distribuciones están mejorando su facilidad de uso, gracias al entorno de ventanas, sus escritorios y las aplicaciones diseñadas.
·  Documentación y terminología muy técnica
Ventajas de Windows:
·  Más fácil Al ser de mayor facilidad de uso, lo cual se refleja en la disponibilidad de aplicaciones y facilidad de mantenimiento
·  Más Visual Dispone de una interfaz gráfica que facilita el manejo de los procedimientos: cada comando puede ser visualizado en pantalla mediante una imagen que lo representa.

·  Desarrollo Se ha logrado facilitar el desarrollo de aplicaciones y sistemas sobre servidores Windows lo cual se ve reflejado en tiempos de desarrollo menores

·  Aprendizaje La curva de aprendizaje en Windows es mucho menor.
Desventajas de Windows:
·  Es un software no gratuito y poco flexible, además de que continuamente cambia la versión de software.
·  El ímpetu con el que se buscan los agujeros en Windows es mucho mayor, algunos informáticos se divierten buscando manchas en el expediente de Microsoft.
·  desventaja más negativa resulta que Microsoft va "jubilando" sus sistemas operativos con el tiempo. A partir de entonces, Microsoft no ofrece más asistencia ni actualizaciones para ellos, lo que puede dejar desprotegidos a miles de usuarios de todo el mundo, que deberán actualizar su sistema operativo para disponer actualizaciones de seguridad.
Ventajas de MacOS:
·  La sencillez con la que se utiliza el sistema operativo
·  Gran seguridad. Puedes contra con que virus para Mac hay muy pocos, difícilmente te veras afectado.
·  Compatibilidad. Documentos Word, Excel, PowerPoint, Autocad, Photoshop, etc. son compatibles.
·  Los botones, los iconos, las animaciones te harán ver que Mac es el sistema mas avanzado.
Desventajas de MacOS:
·  Demasiado exclusivo en todos los aspectos
·  Hay que tener software específico para él
·  En ocasiones fuerza a recortar funciones
·  Es incompatible. Sólo se puede instalar en Mac’s.
·  Dificultad para propagar usuarios. Mac OS X no sigue estándares
Ventajas de Unix:
·  Es el Sistema Operativo que corre en más arquitecturas de hardware diferentes. 
·  Es prácticamente imposible insertar virus en un servidor de Unix
·  Sistema Operativo independiente del Hardware o CPU
·  Permite a las aplicaciones reservar grandes segmentos de memoria (hasta de varios megabytes).
·  Permite correr programas que sean más grandes que la memoria RAM total.
·  Es ejecutable.  Esto hace que sea imposible que se corrompa o que pierda el driver o parte de un driver de algún dispositivo de la computadora
Desventajas de Unix:
·  Carencia de soporte técnico.
·  No ofrece mucha seguridad.
·  Problemas de hardware, no soporta todas las plataformas, y no es compatible con algunas marcas específicas.
·  No existe un control de calidad al momento de elaborar software para Linux, pues muchas veces las aplicaciones se hacen y se liberan sin control alguno.
·  Se requiere experiencia y conocimiento del sistema para administrarlo.
·  No hay forma segura de instalarlo sin reparticionar el disco duro.
·  Reparticionar el disco duro, implica borrar toda la información del mismo y después restablecerla.

Sistema Operativo Macintosh
El Macintosh es el nombre con el que actualmente nos referimos a cualquier computadora personal diseñada, desarrollada, construida, comercializada, y vendida por la compañía Apple Inc.


El Macintosh 128K fue lanzado el 24 de enero de 1984. Fue el primer ordenador personal que se comercializó exitosamente, que usaba una interfaz gráfica de usuario (GUI) y un ratón en vez de la línea de comandos. La gama de productos Macs en la actualidad varía desde el básico Mac mini de escritorio hasta los servidores de rango medio como Mac Pro.Los sistemas Mac tienen como objetivo principal de mercado el hogar, la educación y la creatividad profesional. La producción de Mac está basada en un modelo de integración vertical en los que Apple proporciona todos los aspectos de su hardware y crea su propio sistema operativo que viene preinstalado en todas las Macs.