miércoles, 18 de julio de 2012

Algoritmos

Por definición un algoritmo es la recopilación de los pasos lógicos ordenados para resolver un problema; es decir,un algoritmo enumera todo lo que tenemos que hacer cuando se nos presenta un problema a resolver.

Entonces vamos a plantear un problema; que aunque burdo; no sirve para ejemplificar y explicar lo que son los algoritmos. Ponerse un par de zapatos.


Desde un punto de vista sencillo, el ponerse un zapato no representa gran problema, solo tomas el zapato, te lo pones en un pie y lo anudas. Pero desde un punto de vista como informático debes pensar un poco mas a detalle. Esto implica mucho mas observaciones que solo tomarlo y ponerlo en un pie; es así como podemos plantear este algoritmo.
  1. Elegir un par de zapatos.
    1. Verificar que tenemos los dos zapatos del par
  2. Escoger un par de calcetines acorde al color de los zapatos
  3. Ponerse un calcetín en un pie
    1. Tomar el calcetín por el extremo abierto
    2. Verificar que el calcetín esta derecho; la parte del talo hacia abajo
    3. Poner la punta del pie en la boca del calcetín
    4. Deslizar el pie dentro
    5. Acomodar las arrugas a lo largo del pie
  4. Poner el otro calcetín en el otro pie
    1. Tomar el calcetín por el extremo abierto
    2. Verificar que el calcetín esta derecho; la parte del talo hacia abajo
    3. Poner la punta del pie en la boca del calcetín
    4. Deslizar el pie dentro
    5. Acomodar las arrugas a lo largo del pie
  5. Tomar un zapato
    1. Verificar de que pie es el zapato
    2. Verificar que las agujetas están desanudadas
      1. Si están desanudadas soltarlas
    3. Colocar el zapato en el pie correspondiente
    4. Acomodarlo
    5. Ajustar las agujetas
    6. Anudar las agujetas
  6. Tomar el otro zapato
    1. Verificar de que pie es el zapato
    2. Verificar que las agujetas están desanudadas
      1. Si están desanudadas soltarlas
    3. Colocar el zapato en el pie correspondiente
    4. Acomodarlo
    5. Ajustar las agujetas
    6. Anudar las agujetas

Como informático es necesario analizar mas las cosas, solo en las caricaturas podemos ver a Dexter en su laboratorio ordenandole a su computadora a hacer cosas, realizar búsquedas y ver como esta lo hace como por arte de magia, sin pensar en lo que hay detrás. Esto son los algoritmos, cada programa son un conjunto de algoritmos, de hecho, al oprimir el botón de "negrilla" en el editor de texto este no es otra cosa que una rutina o algoritmo que obedece el programa para realizar una función. En google al ingresar un criterio de búsqueda y dar click en "buscar" esto desata otro algoritmo para realizar por el servidor. Es entonces que una computadora sin algoritmos no puede realizar nada, seria lo mas parecido a tener una licuadora descompuesta ya que una pc no puede moler una salsa.

Ahora bien los algoritmos responden a ciertas estructuras ya establecidas (Estructuras condicionales y repetitivas), pues estas nos van a permitir un análisis mas sencillo del problema o hacerlo mas preciso. Como ya mencione nosotros damos por hecho muchas cosas. En el ejemplo anterior solo mencionamos en escoger unos zapatos y unos calcetines; los pusimos en una forma lógica, primero los calcetines y después los zapatos, aunque podemos hacerlo al revés no seria correcto. Pero también podemos afinar mas nuestro algoritmo si incluimos una rutina para hacer que el color de los calcetines y el de los zapatos sea coherente. Hay que recordar que existen reglas de acerca de esto ya que unos zapatos negros con calcetines blancos no se ven bien, o que dentro de el cajón de los calcetines en probable encontrar calcetas deportivas, calcetines con rombos, de colores y que los zapatos deben combinar con el cinturón que utilicemos y el pantalón.

Esto lo detallare mas en la siguiente entrada.

sábado, 14 de julio de 2012

Diferencias del algoritmo de Google para móviles


El SEO debería adaptarse en función de si las búsquedas se realizan desde Smarthpones o lugares fijos.

Google por ejemplo utiliza el algoritmo Googlebot-Mobile para ofrecer los resultados las búsquedas a al navegar desde teléfonos móviles. Y éste algoritmo no es el mismo que el de las búsquedas en Pcs y otros ordenadores de sobremesa o portátiles.

La diferencia básica es que por una parte, el algoritmo Googlebot-Mobile tiene el cuenta que la web en cuestión tenga una visualización correcta en el móvil a la hora ofrecer sus resultados. Si no la tiene, el buscador tenderá a retrasar éstas webs en el orden de resultados.
Por eso son fundamentales las versiones web para móviles además de para ofrecer un contenido legible y manejable al usuario.

Otra diferencia del algoritmo Googlebot-Mobile respecto al de “sobremesa”, es que en los resultados del móvil hay una mayor preferencia por la geolocalización, es decir se priman resultados cuyas webs o servicios sean cercanos a nosotros.

Ésto esta pensado con la lógica evidente de que desde el móvil tendemos mas a buscar resultados por geolocalización, para acudir a lugares de trabajo, buscar direcciones de bares o eventos o para encontrar un servicio en la ciudad.

Sin embargo hay que tener en cuenta que en los últimos años Google ha optimizado también su algoritmo clásico para ofrecer una mejor geolocalización y que el el boom de las aplicaciones móviles resta importancia a este aspecto, al igual que Foursquare y otras redes sociales, con lo que las diferencias entre los dos algoritmos se han limado.

jueves, 7 de junio de 2012

Breve historia del sistema operativo

  Entender el sistema operativo es comprender el funcionamiento de toda la maquina, porque este es quien administra todas y cada una de las piezas de hardware y el software. En términos extremadamente simples; un sistema operativo es el gerente ejecutivo, es decir la parte que administra todo el software y el hardware. Siendo específicos controla todos los archivos, dispositivos, secciones de la memoria principal y cada segundo del tiempo de procesamiento; de igual forma controla quien puede utilizar el equipo y la forma en que eso sucede.

La base de la pirámide de la figura anterior muestra los cuatro administradores esenciales de un sistema operativo; los cuales son; la base de todos los sistemas operativos. Cada administrador trabaja de cerca con los demás sea cual sea el sistema operativo en cuestión.

Software del sistema operativo
Sin importar el tamaño o configuración del sistema, cada administrador de subsistema llevan acabo estas tareas:

  • Monitorizar continuamente sus recursos
  • Obligar al cumplimiento de las políticas que determinan quien obtiene que, cuando y cuanto
  • Asignarlos recursos cuando es necesario
  • Liberar el recurso -recuperarlo- cuando es conveniente

Una de las principales funciones del administrador de memoria es proteger el espacio en la memoria principal que ocupa el sistema operativo: no puede permitir que parte alguna de ese espacio sea alterada de manera accidental o propositiva. 

El administrador del procesador decide como asignar la unidad de procesamiento central (CPU) y controlar el estado de cada proceso.
Este administrador monitorea si se esta ejecutando un proceso o espera que termine la ejecución de un comando de lectura o escritura. Dado que maneja las transiciones de procesos de un estado a otro se puede comparar con un controlador de trafico. El administrador asigna el procesador y establece los registros y tablas necesarias; mas tarde, cuando la tarea a terminado o el tiempo de ejecución ha expirado lo recupera.

El administrador de dispositivos vigila todos los dispositivos, canales y unidades de control. Su tarea es escoger la manera mas eficiente de asignar los dispositivos del sistema (impresoras, terminales, unidades de disco, etc) con base en una política de programación escogida por los diseñadores del sistema. Este administrador asigna el dispositivo, lo inicializa y lo libera.

Sin embargo, no basta que cada uno de los administradores lleve acabo sus tareas individuales. También deben ser capaces de trabajar en conjunto con los otros administradores. Suponiendo que alguien escribe un comando para ejecutar un programa, el sistema debería realizar los siguientes pasos en secuencia

  1. El administrador de dispositivos recibe los impulsos eléctricos del teclado, los codifica para formar el comando y lo envía a la interfaz de comando del usuario, donde el administrador del procesador lo valida.
  2. Luego el administrador del procesador manda un mensaje de reconocimiento, para que aparezca en el monitor de vídeo, de manera que quien lo escribió sepa que se envío el comando
  3. Cuando el administrador del procesador recibe el comando, determina si hay que traer el programa correspondiente de donde este almacenado o si ya esta en la memoria, después de lo cual notifica al administrador apropiado
  4. Si el programa esta almacenado, el administrador de archivos debe calcular su localización exacta en el disco y pasar la información al administrador de dispositivos. Este lo recupera y envía el programa al administrador de la memoria el cual debe encontrar el espacio para el mismo y registrar su ubicación exacta en la memoria
  5. Una vez que el programa se halla en la memoria, el administrador de esta debe controlar su localización y progreso conforme lo ejecuta el administrador del procesador
  6. Cuando termina la ejecución del programa, este manda un mensaje de “terminado” de vuelta al administrador del procesador
  7. Por último el administrador del procesador manda el mensaje de “terminado” de vuelta al administrador de dispositivos, que lo muestra en el monitor para que el usuario lo vea

Aunque esta es una simplificación del proceso de un sistema operativo, sirve para identificar que ningún administrador puede trabajar solo, o por su parte.

Tipos de sistemas operativos

Los sistemas operativos de las computadoras grandes y pequeñas se ubican en cuatro clases, que se distinguen por su tiempo de respuesta y la forma en que se introducen los datos en el sistema:
  • Sistemas por lotes
  • Sistema interactivo
  • Sistema operativo multitarea
  • Sistema operativo en red
  • Sistema en tiempo real
  • Sistema mixto
  • Sistema operativo distribuido
  • Sistemas por lotes 
Estos existen desde las primeras computadoras, que se apoyaban en tarjetas perforadas o en citas para la entrada cuando se introducía una tarea mediante la agrupación de tarjetas en un paquete y se corría todo este a través de un lector como un grupo. Los sistemas por lotes de hoy no están limitados a tarjetas o cintas pero los trabajo todavía se procesan serie sin interacción del usuario.
La eficiencia del sistema se media por producción -esto es la cantidad de tareas completadas en una cantidad de tiempo, y el tiempo total se media en hora o a veces en días. Hoy en día no es común encontrar un sistema por lotes en funcionamiento.

