lunes, 1 de junio de 2015

[Conceptos] Tipos de dispositivos.

Dispositivos Dedicados.

Un dispositivo dedicado es aquel que se asigna un proceso durante todo el tiempo que permanezca ejecutandose, indenpendiente de si lo ultiliza constantemente o solo durante determinados periodos. Logicamente hay dispositivos que admiten este tipo de asignacion  y otros que no.

Dispositivos compartidos.

Los discos se suelen compartir en todos los procesos para alamacenar informacion en ellos de manera simultanea. Esta es la estrategia adecuada para administrar los dispositivos de almacenamiento de acceso directo.

Aunque este tipo de asignacion es muy flexible, si se desea alcanzar mayor eficacia posible, puede ser muy dificil llevarlo a la practica, debiendo establecer una gestion de la cola de peticiones de e/s sobre el dispositivo.

Dispositivos Virtuales.

Son dispositivos que deberian ser dedicados, pero que de una u otra forma pueden ser compartidos, como por ejemplo una impresora manejada por spooling, ella tiene una tarea asignada que realizara hasta que termine, pero varias tareas pueden hacer uso de ella.

sábado, 23 de mayo de 2015

[Concepto] Spooling.

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.

viernes, 1 de mayo de 2015

[Conceptos][Exposicion] Semaforos

Un semáforo es una variable especial (o tipo abstracto de datos) que constituye el método clásico para restringir o permitir el acceso a recursos compartidos (por ejemplo, un recurso de almacenamiento del sistema o variables del código fuente) en un entorno de multiprocesamiento.

Los semáforos se emplean para permitir el acceso a diferentes partes de programas  donde se manipulan variables o recursos que deben ser accedidos de forma especial. Según el valor con que son inicializados se permiten a más o menos procesos utilizar el recurso de forma simultánea.
Un tipo simple de semáforo es el binario, que puede tomar solamente los valores 0 y 1. Se inicializan en 1 y son usados cuando sólo un proceso puede acceder a un recurso a la vez. Son esencialmente lo mismo que los mutex. Cuando el recurso está disponible, un proceso accede y decrementa el valor del semáforo con la operación P. El valor queda entonces en 0, lo que hace que si otro proceso intenta decrementarlo tenga que esperar. Cuando el proceso que decrementó el semáforo realiza una operación V, algún proceso que estaba esperando comienza a utilizar el recurso.



Para hacer que dos procesos se ejecuten en una secuencia predeterminada puede usarse un semáforo inicializado en 0. El proceso que debe ejecutar primero en la secuencia realiza la operación V sobre el semáforo antes del código que debe ser ejecutado después del otro proceso. Éste ejecuta la operación P. Si el segundo proceso en la secuencia es programado para ejecutar antes que el otro, al hacer P dormirá hasta que el primer proceso de la secuencia pase por su operación V. Este modo de uso se denomina señalación (signaling), y se usa para que un proceso o hilo de ejecución le haga saber a otro que algo ha sucedido.
 

[Conceto][Exposicion] Problema del banquero/babero.

Algoritmo del banquero

En sistemas operativos 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.
Este algoritmo usualmente es explicado usando la analogía con el funcionamiento de un banco. Los clientes representan a los procesos, que tienen un crédito límite, y el dinero representa a los recursos. El banquero es el sistema operativo.
El banco confía en que no tendrá que permitir a todos sus clientes la utilización de todo su crédito a la vez. El banco también asume que si un cliente maximiza su crédito será capaz de terminar sus negocios y devolver el dinero a la entidad, permitiendo servir a otros clientes.
El algoritmo mantiene al sistema en un estado seguro. Un sistema se encuentra en un estado seguro si existe un orden en que pueden concederse las peticiones de recursos a todos los procesos, previniendo el interbloqueo. El algoritmo del banquero funciona encontrando estados de este tipo.
Los procesos piden recursos, y son complacidos siempre y cuando el sistema se mantenga en un estado seguro después de la concesión. De lo contrario, el proceso es suspendido hasta que otro proceso libere recursos suficientes.




