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.