Permiten la simulación de que el sistema y sus recursos son todos para cada usuarios. El usuario hace una petición a la computadora, esta la procesa tan pronto como le es posible, y la respuesta aparecerá en la terminal del usuario.
Los principales recursos del sistema, el procesador, la memoria, dispositivos de E/S, son continuamente utilizados entre los diversos usuarios, dando a cada usuario la ilusión de que tiene el sistema dedicado para sí mismo. Esto trae como consecuencia una gran carga de trabajo al Sistema Operativo, principalmente en la administración de memoria principal y secundaria.

Sistemas interactivos

También conocidos como sistemas de tiempo compartido; dan un tiempo de retorno mas rápido que los sistemas por lotes, pero son mas lentos que los sistemas en tiempo real. Se introdujeron opara satisfacer las demandas de los usuarios que necesitaban un tiempo de retorno mas rápido al hacer el retorno al eliminar los errores de sus programas. El sistema requería el desarrollo de software de tiempo compartido, lo que permitía a cada usuario interactuar directamente con el sistema de computo vía comandos introducidos a través de un terminal del tipo maquina de escribir.

El sistema proporciona una retroalimentación inmediata al usuario, y el tiempo de respuesta puede medirse en minutos o incluso en segundos, esto según la cantidad de usuarios activos.

Sistemas en tiempo real

Estos son los más rápidos de los cuatro y se utilizan en entornos de tiempo critico donde los datos se deben procesar con suma rapidez porque la salida afecta decisiones inmediatas. Los sistemas de tiempo real se utilizan para vuelos espaciales, controladores de trafico, aeronaves de alta velocidad, procesos industriales, equipo médico y conmutación telefónica entre otros. Un sistema en tiempo real debe ser 100% sensible el 100% de las veces. El tiempo de respuesta se mide en fracciones de segundo, aunque en la práctica no se logra a menudo.
Si bien en teoría es posible convertir un sistema operativo de tipo general en un sistema en tiempo real, en la práctica la carga general de los sistemas de tipo general es tan grande que no se logra desempeños en tiempo real. Por lo tanto la mayor parte de los trabajos en tiempo real requiere sistemas operativos diseñados para llenar necesidades en tiempo real.

Sistema operativo multitarea o multiprogramación

Se distinguen por sus habilidades para poder soportar la ejecución de dos o más trabajos activos (que se están ejecutado) al mismo tiempo. Esto trae como resultado que la Unidad Central de Procesamiento (UCP) siempre tenga alguna tarea que ejecutar, aprovechando al máximo su utilización.
Su objetivo es tener a varias tareas en la memoria principal, de manera que cada uno está usando el procesador, o un procesador distinto, es decir, involucra máquinas con más de una UCP.

Sistemas Operativos como UNIX, Windows 95, Windows 98, Windows NT, MAC-OS, OS/2, soportan la multitarea.

Las características de un Sistema Operativo de multiprogramación o multitarea son las siguientes:
  • Mejora productividad del sistema y utilización de recursos.
  • Multiplexa recursos entre varios programas.
  • Generalmente soportan múltiples usuarios (multiusuarios).
  • Proporcionan facilidades para mantener el entorno de usuarios inndividuales.
  • Requieren validación de usuario para seguridad y protección.
  • Proporcionan contabilidad del uso de los recursos por parte de los usuarios.
  • Multitarea sin soprte multiusuario se encuentra en algunos computadores personales o en sistemas de tiempo real.
  • Sistemas multiprocesadores son sistemas multitareas por definición ya que soportan la ejecución simultánea de múltiples tareas sobre diferentes procesadores
En general, los sistemas de multiprogramación se caracterizan por tener múltiples programas activos compitiendo por los recursos del sistema: procesador, memoria, dispositivos periféricos.

Sistemas operativos distribuidos

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, en este caso es trasparente para el usuario. Existen dos esquemas básicos de éstos. Un sistema fuertemente acoplado es a es aquel que comparte la memoria y un reloj global, cuyos tiempos de acceso son similares para todos los procesadores. En un sistema débilmente acoplado los procesadores no comparten ni memoria ni reloj, ya que cada uno cuenta con su memoria local.

Los sistemas distribuidos deben de ser muy confiables, ya que si un componente del sistema se compone otro componente debe de ser capaz de reemplazarlo.
Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los siguientes: Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc.

Caracteristicas de los Sistemas Operativos distribuidos:

Colección de sistemas autónomos capaces de comunicación y cooperación mediante interconexiones hardware y software .
Gobierna operación de un S.C. y proporciona abstracción de máquina virtual a los usuarios.

Objetivo clave es la transparencia.

Generalmente proporcionan medios para la compartición global de recursos.
Servicios añadidos: denominación global, sistemas de archivos distribuidos, facilidades para distribución de cálculos (a través de comunicación de procesos internodos, llamadas a procedimientos remotos, etc.).
Sistema operativo en red
Son aquellos sistemas que mantienen a dos o más computadoras unidas através de algún medio de comunicación (fisico o no), con el objetivo primordial de poder compartir los diferentes recursos y la información del sistema.
El primer Sistema Operativo de red estaba enfocado a equipos con un procesador Motorola 68000, pasando posteriormente a procesadores Intel como Novell Netware.

Los Sistemas Operativos de red mas ampliamente usados son: Novell Netware, Personal Netware, LAN Manager, Windows NT Server, UNIX, LANtastic.

Historia de los sistemas operativos

Los sistemas operativos han evolucionado con el paso de los años y desde la perspectiva histórica los sistemas operativos han estado íntimamente ligados con la arquitectura de las computadoras en las que se ejecutan. Por ello es necesario revisar las generaciones de las la computadora para ver que tipo de sistema operativo usaba.

La primera computadora digital verdadera fue la creada por Charles Babbage, quien aunque invirtió la mayor parte de su vida y su fortuna intentando construir su maquina analítica nunca logro que funcionara como debiera porque era mecánica por completo y la tecnología de su época no era capaz de construir los engranes y las ruedas necesarias con la suficiente precisión. A parte sobra decir que esta carecía de un sistema operativo.

Como nota histórica, Babbage se dio cuenta que necesitaría de software para su máquina analítica, así que contrato a una mujer llamada Ada Lovelace hija del afamado poeta ingles Byron, para serla primer programadora del mundo. El lenguaje de programación Ada® se llama así en su honor.

Primera generación: Tubos al vacío
Después de la infructuosa labor de Babbage, poco avanzo la construcción de computadoras deigitales antes de la segunda guerra mundial. A mediados de la década de 1940, Howard Aiken, en Harvard; Jhon Von Neumann, En el instituto de estudios avanzados de Princeton; Presper Eckert y William Mauchley, En la universidad de Pensilvania entre otros, lograron construir máquinas calculadoras. Las primeras empleaban relevadores mecánicos pero eran sumamente lentas, con tiempos de ciclos medios en segundos. Luego los relevadores fueron sustituidos por tubos la vacío; eran enormes; ocupaban recintos enteros y tenían decenas de miles de tubos al vacío, con todo eran millones de veces mas lentas que las computadoras personales mas económicas que se venden en la actualidad.

En esos tiempos, un solo grupo de personas diseñaba, construía, programaba, operaba y mantenia cada maquina. Toda la programación se hacia en lenguaje máquina absoluto, a menudo alambrando tableros de conexiones para controlar las funciones básicas de la máquina. No existían los lenguajes de programación. Nadie había oído hablar de los sistemas operativos. La forma de operación usual era que el programador reservaba un bloque de tiempo en una hoja pegada en la pared, bajaba al cuarto de la máquina, insertaba su tablero de conexiones e la computadora, y pasaba horas esperando a que ninguno de los tubos al vacío se quemara durante la ejecución de su programa. Casi todos los problemas eran cálculos numéricos simples como la preparación de tablas de senos, cosenos y tangentes así como logaritmos.


Para principios de la década de 1950, la rutina había mejorado un poco con la introducción de las tarjetas perforadas, Ahora era posible escribir programas y hacer que la máquina las leyera, en lugar de usar tableros de conexiones; por lo demás el procedimiento era lo mismo.

Segunda generación: Transistores y sistemas por lotes
La introducción del transistor a mediados de la década de 1950, altero el panorama de manera radical. Las computadoras se volvieron lo bastante fiables como para fabricarse y venderse a clientes comerciales con la expectativa de que seguirían funcionando el tiempo suficiente para efectuar algún trabajo útil. Por primera vez hubo una distinción entre programadores, operaqdores y personal de mantenimiento.

Estas máquinas eran llamadas mainframes o macrocomputadoras se alojaban en salas de computo especiales con aire acondicionado y las operaban grupos de operadores profesionales. Solo las grandes corporaciones y dependencias gubernamentales o universidades importantes podían pagar los millones de dolares que costaban. Para ejecutar un trabajo un programador escribía el programa en papel (en FORTRAN o en ensamblador) y luego lo perforaba en tarjetas. Seguido de esto llevaba el mazo de tarjetas al cuarto de entrada, lo entregaba a uno de los operadores y esperaba a que estuvieran listas las salidas.

Cuando la computadora terminaba un trabajo que estaba ejecutando, un operador tomaba las hojas de la impresora y las llevaba al cuarto de salida, donde el programador podía recogerlas. Luego tomaba uno de los mazos de tarjetas traídos del cuarto de entrada y lo colocaba en la lectora de la computadora. Si se necesitaba el compilador de FORTRAN, el operador tenia que traerlo de un archivero y colocarlo en la lectora. Se desperdiciaba mucho tiempo de computadora mientras los operadores iban de un lado a otro en el cuarto de máquinas.

En vista del elevado costo de los equipos, no es sorprendente que pronto se buscaran formas de reducir el espacio de tiempo. La solución por lo general fue el sistema por lotes. La idea básica era juntar una bandeja llena de trabajos en el cuarto de entrada y luego pasarlos a una cinta magnética, empleando una computadora pequeña y (relativamente) de bajo costo como la IBM 1401 , que era muy buena para leer tarjetas, copiar cintas e imprimir salidas, pero mala para los cálculos numéricos, otras maquinas mucho mas costosas como la IBM 7094, realizaban los cómputos propiamente dichos. Esta situación se muestra en la siguiente figura:

Después de cerca de cerca de una hora de reunir trabajos, la cinta se rebobinaba y se llevaba al cuarto de máquinas. Luego el operador cargaba un programa especial (el antecesor del sistema operativo actual) que leía el primer trabajo de la cinta y lo ejecutaba. Las salidas de grababan en una segunda cinta, en lugar de imprimirse. Una vez terminado el trabajo, el sistema operativo leía en forma automática el siguiente de la cinta y comenzaba a ejecutarlo. Una vez terminado todo el lote, el operador desmontaba todas las cintas de entrada y las de salidas, reemplazaba la cinta de entrada por otro lote y llevaba la cinta de salida a una 1401 para imprimir las salidas fuera de linea .

Tercera generación
A principio de la década de 1960, la mayoría de los fabricantes de computadoras tenían dos lineas de productos diferentes e incompatibles por completo. Por un lado estaban las computadoras científicas a gran escala como la 7094, orientadas a palabras, que se orientaba a cálculos numéricos en ciencia e ingeniería. Por otro lado estaban las computadoras comerciales como la 1401, orientadas a caracteres, que los bancos y las compañías de seguros utilizaban en forma amplia para ordenar e imprimir cintas.

El desarrollo y mantenimiento de dos lineas de productos totalmente distintas representaba costos muy altos. Además muchos clientes necesitaban al principio una maquina pequeña, pero mas adelante, al crecer, querian una de mayor tamaño que ejecutara todos sus antiguos programas, pero en menor tiempo.
IBM intento resolver ambos problemas de un solo golpe, introduciendo el Sistema/360. Este era una serie de maquinas de software compatible que iba desde el tamaño de la 1401, hasta otras mucho mas potentes que la 7094. Las máquinas solo diferían en el costo y desempeño. Puesto que todas las máquinas tenían la misma arquitectura y conjunto de instrucciones, los programas escritos para una máquina podían ejecutarse en todas las demás, al menos en teoría. 

Además la 360 se diseño para que pudiera manejar cómputos tanto científicos como comerciales. Así, una sola familia de máquinas podía satisfacer las necesidades de todos los clientes. En años posteriores, IBM produjo, sucesoras compatibles con la 360, empleando tecnologías mas modernas.

La 360 fue la primer computadora importante que utilizo circuitos integrados (a pequeña escala), por lo que ofrecía una notable ventaja en precio respecto a las máquinas de segunda generación, que se construían con transistores individuales. Su éxito fue inmediato y los principales fabricantes de computadoras adoptaron la idea de una sola linea de computadoras compatibles. Los descendientes de estas máquinas se siguen usando en centros de computo en algunos lugares al día de hoy, para administrar bases de datos enormes o como servidores de sitios web que deben procesar miles de solicitudes por segundo.

La mayor ventaja de la idea de “una familia” era al mismo tiempo su punto mas débil. La intención era que todo el software, incluido el sistema operativo OS/360, tenia que funcionar en todos los modelos. Tenia que hacerlo en todos los modelos, incluido los pequeños y los grandes utilizados para hacer cálculos meteorológicos y otros cálculos pesados. Debía ser buenos para sistemas con pocos periféricos, en entornos comerciales y científicos.

Era imposible que IBM, u otro fabricante escribiera software capaz de satisfacer todos esos requisitos opuestos. El resultado fue un sistema operativo enorme y extremadamente complejo. Cosiste en miles de lineas en lenguaje ensamblador escritas por miles de programadores, y contenía miles y miles de errores, por lo que se requería un flujo continuo de versiones en un intento por corregirlos. 

Cada versión nueva corregía algunos errores, pero introducía unos nuevos por lo que se penso que el número de errores se mantuvo con el tiempo.

A pesar de lo enorme de su tamaño y sus problemas, el OS/360 y los sistemas operativos producidos por otros fabricantes en realidad satisficieron de manera razonable la mayoría de sus clientes. Además popularizo técnicas que no se utilizaban en los sistemas operativos de segunda generación siento, tal vez la mas importante la de multiprogramación.

Una solución que se hallo fue dividir la memoria en varias partes, con un trabajo distinto en cada partición. Mientras que un trabajo estaba esperando a que terminara la E/S, otro podía utilizar la CPU. Si era posible tener varios trabajos al mismo tiempo en la memoria principal, la CPU podía mantenerse ocupada casi el 100% del tiempo. Tener varios trabajos en la memoria principal sin ocasionar problemas, requiere hardware especial que proteja cada trabajo de espionaje y acciones hostiles de otros.

Otra característica de los sistemas operativos de tercera generación era que podían leer trabajos de tarjetas y grabarlos en el disco tan pronto como se llevaban al cuarto de computadoras. Así, cada vez que se terminaba un trabajo podía cargarse otro desde el disco y ponerlo en la partición recién desocupada. 

A esta técnica se le llama spooling y también se utilizaba para la salida.

El deseo de obtener una respuesta mas rápida preparo el camino para los sistemas de tiempo compartido, una variante de la multiprogramación en la que cada usuario tiene una terminal en linea. En estos sistemas si 20 usuarios están trabajando y 17 de ellos están pensando o haciendo algo diferente a estar ocupando la máquina, la CPU puede asignarse por turnos a los tres trabajos que desean ser atendidos.

El primer sistema de tiempo compartido serio, CTSS se desarrollo en el MIT en una 7094 con modificadores especiales; sin embargo el tiempo compartido no se popularizo si no hasta que se generalizo el software de protección necesario durante la tercera generación.

Tiempo después, los fabricantes mas representativos de computadoras decidieron emprender el desarrollo de un servicio de computadora; una máquina que atendiera a miles de usuarios. A este sistema lo llamaron MULTICS y con el imaginaron una máquina enorme que podria dar potencia de computadora a todos los habitantes del área de Boston.

Al final MULTICS no tuvo el éxito comercial que se espero tuvo gran influencia en los sistemas subsecuentes. Uno de los científicos de computación de los laboratorios BELL que trabajó en el proyecto MULTICS escribió una versión austera de MULTICS para un solo usuario; esta labor dio pie mas adelante para el desarrollo de UNIX , que se popularizo en el mundo académico, en las dependencias gubernamentales y muchas compañías.

Este al no ser de código abierto pronto su desarrollo se torno al caos ya que varias organizaciones iniciaron su propia versión o clon de este sistema para poder utilizarlo. Principalmente surgieron dos versiones SystemV de AT&T, y BSD de la Universidad de California Berkeley. El IEEE creo entonces un estándar para UNIX llamado POSIX, reconocido por la mayoría de las versiones actuales.

En 1987 surge MINIX una alternativa compacta a UNIX creado con fines educativos. El desea de contar con una versión de producción libre (no meramente educativa) de MINIX, Linus Trolvads escribió LINUX (LINUX Is Not UNIX) escrito en base a MINIX y que incluso reconocía varios de sus recursos como el sistema de archivos.

Cuarta generación
Con el desarrollo de los circuitos integrados a gran escala que contienen miles de transistores en cada centímetro cuadrado de silicio, surgió la era de la computadora personal. Este adelanto logró hacer que cada persona fuese capaz de tener su propia computadora.

En 10974 cuando intel presento si 8080, la primer CPU de ocho bits de propósito general, quería un sistema operativo para ese procesador. Primero se escribió los controladores para el disco flexible de ocho pulgadas y lo conectaron al 8080 con lo que nace la primer PC con disco. Después se escribió el primer sistema basado en disco llamado CP/M.

A principio de la década de 1980 IBM se puso en contacto con Bill Gates para usar bajo licencia su interprete de BASIC y se le consulto si sabia de algún sistema operativo. Gates los dirigío a ponerse en contacto con Digital Research dueños de CP/M pero estos se reusaron reunir con IBM, por lo que este regresa con Bill Gates para preguntarle si podia ofrecerles un sistema operativo.
Gates se percato que un fabricante local de computadora tenia un sistema aceptable llamado DOS (Disk Operating System) y lo compro; se dice que por 50,000 USD; contrata a uno de los desarrolladores de DOS para hacer mejorías que requería IBM para ofrecer paquetes DOS/BASIC. A esto lo rebautiza como MS-DOS (Microsoft Disk Operating System) y Bill Gates con su naciente empresa ofrece el sistema a los grandes fabricantes para ser incluido en su hardware. Contrario a la estrategia de Digital Research quien pensaba distribuirlo con los usuario finales uno por uno.

La primera versión de MS-DOS era mas bien primitiva, las posteriores consiguieron hacer funciones avanzadas, muchas de ellas tomadas de UNIX.
En estos momento los sistemas operativos interactuaban con el usuario mediante linea de comandos pero esto cambio gracias a investigaciones hechas en la década de 1970 cuando se desarrollo la GUI o interfaz gráfica de usuario. Provista de ventanas, iconos y ratón. Estas interfaces fueron adoptadas por Xerox. En algún momento Steve Jobs; fundador de Aple Computer, visito las instalaciones de Xerox y observo el GUI que de inmediato adopto para su computador LISA, pero que por el costo al mercado tan alto fue un fracaso. El mismo GUI fue instalado en un Aple Macintosh que era varias veces mas económica que la LISA y que gracias a ser tan intuitiva pronto gano gran popularidad.

Microsoft avanzo en el desarrollo de su MS-DOS mediante Windows, el cual corría encima de MS-DOS por lo que era mas un Shell que un sistema completo. Entre 1985 a 1995 Windows no fue mas que un entorno gráfico hasta que salio Windows 95 que solo ejecutaba a MS-DOS para arrancar y ehjecutar programas viejos. Windows 98 fue una versión modificada del 95 y que aún contenía mucho código ensamblador de Intel 16bits.

Posterior a Windows 98, viene Windows NT, que después fue rebautizado como Windows 2000 pero que no pudo eliminar por completo a MS-DOS, y no funciono como se esperaba. Después sale Windows ME, Antecesor de Windows XP. Este último mucho mas popular y con mayor permanencia en el mercado de 2001 a 2011. En 2007 Microsoft lanza Windows Vista, y en 2009 Windows 7.

Otro contendiente principal es UNIX que domino en las otras computadoras que no utilizan Intel, asi como en las estaciones de trabajo, en especial las que utilizan chips de alto desempeño (RISC). Estas tienen, en general, la potencia de computo de una micro computadora, aunque se dediquen a un solo usuario, por lo que es lógico que estén equipadas con un sistema operativo para micro computadoras.

