domingo, 31 de mayo de 2015

Administracion de dispositivos

ADMINISTRADOR DE DISPOSITIVOS
El administrador de dispositivos reúne a todos los componentes hardware del sistema, muestra cómo están configurados, qué controladores tienen y qué recursos están ocupando. También es una herramienta para instalar, quitar y configurar hardware.


LA ADMINISTRACIÓN DE DISPOSITIVOS COMPRENDE 4 FUNCIONES BÁSICAS
· Controlar el estado de cada dispositivo (como unidades de cinta, unidades de disco, impresoras, graficadores y terminales).

· Utilizar políticas preestablecidas para determinar qué proceso obtendrá un dispositivo y durante cuánto tiempo.

· Asignar los dispositivos.

·  Desasignarlos en dos niveles: en el nivel de procesos cuando se ejecute un comando de entrada/salida y el dispositivo se libera de manera permanente.

LOS DISPOSITIVOS PERIFÉRICOS DEL SISTEMA GENERALMENTE ENTRAN EN UNA DE TRES CLASES:
· Dedicados

· Compartidos

· Virtuales

LOS DISPOSITIVOS DEDICADOS
Se asignan sólo a un trabajo a la vez y le sirven todo el tiempo que está activo. La desventaja de los dispositivos dedicados es que se asignan a un usuario durante todo el tiempo que dure el trabajo que realiza, esto podría resultar ineficiente y es aún más ineficiente si el dispositivo no se utiliza el 100% del tiempo.

LOS DISPOSITIVOS COMPARTIDOS
Estos se pueden asignar a más de un proceso. Se puede compartir cualquier dispositivo de almacenamiento de acceso directo al entrelazar sus solicitudes, en estos casos el administrador de dispositivos tiene que controlar esta acción con bastante cuidado.

LOS DISPOSITIVOS VIRTUALES
Son una combinación de los dispositivos dedicados y los compartidos; son dispositivos dedicados transformados en dispositivos compartidos.

En el campo de la Informática, el spooling (Simultaneous Peripheral Operations On-Line) se refiere al proceso mediante el cual la computadora introduce trabajos en un buffer(un área especial en memoria o en un disco), de manera que un dispositivo pueda acceder a ellos cuando esté listo.
El spooling es útil en caso de dispositivos que acceden a los datos a distintas velocidades. El buffer proporciona un lugar de espera donde los datos pueden estar hasta que el dispositivo (generalmente más lento) los procesa. Esto permite que la CPU pueda trabajar en otras tareas mientras que espera que el dispositivo más lento acabe de procesar el trabajo.

La aplicación más común del spooling es la impresión. En este caso, los documentos son cargados en un buffer, que habitualmente es un área en un disco, y la impresora los saca de éste a su propia velocidad. El usuario puede entonces realizar otras operaciones en el ordenador mientras la impresión tiene lugar en segundo plano. El spooling permite también que los usuarios coloquen varios trabajos de impresión en una cola de una vez, en lugar de esperar a que cada uno acabe para enviar el siguiente.

                            Imagen de un disco internamente.
Existen diferencias entre el disco moderno y el "antiguo", la mas notable es la capacidad de almacenaje la cual crece gracias a que la información de ahora se guarda por pistas en diferentes platos, esto también hace que guardar la información y buscarla sea aun más rápido.

Estos discos tienen un tiempo de acceso los cuales tienen tres tipos principales de tiempo.

- Tiempo de transferencia: es por donde viaja la información al bus de datos, también este tiempo es dado por el fabricante, es decir, nosotros no podemos modificar este.

- Tiempo de latencia: es lo que se demora el dato en llegar al brazo de acceso.

- Tiempo de búsqueda: es lo que se demora el brazo en buscar en cada pista.



domingo, 3 de mayo de 2015

Algoritmo del banquero

Es una forma de evitar el interbloqueo, propuesta por primera vez por EDSGER DIJKSTRA. Es un acercamiento teórico para evitar los interbloqueos en la planificación de recursos. Requiere conocer con anticipación los recursos que serán utilizados por todos los procesos. Esto último generalmente no puede ser satisfecho en la práctica.


Analogía

- FUNCIONAMIENTO DE UN BANCO:

