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
.

[Concepto][Exposicion] Multi-Procesamiento.


Multiprocesamiento, también llamado Multiproceso, en el cual tenemos la acción de dos o más Unidades de Procesamiento en las cuales están abocados, en cada una de ellas, una cantidad determinada de procesos, realizando cada una de ellas una parte o un todo del mismo. Conocemos entonces al Multiproceso, tal como su nombre lo indica, a la aptitud para hacer uso de dos o más procesos que concurren en un mismo sistema, diferenciándose lógicamente de aquellos sistemas en los que solamente pueden realizar un proceso único en un instante específico. 

La capacidad de Multitarea permite entonces hacer que una Unidad Central de Procesamiento pueda ser compartida por una gran cantidad de procesos que estén corriendo al mismo tiempo, mientras que en las últimas tecnologías propuestas, donde tenemos Múltiples CPU, podemos contar con la realización de distintas etapas del mismo proceso dividiéndose estas tareas en cada uno de los núcleos que se posean. La tarea de Multiproceso raramente sea aplicada a los usos generales del sistema, ya que existen una gran variedad de aplicaciones que realizan un manejo de Estado o Contexto (es decir, Datos Internos) en una variable cantidad al mismo tiempo, considerándose que cada uno de estos datos son incorruptibles y no pueden ser duplicados o alterados durante el proceso. 



Sin embargo, es posible que esta alteración ocurra en caso de realizarse dos o más copias de un mismo Proceso, en el caso de que los núcleos del Procesador intenten escribir o leer su Contexto al mismo tiempo. Para evitar esta corrupción de datos es necesario que en el momento de la Programación (es decir, el diseño del Software que ordenará la ejecución de los Procesos) existan herramientas de comprobación y bloqueo, de modo tal que solamente se admita a una copia del Procedimiento con la aptitud de poder modificar sus valores.

 Para mas información consultar la exposicion de ese dia.

Multiprocesamiento 
Un concepto que está estrechamente ligado a esta funcionalidad es justamente el de Multiprocesamiento, también llamado Multiproceso, en el cual tenemos la acción de dos o más Unidades de Procesamiento en las cuales están abocados, en cada una de ellas, una cantidad determinada de procesos, realizando cada una de ellas una parte o un todo del mismo.

... Fuente http://www.mastermagazine.info/termino/6037.php
Un concepto que está estrechamente ligado a esta funcionalidad es justamente el de Multiprocesamiento, también llamado Multiproceso, en el cual tenemos la acción de dos o más Unidades de Procesamiento en las cuales están abocados, en cada una de ellas, una cantidad determinada de procesos, realizando cada una de ellas una parte o un todo del mismo.

... Fuente http://www.mastermagazine.info/termino/6037.php
Multiprocesamiento, también llamado Multiproceso, en el cual tenemos la acción de dos o más Unidades de Procesamiento en las cuales están abocados, en cada una de ellas, una cantidad determinada de procesos, realizando cada una de ellas una parte o un todo del mismo. Conocemos entonces al Multiproceso, tal como su nombre lo indica, a la aptitud para hacer uso de dos o más procesos que concurren en un mismo sistema, diferenciándose lógicamente de aquellos sistemas en los que solamente pueden realizar un proceso único en un instante específico. La capacidad de Multitarea permite entonces hacer que una Unidad Central de Procesamiento pueda ser compartida por una gran cantidad de procesos que estén corriendo al mismo tiempo, mientras que en las últimas tecnologías propuestas, donde tenemos Múltiples CPU, podemos contar con la realización de distintas etapas del mismo proceso dividiéndose estas tareas en cada uno de los núcleos que se posean. La tarea de Multiproceso raramente sea aplicada a los usos generales del sistema, ya que existen una gran variedad de aplicaciones que realizan un manejo de Estado o Contexto (es decir, Datos Internos) en una variable cantidad al mismo tiempo, considerándose que cada uno de estos datos son incorruptibles y no pueden ser duplicados o alterados durante el proceso. Sin embargo, es posible que esta alteración ocurra en caso de realizarse dos o más copias de un mismo Proceso, en el caso de que los núcleos del Procesador intenten escribir o leer su Contexto al mismo tiempo. Para evitar esta corrupción de datos es necesario que en el momento de la Programación (es decir, el diseño del Software que ordenará la ejecución de los Procesos) existan herramientas de comprobación y bloqueo, de modo tal que solamente se admita a una copia del Procedimiento con la aptitud de poder modificar sus valores.

... Fuente http://www.mastermagazine.info/termino/6037.php
Multiprocesamiento, también llamado Multiproceso, en el cual tenemos la acción de dos o más Unidades de Procesamiento en las cuales están abocados, en cada una de ellas, una cantidad determinada de procesos, realizando cada una de ellas una parte o un todo del mismo. Conocemos entonces al Multiproceso, tal como su nombre lo indica, a la aptitud para hacer uso de dos o más procesos que concurren en un mismo sistema, diferenciándose lógicamente de aquellos sistemas en los que solamente pueden realizar un proceso único en un instante específico. La capacidad de Multitarea permite entonces hacer que una Unidad Central de Procesamiento pueda ser compartida por una gran cantidad de procesos que estén corriendo al mismo tiempo, mientras que en las últimas tecnologías propuestas, donde tenemos Múltiples CPU, podemos contar con la realización de distintas etapas del mismo proceso dividiéndose estas tareas en cada uno de los núcleos que se posean. La tarea de Multiproceso raramente sea aplicada a los usos generales del sistema, ya que existen una gran variedad de aplicaciones que realizan un manejo de Estado o Contexto (es decir, Datos Internos) en una variable cantidad al mismo tiempo, considerándose que cada uno de estos datos son incorruptibles y no pueden ser duplicados o alterados durante el proceso. Sin embargo, es posible que esta alteración ocurra en caso de realizarse dos o más copias de un mismo Proceso, en el caso de que los núcleos del Procesador intenten escribir o leer su Contexto al mismo tiempo. Para evitar esta corrupción de datos es necesario que en el momento de la Programación (es decir, el diseño del Software que ordenará la ejecución de los Procesos) existan herramientas de comprobación y bloqueo, de modo tal que solamente se admita a una copia del Procedimiento con la aptitud de poder modificar sus valores.

... Fuente http://www.mastermagazine.info/termino/6037.php
Multiprocesamiento, también llamado Multiproceso, en el cual tenemos la acción de dos o más Unidades de Procesamiento en las cuales están abocados, en cada una de ellas, una cantidad determinada de procesos, realizando cada una de ellas una parte o un todo del mismo. Conocemos entonces al Multiproceso, tal como su nombre lo indica, a la aptitud para hacer uso de dos o más procesos que concurren en un mismo sistema, diferenciándose lógicamente de aquellos sistemas en los que solamente pueden realizar un proceso único en un instante específico. La capacidad de Multitarea permite entonces hacer que una Unidad Central de Procesamiento pueda ser compartida por una gran cantidad de procesos que estén corriendo al mismo tiempo, mientras que en las últimas tecnologías propuestas, donde tenemos Múltiples CPU, podemos contar con la realización de distintas etapas del mismo proceso dividiéndose estas tareas en cada uno de los núcleos que se posean. La tarea de Multiproceso raramente sea aplicada a los usos generales del sistema, ya que existen una gran variedad de aplicaciones que realizan un manejo de Estado o Contexto (es decir, Datos Internos) en una variable cantidad al mismo tiempo, considerándose que cada uno de estos datos son incorruptibles y no pueden ser duplicados o alterados durante el proceso. Sin embargo, es posible que esta alteración ocurra en caso de realizarse dos o más copias de un mismo Proceso, en el caso de que los núcleos del Procesador intenten escribir o leer su Contexto al mismo tiempo. Para evitar esta corrupción de datos es necesario que en el momento de la Programación (es decir, el diseño del Software que ordenará la ejecución de los Procesos) existan herramientas de comprobación y bloqueo, de modo tal que solamente se admita a una copia del Procedimiento con la aptitud de poder modificar sus valores.

... Fuente http://www.mastermagazine.info/termino/6037.php
Multiprocesamiento, también llamado Multiproceso, en el cual tenemos la acción de dos o más Unidades de Procesamiento en las cuales están abocados, en cada una de ellas, una cantidad determinada de procesos, realizando cada una de ellas una parte o un todo del mismo. Conocemos entonces al Multiproceso, tal como su nombre lo indica, a la aptitud para hacer uso de dos o más procesos que concurren en un mismo sistema, diferenciándose lógicamente de aquellos sistemas en los que solamente pueden realizar un proceso único en un instante específico. La capacidad de Multitarea permite entonces hacer que una Unidad Central de Procesamiento pueda ser compartida por una gran cantidad de procesos que estén corriendo al mismo tiempo, mientras que en las últimas tecnologías propuestas, donde tenemos Múltiples CPU, podemos contar con la realización de distintas etapas del mismo proceso dividiéndose estas tareas en cada uno de los núcleos que se posean. La tarea de Multiproceso raramente sea aplicada a los usos generales del sistema, ya que existen una gran variedad de aplicaciones que realizan un manejo de Estado o Contexto (es decir, Datos Internos) en una variable cantidad al mismo tiempo, considerándose que cada uno de estos datos son incorruptibles y no pueden ser duplicados o alterados durante el proceso.

... Fuente http://www.mastermagazine.info/termino/6037.php
Multiprocesamiento, también llamado Multiproceso, en el cual tenemos la acción de dos o más Unidades de Procesamiento en las cuales están abocados, en cada una de ellas, una cantidad determinada de procesos, realizando cada una de ellas una parte o un todo del mismo. Conocemos entonces al Multiproceso, tal como su nombre lo indica, a la aptitud para hacer uso de dos o más procesos que concurren en un mismo sistema, diferenciándose lógicamente de aquellos sistemas en los que solamente pueden realizar un proceso único en un instante específico. La capacidad de Multitarea permite entonces hacer que una Unidad Central de Procesamiento pueda ser compartida por una gran cantidad de procesos que estén corriendo al mismo tiempo, mientras que en las últimas tecnologías propuestas, donde tenemos Múltiples CPU, podemos contar con la realización de distintas etapas del mismo proceso dividiéndose estas tareas en cada uno de los núcleos que se posean. La tarea de Multiproceso raramente sea aplicada a los usos generales del sistema, ya que existen una gran variedad de aplicaciones que realizan un manejo de Estado o Contexto (es decir, Datos Internos) en una variable cantidad al mismo tiempo, considerándose que cada uno de estos datos son incorruptibles y no pueden ser duplicados o alterados durante el proceso.

... Fuente http://www.mastermagazine.info/termino/6037.php

lunes, 27 de abril de 2015

[Concepto][Exposicion] Inanicion de un sistema.

La inanición (starvation en inglés) es un problema relacionado con los sistemas multi-tarea, donde a un proceso o un hilo de ejecución se le deniega siempre el acceso a un recurso compartido. Sin este recurso, la tarea a ejecutar no puede ser nunca finalizada.
La inanición es una situación similar al interbloqueo, pero las causas son diferentes. 

En el inter bloqueo, dos procesos o dos hilos de ejecución llegan a un punto muerto cuando cada uno de ellos necesita un recurso que es ocupado por el otro. En cambio, en este caso, uno o más procesos están esperando recursos ocupados por otros procesos que no se encuentran necesariamente en ningún punto muerto.
Un caso de inanición la ilustra perfectamente la paradoja conocida como la cena de los filósofos de Edsger Dijkstra cuando se da el caso de que todos los filósofos cogen el tenedor a la vez.



La utilización de prioridades en muchos sistemas operativos multitarea podría causar que procesos de alta prioridad estuvieran ejecutándose siempre y no permitieran la ejecución de procesos de baja prioridad, causando inanición en estos. Es más, si un proceso de alta prioridad está pendiente del resultado de un proceso de baja prioridad que no se ejecuta nunca, entonces este proceso de alta prioridad también experimenta inanición (esta situación se conoce como inversión de prioridades). Para evitar estas situaciones los planificadores modernos incorporan algoritmos para asegurar que todos los procesos reciben un mínimo de tiempo de CPU para ejecutarse.

Para ampliar la informacion, se dispone de la exposicion de ese dia.

Inanicion de los sistemas 

martes, 21 de abril de 2015

[Concepto][Exposicion] Bloqueo Mutuo.

En sistemas operativos, el bloqueo mutuo es el bloqueo permanente de un conjunto de procesos o hilos de ejecución en un sistema concurrente que compiten por recursos del sistema o bien se comunican entre ellos. A diferencia de otros problemas de concurrencia de procesos, no existe una solución general para los inter bloqueos. Todos los interbloqueos surgen de necesidades que no pueden ser satisfechas, por parte de dos o más procesos.

Condiciones necesarias.

Estas condiciones deben cumplirse simultáneamente y no son totalmente independientes entre ellas.
Sean los procesos P0, P1, ..., Pn y los recursos R0, R1, ..., Rm:
  • Condición de exclusión mutua: existencia de al menos de un recurso compartido por los procesos, al cual sólo puede acceder uno simultáneamente.
  • Condición de retención y espera: al menos un proceso Pi ha adquirido un recurso Ri, y lo retiene mientras espera al menos un recurso Rj que ya ha sido asignado a otro proceso.
  • Condición de no expropiación: los recursos no pueden ser expropiados por los procesos, es decir, los recursos sólo podrán ser liberados voluntariamente por sus propietarios.
  • Condición de espera circular: dado el conjunto de procesos P0...Pm(subconjunto del total de procesos original),P0 está esperando un recurso adquirido por P1, que está esperando un recurso adquirido por P2,... ,que está esperando un recurso adquirido por Pm, que está esperando un recurso adquirido por P0. Esta condición implica la condición de retención y espera.
  •  
Para informacion adcional sobre Bloqueo Mutuo, consultar la exposicion de ese dia.

Bloqueo Mutuo 

[Concepto][Exposicion] RISC Y CISC

RISC

En arquitectura computacional, RISC (del inglés Reduced Instruction Set Computer, en español Computador con Conjunto de Instrucciones Reducidas) es un tipo de diseño de CPU generalmente utilizado en microprocesadores o micro controladores con las siguientes características fundamentales:
  1. Instrucciones de tamaño fijo y presentadas en un reducido número de formatos.
  2. Sólo las instrucciones de carga y almacenamiento acceden a la memoria de datos.
Además estos procesadores suelen disponer de muchos registros de propósito general.
El objetivo de diseñar máquinas con esta arquitectura es posibilitar la segmentación y el paralelismo en la ejecución de instrucciones y reducir los accesos a memoria. Las máquinas RISC protagonizan la tendencia actual de construcción de microprocesadores. PowerPC, DEC Alpha, MIPS, ARM, SPARC son ejemplos de algunos de ellos.
RISC es una filosofía de diseño de CPU para computadora que está a favor de conjuntos de instrucciones pequeñas y simples que toman menor tiempo para ejecutarse. El tipo de procesador más comúnmente utilizado en equipos de escritorio, el x86, está basado en CISC en lugar de RISC, aunque las versiones más nuevas traducen instrucciones basadas en CISC x86 a instrucciones más simples basadas en RISC para uso interno antes de su ejecución.


SISC

(Simple Instruction Set Computing) es un tipo de arquitectura de microprocesadores orientada al procesamiento de tareas en paralelo. Esto se implementa mediante el uso de la tecnología VLSI, que permite a múltiples dispositivos de bajo costo que se utilicen conjuntamente para resolver un problema particular dividido en partes disjuntas. La arquitectura RISC es un subconjunto del SISC, centrada en la velocidad de procesamiento debido a un conjunto de instrucciones reducido. Microprocesadores SISC (o RISC) nunca han logrado amenazar el amplio dominio de los procesadores CISC en los ordenadores personales, debido a su popularidad y al aumento constante en la capacidad de procesamiento de los mismos. Por lo tanto, el uso de RISC y SISC sigue limitado a necesidades muy específicas de procesamiento, como en los procesadores DSP.





Adicionalmente encontraremos información profundizada en la presentación realizada ese dia. 

[Concepto] Procesos



Un proceso puede informalmente entenderse como un programa en ejecución. Formalmente un proceso es "Una unidad de actividad que se caracteriza por la ejecución de una secuencia de instrucciones, un estado actual, y un conjunto de recursos del sistema asociados".

Cada proceso tiene su contador de programa, registros y variables, aislados de otros procesos, incluso siendo el mismo programa en ejecución 2 veces. Cuando este último caso sucede, el sistema operativo usa la misma región de memoria de código, debido a que dicho código no cambiará, a menos que se ejecute una versión distinta del programa.
Los procesos son gestionados por el sistema operativo y están formados por:
  • Las instrucciones de un programa destinadas a ser ejecutadas por el microprocesador.
  • Su estado de ejecución en un momento dado, esto es, los valores de los registros de la unidad central de procesamiento para dicho programa.
  • Su memoria de trabajo (memoria crítica), es decir, la memoria que ha reservado y sus contenidos.
  • Otra información que permite al sistema operativo su planificación.
Un proceso se rige en pequeñas porciones, conocidas como páginas, y cada proceso tiene su propia tabla de paginación, fungiendo como una optimización del sistema operativo ante los fallos de página.