Un interesante desarrollo que comenzó a llevarse a cabo a mediados de la década de 1980 ha sido el crecimiento de las redes de computadoras con sistemas operativos en red y sistemas operativos distribuidos. En un sistema operativo en red, los usuarios están consientes de máquinas remotas y pueden conectarse con ellas para copiar archivos. Cada máquina ejecuta su propio sistema local y tiene su propio usuario.

Por el contrario un sistema distribuido es aquel que aparece como un sistema tradicional de un solo procesador, aunque este compuesto por varios. En este los usuarios no deben ser cocientes del lugar donde se ejecute su programa o del lugar donde se encuentran sus archivos, esto es manejado de forma automática por el sistema operativo.

Unix es un sistema operativo portable multitarea y multiusuario desarrollado a principios de 1969 por un grupo de empleados de BELL LABORATORYS de AT&T.Este sistema nació después de que su creador Ken Thompson programo un juego llamado Space travel, pero noto que correrlo en una computadora de General Electric resulto ser demasiado costoso (79 USD por partida) por lo que reescribió el juego en lenguaje ensamblador para una DEC PDP 7. Este hecho junto con su experiencia en MULTICS lo animo a escribir UNIX.

No es hasta 1970 que se tiene la primer referencia oficial de UNIX como sistema operativo cuando consiguen implementar la herramienta de procesamiento de texto e integrarlo a una máquina PDP 11-20. En 1970 se reescribe UNIX pero esta vez en lenguaje C por lo que pudo ser fácilmente modificado para implementarse en otras máquinas y así se volvió portable.

Hacia 1991, un estudiante de ciencias de la computación de la Universidad de Helsinki, llamado Linus Torvalds desarrolló un núcleo para computadoras con arquitectura x86 de Intel que emulaba muchas de las funcionalidades de UNIX y lo lanzó en forma de código abierto en 1991, bajo el nombre de Linux. En 1992, el Proyecto GNU comenzó a utilizar el núcleo Linux junto a sus programas.

De UNIX se desprenden varias familias de sistemas operativos aparte de la de LINUX, como BSD, AIX, XENIX y a su ves de estas familas se desprenden otras como en el caso de LINUX donde podemos encontrar la familia Red Hat, Slackware, DEBIAN entre otras. Todas con sus distintas distribuciones libres y comerciales.

El 24 de enero de 1984, Apple Computer Inc. (ahora Apple Inc.) introdujo la computadora personal Macintosh, con el modelo Macintosh 128K, el cual incluía el sistema operativo Mac OS, conocido en esa época como System Software (Software de sistema).

A la Macintosh a menudo se le atribuye la popularización de las interfaces gráficas de usuario. El Mac OS ha sido pre-instalado en casi todos los computadores Macintosh vendidos. El sistema operativo también se vende en forma separada en las tiendas de Apple y en línea. El Mac OS original estaba basado parcialmente en el Lisa OS, previamente comercializado por Apple para la computadora Lisa en 1983 y, como parte de un acuerdo que permitía a Xerox comprar acciones de Apple a un precio favorable, también usaba conceptos del Xerox PARC Xerox Alto, el cual Steve Jobs y otros miembros del equipo Macintosh habían visto.

En un principio Mac OX fue escrito y llamado como Mac Os Clasic de código propio de Aple Computer, pero es en la versión Mac Os X que se decidió en desarrollar basados basándose en Mac Os Clasic, NextSTEP y UNIX
Varios fabricantes de computadores a través de los años han hecho clones de Macintosh capaces de ejecutar Mac OS, en particular Power Computing, UMAX y Motorola. Estas máquinas ejecutaron varias versiones del sistema operativo clásico de Mac. En 1997 Steve Jobs cerró el programa de licencia clon al regresar a Apple.

En 2008 el fabricante estadounidense Psystar Corporation anunció un ordenador de bajo coste (499 USD) que ejecutaba Mac OS X 10.5 Leopard. Amenazados por las batallas legales, Psystar denominó a su sistema OpenMac y posteriormente Open Computer. Actualmente Apple sigue en litigio con esta compañía a la que pretende hacer pagar por daños y perjuicios, por cada clon vendido y por los costes de la batalla legal.

En 2009 el fabricante HyperMegaNet UG lanzó un ordenador "Macintosh Compatible" bajo la marca comercial PearC basándose en el hecho de que la Licencia de software no puede aceptarse al no poder ser leída antes de adquirir el producto puesto que se encuentra dentro de la caja en la que viene el ordenador por lo que la parte que apela a la no instalación de OS X en hardware que no sea Apple es nula a todos los efectos, al menos en Alemania.

Clasificación de los sistemas operativos

Según administración de tareas
  • Monotarea: Solamente permite ejecutar un proceso (aparte de los procesos del propio SO) en un momento dado. Una vez que empieza a ejecutar un proceso, continuará haciéndolo hasta su finalización y/o interrupción.
  • Multitarea: Es capaz de ejecutar varios procesos al mismo tiempo. Este tipo de SO. normalmente asigna los recursos disponibles (CPU, memoria, periféricos) de forma alternada a los procesos que los solicitan, de manera que el usuario percibe que todos funcionan a la vez, de forma concurrente.
Según su administración de usuarios
  • Monousuario: Si sólo permite ejecutar los programas de un usuario al mismo tiempo.
  • Multiusuario: Si permite que varios usuarios ejecuten simultáneamente sus programas, accediendo a la vez a los recursos de la computadora. Normalmente estos sistemas operativos utilizan métodos de protección de datos, de manera que un programa no pueda usar o cambiar los datos de otro usuario.
Según el manejo de recursos
  • Centralizado: Si permite usar los recursos de una sola computadora.
  • Distribuido: Si permite utilizar los recursos (memoria, CPU, disco, periféricos...) de más de una computadora al mismo tiempo.
Según el tipo de su núcleo
  • Los núcleos monolíticos facilitan abstracciones del hardware subyacente realmente potentes y variadas.
  • Los micronúcleos (en inglés microkernel) proporcionan un pequeño conjunto de abstracciones simples del hardware, y usan las aplicaciones llamadas servidores para ofrecer mayor funcionalidad.4
  • Los núcleos híbridos (micronúcleos modificados) son muy parecidos a los micronúcleos puros, excepto porque incluyen código adicional en el espacio de núcleo para que se ejecute más rápidamente.
  • Los exonúcleos no facilitan ninguna abstracción, pero permiten el uso de bibliotecas que proporcionan mayor funcionalidad gracias al acceso directo o casi directo al hardware.
Referencias
  • Mchoes,F.(2001).Sistemas operativos (Tercera edición) México. Thomson
  • Tanembaun A.(2003). Sistemas operativos modernos. México. Pearson Educación.
  • Sistema operativo. (2012, 15 de mayo). Wikipedia, La enciclopedia libre. Fecha de consulta: 00:32, mayo 18, 2012 desde http://es.wikipedia.org/w/index.php?title=Sistema_operativo&oldid=56185783.
  • Núcleo (informática). (2012, 11 de abril). Wikipedia, La enciclopedia libre. Fecha de consulta: 00:35, mayo 18, 2012 desde http://es.wikipedia.org/w/index.php?title=N%C3%BAcleo_(inform%C3%A1tica)&oldid=55299756.
  • Mac OS. (2012, 10 de mayo). Wikipedia, La enciclopedia libre. Fecha de consulta: 00:40, mayo 18, 2012 desde http://es.wikipedia.org/w/index.php?title=Mac_OS&oldid=56063564.

lunes, 14 de mayo de 2012

Perifericos


Introducción

Todo equipo de proceso de datos esta formado por la Unidad Central de Procesamiento (CPU) y por varias unidades periféricas, dividiendo estas últimas en dos grandes grupos:
  1. Las memorias auxiliares de almacenamiento en masa o soportes.
  2. La unidades de entrada y/o salida
La función básica de un equipo es realizada por el CPU, mientras que la función de comunicación de esta con el mundo exterior, en ambos sentidos; entrada y salida; es realizada por los periféricos a través de la memoria principal.
Las unidades periféricas se encargan de establecer la comunicación entre el microprocesador y el mundo exterior, realizando, en la mayoría de los casos, una triple tarea.
  1. Entrada de datos
  2. Salida de resultados
  3. Almacenamiento de información
En resumen todo periférico supone un nexo de unión entre un soporte de información y la CPU de un ordenador lo que hace que haya de considerarse en cada dispositivo dos pares bien definidos, a saber:
  1. Órganos de lectura y escritura de la información acordes con el soporte empleado
  2. Conexión con la CPU diseñado según las características del ordenador, verdadero canal de transmisión de datos por el circulan los bits, denominado interfase

Memorias auxiliares de almacenamiento

La Memoria Auxiliar o Secundaria suele estar conformada por un grupo de dispositivos de almacenamiento preparados para administrar gran cantidad de información, poseyendo además de esta diferencia cuantitativa con la memoria principal o RAM, diferencias cualitativas, como por ejemplo su menor costo y su mayor lentitud.
Ejemplos de memoria Auxiliar lo son los discos rígidos, las unidades ópticas como los CDs o DVDs, memorias FLASH o diskettes. La memoria RAM recibe datos desde estos dispositivos de almacenamiento masivo.
En cuanto a memorias auxiliares en base a tecnología óptica existen diversos formatos: CD-ROM (discos compactos no escribibles), CD-R (discos compactos escribibles, generalmente de 700MB), CD-RW (discos compactos re-escribibles), DVDs (de mayor capacidad que los CDs), HD-DVD y Blu-Ray (de mayor capacidad que los DVDs).
Debemos destacar también tecnologías como las del disquete (actualmente casi en desuso, comunmente guardan hasta 1.44MB), cintas magnéticas (actualmente en desuso), memorias FLASH (de variados tamaños, los cuales pueden oscilar entre 128MB y 30GB, y se conectan por lo general mediante puertos USB, aunque existen memorias FLASH incorporadas a computadoras portátiles, como el caso de las XO de OLPC).
De todos los tipos de memorias auxiliares, quizá el disco duro de una PC sea la más conocida siendo que los sistemas operativos, los diferentes programas y los archivos de datos de los usuarios son almacenados en este tipo de dispositivos.

Unidades de entrada/salida

Los dispositivos de entrada establecen la comunicación hacia el procesador, leen la información contenido en un soporte y la introducen a la memoria principal del equipo. La comunicación en sentido contrario la realizan los dispositivos de salida, llevando los resultados del proceso desde la memoria principal a un soporte externo, siendo característica general de estas unidades su lentitud relativa frente a la velocidad de micro procesamiento.
Existen dispositivos que solo actúan como órganos de entrada de la información y otros solo de salida; aunque o general es que sean mixtos realizando las dos funciones. En todos los caso, ha sido preocupación de los fabricantes el intentar simplificar al máximo el dialogo hombre-máquina, tendiendo a reducir las tareas de transcripción de información, las que exista mayor peligro de error en los trabajos de proceso de datos.
A la entrada y la salida también se le abrevia como E/S o I/O1. El termino se refiere a ejecutar un acción de entrada o de salida. Estos dispositivos son utilizados por personas u otros sistemas para comunicarse con otros dispositivos. A los teclados y los ratones se les considera dispositivos de entrada, mientras que las impresoras y los monitores son dispositivos de salida.
La designación de los dispositivos cambia, al cambiar la perspectiva desde que se le ve. Los ratones o los teclados toman como método de entrada el movimiento físico que los usuarios producen y estos lo convierten en señales eléctricas y de este modo los ordenadores pueden entender o interpretarlos. De forma análoga los dispositivos de salida toman una señal eléctrica y la transforman de modo que el usuario puede entenderlo.
Los sistemas operativos y lenguajes de programación de más alto nivel brindan conceptos y primitivas de entrada/salida distintos y más abstractos. Por ejemplo, un sistema operativo brinda aplicativos que manejan el concepto de archivos. El lenguaje de programación C define funciones que les permiten a sus programas realizar E/S a través de streams, es decir, les permiten leer datos desde y escribir datos hacia sus programas.
Una alternativa para las funciones primitivas especiales es la mónada de E/S, que permite que los programas describan su E/S y que las acciones se lleven a cabo fuera del programa. Esto resulta interesante, pues las funciones de E/S introducirían un efecto colateral para cualquier lenguaje de programación, pero ahora una programación puramente funcional resultaría práctica.

Dispositivos de salida

  • Monitor
  • Altavoces
  • Impresoras
    • Plotter
  • Proyector

Dispositivos de entrada

  • Ratón
  • Teclado
  • Joystick
  • Lápiz óptico
  • Micrófono
  • Escaner
  • Webcam

Entrada/salida (mixtos)

  • Unidades de almacenamiento
  • CD, DVD
  • Módem
  • Memory Cards
  • USB
  • Router
  • Pantallas táctiles

Controladora de periféricos

Una controladora de periférico (en inglés: peripheral controller) es un hardware dentro de un periférico que sirve de interfaz entre el periférico y la unidad central de procesamiento. Muchas veces, la controladora sirve también como adaptador. Un ejemplo de controladora es un controlador de disco.

Microcontrolador

Un microcontrolador (abreviado μC, UC o MCU) es un circuito integrado programable, capaz de ejecutar las órdenes grabadas en su memoria. Está compuesto de varios bloques funcionales, los cuales cumplen una tarea específica. Un microcontrolador incluye en su interior las tres principales unidades funcionales de una computadora: unidad central de procesamiento, memoria y periféricos de entrada/salida.
Algunos microcontroladores pueden utilizar palabras de cuatro bits y funcionan a velocidad de reloj con frecuencias tan bajas como 4 kHz, con un consumo de baja potencia (mW o microvatios). Por lo general, tendrá la capacidad para mantener la funcionalidad a la espera de un evento como pulsar un botón o de otra interrupción, el consumo de energía durante el sueño (reloj de la CPU y los periféricos de la mayoría) puede ser sólo nanovatios, lo que hace que muchos de ellos muy adecuados para aplicaciones con batería de larga duración. Otros microcontroladores pueden servir para roles de rendimiento crítico, donde sea necesario actuar más como un procesador digital de señal (DSP), con velocidades de reloj y consumo de energía más altos.
Al ser fabricados, la memoria ROM del microcontrolador no posee datos. Para que pueda controlar algún proceso es necesario generar o crear y luego grabar en la EEPROM o equivalente del microcontrolador algún programa, el cual puede ser escrito en lenguaje ensamblador u otro lenguaje para microcontroladores; sin embargo, para que el programa pueda ser grabado en la memoria del microcontrolador, debe ser codificado en sistema numérico hexadecimal que es finalmente el sistema que hace trabajar al microcontrolador cuando éste es alimentado con el voltaje adecuado y asociado a dispositivos analógicos y discretos para su funcionamiento.
Los microcontroladores son diseñados para reducir el costo económico y el consumo de energía de un sistema en particular. Por eso el tamaño de la unidad central de procesamiento, la cantidad de memoria y los periféricos incluidos dependerán de la aplicación. El control de un electrodoméstico sencillo como una batidora utilizará un procesador muy pequeño (4 u 8 bits) porque sustituirá a un autómata finito. En cambio, un reproductor de música y/o vídeo digital (MP3 o MP4) requerirá de un procesador de 32 bits o de 64 bits y de uno o más códecs de señal digital (audio y/o vídeo). El control de un sistema de frenos ABS (Antilock Brake System) se basa normalmente en un microcontrolador de 16 bits, al igual que el sistema de control electrónico del motor en un automóvil.
Los microcontroladores representan la inmensa mayoría de los chips de computadoras vendidos, sobre un 50% son controladores "simples" y el restante corresponde a DSPs más especializados. Mientras se pueden tener uno o dos microprocesadores de propósito general en casa (Ud. está usando uno para esto), usted tiene distribuidos seguramente entre los electrodomésticos de su hogar una o dos docenas de microcontroladores. Pueden encontrarse en casi cualquier dispositivo electrónico como automóviles, lavadoras, hornos microondas, teléfonos, etc.
Un microcontrolador difiere de una unidad central de procesamiento normal, debido a que es más fácil convertirla en una computadora en funcionamiento, con un mínimo de circuitos integrados externos de apoyo. La idea es que el circuito integrado se coloque en el dispositivo, enganchado a la fuente de energía y de información que necesite, y eso es todo. Un microprocesador tradicional no le permitirá hacer esto, ya que espera que todas estas tareas sean manejadas por otros chips. Hay que agregarle los módulos de entrada y salida (puertos) y la memoria para almacenamiento de información.
Un microcontrolador típico tendrá un generador de reloj integrado y una pequeña cantidad de memoria de acceso aleatorio y/o ROM/EPROM/EEPROM/flash, con lo que para hacerlo funcionar todo lo que se necesita son unos pocos programas de control y un cristal de sincronización. Los microcontroladores disponen generalmente también de una gran variedad de dispositivos de entrada/salida, como convertidor analógico digital, temporizadores, UARTs y buses de interfaz serie especializados, como I2C y CAN. Frecuentemente, estos dispositivos integrados pueden ser controlados por instrucciones de procesadores especializados. Los modernos microcontroladores frecuentemente incluyen un lenguaje de programación integrado, como el lenguaje de programación BASIC que se utiliza bastante con este propósito.
Los microcontroladores negocian la velocidad y la flexibilidad para facilitar su uso. Debido a que se utiliza bastante sitio en el chip para incluir funcionalidad, como los dispositivos de entrada/salida o la memoria que incluye el microcontrolador, se ha de prescindir de cualquier otra circuitería.
Cuando observamos la organización básica de un microcontrolador, señalamos que dentro de este se ubican un conjunto de periféricos, cuyas salidas están reflejadas en los pines del microcontrolador. A continuación describiremos algunos de los periféricos que con mayor frecuencia encontraremos en los microcontroladores.

Entradas y salidas de propósito general

También conocidos como puertos de E/S, generalmente agrupadas en puertos de 8 bits de longitud, permiten leer datos del exterior o escribir en ellos desde el interior del microcontrolador, el destino habitual es el trabajo con dispositivos simples como relés, LED, o cualquier otra cosa que se le ocurra al programador.
Algunos puertos de E/S tienen características especiales que le permiten manejar salidas con determinados requerimientos de corriente, o incorporan mecanismos especiales de interrupción para el procesador.
Típicamente cualquier pin de E/S puede ser considerada E/S de propósito general, pero como los microcontroladores no pueden tener infinitos pines, ni siquiera todos los pines que queramos, las E/S de propósito general comparten los pines con otros periféricos. Para usar un pin con cualquiera de las características a él asignadas debemos configurarlo mediante los registros destinados a ellos.

Temporizadores y contadores

Son circuitos sincrónicos para el conteo de los pulsos que llegan a su poder para conseguir la entrada de reloj. Si la fuente de un gran conteo es el oscilador interno del microcontrolador es común que no tengan un pin asociado, y en este caso trabajan como temporizadores. Por otra parte, cuando la fuente de conteo es externa, entonces tienen asociado un pin configurado como entrada, este es el modo contador.
Los temporizadores son uno de los periféricos más habituales en los microcontroladores y se utilizan para muchas tareas, como por ejemplo, la medición de frecuencia, implementación de relojes, para el trabajo de conjunto con otros periféricos que requieren una base estable de tiempo entre otras funcionalidades. Es frecuente que un microcontrolador típico incorpore más de un temporizador/contador e incluso algunos tienen arreglos de contadores. Como veremos más adelante este periférico es un elemento casi imprescindible y es habitual que tengan asociada alguna interrupción. Los tamaños típicos de los registros de conteo son 8 y 16 bits, pudiendo encontrar dispositivos que solo tienen temporizadores de un tamaño o con más frecuencia con ambos tipos de registro de conteo.

Conversor analógico/digital

Como es muy frecuente el trabajo con señales analógicas, éstas deben ser convertidas a digital y por ello muchos microcontroladores incorporan un conversor analógico-digital, el cual se utiliza para tomar datos de varias entradas diferentes que se seleccionan mediante un multiplexor.
Las resoluciones más frecuentes son 8 y 10 bits, que son suficientes para aplicaciones sencillas. Para aplicaciones en control e instrumentación están disponibles resoluciones de 12bit, 16bit y 24bit6 . También es posible conectar un convertidor externo, en caso de necesidad.

Puertos de comunicación

Puerto serie

Este periférico está presente en casi cualquier microcontrolador, normalmente en forma de UART (Universal Asynchronous Receiver Transmitter) o USART (Universal Synchronous Asynchronous Receiver Transmitter) dependiendo de si permiten o no el modo sincrónico de comunicación.
El destino común de este periférico es la comunicación con otro microcontrolador o con una PC y en la mayoría de los casos hay que agregar circuitos externos para completar la interfaz de comunicación. La forma más común de completar el puerto serie es para comunicarlo con una PC mediante la interfaz EIA-232 (más conocida como RS-232), es por ello que muchas personas se refieren a la UART o USART como puerto serie RS-232, pero esto constituye un error, puesto que este periférico se puede utilizar para interconectar dispositivos mediante otros estándares de comunicación. En aplicaciones industriales se utiliza preferiblemente RS-485 por sus superior alcance en distancia, velocidad y resistencia al ruido.

SPI

Este tipo de periférico se utiliza para comunicar al microcontrolador con otros microcontroladores o con periféricos externos conectados a él, por medio de una interfaz muy sencilla . Hay solo un nodo controlador que permite iniciar cualquier transacción, lo cual es una desventaja en sistemas complejos, pero su sencillez permite el aislamiento galvánico de forma directa por medio de optoacopladores.

I2C

Cumple las mismas funciones que el SPI, pero requiere menos señales de comunicación y cualquier nodo puede iniciar una transacción. Es muy utilizado para conectar las tarjetas gráficas de las computadoras personales con los monitores, para que estos últimos informen de sus prestaciones y permitir la autoconfiguración del sistema de vídeo.

USB

Los microcontroladores son los que han permitido la existencia de este sistema de comunicación. Es un sistema que trabaja por polling (monitorización) de un conjunto de periféricos inteligentes por parte de un amo, que es normalmente un computador personal. Cada modo inteligente está gobernado inevitablemente por un microcontrolador.

Ethernet

Es el sistema más extendido en el mundo para redes de área local cableadas. Los microcontroladores más poderosos de 32 bits se usan para implementar periféricos lo suficientemente poderosos como para que puedan ser accesados directamente por la red. Muchos de los enrutadores caseros de pequeñas empresas están construidos en base a un microcontrolador que hace del cerebro del sistema.

Can

Este protocolo es del tipo CSMA/CD con tolerancia a elevados voltajes de modo común y orientado al tiempo real. Este protocolo es el estándar mas importante en la industria automotriz (OBD). También se usa como capa física del "field bus" para el control industrial.

Otros puertos de comunicación

Hay una enorme cantidad de otros buses disponibles para la industria automotriz (linbus) o de medios audiovisuales como el i2s, IEEE 1394. Es usuario se los encontrará cuando trabaje en algún area especializada

Drivers

Un controlador de dispositivo, llamado normalmente controlador (en inglés, device driver) es un programa informático que permite al sistema operativo interactuar con un periférico, haciendo una abstracción del hardware y proporcionando una interfaz -posiblemente estandarizada- para usarlo. Se puede esquematizar como un manual de instrucciones que le indica al sistema operativo, cómo debe controlar y comunicarse con un dispositivo en particular. Por tanto, es una pieza esencial, sin la cual no se podría usar el hardware.



Existen tantos tipos de controladores como tipos de periféricos, y es común encontrar más de un controlador posible para el mismo dispositivo, cada uno ofreciendo un nivel distinto de funcionalidades. Por ejemplo, aparte de los oficiales (normalmente disponibles en la página web del fabricante), se pueden encontrar también los proporcionados por el sistema operativo, o también versiones no oficiales hechas por terceros.
Debido a que el software de controladores de dispositivos se ejecuta como parte del sistema operativo, con acceso sin restricciones a todo el equipo, resulta esencial que sólo se permitan los controladores de dispositivos autorizados. La firma y el almacenamiento provisional de los paquetes de controladores de dispositivos en los equipos cliente, mediante las técnicas descritas en esta guía, proporcionan las ventajas siguientes:
  • Seguridad mejorada. Puesto que los usuarios estándar no pueden instalar controladores de dispositivos que no estén firmados o que estén firmados por un editor que no es de confianza, los administradores tendrán un control riguroso respecto a los controladores de dispositivos que pueden usarse en una organización. Podrán impedirse los controladores de dispositivos desconocidos, así como cualquier controlador de dispositivo que el administrador no permita expresamente. Mediante el uso de directivas de grupo, un administrador puede proporcionar a todos los equipos cliente de una organización los certificados de los editores que se consideren de confianza, permitiendo la instalación de los controladores sin intervención del usuario, para comprobar que se trata de una firma digital de confianza.
  • Reducción de los costes de soporte técnico. Los usuarios sólo podrán instalar los dispositivos que hayan sido probados y admitidos por la organización. En consecuencia, el sistema permite mantener la seguridad del equipo, al tiempo que se reducen las solicitudes del departamento de soporte técnico.
  • Experiencia de usuario mejorada. Un paquete de controladores firmado por un editor de confianza y almacenado provisionalmente en el almacén de controladores funciona de modo automático, cuando el usuario conecta el dispositivo al equipo. No se requiere acción alguna por parte del usuario.
En esta sección se incluyen las tareas principales para la seguridad de los paquetes de controladores de dispositivos:
Los controladores de dispositivo (device drivers en inglés) son programas añadidos al núcleo del sistema operativo, concebidos inicialmente para gestionar periféricos y dispositivos especiales. Pueden ser de dos tipos: orientados a caracteres (tales como los dispositivos NUL, AUX, PRN, del sistema) o bien orientados a bloques, constituyendo las conocidas unidades de disco. La diferencia fundamental entre ambos tipos de controladores es que los primeros reciben o envían la información carácter a carácter; en cambio, los controladores de dispositivo de bloques procesan, como su propio nombre indica, bloques de cierta longitud en bytes (sectores). Los controladores de dispositivo, aparecidos con el DOS 2.0, permiten añadir nuevos componentes al ordenador sin necesidad de rediseñar el sistema operativo.
Tradicionalmente han sido programas binarios puros, similares a los COM aunque ensamblados con un ORG 0, a los que se les colocaba una extensión SYS. Sin embargo, no hay razón para que ello sea así, ya que un controlador de dispositivo puede estar incluido dentro de un programa EXE, con la condición de que el código del controlador sea el primer segmento de dicho programa. El EMM386.EXE del MS-DOS 5.0 sorprendió a más de uno en su día, ya que llamaba la atención observar como se podía cargar con DEVICE: lo cierto es que esto es factible incluso desde el DOS 2.0 (pese a lo que pueda indicar algún libro), pero ha sido mantenido casi en secreto. Actualmente es relativamente frecuente encontrar programas de este tipo. La ventaja de un controlador de dispositivo de tipo EXE es que puede ser ejecutado desde el DOS para modificar sus condiciones de operación, sin complicar su uso por parte del usuario con otro programa adicional. Además, un controlador de dispositivo EXE puede superar el límite de los 64 Kb, ya que el DOS se encarga de relocalizar las referencias absolutas a segmentos como en cualquier programa EXE ordinario.
En placas de vídeo, principalmente, los drivers son indispensables, pues las tecnologías (DirectX 10, OpenGL 2.1, PhysX, etc) que las nuevas placas utilizan para que los juegos reproduzcan efectos especiales son muy avanzadas y necesitan instrucciones bien detalladas y específicas.

Drivers básicos

Windows consigue hacer que algunos componentes de hardware funcionen - aunque de manera simple - sin instalar otro driver. Esto es posible, gracias a los drivers básicos, que son sólo drivers comunes para cualquier placa. Por ejemplo, el driver básico (también conocido como genérico o standard) de vídeo, tiene instrucciones pre-establecidas que definen que cualquier placa de vídeo soporta la resolución de 640x480 y pueda reproducir 16 colores.
1Por sus siglas en inglés. Input/Output

jueves, 10 de mayo de 2012

Unidades de almacenamiento


Introducción

Han pasado muchos años, millones de hecho, desde que el ser humano sintió la necesidad de registrar información sobre un medio; desde sus humildes inicios cuando con el uso de pigmentos hacia pinturas donde plasmaba hechos ocurridos o animales vistos, poco tiempo paso para que utilizara otros métodos para guardar información como los códices en los que incluso puede detallar procedimientos médicos de aquel entonces. Poco a poco las tecnologías fueron mejorando y con ello la complejidad de los pensamientos con lo que el conservar la información se volvió en algo muy importante.
Primero, los medios de almacenamiento se aplicaron para guardar patrones de tejido, y el mismo principio de utilizo para hacer el censo de USA; para este punto; los medios aún no eran digitales, eran físicos aplicados a maquinas. Pero sentaron las bases para lo que hoy en día conocemos.
Sean mecánicos o digitales, en los dispositivos de almacenamiento se guardan, de forma temporal o permanente, datos y programas que se manejan en los equipos de computo, su objetivo es almacenar y recuperar la información de forma eficiente.
El almacenamiento se relaciona con do procesos:
  1. Lectura de datos almacenados para luego transferirse a la memoria de la computadora.
  2. Escritura o grabación de datos para mas tarde recuperarla y utilizarla.

Evolución de los dispositivos de almacenamiento

Los medios de almacenamiento han evolucionado en forma notable desde las primeras computadoras. En la actualidad existe una gran variedad tecnologías y dispositivos nuevos, pero el disco rígido sigue siendo el "almacén" principal de la información en la computadora.
Estos dispositivos pueden almacenar en si mismo la información o transcribirla a otros soportes. Los principales dispositivos de almacenamiento que nos podemos encontrar en una computadora son:

Tarjetas perforadas

Aunque se suele atribuir a Joseph-Marie Jacquard 1 la primicia al utilizar en sus telares mecánicos una ristra de tarjetas perforadas como elemento de control la realidad es que fue un maestro tejedor de Lyon, Henri Falcon, quien, en 1728, ya reemplazo una cinta de papel perforado por una serie de tarjetas perforadas unidas por un cordón. Esta técnica se perdió cuando se emplearon cilindros perforados para el mismo objetivo. Es entonces que Jaquard tiempo después volvió al uso de las tarjetas mediante el empleo de un aditamento mediante el cual la tarjeta perforada controlaba el hilo correspondiente a un solo patrón de seda. Este invento permitió que un solo maestro hilador logrará hacer diseños sumamente complejos sin la ayuda de un ayudante.
Este principio de tarjeta perforada fue aplicado por Herman Hollerith para el censo de 1887 en Estados Unidos y tiempo después se tomo como el primer medio para ingreso y almacenamiento de información.