- Los CLIENTES representan PROCESOS----Crédito limite
- El DINERO representa RECURSOS
- El BANQUERO representa el Sistema Operativo (S.O)


PARA COMPRENDERLO HAY QUE TENER EN CUENTA

- Estado: Es la asignación actual de los recursos a los procesos.
- Matriz: demanda (o máximo necesario). Son las exigencias máximas de recursos para cada proceso.
- Matriz asignación: Son las asignaciones actuales de recursos para cada proceso.
-Vector disponible: Cantidad total de recursos sin asignar a los procesos.
- Estado seguro: Es un estado en el que existe al menos un orden en el que todos los procesos pueden ejecutar hasta el final sin generar interbloqueo.

Cuando un proceso realiza una solicitud de recursos, se supone que se concede, se actualiza el estado y se toma una decisión. Si se llega a un estado seguro, se concede la petición. Si se llega a uno inseguro, se rechaza y el proceso es bloqueado.

Ejemplo de banquero




Ventajas y desventajas:

Ventajas: 

- No es necesario expulsar y hacer retroceder procesos como en la detección del interbloqueo.
- Es menos restrictivo que la prevención.


Desventajas:

- Se debe conocer la máxima demanda de recursos por anticipado.
- La ejecución de los recursos no debe estar forzada por la sincronización.

Arreglos de discos "Raid"

Un arreglo redundante de discos independientes (RAID por sus siglas en inglés) es típicamente implementado para la protección de la información o incremento del desempeño al acceso de los discos duros. Existen varios tipos de arreglos y los más usados en la industria son: 0, 1, 5 y el 0+1 ó 10, siendo este último el de mayor desempeño, protección y costo.


RAID 0
- Este arreglo es conocido como distribuido (striping), porque utiliza un sistema que utiliza a los discos como uno solo, teniendo un conjunto de cabezas independientes para su uso. La información es dividida en bloques de datos que se distribuyen en todos los discos del arreglo. EL RAID incrementa el desempeño, la lectura y escritura de la información al escribir un solo dato con varias cabezas de forma simultánea. Ejemplo: un dato de 8 bits se divide en todos los discos escribiendo 2 bits en cada uno de forma simultánea. Esto es más rápido que escribir 8 bits de forma serial con una sola cabeza. Este tipo de arreglo no tiene nivel de protección. En caso de la falla de un disco, se perdería toda la información.


RAID 1
- Este tipo de arreglo se conoce como Espejeo (Mirroring), porque su conjunto de discos los utiliza como espejos. Ofrece el nivel de protección más alto, pues uno tiene copia idéntica de la información de cada disco. Toda la información escrita en el disco primario se escribe en el disco secundario. RAID1 tiene un incremento en el desempeño de la lectura de la información, pero puede llegar a degradar el desempeño de la escritura.



RAID 5
- Este tipo de arreglo se denomina también como distribuido con paridad. Este tipo de arreglos distribuye la información en todo el conjunto de discos. A diferencia del RAID 0, RAID5 elabora un bit de paridad con el cual es posible reconstruir la información del arreglo en caso de la pérdida de alguno de los discos. La información y los bits de paridad son distribuidos en todos los discos, garantizando que siempre se encontrarán en discos distintos. RAID5 tiene un mejor desempeño que RAID1, pero cuando uno de los discos falla, el desempeño de la lectura llega a degradarse.




RAID 10
- Este tipo de arreglo es una mezcla del arreglo distribuido y espejeo. La información se distribuye en un conjunto de discos como un RAIDø y, a su vez, este conjunto de discos es espejeado a otro conjunto de discos como un RAID1. RAID10 provee el nivel de protección y desempeño más alto para escritura y lectura que cualquier otro arreglo, debido a que contiene los beneficios de los arreglos distribuidos y espejo. Su único problema es el costo de implementación, al tener que usar siempre el doble discos.



Aqui un video en el que se explica los RAID:






Discos Opticos

