domingo, 3 de mayo de 2015

Discos opticos

Los discos ópticos aparecieron a fines de la década de los 80’, siendo utilizado como un medio de almacenamiento de información para la televisión. Su alta capacidad y su fácil manejo, hicieron que este dispositivo se popularice y comience a comercializarse en 1988 y a utilizarse en las computadoras.

Existen 3 tipos de discos ópticos:

-Lectura solamente.
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.

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

-Re-escritura.
Un disco re-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.

Funciona de esta manera

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.

Arreglos de discos

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.



Multiprocesos

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.

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.

-Configuración Maestro/Esclavo: se define también como un proceso asimétrico

-Configuración débilmente acoplada: cada procesador mantiene sus tablas de comando 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.

Para entender el mejor un video de multiprocesos.



INANICIÓN Y PARARLELISMO

Inanición
Es un problema relacionado con los sistemas multitarea, 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.

Comparación con interbloqueo
La inanición es una situación similar al interbloqueo, pero las causas son diferentes. En el interbloqueo, 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.




Paralelismo

El paralelismo se basa en la informática, 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.

Existen varios tipos de paralelismo, como son:

- Paralelismo independiente : no existe sincronización explícita entre los procesos. Cada uno representa una aplicación o trabajo separado e independiente. Un uso clásico de este tipo de paralelismo de dan en sistemas de tiempo compartido.

- Paralelismo de grano grueso y muy grueso : existe una sincronización entre los procesos pero a un nivel muy burdo. Este tipo de situación se maneja fácilmente con un conjunto de procesos concurrentes ejecutando en un monoprocesador multiprogramado y puede verse respaldado por un multiprocesador con escasos cambios o incluso ninguno en el software del usuario.

-Paralelismo de grano fino : significa un uso del paralelismo mucho más complejo que el que se consigue con el uso de hilos. Si bien gran parte del trabajo se realiza en aplicaciones muy paralelas, este es un campo, hasta el momento, muy especializado y fragmentado, con varias soluciones diferentes.




Un video para entender mejor la inanición y marea de resolverlo



Semaforos

Un semáforo es una variable especial o tipo de dato que se le puede asignar un valor o un conjunto de operaciones elementales para poder restringir o dar paso "garantizar" el acceso a los recursos de un sistema operativo a una tarea  o proceso con un entorno de multiprocesamiento implementado inicialmente por dijkstra en 1968.



Caracteristicas
•Dependiendo del número de recursos a gestionar, un semáforo puede ser
  1- Semáforo contador (Más de 1 recurso)
  2- Semáforo binario (1 solo recurso)
•Un semáforo se constituye por dos métodos elementales
  - wait()
  Si el valor del semáforo es mayor a cero, indica que un proceso más puede acceder al recurso, el   contador del semáforo se disminuye en uno, y el proceso continúa con éxito. Si el semáforo es   cero, el proceso queda esperando hasta que es despertado por otro proceso.
  - signal()
  Cuando el proceso ha terminado de utilizar el recurso, éste lo indica al semáforo mediante signal(), el   que aumenta el valor del semáforo en 1. Si existe algún proceso esperando su turno para utilizar el   recurso, el proceso que finaliza puede despertarlo, o, de lo contrario, se incrementa el contador.

Observaciones
•Cuando se crea un semáforo, se pueden inicializar su valor con cualquier entero, pero después de eso las únicas que pueden hacerlo son los incrementos y decrementos en una unidad.
•Si los procesos no indican al semáforo el término del uso del recurso protegido, puede provocarse un bloqueo.
•No hace falta que un proceso libere su propio recurso, sino que la operación signal() puede ser ejecutada por otro proceso.
•Un semáforo simple no es suficiente para imponer un orden de acceso a los recursos.



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 interbloqueos.


CONDICIONES NECESARIAS PARA QUE EXISTA UN BLOQUEO

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:
 Los procesos mantienen los recursos que ya les habían sido asignados mientras esperan recursos adicionales.
         
 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:
 Existe una cadena circular de procesos en que cada uno mantiene a uno o más recursos que son requeridos por el siguiente en la cadena.

CASOS DE BLOQUEO MUTUO
Un bloqueo mutuo suele ocurrir cuando recursos no compartibles como archivos, impresoras o escáneres, se asignan trabajos que requieren de otros recursos compatibles: recursos que han sido bloqueados por otros trabajos.
También puede ocurrir en recursos compartibles como discos y bases de datos.


Cisc y Risc


-CISC (complex instruction set computer) Computadoras con un conjunto de instrucciones complejo.
Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza por ser muy amplio y permitir operaciones complejas entre operando situados en la memoria o en los registros internos, en contraposición a la arquitectura RISC.
Este tipo de arquitectura dificulta el paralelismo entre instrucciones

-RISC (reduced instruction set computer) Computadoras con un conjunto de instrucciones reducido.
En la arquitectura computacional, RISC (del inglés reduced instruction set computer) es un tipo de
microprocesador con las siguientes características
fundamentales:
-Instrucciones de tamaño fijo y presentadas en un
reducido número de formatos.
-Sólo las instrucciones de carga y
almacenamiento acceden a la memoria de datos.



Historia
Una de las primeras decisiones a la hora de diseñar un microprocesador es decidir cuál
será su juego de instrucciones.

-Primero: el juego de instrucciones decide el diseño físico del conjunto

-Segundo: cualquier operación que deba ejecutarse en el microprocesador deberá poder ser descrita en términos de un lenguaje de estas instrucciones.

Frente a esta cuestión caben dos filosofías de diseño; máquinas denominadas CISC y máquinas denominadas RISC. Hasta hace solo algunos años, la división era en que RISC se utilizaba para entornos de red, mientras que CISC se aplicaba en ordenadores domésticos.




Procesos



Un proceso es una tarea en ejecución, no todo lo que esta en la memoria se procesa
- Al terminar la tarea se puede por dos opciones, puede llegar bien o se aborta.
- El Bloqueo se produce el 90% por la intervención de un humano, y el 10% por la memoria virtual
- Hasta que no se haga algo no se sale del bloqueo