En términos más formales, un sistema se encuentra en un estado seguro si existe una secuencia segura. Una secuencia segura es una sucesión de procesos, <P_1,..., P_n>, donde para un proceso P_i, el pedido de recursos puede ser satisfecho con los recursos disponibles sumados los recursos que están siendo utilizados por P_j, donde j < i. Si no hay suficientes recursos para el proceso P_i, debe esperar hasta que algún proceso P_j termine su ejecución y libere sus recursos. Recién entonces podrá P_i tomar los recursos necesarios, utilizarlos y terminar su ejecución. Al suceder esto, el proceso Pi+1 puede tomar los recursos que necesite, y así sucesivamente. Si una secuencia de este tipo no existe, el sistema se dice que está en un estado inseguro, aunque esto no implica que esté bloqueado.
Así, el uso de este tipo de algoritmo permite impedir el interbloqueo, pero supone una serie de restricciones:
  • Se debe conocer la máxima demanda de recursos por anticipado.
  • Los procesos deben ser independientes, es decir que puedan ser ejecutados en cualquier orden. Por lo tanto su ejecución no debe estar forzada por condiciones de sincronización.
  • Debe haber un número fijo de recursos a utilizar y un número fijo de procesos.
  • Los procesos no pueden finalizar mientras retengan recursos.
  •  
Algoritmo del barbero.

el problema del barbero durmiente es un problema de sincronización. El problema consiste en una barbería en la que trabaja un barbero que tiene un único sillón de barbero y varias sillas para esperar. Cuando no hay clientes, el barbero se sienta en una silla y se duerme. Cuando llega un nuevo cliente, éste o bien despierta al barbero o —si el barbero está afeitando a otro cliente— se sienta en una silla (o se va si todas las sillas están ocupadas por clientes esperando). El problema consiste en realizar la actividad del barbero sin que ocurran condiciones de carrera. La solución implica el uso de semáforos y objetos de exclusión mutua para proteger la sección crítica.

Un semáforo es una variable protegida (o tipo abstracto de datos) que constituye el método clásico para restringir o permitir el acceso a recursos compartidos (por ejemplo, un recurso de almacenamiento) en un entorno de multiprocesamiento. Fueron inventados por Edsger Dijkstra y se usaron por primera vez en el sistema operativo THEOS.
En electrónica y en programación concurrente, se conoce como condición de carrera al error que se produce en programas o circuitos lógicos que no se han construido adecuadamente para su ejecución simultánea con otros procesos.


Adicionalmente se encuentra la exposicion de ese dia.

Problema Banquero

martes, 28 de abril de 2015

[Video][Concepto] Arreglo de Discos RAID

Video referido en clase para la temática de discos RAID.
 

[Conceptos][Exposicion] Discos Opticos

El 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.
Una unidad de disco óptico usa rayos láser en lugar de imanes para leer y escribir la información en la superficie del disco. 

Aunque no son tan rápidos como los discos duros, los discos ópticos tienen mucho espacio para almacenar datos, son menos sensibles a las fluctuaciones ambientales y proporcionan mayor almacenamiento a un costo menor. Su primera aplicación comercial masiva fue el CD de música. Los discos ópticos varían su capacidad de almacenamiento, aunque hay de muchos tipos, los más habituales son: CD de 700 MB, DVD de 4,7 GB y Blu-ray de 30 GB en una sola cara. Tanto los discos ópticos como las unidades de discos ópticos, pueden ser de sólo lectura o de lectura y escritura.