Cintas perforadas

En principio se puede tomar como tarjetas perforadas, con la variante de que es en un formato continuo utilizada comúnmente para la comunicación de teletipos y como almacenamiento de datos en maquinas CNC (Control Numérico por Computadora).

Cinta magnética

El soporte en cintas magnéticas consiste en una banda donde se ha depositado material magnético y, en algunos casos, una capa protectora lubricante. Esta cinta esta dividida en varias pistas en las que se registra la información. Esta cinta es un deposito secuencial, ya que hay que recorrer todo el medio hasta encontrar la información deseada.
La primer cinta magnética comercial fue introducida en la UNIVAC en el año de 1951. Este dispositivo utilizaba una cinta metálica con una capacidad de 1.44Mbits una densidad de registro de 25dpi y una velocidad de lectura de 100 pulgadas/s.

Discos magnéticos

Las pistas circulares concéntricos separados lo menos posible entre sí, existentes en sus dos caras recubiertas de una fina capa superficial de material magnetizable. Este es del tipo usado en las cintas de audio, siendo que las partícula ferromagnética que lo componen conservan su magnetismo aunque desaparezca el campo que las magnetizó.
Disco magnético son sistemas de almacenamiento de información que en la actualidad tienen una gran importancia, ya que constituyen el principal soporte utilizado como memoria masiva auxiliar. El cuerpo del disco así recubierto en sus dos caras, está constituido: en los disquetes por mylard (flexible), y en los discos rígidos por aluminio o cristal cerámico.

El disco duro

Es el principal dispositivo de almacenamiento del equipo, y su principal cometido es contener, entre otros datos, el sistema operativo, que es el elemento necesario para manejar todas las aplicaciones instaladas en el ordenador. La capacidad de un disco duro es muy variada, hoy en día los podemos encontrar hasta de unos 5 TB2. Lo habitual es que instalemos un disco duro en el equipo, pero podemos instalar dos o mas lo cual es muy visto en servidores.
El disco duro se compone de un conjunto de discos metálicos y magnéticos dentro de una caja. El rendimiento de este determina la velocidad con la que se abren los programas y los archivos. De igual forma un disco duro mas eficiente ayuda a necesitar menos memoria RAM.

Interfases de los discos duros

La interfaz en un componente electrónico que gestiona el flujo de datos entre el sistema y el disco, siendo responsable de factores como el formato en el que almacenan los datos, su taza de transferencia, velocidad, etc

Interfaces ST506, MFM y RLL

Los primeros discos duros eran gestionados por controladoras ST506 estándar creado por la empresa Seagate. Dentro de esta norma se implementaron los modos MFM y RLL, dos sistemas para el almacenamiento de datos que si bien son diferentes en funcionamiento, a nivel físico y externo del disco presentan la misma apariencia.
Estas unidades incluían externamente tres conectores; El primero, y como en cualquier otro disco duro, el de la alimentación. Los otros dos servían para el control y la transmisión de datos desde el disco hasta la controladora.
La tasa de transferencia era de unos 0.5Mb/s el MFM y 0.75Mb/s el RLL, su capacidad era de entre 40 a 100 Mb.

Interfaz ESDI

Esta tecnología represento un adelanto para el tiempo en el que surgió, ya que una parte de la lógica decodificadora de la controladora se implemento en la propia unidad, lo que permitió elevar el ratio de transferencia a 10MB/s. Así mismo se integro un buffer de sectores que permitía transferir pistas completas en un único giro o revolución del disco.
No obstante estas tecnologías no fueron muy extendidas, solo compañías como IBM o Hp/Compaq fueron las que mas los emplearon en sus máquinas. En ningún caso excedieron de los 650Mb de capacidad.

Interfaz IDE

Esta interfaz fue creada a pedido de Compaq a Western Digital para aplicarlas en un tipo de ordenadores. Su principal característica era la de contener la controladora en la propia unidad; de este modo solo era útil un cable entre el cable IDE y el bus del sistema. Se elimino la necesidad de utilizar un cable para el control y otro para la transmisión bastando con uno solo de 40 hilos desde el bus hasta el disco duro.
IDE permite una transferencia de 4 Mb/s. Una clara desventaja sobre esta tecnología es que no podían coexistir mas de dos unidades en un equipo y que su capacidad no era mayor a los 528Mb.

Interfaz EIDE

La interfaz EIDE o también conocida como IDE mejorado, logra una mejora de flexibilidad y prestaciones. En primera instancia aumenta su capacidad hasta los 8.4Gb y la tasa de transferencia comienza a subir a partir de los 10Mb/s.
Además se emplean dos sistemas de traducción de los parámetros físicos de la unidad, de forma que se pudiera acceder de modos en capacidades mas elevadas. Como mejora, las unidades EIDE podían ser instaladas en números de hasta cuatro en un solo equipo. Para ello se obligo a los fabricantes de sistemas y de BIOS a soportar los controladores secundarios siempre presentes en los diseños de PC's pero jamas utilizados hasta el momento para montar una unidad maestra y otra esclava.
También se habilito la posibilidad de instalar unidades CD-ROM y DVD coexistiendo en el sistema.

Interfaz SCSI

Estas unidades fueron destinadas a entornos de desarrollo profesional donde se requiera de mucha fiabilidad y rendimiento. En su versión mas sencilla de esta interfaz permite el montaje de hasta 7 unidades. También abre la portabilidad permitiendo montar la misma unidad de un sistema Windows a Macintosh con la misma norma. Aumenta el rendimiento y la no dependencia del BUS. Posee su propia BIOS por lo que sobrepasa limitaciones de la ROM BIOS.

Interfaz S-ATA

Esta supera un número importante de problemas con los tradicionales discos ATA en sistemas realmente grandes o cuando las necesidades de almacenamiento son sumamente grandes.

Interfaz SAS

Este sustituye a la conexión SCSI aunque continua utilizando los mismos comandos para interactuar con los nuevos dispositivos. Produce un importante incremento con la velocidad permitiendo la conexión y desconexión en caliente de dispositivos. Alcanza tasas de transferencia de 128Mb/s, cuenta con un buffer de 16Mb para lectura y escritura lo que evita los cuellos de botella.

Unidades en estado sólido (SSD)

Un dispositivo en estado sólido es un medio de almacenamiento de datos que utiliza memoria no volátil tales como la flash en lugar de los platos encontrados en los discos duros. Estos son un dispositivo secundario de almacenamiento hechos con componentes electrónico para uso en computadoras en sustitución de los discos convencionales. Al no tener partes móviles pretende disminuir el tiempo de lectura y el de lactancia y otros retrasos. Es inmune a las vibraciones por lo que es la mas recomendable para su uso en equipos móviles como laptops, coches y aviones.



Ventajas

  • Arranque mas rápido
  • Mayor rapidez de lectura
  • Lanzamiento y arranque de aplicaciones mas rápido
  • Menor consumo de energía
  • Menor producción de calor
  • Menor peso

Desventajas

  • El precio es mucho mayor que un disco duro
  • Menor tiempo de vida confiable
  • Menor recuperación de información en un fallo. Al descomponerse la información se pierde permanentemente

Disquetera (flopy room).

Utiliza un soporte magnético llamado disquete para leer y escribir la información. Actualmente esta en desuso. Por lo general se encuentra en la parte frontal del gabinete y se conecta a la placa base mediante un cable IDE y ala fuente mediante un conector Berg 4p especifico para ella.

Unidades ópticas

Estas unidades son hoy en día ampliamente utilizadas, aunque se están reemplazando por otros tipos como las flash drive. En estas se encuentran las lectoras y las grabadoras y pueden utilizar soportes como el CD, el DVD, y mas recientemente el Blue Ray.
Las unidades que combinan lectura y escritura de diferentes soportes se denomina combo. Así es habitual ver en equipos; principalmente portátiles; CD-R/DVD (Lee CD y DVD pero solo grava CD).
Estas un9idades se encuentran en la parte frontal de gabinetes de equipos de escritorio o en la parte lateral en portátiles, incluso se les encuentra en la parte trasera en equipos All In One. Utilizan la misma conexión de corriente y datos que el disco duro.

CD-ROOM

El CD-ROOM emplea un láser para la lectura junto con un complejo sistema óptico. Dicho láser incide en la superficie del disco pudiendo ocurrir dos cosas: La luz da en la superficie que no ha sido quemada por la grabadora en cuyo caso se refleja en el metal, y dicha reflexión es captaa por un sensor interpretándose un uno lógico, o bien la luz incide en una de las perforaciones quemadas e interpretada por un cero lógico.
El tiempo medio que tarda una unidad en acceder a la información cuando se lo pedimos se le llama velocidad de acceso. Los valores típicos oscilan entre 100 y 250 milisegundos. A mayor velocidad de acceso menor tiempo tardará en comenzar a transferir los datos al sistema.

DVD

Los soportes en DVD son; en pocas palabras; una extensión de los CD-ROOM, capaces de almacenar varias veces mas información. En lo que difieren en comparación con un CD-ROOM es en la velocidad de lectura, grabación y regrabación.
Podemos dividir a las unidades DVD por el formato que utilizan que pueden ser DVD-R y DVD+R.

DVD-R/RW

Este es el formato que hasta el momento ha adoptado Apple en sus unidades SuperDrive al igual que por el DVD Forum que integran marcas como Pioner, LaCie, Panasonik, TDK. Teac, Toshiba. Es el formato mas extendido.

DVD+R/RW

Este es el formato adoptado por la Alliance DVD+RW que integra marcas como Aopen, Freecom, Hp, NEC, Phillips, Plextor, Rocoh, Sony, TDK, Vervatim, Vivistar, Polares. Este es relativamente nuevo, se creo con fines domésticos introduciéndose al mercado a principios de 2002 y por lo tanto es menos extendido que DVD-R.

Blue-Ray