Un disco óptico es un medio de almacenamiento de datos de tipo óptico, que consiste en un disco circular en el cual la información se codifica, guarda y almacena haciendo unos surcos microscópicos con un láser sobre una de las caras planas que lo componen.
Como todas las formas de los medios de almacenamiento, los discos ópticos se basan en la tecnología digital. Cualquier tipo o morfología de la información (texto, imagen,audio, vídeo, etc.) puede ser codificada en formato digital y almacenada en este tipo de soportes.
Para leer los datos en el disco, la luz del láser brilla a través del policarbonato e impacta sobre la capa de los datos. De que manera la luz del láser es reflejada o absorbida, es interpretado por la computadora como un 1 o un 0.
En un DVD la capa de los datos se encuentra en el medio del disco. En realidad un DVD tiene datos en dos capas. Puede acceder a los datos desde un lado o desde ambos lados. Es así como un DVD de doble lado y  doble capa, puede almacenar 4 veces los datos que podría guardar un DVD con un solo lado y una sola capa.  


Existen 3 tipos de discos ópticos:
- De Solo Lectura:
El tipo más común de disco óptico es el CD-ROM, que significa Compact Disk-Read Only
Memory (Disco Compacto - Memoria para Lectura solamente). Es exactamente igual que
un CD de audio pero el formato de grabado es bastante distinto de los discos CD-ROM
usados para cargar el software de las computadoras.

DVD significa Digital Video Device, o sea Dispositivo de Video Digital, pero ahora no significa realmente nada de eso!! Los DVDs se usan para grabar películas de cine.


-
- De Escritura Única:
Los discos ópticos que puede grabar en su propia computadora son discos CD-R, DVD-R y DVD+R, llamados discos escribibles o grabables.

Un disco escribible es útil, como un medio para poder hacer backups cuando necesite un almacenamiento de sus datos durante largo tiempo. Es menos eficiente para los datos que cambian con frecuencia, ya que deberá hacer un una nueva grabación cada vez que guarde sus datos. El costo será importante para tomar una decisión sobre el uso de dichos discos escribibles.














- Re-escribibles:

CD-RW, DVD-RW, DVD+RW, DVD+RAM.
La capa de datos de estos discos usan una película de aleación metálica de faz cambiante. Este film puede fundirse por el calor del láser, para así nivelar las marcas que tenía grabadas en su superficie y a continuación aplicar la luz láser nuevamente para grabarle nuevos datos.
En teoría puede borrar y escribir en estos discos tanto como 1000 veces para los CD-RW, y hasta 100,000 veces para los tipos DVD-RW.




Actualidad (3ra Generación)


Actualmente en comercio


- Blu-ray
- VMD o HD-VMD (Versatile Multilayer Disc "Disco versátil Multicapa")
- CBHD (China Blue High Definition)

En desarrollo

- FVD (Forward Versatile Disc)
- DMD (Digital Multilayer Disc "Disco Multicapa Digital") o FMD (Fluorescent Multilayer Disc)

Discontinuados

- HD DVD (High Density Digital Versatile Disc)





Futuro (4ta Generación)

Los siguientes formatos van más allá de los discos de tecer generación actuales y tienen el potencial de almacenar más de un terabyte (1 TB) de datos: 


- Holographic Versatile Disc (HVD)
- Protein-coated disc (PCD)

Hilos y hebras

Es la unidad de procesamiento más pequeña que puede ser planificada por un sistema operativo.

Un hilo es simplemente una tarea que puede ser ejecutada al mismo tiempo con otra tarea.
Un hilo es una característica que permite a una aplicación realizar varias tareas a la vez.
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.














Diferencias entre hilo y proceso:

- Hilos:
Los procesos son generalmente independientes, llevan bastante información de estados, e interactúan sólo a través de mecanismos de comunicación dados por el sistema.


- PROCESOS:
Los hilos generalmente comparten otros recursos de forma directa, además los hilos comparten datos y espacios de direcciones.


Ventajas de un hilo respecto a un proceso 

Se tarda mucho menos tiempo en crear un hilo nuevo en un proceso existente que en crear un proceso. Algunas investigaciones llevan al resultado que esto es así en un factor de 10.

- Se tarda mucho menos en terminar un hilo que un proceso, ya que cuando se elimina un
proceso se debe eliminar el BCP1 del mismo, mientras que un hilo se elimina su contexto y
pila.

Se tarda mucho menos tiempo en cambiar entre dos hilos de un mismo proceso.