Los discos PD (Phase change/Dual) se basan en la tecnología de cambio de fase tratada, pero las pistas generadas son concéntricas, como en los discos magnéticos (en los CD-WR se tiene una sola pista en espiral) Las unidades PD también pueden leer discos con espiral (CD-ROM, CD-R, CD-RW), de donde proviene la denominación "dual". Por tal motivo aparecen con la denominación PD/CD-ROM
Otras Tecnologías DVD-ROM
Los DVD-ROM (Digital Versatil Disk) de "simple capa" tienen el mismo tamaño que un CD-ROM de 680 MB, y se basan en la misma tecnología de grabación y lectura que éstos, pero pueden almacenar 4,7 GB de datos (7 veces más), video o audio. Típicamente pueden transferir unos 1,3 MB/seg para computación (como un CDx1O). Esto se ha logrado:

  • Disminuyendo a la mitad la longitud de los "pits" en relación a un CD-ROM
  • Llevando al doble que un CD-ROM el número de vueltas por pulgada radial de la espiral(un CD-ROM presenta 16000 vueltas por pulgada radial).
  • Usando un haz láser de color azul, de menor longitud de onda que el rojo, a- fin de poder sensar "pits" de menor longitud.
 

 
El DVD estándar que se comercializará en el mercado es fruto del acuerdo entre Phillips - Sony y Toshiba. Este DVD puede almacenar 2 hs de video de calidad, con títulos y sonido. Asimismo, los 4,7 GB permiten guardar 135 minutos de films (duración típica de una película de cine) en reemplazo de una cinta de video. Esto es así, dado que con compresión MPEG2 se requiere, para transferir imagen, sonido y títulos, cerca de 0,5 MB/seg. Si efectuamos: 135 min x 60 seg/min x 0,5 MB/seg., resulta un valor cercano a 4,7 GB.
Los DVD-ROM de "doble capa" presentan (figura 3) una capa semi-transparente reflectiva con oro (que puede guardar 3,8 GB), la cual se encuentra debajo de la capa reflectora (4,7 GB) metalizada con plata. Sumando ambas capacidades resultan en total 8,5 GB.
Para leer la capa semi-transparente el haz láser es enfocado en ella con baja potencia, mientras que la lectura de la capa reflectiva se realiza enfocando en ésta el haz, ahora con mayor potencia, para que atraviese la capa semi-transparente al incidir, y cuando se refleja.
También se están fabricando DVD-ROM de "simple capa" y "doble cara", para ser leídos en ambas caras, con lo cual se logra 4,7 GB x 2 = 9,4 GB; y DVD-ROM de "doble capa" y "doble cara", de 8,5 x 2 = 17 GB. Estos CD están muy expuestos a las rayaduras, por ser más finas las capas protectoras transparentes( Ver figura debajo)

La presente es la exposicion del tema en clase.

[Conceptos][Exposicion] Paralelismo

El paralelismo es una forma de computación en la cual varios cálculos pueden realizarse simultáneamente, basado en el principio de dividir los problemas grandes para obtener varios problemas pequeños, que son posteriormente solucionados en paralelo. Hay varios tipos diferentes de paralelismo: nivel de bit, nivel de instrucción, de datos y de tarea. El paralelismo ha sido empleado durante muchos años, sobre todo para la Computación de alto rendimiento




Las computadoras paralelas pueden clasificarse según el nivel de paralelismo que admite su hardware: equipos con procesadores multinúcleo y multi-procesador que tienen múltiples elementos de procesamiento dentro de una sola máquina y los clústeres, MPPS y grids que utilizan varios equipos para trabajar en la misma tarea. Muchas veces, para acelerar tareas específicas, se utilizan arquitecturas especializadas de computación en paralelo junto a procesadores tradicionales.
Los programas informáticos paralelos son más difíciles de escribir que los secuenciales,5 porque la concurrencia introduce nuevos tipos de errores de software, siendo las condiciones de carrera los más comunes. La comunicación y sincronización entre diferentes sub tareas son algunos de los mayores obstáculos para obtener un buen rendimiento del programa paralelo.

Para má información consultar la exposicion de ese dia.

Paralelismo
.