El Blue-ray es un soporte de almacenamiento, se presenta en un formato de disco óptico de 12cm de diámetro igual que un CD. Este tipo de soporte se ideo para vídeo de alta definición y almacenamiento de datos en alta densidad.
El funcionamiento de estas unidades es idéntico al de los CD y al de los DVD con excepción del haz de luz azul y en la estructura de datos.
El diseño estructural de un disco Blue-ray es muy diferente al de un CD o un DVD, mientras que la capa del sustrato de un DVD tiene un grosos de 0.6mm en el disco Blue-ray esta cubierto por una capa de tan solo 0.1mm, así es como se puede obtener la distancia óptica entre las pistas de datos y el sistema óptico de los drivers.
Su capasidad esta condicionada por el número de capas que contenga, una capa de Blue-ray puede contener unos 25GB, aproximadamente 6 horas de vídeo de alta definición mas el audio. Si el disco es de doble capa puede contener aproximadamente 50GB. En la actualidad se estan desarrollando discos Blue-ray de cuatro y ocho capas.

Lector de tarjetas

Este dispositivo agrupa ranuras para diferentes tipos de tarjetas flash. Dichas tarjetas suelen utilizarse en aparatos electrónicos como cámaras, teléfonos móviles, videojuegos y otros.
Al tener el mismo tamaño que la disquetera ocupa su lugar en el gabinete, aunque algunos modelos vienen adaptados para colocarlos en una ranura mas grande o en modelos portátiles esta unidad es mas compacta. Para instalarlo es necesario que el equipo disponga de una placa de un bus de expansión USB, pues esta es la única conexión que lleva.

Tarjetas de memoria

Una tarjeta de memoria o tarjeta de memoria flash es un dispositivo de almacenamiento que conserva la información que le ha sido almacenada de forma correcta aun con la pérdida de energía, es decir, es una memoria no volátil.
na tarjeta de memoria es un chip de memoria que mantiene su contenido sin energía. Hay diversos tipos de tarjetas.
El término Memoria Flash fue acuñado por Toshiba, por su capacidad para borrarse “en un flash” (instante). Derivados de EEPROM, se borran en bloques fijos, en lugar de bytes solos. Los tamaños de los bloques por lo general van de 512 bytes hasta 256KB.los chips flash son menos costosos y proporcionan mayores densidades de bits. Además, el flash se está convirtiendo en una alternativa para los EPROM porque pueden actualizarse fácilmente.
La PC Card (PCMCIA) se encontraban entre los primeros formatos comerciales de tarjetas de memoria (tarjetas de tipo I) que salen en la década de 1990, pero ahora se utiliza principalmente en aplicaciones industriales y para conectar dispositivos de Entrada-Salida tales como un módem. También en los años 1990, una serie de formatos de tarjetas de memoria más pequeña que la PC Card salieron, incluyendo CompactFlash, SmartMedia, Secure Digital, MiniSD, MicroSD y similares. El deseo de pequeñas tarjetas en teléfonos móviles, PDAs y cámaras digitales compactas produjo una tendencia que dejó la anterior generación de tarjetas demasiado grandes.
En las cámaras digitales SmartMedia y CompactFlash había tenido mucho éxito, en 2001 SM había capturado el 50% del mercado de cámaras digitales y CF tenía un dominio absoluto sobre las cámaras digitales profesionales. En 2005, sin embargo, Secure Digital/Multi Media Card habían ocupado el puesto de SmartMedia, aunque no al mismo nivel y con una fuerte competencia procedente de las variantes de Memory Stick, xD-Picture Card, y CompactFlash. En el campo industrial, incluso las venerables tarjetas de memoria PC card (PCMCIA) todavía mantienen un nicho de mercado, mientras que en los teléfonos móviles y PDA, el mercado de la tarjeta de memoria estaba muy fragmentado hasta el año 2010 cuando microSD pasa a dominar el mercado de smartphones y tabletas.

Unidades de almacenamiento en equipos portátiles

  • Los equipos portátiles utilizan prácticamente los mismos dispositivos que el resto de las PC's La diferencia radica en el tamaño, las conexiones, la ubicación y en ciertos caso en la velocidad, generalmente de escritura.
  • El disco duro es mucho mas pequeño y en la misma conexión lleva datos y corriente
  • La disquetera es inexistente, la cual esta ya en desuso pero se puede ver en equipos de escritorio contrario en equipos portátiles.
  • La unidad óptica; si la tiene; suele ser combo. Utiliza la misma conexión que el disco duro
  • El lector de tarjetas esta integrado al aplaca madre y suele no ser tan completo pues por el tamaño suele eliminar algunas ranuras.
Los equipos portátiles reducidos (netbooks) utilizan como dispositivo de almacenamiento un disco duro. La tendencia actual es la de utilizar un sistema híbrido entre disco duro (HDD) y u8nidades en estado sólido (SSD), que emplea memoria tipo SDRAM con hasta 3 TB de capacidad y que esta llamado a sustituir al disco duro convencional por sus altas prestaciones.

Sistemas de almacenamiento a gran escala

La tecnología de almacenamiento actual engloba todo tipo de soportes. Tenemos, por ejemplo, sistemas WORM, bibliotecas de cintas y bibliotecas virtuales. En los últimos años, los sistemas SAN y NAS han demostrado su excelente fiabilidad. Veamos en qué se diferencian estos dos sistemas:
  • Las unidades SAN (Storage Area Network) pueden ser armarios enormes; algunos pueden tener 240 discos duros. Estos grandes sistemas con más de 50 terabytes de capacidad hacen más que sólo activar cientos de discos duros. Son almacenes de datos de una potencia increíble que emplean utilidades de software muy versátiles para gestionar múltiples arrays, soportar diversas configuraciones de arquitectura de almacenamiento y proporcionar una monitorización constante del sistema.
  • Las unidades NAS (Network Attached Storage) son unidades independientes que cuentan con sistemas operativos y de archivos propios y gestionan los discos duros que llevan conectados. Son unidades de diversa capacidad para ajustarse a las necesidades de cada propietario y funcionan como servidores de archivos.
Desde hace bastante tiempo, el almacenamiento a gran escala no ha estado al alcance de la pequeña empresa. Los sistemas de discos duros SAN Serial ATA (SATA) se están convirtiendo en una manera rentable de disfrutar de gran capacidad de almacenamiento. Estas unidades array también se están incorporando a los sistemas de copia de seguridad en cintas virtuales, es decir, en arrays RAID que se presentan como máquinas de cintas, eliminando completamente los soportes en cinta.
Otras tecnologías de almacenamiento, como iSCSI, DAS (Direct Attached Storage), Near-Line Storage (datos adjuntos en soportes extraíbles) y CAS (Content Attached Storage), también proporcionan disponibilidad. Los arquitectos del almacenamiento saben que una copia de seguridad no basta. En los entornos actuales altamente informatizados, las copias de seguridad acumulativas diarias o semanales completas pueden quedar obsoletas en cuestión de horas o incluso minutos después de ser creadas. En entornos de grandes almacenes de datos, ni siquiera se tiene en cuenta hacer copias de seguridad de datos en continuo cambio. La única salida para estos enormes sistemas es contar con sistemas espejo de almacenamiento: servidores literalmente idénticos con exactamente la misma capacidad.

Programas para protección de datos

Los fabricantes de sistemas de almacenaje buscan maneras exclusivas de procesar grandes cantidades de datos y proporcionar al mismo tiempo redundancia en casos de desastre. Algunas grandes unidades SAN incorporan una complicada organización en bloques, creando en esencia un sistema de archivos de bajo nivel desde la perspectiva RAID. Otras unidades SAN incorporan un registro interno de transacciones en bloques, de modo que el procesador de control de la SAN pueda rastrear en ellas y escribir en cada disco por separado. Con este registro de transacciones, la unidad SAN puede recuperarse en caso de caídas de tensión o paradas inesperadas. (Ver ejemplos de sistemas SAN)
Algunos científicos informáticos especializados en sistemas de almacenamiento proponen añadir inteligencia a la controladora del array RAID para hacerla consciente de los sistemas de archivos. Esta tecnología proporcionaría mayor capacidad de recuperación en casos de desastre, teniendo por meta la consecución de arrays de almacenamiento que se "curan" solos. (Ver A la vanguardia de la tecnología de almacenamiento - Controladoras RAID más inteligentes)
Contar con una reserva heterogénea de almacenamiento de información a donde pueden acceder numerosos ordenadores sin depender de un sistema de archivos de un tipo específico sería otra idea por el estilo. En organizaciones donde existen diversas plataformas de hardware y sistemas, un sistema de archivos transparente proporcionaría acceso a los datos independientemente del sistema empleado para escribirlos. (Ver A la vanguardia de la tecnología de almacenamiento - Sistema de archivos SAN)
Otros científicos informáticos abordan la cuestión de la redundancia de los arrays de almacenamiento con un enfoque muy distinto. Pese a que el concepto RAID se aplica a un número enorme de sistemas, los científicos e ingenieros informáticos buscan nuevas maneras de proteger los datos cuando los sistemas fallan. Los objetivos que impulsan el desarrollo de este tipo de RAID son la redundancia y la protección de los datos sin sacrificar el rendimiento. (Ver A la vanguardia de la tecnología de almacenamiento - Mejoras en la implementación de RAID)
Leer el informe de la University of California, Berkeley (Ver ¿Cuánta información se generó en 2003?) sobre la cantidad de información digital producida en 2003 es para quedarse estupefacto. Aunque su sistema o el de su cliente pueden no tengan terabytes o petabytes de información, en caso de desastre cada archivo es esencial.

Referencias

  • Gallegos, Carlos J. Montaje de componentes informáticos. (2011) .Editorial EDITEXT S.A. España.
  • Anassagati Pedro de M. Los periféricos. (2008). AUOC La universidad virtual. España
  • Disco magnético. (2012, 11 de marzo). Wikipedia, La enciclopedia libre. Fecha de consulta: 04:10, mayo 6, 2012 desde http://es.wikipedia.org/w/index.php?title=Disco_magn%C3%A9tico&oldid=54486281.
  • Martín Márquez Pedro L. Montaje y mantenimiento de equipos (2010). Ediciones Parainfo S.A. España.
1(1752-1854) Hijo de un obrero textil, trabajó de niño en telares de seda, y posteriormente automatizó esta tarea con el uso de tarjetas perforadas
2TB = Terabyte. Es una unidad de almacenamiento que equivale a 1012 bytes.