Los hilos aumentan la eficiencia de la comunicación entre programas en
ejecución. Los hilos pueden comunicarse entre sí sin la invocación al núcleo.


ESTADOS DE UN HILO:
- Creación: Cuando se crea un proceso se crea un hilo para ese proceso. Luego, este hilo puede crear otros hilos dentro del mismo proceso, proporcionando un puntero de instrucción y los argumentos del nuevo hilo.
- Bloqueo: Cuando un hilo necesita esperar por un suceso, se bloquea (salvando sus registros de usuario, contador de programa y punteros de pila). Ahora el procesador podrá pasar a ejecutar otro hilo que esté al principio de los Listos mientras el anterior permanece bloqueado.
- Desbloqueo: Cuando el suceso por el que el hilo se bloqueó se produce, el mismo pasa a la final de los Listos.
Terminación: Cuando un hilo finaliza se liberan tanto su contexto como sus columnas.

LOS MULTIHILOS


Configuración de multiprocesamiento

Es la facultad del S.O. para utilizar varios procesadores físicos en el equipo, repartiendo el tratamiento de los procesos del S.O. y las aplicaciones.

Tipos de Multiproceso

- Multiproceso asimétrico
Cuando se trabaja de manera asimétrica, el sistema operativo selecciona a uno de los procesadores el cual jugará el papel de procesador maestro y servirá como apoyo para distribuir la carga a los demás procesadores, que reciben el nombre de esclavos.

- Multiproceso simétrico 
Cuando se trabaja de manera simétrica, el sistema operativo y las aplicaciones tiene sus peticiones de ejecución distribuidas en los distintos procesadores.

Configuraciones comunes de multiprocesamiento
- Configuración Maestro/Esclavo: se define también como un proceso asimétrico.


- Configuración débilmente acoplada: cada procesador mantiene sus tablas de comandos y administración de entrada y salida. 

Configuración fuertemente acoplada: las aplicaciones y el S.O.  Que las soportan trabajan en paralelo distribuyendo los procesos.




Aqui un video que explica el mulltiproceso


Paralelismo

Es una función que realiza el procesador para ejecutar varias tareas al mismo tiempo. Es decir, puede realizar varios cálculos simultáneamente, basado en el principio de dividir los problemas grandes para obtener varios problemas pequeños, que son posteriormente solucionados en el paralelo.
Ventajas y desventajas del paralelismo:
Ventajas
- Brinda a las empresas, instituciones y usuarios en general el beneficio de la velocidad.
- Ventaja competitiva, provee una mejora de los tiempos para la producción de nuevos productos y servicios.
- Colaboración y flexibilidad operacional.

Desventajas
Requieren de un gran número de ciclos de procesamiento o acceso a una gran cantidad de datos.
- Encontrar un hardware y un software que permitan brindar estas utilidades comúnmente proporciona inconvenientes de costos, seguridad y disponibilidad.

Clasificación de los sistemas paralelos:
Flujo de control: las instrucciones se van ejecutando según el orden en el que se encuentran en memoria.
- Flujo de datos: el flujo de ejecución es conducido por los datos; una instrucción será ejecutada cuando los operandos estén disponibles.
Reducción: la ejecución se realiza por demanda, una instrucción será ejecutada cuando otra necesite sus resultados. Son una clase de las de flujo de datos.-
- SISDSingle InstructionSingle Data): es un término que se refiere a una arquitectura en la que un sólo procesador, un uniprocesador, ejecuta un sólo flujo de instrucciones, para operar sobre datos almacenados en una única memoria.
- SIMD (Single InstructionMultiple Data): un solo flujo de instrucciones y múltiples en datos. Una unidad de control que gobierna varias unidades aritmético-lógicas.
- MISD (Multiple InstructionSingle Data): varios flujos de instrucciones y uno solo de datos. Arquitectura no implementada, consecuencia teórica de la clasificación. -
-MIMDMultiple InstructionMultiple Data): arquitectura multiprocesador con varios flujos tanto de instrucciones como de datos. Varios procesadores serie convencionales que manejan cada uno un flujo de instrucciones sobre un flujo de datos.


Niveles en el paralelismo: