Publicado el 1 comentario

Inicio del sistema operativo

El inicio del sistema operativo se lleva a cabo mediante el siguiente proceso llamado proceso de arranque (boot strapping o booting) que es realizado por la computadora cada vez que se enciende.

Es este proceso se transfiere el sistema operativo desde el almacenamiento masivo (donde está almacenado de forma permanente) a la memoria principal (que está esencialmente vacía cuando se enciende la máquina por primera vez).

Detalles del proceso de arranque:

Un procesador está diseñado para que su contador de programa comience la ejecución de ciertas indicaciones iniciales en una dirección concreta predeterminada.

Estas indicaciones iniciales están guardadas en una pequeña parte de la memoria principal que no es volátil (que no se borra cuando se apaga la computadora).

Este conjunto de indicaciones iniciales llamado cargador de arranque (boot loader), le ordenan al procesador que transfiera el sistema operativo desde una ubicación del almacenamiento masivo hasta el área volátil de la memoria principal.

Proceso de arranque del sistema operativo

Los cargadores de arranque modernos pueden copiar un sistema operativo en la memoria principal desde diversas ubicaciones según se le indique el usuario.

Una vez que se ha colocado el sistema operativo en la memoria principal, el cargador de arranque ordena al procesador que ejecute una instrucción de salto a dicha área de memoria.

En este momento, el sistema operativo asume el mando y comienza a controlar las actividades de la máquina.

¿Porque no se guarda el sistema operativo en la memoria principal de la computadora?

El dedicar grandes bloques de memoria principal en las computadoras de propósito general al almacenamiento no volátil no resulta eficiente con las tecnologías actuales.

Además, los sistemas operativos para computadora sufren frecuentes actualizaciones con el fin de mantener la seguridad e incorporar controladores de dispositivo nuevos y mejorados, con el fin de poder utilizar el hardware más reciente.

Publicado el Deja un comentario

¿Qué o quién es Linux?

Linux es un sistema operativo originalmente diseñado por Linus Torvalds cuando era estudiante en la Universidad de Helsinki.

Es un sistema operativo gratuito, de dominio público, con su código fuente y su correspondiente documentación.

Para el entusiasta de las computadoras que desee experimentar con los componentes internos de un sistema operativo, existe un sistema denominado Linux.

Es como si pudieras modificar casi cualquier cosa de tu pc

Ademas,Linux está considerado como uno de los sistemas operativos más fiables disponibles en la actualidad. Por esta razón, diversas empresas empaquetan y comercializan hoy día versiones de Linux en una forma fácilmente utilizable, y estos productos están ahora planteando todo un desafío a los sistemas operativos comerciales más implantados en el mercado.

Puede obtener más información acerca de Linux en el sitio web http://www.linux.org

Publicado el Deja un comentario

Componentes de un sistema operativo

Los componentes del sistema operativo son:

Actividades Externas:

Interfaz de usuario

                  Shell

                  Interfaz gráfica de usuario

                  Administrador de ventanas

Actividades Internas

Núcleo

Administrador de archivos

Controladores de dispositivos

Gestor de la memoria

Planificador

Despachador

Interfaz de usuario.

La interfaz de usuario es la encargada de gestionar todas las comunicaciones entre la parte interna del sistema operativo y el usuario.

La interfaz de usuario actúa como intermediario entre los usuarios y el núcleo

del sistema operativo.

Las antiguas interfaces de usuario, conocidas como shell, se comunicaban con los usuarios mediante mensajes de texto (pantallas verdes o negras y texto blanco), utilizando un teclado y la pantalla de un monitor.

Los sistemas más modernos realizan esta tarea por medio de una interfaz gráfica de usuario (GUI, Graphical User Interface) en la que los objetos que hay que manipular, como por ejemplo archivos y programas, se representan de manera pictórica en la pantalla mediante iconos.

Gracias a estas nuevas interfaces, podemos utilizar otros periféricos como el ratón, el lápiz electrónico, las pantallas táctiles, y otra que estan por despegar como las interfaces en 3D o virtuales

Algunos sistemas operativos permiten al usuario elegir entre distintas interfaces, con el fin de conseguir el tipo de interacción más confortable para ese usuario concreto.

Por ejemplo, los usuarios del sistema operativo UNIX pueden elegir una shell entre los distintos disponibles, incluyendo la shell Bourne, la shell C y la shell Korn, así como una GUI denominada X11.

Las primeras versiones de Microsoft Windows eran un programa de aplicación GUI que podía cargarse desde la shell de comandos del sistema operativo MS-DOS. La shell DOS cmd.exe puede todavía encontrarse como programa de utilidad en las últimas versiones de Windows, aunque los usuarios menos expertos casi nunca van a necesitar dicha interfaz.

De forma similar, el sistema operativo OS X de Apple conserva la Shell de utilidad Terminal que se remonta a los antecesores UNIX de dicho sistema operativo.

Dentro de las interfaces gráficas de usuario actuales esta ell administrador de ventanas.

El administrador de ventanas asigna bloques de espacio en la pantalla, denominados ventanas, y controla qué aplicación está asociada con cada ventana.

Actividades internas del sistema operativo:

Núcleo

El núcleo de un sistema operativo contiene aquellas parte del software que realizan las funciones más básicas requeridas por el hardware de la computadora como:

El administrador de archivos, cuya tarea consiste en coordinar el uso de los dispositivos de almacenamiento masivo de la máquina.

El administrador de archivos mantiene un registro de todos los archivos que se encuentran en el almacenamiento masivo, incluyendo la ubicación de cada archivo, qué usuarios tienen acceso a los distintos archivos y qué partes del almacenamiento masivo están disponibles para nuevos archivos o para ampliaciones de los ya existentes.

Los administradores de archivos permiten agrupar los archivos en una serie de conjuntos; cada uno de esos conjuntos recibe el nombre de directorio o carpeta.

Esto permite al usuario organizar sus archivos de acuerdo con el propósito que tengan, colocando los archivos relacionados en un mismo directorio. Además, al permitir a los directorios contener otros directorios, que se denominan subdirectorios, puede construirse una organización jerárquica de archivos.

Una cadena de directorios incluidos dentro de otros directorios se denomina ruta de directorio. Las rutas de directorios suelen expresarse enumerando los directorios que las componen separados por barras inclinadas.

Por ejemplo, animales/prehistoricos/dinosaurios

Cualquier acceso a un archivo por parte de otras unidades software debe ser autorizado por el administrador de archivos. El proceso comienza solicitando al administrador de archivos que conceda acceso al archivo, para lo cual se emplea un procedimiento conocido como apertura del archivo.

Los controladores de dispositivos

Los controladores de dispositivos  son las parte del software que se comunican con las tarjetas controladoras (o en ocasiones directamente con los dispositivos periféricos) para llevar a cabo operaciones con los dispositivos periféricos conectados a la máquina.

Cada controlador de dispositivo está diseñado de forma específica para su tipo de dispositivo concreto (como por ejemplo una impresora, una unidad de disco o un monitor) y traduce la información del lenguaje del dispositivo en las tareas y procesos técnicas del sistema operativo.

De esta forma, el diseño de los dispositivos puede ser independiente de las características del núcleo de una computadora, con la condicione de que haya un controlador especial que comunique el dispositivo con la computadora.

El resultado es un sistema operativo genérico que puede personalizarse para emplear determinados dispositivos periféricos, instalando simplemente los controladores de dispositivo apropiados.

El gestor de la memoria.

El gestor de la memoria se encarga de la tarea de coordinar el uso de la memoria principal de la máquina.

Cuando muchos programas y bloques de datos tienen que coexistir en la memoria principal de manera concurrente el gestor de memoria debe localizar y asignar espacio de memoria para los distintos programas y asegurarse de que las acciones que cada programa lleva a cabo están restringidas al espacio que se le ha asignado.

Cuando la memoria principal es insuficiente el gestor de memoria puede crear la ilusión de que existe espacio de memoria adicional, intercambiando los programas y los datos una y otra vez entre la memoria principal y el almacenamiento masivo (una técnica que se conoce con el nombre de paginación).

Por ejemplo, suponga que hace falta una memoria principal de 8GB pero que la computadora solo dispone de 4GB. Para crear la ilusión de que existe un espacio de memoria de mayor tamaño, el gestor de la memoria reserva 4GB de espacio de almacenamiento en un disco magnético.

Allí, escribe los patrones de bits que estarían almacenados en la memoria principal si esta tuviera realmente una capacidad de 8GB. Los datos se dividen en unidades de tamaño uniforme denominadas páginas, que suelen tener unos pocos KB de tamaño.

Entonces, el gestor de la memoria mueve estas páginas entre la memoria principal y el almacenamiento masivo según va siendo necesario, asegurándose de que siempre estén presentes en los 4GB de memoria principal las páginas que verdaderamente se necesitan en cada momento concreto.

El resultado es que la computadora es capaz de funcionar como si tuviera realmente 8GB de memoria principal.

Este espacio de memoria “ficticio” de gran tamaño que se crea utilizando la técnica de paginación se conoce con el nombre de memoria virtual.

El planificador

El planificador determina qué actividades son las que pueden ejecutarse.

El despachador

El despachador controla la asignación de tiempo a esas actividades.

Publicado el Deja un comentario

Arquitectura de un sistema operativo

Comencemos dividiendo el software de una máquina en dos categorías muy amplias:

software de aplicación y software del sistema

Software de aplicación

El software de aplicación está compuesto por todos los programas que realizan tareas relacionadas con la utilización concreta de la máquina.

Ejemplos de software de aplicación:

1.- citar las hojas de cálculo

2.- los sistemas de base de datos

3.- los sistemas de autoedición

4.- los sistemas de contabilidad

5.- el software para el desarrollo de programas

6.- y los juegos.

Software del sistema

El software del sistema realiza las tareas que son comunes en general a todas las computadoras.

En un cierto sentido, el software del sistema proporciona la infraestructura que necesita el software de aplicación.

Dentro de la clase software del sistema hay dos categorías: una es el propio sistema operativo y la otra está compuesta por unidades de software que se conocen colectivamente como software de utilidad.

El Software de utilidad.

La mayor parte del software de utilidad de una instalación está compuesto por programas que se emplean para realizar actividades fundamentales para esa computadora, pero que no se incluyen en el sistema operativo.

En cierto sentido, el software de utilidad está compuesto por unidades software que amplían (o personalizan) las capacidades del sistema operativo.

Ejemplos:

1.- la capacidad de formatear un disco magnético

2.- copiar un archivo desde un disco magnético a un CD

Estas operaciones no suelen implementarse dentro del sistema operativo, sino que se proporciona por medio de un programa de utilidad.

Otros ejemplos de software de utilidad:

1.- el software necesario para comprimir y descomprimir datos,

2.- el software para reproducir presentaciones multimedia

3.- el software para gestionar las comunicaciones por red.

La implementación de ciertas actividades como software de utilidad permite personalizar el software del sistema para adecuarlo a las necesidades de una instalación concreta con mayor facilidad que si se hubiera incluido esa funcionalidad en el sistema operativo.

La distinción entre software de aplicación y software del sistema puede resultar muy vaga.

Por tanto, una nueva aplicación puede evolucionar hasta terminar siendo un software de utilidad si se convierte en una herramienta

fundamental.

Cuando todavía era un proyecto de investigación, el software para comunicarse a través de Internet se consideraba software de aplicación; hoy día, dichas herramientas son fundamentales a la hora de utilizar la mayoría de los PC y, por tanto, se clasificaría como software de utilidad.

La distinción entre el software de utilidad y el sistema operativo es igualmente vaga.

En particular, las querellas por violación de las leyes antimonopolio en Estados Unidos y en Europa se han basado en cuestiones relativas a si unidades software tales como los exploradores y los reproductores multimedia son componentes de los sistemas operativos de Microsoft o utilidades que Microsoft ha incluido simplemente para aplastar a su competencia.

Publicado el Deja un comentario

¿Qué es un teléfono inteligente?

A medida que ha ido aumentando la potencia de los teléfonos móviles, estos han comenzado a poder ofrecer servicios que van mucho más alla del simple procesamiento de llamadas de voz.

Ahora, un teléfono inteligente típico puede emplearse para enviar mensajes de texto, navegar por la Web, acceder a mapas, ver contenido multimedia; en resumen, puede utilizarse para proporcionar muchos de los mismos servicios que un PC tradicional.

Por esta razón, los teléfonos inteligentes requieren sistemas operativos completos, no solo para gestionar los limitados recursos del hardware del teléfono, sino también para poder ofrecer funcionalidades que den soporte al conjunto cada vez mayor de aplicaciones software para teléfonos inteligentes.

La batalla por el predominio en el mercado de los sistemas operativos para teléfonos inteligentes promete ser muy cruenta y terminará ganándola, probablemente, el que pueda proporcionar las funcionalidades más imaginativas al mejor precio.

Entre los competidores en el campo de los sistemas operativos para los teléfonos inteligentes podemos citar el iPhone OS de Apple BlackBerry OS de Research In Motion, Windows Phone de Microsoft, Symbian OS de Nokia y Android de Google.

Publicado el Deja un comentario

Historia de los sistemas operativos

Las computadoras de las décadas de 1940 y 1950 no eran muy flexibles, ni tampoco eficientes, la ejecución de programas requería una tediosa preparación de los equipos, en el sentido de que había que montar cintas magnéticas, colocar tarjetas perforadas en los lectores de tarjetas, configurar una serie de conmutadores, etc.

En esa época, la ejecución de cada programa, denominada trabajo, se gestionaba como una actividad independiente: se preparaba la máquina para ejecutar el programa, se ejecutaba ese programa y luego había que extraer todas las cintas, tarjetas perforadas, etc. antes de que pudiera iniciarse la ejecución del siguiente programa.

Inicio del procesamiento por lotes:

Este fue el comienzo de la técnica denominada procesamiento por lotes:

Donde la ejecución de un trabajo (datos e instrucciones) se llevaba a cabo sin interacción adicional por parte del usuario.

Procesamiento por Lotes:

Las instrucciones se codificaban utilizando un sistema conocido como lenguaje de control de trabajos (JCL, Job Control Language) y se almacenaba junto con el trabajo. Cuando se seleccionaba ese trabajo para su ejecución, el sistema operativo imprimía estas instrucciones en una impresora para que el operador de la computadora pudiera leerlas y llevarlas a la práctica.

Una cola es una estructura de almacenamiento en la que los trabajos están ordenados de acuerdo con la filosofía primero en entrar, primero en salir (FIFO, first-in, first-out).

Es decir, los objetos se extraen de la cola en el mismo orden en que llegaron.

DESVENTAJAS DEL PROCESAMIENTO POR LOTES

1.- Los usuarios es que estos no tienen la posibilidad de interactuar con sus trabajos después de habérselos enviado al operador.

2.-Puede haber trabajos más urgentes que otros dentro de la cola de trabajo.

3.-Pueden existir tareas similares entre los diferentes trabajos que la computadora pudiera ejecutar más eficientemente de manera continua.

Procesamiento interactivo

Para dar satisfacción a estas necesidades, se desarrollaron nuevos sistemas operativos que permitían que un programa en ejecución entablara un diálogo con el usuario a través de terminales remotos, una característica que se conoce con el nombre de procesamiento interactivo.

Procesamiento interactivo:

 Características del procesamiento interactivo

Primera aplicación de la rapidez de la computación

Un requisito esencial para que el procesamiento interactivo pueda funcionar es que las acciones de la computadora sean lo suficientemente rápidas como para poder adaptarse a las necesidades del usuario, en lugar de obligar al usuario a adaptarse al horario de funcionamiento de la máquina.

En un cierto sentido, la computadora está obligada a ejecutar las tareas con un límite de tiempo estricto, un proceso que se ha llegado a conocer con el nombre de procesamiento en tiempo real, en el que se dice que las acciones realizadas tienen lugar en tiempo real.

Es decir, cuando afirmamos que una computadora realiza una tarea en tiempo real queremos decir que la computadora lleva a cabo esa tarea de acuerdo con los límites de tiempo impuestos por su entorno (su entorno externo del mundo real).

Segunda aplicación de la rapidez de la computación

Multiprogramación

Ahora que los usuarios ya tenían interacción en tiempo real con la ejecución de sus programas, había más usuarios que querían utilizar la computadora.

La solución a este problema fue diseñar sistemas operativos que proporcionaran un servicio simultáneo a múltiples usuarios. Una característica denominada tiempo compartido.

La multiprogramación, es una técnica que consiste dividir el tiempo de ejecución en intervalos cortos y dentro de cada intervalo solo se ejecuta un determinado trabajo.

Al final de cada intervalo, el trabajo actual se pone temporalmente en espera, ejecutándose otro trabajo durante el siguiente intervalo.

Conmutando rápidamente entre unos trabajos y otros de esta forma, se crea la ilusión de que hay varios trabajos que se están ejecutando de manera simultánea.

Hoy día, gracias a la cantidad de computadoras disponibles las técnicas de multiprogramación se emplean en sistemas tanto multiusuario como monousuario, aunque en este último caso, la técnica resultante se suele denominar multitarea.

La multitarea hace referencia a un usuario que está ejecutando varias tareas simultáneamente.

Con el desarrollo de los sistemas operativos multiusuario, monousuarios, de tiempo compartido (multitarea), los antiguos encargados de las grandes computadoras han pasado a ser los encargados de la comunicación de todas las nuevas computadoras (sistemas) llamando por ejemplo, ingenieros en sistemas, etc.

Ahora, los sistemas operativos deben enfrentarse a problemas tales como el equilibrado de carga (asignación dinámica de tareas a los diversos procesadores con el fin de utilizar todos ellos de manera eficiente), así como el escalado (descomposición de las tareas en una serie de subtareas compatible con el número de procesadores disponibles).

Otra de las líneas de investigación en el campo de los sistemas operativos se centra en los dispositivos dedicados a tareas específicas como los dispositivos médicos, la electrónica para automoción, los electrodomésticos, los teléfonos celulares y otras computadoras de mano.

Sistemas empotrados

Los sistemas de computadoras que podemos encontrar en estos dispositivos se denominan sistemas empotrados.

Los sistemas operativos empotrados suelen tener requisitos especiales, como que ayuden a ahorrar potencia de la batería, que se ajusten a límites de tiempo real muy estrictos o que operen de manera continua sin ninguna supervisión humana o con muy poca.

Los mayores éxitos dentro de este campo son los de sistemas tales como VxWORKS, desarrollado por Wind River Systems y usado en los exploradores de la superficie de Marte llamados Spirit y Opportunity; Windows CE (también conocido como Pocket PC) desarrollado por Microsoft; y Palm OS desarrollado por PalmSource, Inc., especialmente para su uso en dispositivos de mano.

Publicado el Deja un comentario

Sistemas Operativos

El sistema operativo es el software base que controla el conjunto de operaciones de una computadora.

Proporciona el medio por el cual una persona puede comunicarse con la computadora (almacenar y extraer archivos), mediante la interfaz y los periféricos de entrada y salida.

EL sistema operativo más conocido es Windows, que Microsoft proporciona en numerosas versiones y que se utiliza ampliamente en el mercado de los PC.

Otros sistemas operativos bastante extendidos son UNIX, (núcleo fundamental de otros dos sistemas operativos; Mac OS de Apple y Solaris de Sun Microsistems), LINUX.

Las diferencias entre los sistemas operativos pueden ser de carácter estético

Pero para los profesionales de la computación, sin embargo, los diferentes sistemas operativos pueden incluir diferencias importantes en las herramientas con las que trabajan o en la filosofía que deben seguir a la hora de diseminar y mantener su trabajo.

En lo que respecta al núcleo fundamental de los sistemas operativos, todos los sistemas operativos más conocidos intentan resolver los mismos tipos de problemas como la rapidez, la coordinación, la cantidad de datos procesados, la estética y la facilidad de uso, etc.

Publicado el Deja un comentario

La historia de la computación

Uno de los primeros dispositivos de computación fue el ábaco. La historia nos dice que sus raíces se hunden, muy probablemente, en la antigua China y fue utilizado por las antiguas civilizaciones griega y romana.

Dicha máquina es muy simple, estando compuesta por una serie de pelotas ensartadas en unas varillas que a su vez se montan sobre un marco rectangular. Al mover las pelotas hacia adelante y hacia atrás en las varillas, sus posiciones representan los valores almacenados. Es gracias a las posiciones de las cuentas que esta “computadora” representa y almacena los datos. Para el control de la ejecución de un algoritmo, esta máquina depende del operador humano.

Por tanto, el ábaco es, por sí solo, un sistema de almacenamiento de datos; se precisa la intervención de una persona para poder disponer de una máquina de computación completa.

Engranajes y tarjetas perforadas

En el periodo posterior a la Edad Media y anterior a la Edad Moderna, se sentaron las bases para la búsqueda de máquinas de computación más sofisticadas.

Unos cuantos inventores comenzaron a experimentar con la tecnología de los engranajes. Entre ellos estaban Blaise Pascal (1623–1662) en Francia, Gottfried Wilhelm Leibniz (1646–1716) en Alemania y Charles Babbage (1792– 1871) en Inglaterra.

Estas máquinas representaban los datos mediante posicionamiento

con engranajes, introduciéndose los datos mecánicamente por el procedimiento de establecer las posiciones iniciales de esos engranajes. En las máquinas de Pascal y Leibniz, la salida se conseguía observando las posiciones finales de los engranajes.

Babbage, por su parte, concibió máquinas que imprimían los resultados de los cálculos en papel, con el fin de poder eliminar la posibilidad de que se produjeran errores de transcripción.

Por lo que respecta a la capacidad de seguir un algoritmo, podemos ver una cierta progresión en la flexibilidad de estas máquinas.

La máquina de Pascal se construyó para realizar únicamente sumas. En consecuencia, la secuencia apropiada de pasos estaba integrada dentro de la propia estructura de la máquina. De forma similar, la máquina de Leibniz tenía los algoritmos firmemente integrados en su arquitectura, aunque ofrecía diversas operaciones aritméticas entre las que el operador podría seleccionar una.

La máquina diferencial de Babbage (de la que solo se construyó un modelo de demostración) podía modificarse para realizar diversos cálculos, pero su máquina analítica (para cuya construcción nunca consiguió financiación) estaba diseñada para leer las instrucciones en forma de agujeros realizados en una tarjeta de cartón. Por tanto, la máquina analítica de Babbage era programable.

De hecho, se considera a Augusta Ada Byron (Ada Lovelace), que publicó un artículo en el que ilustraba cómo podría programarse la máquina analítica de Babbage para realizar diversos cálculos, como la primera programadora del mundo.

La idea de comunicar un algoritmo mediante agujeros en una tarjeta de cartón perforada no era original de Babbage. Él tomó esa idea de Joseph Jacquard (1752–1834) que, en 1801, había desarrollado un telar en el que los pasos que había que realizar en el proceso de tejido estaban determinados por una serie de patrones de agujeros realizados en grandes y gruesas tarjetas hechas de madera (o cartón).  De esta forma, el algoritmo seguido por el telar podía modificarse fácilmente para producir diferentes diseños de tejidos.

Otra persona que se aprovechó de la idea de Jacquard fue Herman Hollerith (1860–1929), que aplicó el concepto de representar la información mediante agujeros en tarjetas de cartón para acelerar el proceso de tabulación de resultados en el censo de Estados Unidos de 1890. (Fue este trabajo de Hollerith el que condujo a la creación de la empresa IBM.) Dichas tarjetas terminaron siendo conocidas con el nombre de tarjetas perforadas y sobrevivieron como método popular de comunicación con las computadoras hasta bien avanzada la década de 1970.

La tecnología disponible en aquella época no permitía producir las complejas máquinas basadas en engranajes de Pascal, Leibniz y Babbage de manera económica. Pero los avances experimentados por la electrónica a principios del siglo XX permitieron eliminar dichos obstáculos. Como ejemplo del progreso efectuado en dicha época podemos citar la máquina electromecánica de George Stibitz, completada en 1940 en los Bell Laboratories, y la computadora Mark I que se terminó de desarrollar en 1944 en la universidad de Harvard, siendo sus creadores Howard Aiken y un grupo de ingenieros de IBM.

Estas máquinas hacían un uso intensivo de relés mecánicos controlados electrónicamente. En este sentido, dichas máquinas se habían quedado obsoletas casi en el mismo momento en que fueron construidas, porque otros investigadores ya estaban utilizando la tecnología de los tubos de vacío para construir computadoras totalmente electrónicas.

Los tubos de vacio

La primera de estas máquinas fue, aparentemente, la máquina de Atanasoff-Berry, construida durante el periodo de 1937 a 1941 en el Iowa State College (que ahora es la universidad estatal de Iowa) por John Atanasoff y su ayudante, Clifford Berry.

Otro ejemplo es la máquina denominada Colossus, construida bajo la dirección de Tommy Flowers en Inglaterra para decodificar los mensajes alemanes durante los últimos años de la Segunda Guerra Mundial. (De hecho, aparentemente se construyeron hasta diez de estas máquinas, pero la necesidad de ocultar los secretos militares y las cuestiones de seguridad nacional impidieron que se registrara su existencia en el “árbol genealógico de las computadoras”.)

A estas máquinas pronto les siguieron otras más flexibles, como la computadora ENIAC (Electronic Numerical Integrator and

Calculator, Calculador e integrador numérico electrónico) desarrollada por John Mauchly y J. Presper Eckert en la Escuela de Ingeniería Eléctrica Moore de la universidad de Pensilvania.

Transistores y circuitos integrados

A partir de ahí, la historia de las computadoras ha estado estrechamente ligada a los avances tecnológicos, incluyendo la invención de los transistores (por la que obtuvieron el Premio Nobel los físicos William Shockley, John Bardeen y Walter Brattain) y el subsiguiente desarrollo de circuitos completos construidos como una unidad, denominados circuitos integrados (por los que Jack Kilby también obtuvo el Premio Nobel en Física).

Con estos desarrollos, las máquinas de la década de 1940, que tenían el tamaño de una habitación, se redujeron a lo largo de las décadas siguientes hasta el tamaño de un armario. Al mismo tiempo, la potencia de procesamiento de las computadoras comenzó a duplicarse cada dos años (una tendencia que ha continuado hasta nuestros días). A medida que fue progresando el desarrollo de los circuitos integrados, muchos de los circuitos que forman parte de una computadora pasaron a estar disponibles comercialmente en forma de circuitos integrados encapsulados en unos bloques de plástico diminutos denominados chips.

Uno de los pasos principales que condujo a la popularización de la computación fue el desarrollo de las computadoras de sobremesa. Los orígenes de estas máquinas están en los aficionados a la computación que se dedicaban a construir computadoras caseras a partir de combinaciones de chips.

Fue en este mercado de “aficionados” donde Steve Jobs y Stephen Wozniak construyeron una computadora doméstica comercialmente viable y fundaron, en 1976, Apple Computer, Inc. (ahora denominada Apple Inc.) para fabricar y distribuir sus productos. Otras empresas que distribuían productos similares eran Commodore, Heathkit y Radio Shack.

Aunque estos productos eran muy populares entre los aficionados a las computadoras, no fueron ampliamente aceptados al principio por la comunidad empresarial, que continuó acudiendo a la empresa IBM, de gran renombre, para satisfacer la mayor parte de sus necesidades de computación.

En 1981, IBM presentó su primera computadora de sobremesa, denominada computadora personal o PC (Personal Computer), y cuyo software subyacente había sido desarrollado por una empresa de reciente creación de nombre Microsoft.

El PC tuvo un éxito instantáneo y dio legitimidad a la computadora de sobremesa como producto de consumo en la mente de la comunidad empresarial.

Hoy día, se emplea ampliamente el término PC para hacer referencia a todas esas máquinas de diversos fabricantes cuyo diseño ha evolucionado a partir de la computadora personal inicial de IBM y la mayoría de ellas se ponen en el mercado con el software de Microsoft. En ocasiones, sin embargo, el término PC se utiliza de manera intercambiable con los términos genéricos computadora de sobremesa (desktop) o computadora portátil (laptop). A medida que el siglo XX se aproximaba a su final, la capacidad de conectar computadoras individuales en un sistema mundial denominado Internet estaba revolucionando las comunicaciones.

El internet

En este contexto, Tim Berners-Lee (un científico británico) propuso un sistema mediante el que podían enlazarse entre sí documentos almacenados en computadoras distribuidas por toda Internet, generando un laberinto de información enlazada que se denominó World Wide Web (y que a menudo se abrevia con el nombre de “Web”).

Para hacer accesible la información en la Web, se desarrollaron sistemas software, conocidos como motores de búsqueda, los cuales permiten “explorar” la Web, “clasificar” las páginas encontradas y luego utilizar los resultados para ayudar a los usuarios que estén investigando acerca de determinados temas.

Los principales actores en este campo son Google, Yahoo y Microsoft. Estas empresas continúan ampliando sus actividades relacionadas con la Web, a menudo en determinadas direcciones que desafían incluso a nuestra forma tradicional de pensar.

Al mismo tiempo que las computadoras de sobremesa (y las más modernas computadoras portátiles) comenzaban a tener aceptación y a ser utilizadas en entornos domésticos, continuaban produciéndose avances en la miniaturización de las máquinas de computación. Hoy día, hay integradas diminutas computadoras en diversos tipos de dispositivos.

Por ejemplo, los automóviles contienen actualmente pequeñas computadoras en las que se ejecutan sistemas de navegación, GPS (Global Positioning System, Sistema de posicionamiento global), que monitorizan el funcionamiento del motor y que permiten emplear servicios de control por voz de los sistemas de comunicación telefónica y de audio del automóvil.

El móvil o celular

Quizá la aplicación más revolucionaria en el proceso de miniaturización de las computadoras es la que hace posible las cada vez mayores capacidades de los teléfonos portátiles.

Ciertamente, lo que recientemente era tan solo un teléfono ha evolucionado hasta convertirse en una pequeña computadora de mano de uso general que se denomina teléfono inteligente (smartphone) y en la que la telefonía es solo una entre muchas otras aplicaciones.

Estos “teléfonos” están equipados con una amplia gama de sensores e interfaces, incluyendo cámaras, micrófonos, brújulas, pantallas táctiles, acelerómetros (para detectar la orientación y el movimiento del teléfono) y una serie de tecnologías inalámbricas para comunicarse con otros teléfonos inteligentes y con computadoras.

El potencial de este tipo de tecnología es enorme. De hecho, muchas personas sostienen que el teléfono inteligente tendrá un mayor efecto sobre la sociedad que el propio PC.

La miniaturización de las computadoras y sus cada vez mayores capacidades han situado a la tecnología de la computación en la vanguardia de nuestra sociedad actual. La tecnología de computadoras es tan prevalente hoy día, que la familiaridad con ella es fundamental para poder ser un miembro de pleno derecho de nuestra sociedad moderna.

La tecnología de la computación ha alterado la capacidad de los gobiernos para ejercer control sobre los ciudadanos; ha tenido un enorme impacto en la globalización de la economía; ha conducido a extraordinarios avances en el campo de la investigación científica;   el funcionamiento de los sistemas de recopilación y almacenamiento de datos y de las aplicaciones que los utilizan; ha proporcionado nuevas formas de comunicación e interacción a las personas y ha planteado diversos desafíos al estatus actualmente vigente en nuestra sociedad.

Publicado el Deja un comentario

El procesador de la computadora

El procesador o Unidad Central de Proceso, (CPU, Central Processing Unit) controla el funcionamiento de la computadora y realiza sus funciones de procesamiento de los datos, constituyendo el cerebro y corazón de la computadora o también su sistema nervioso.

Se encarga de un modo práctico de realizar numerosos cálculos y operaciones ordenadas por los diferentes programas instalados en la computadora.

Cada computadora tiene al menos una CPU para interpretar y ejecutar las instrucciones de cada programa, realizar las manipulaciones de datos aritméticos y lógicos, y comunicarse con todas las restantes partes de la máquina indirectamente a través de la memoria.

Un moderno procesador o microprocesador, es una colección compleja de dispositivos electrónicos. En una computadora de escritorio o en una portátil (laptop o notebook) la CPU se aloja junto con otros chips y componentes electrónicos en la placa base también denominada placa madre (motherboard).

La elección de la placa base proporcionará una mayor o menor potencia a la computadora y está compuesta por numerosos componentes electrónicos y se ramifica hacia todos los periféricos externos a través de conectores (puertos) colocados en la mayoría de las veces en la parte posterior del equipo, principalmente en los equipos de sobremesa y torre, mientras que en los equipos portátiles o portables, están colocados no sólo en la parte posterior sino también en las partes laterales o incluso delantera.

Existen numerosos fabricantes de procesadores, aunque, entre otros, los más acreditados son Intel, AMD, Transmeta (empresa conocida por estar vinculada en sus orígenes con Linus Torvald creador del sistema operativo Linux), IBM, Motorola y Sun Microsystems.

En cuanto a familias en concreto, los más populares son: Pentium de Intel (que incluye Celeron y Xeon), Opteron de AMD, SPARC de Sun Microsystemas, Crusoe de Transmeta, Centrino Core 2

y Centro Core 2 Duo de Intel que se instalan en portátiles, etc.

Todas los CPU tienen una velocidad de trabajo, regulada por un pequeño cristal de cuarzo, y que se conoce como frecuencia de reloj.

El cristal vibra a un elevado número de ciclos de reloj.  Con cada ciclo de reloj se envía un impulso a la CPU, y en principio, cada pulsación puede hacer realizar una o más tareas a la CPU.

El número de ciclos de reloj por segundo se mide en hertzios. El cristal de la CPU vibra millones de veces por segundo y por esta razón la velocidad del reloj se calcula en millones de oscilaciones (megahercios o MHz) o miles de millones de ciclos por segundo, gigahercios (GHz).

En consecuencia, la velocidad de los microprocesadores se mide en MHz o en GHz. De esta forma si el procesador de su equipo funciona a 3 GHz significa que realiza 3 millones de operaciones por segundo.

Generaciones de microprocesadores

El PC original de 1981 trabajaba a 4,77 MHz y su microprocesador era el Intel 8088. Trabajaba a 16 bits internamente, aunque el bus externo para comunicarse con el resto de componentes era tan sólo de 8 bits.

El microprocesador Intel 8088 fue lanzado al mercado en junio de 1979, aunque con anterioridad (junio de 1978) Intel lanzó el 8086.

Estos microprocesadores con sus diferentes modelos, constituyeron la primera generación o familia de microprocesadores.

En total, Intel ha lanzado numerosas generaciones o familias de procesadores que han permanecido en el mercado durante varios años durante los cuales se ha ido incrementando la frecuencia de reloj.

En 1993 Intel presentó el Pentium II, Motorola el 68060 y AMD el K5.

Desde entonces Intel y AMD, fundamentalmente, han continuado presentando numerosas generaciones o familias de procesadores que permanecen en el mercado durante varios años incrementando la frecuencia de reloj con cada nuevo modelo además de otras características importantes.

En el año 2000 Intel presentó el Pentium IV y AMD el Athlon XP y Duron, desencadenantes de los potentes procesadores existentes hoy día y que han servido de soporte a la mayoría de las computadoras personales de la primera década de los 2000. En 2004, Intel presentó los Pentium M, D y Core Duo, mientras que AMD presentó en 2005,el   Athlon.

En enero de 2006, Intel lanzó el procesador Core Duo, optimizado para aplicaciones de procesos múltiples y multitarea. Puede ejecutar varias aplicaciones complejas simultáneamente, como juegos con gráficos potentes o programas que requieran muchos cálculos y al mismo tiempo puede descargar música o analizar su PC con un antivirus en segundo plano.

A finales del mismo año, Intel presentó el Core 2 Duo que dobla la potencia de cálculo y reduce considerablemente el consumo de energía. Intel sigue fabricando para sus equipos de sobremesa y portátiles, procesadores Pentium (Pentium D y Pentium 4) y procesadores Celeron

En 2007 han aparecido los procesadores de más de un núcleo, tales como Intel Core 2 Quad, AMD Quad Core y AMD Quad FX, todos ellos de cuatro núcleos y en 2008 se espera el lanzamiento de procesadores Intel y AMD con más de ocho núcleos.

De igual modo Intel también fabrica Pentium de dos y cuatro núcleos. (Pentium Dual Core, Pentium Cuad Core) y Athlon 64 y con tendencia a aumentar el número de núcleos.

Proceso de ejecución de un programa

El ratón y el teclado introducen datos en la memoria central cuando se ejecuta el programa. Los datos intermedios o auxiliares se transfieren desde la unidad de disco a la pantalla y a la unidad de disco, a medida que se ejecuta el programa.

Cuando un programa se ejecuta, se debe situar primero en memoria central de igual modo que los datos. Sin embargo, la información almacenada en la memoria se pierde (borra) cuando se apaga (desconecta de la red eléctrica) la computadora, y por otra parte le memoria central es limitada en capacidad.

Por esta razón, para poder disponer de almacenamiento permanente, tanto para programas como para datos, se necesitan dispositivos de almacenamiento secundario, auxiliar o masivo (mass storage, o secondary storage).

En el campo de las computadoras es frecuente utilizar la palabra memoria y almacenamiento o memoria externa, indistintamente. Se utilizará el término memoria sólo para referirse a la memoria central.

Publicado el Deja un comentario

La memoria principal de una computadora

La memoria de una computadora almacena los datos de entrada, programas que se han de ejecutar y resultados.

En la mayoría de las computadoras existen dos tipos de memoria principal: memoria de acceso aleatorio RAM que soporta almacenamiento temporal de programas y datos y memoria de sólo lectura ROM que almacena datos o programas de modo permanente.

La memoria central (RAM, Random, Access Memory) o simplemente memoria se utiliza para almacenar, de modo temporal información, datos y programas.

En general, la información almacenada en memoria puede ser de dos tipos: las instrucciones de un programa y los datos con los que operan las instrucciones.

Para que un programa se pueda ejecutar (correr, rodar, funcionar…, en inglés run), debe ser situado en la memoria central, en una operación denominada carga (load) del programa. Después, cuando se ejecuta (se realiza, funciona) el programa, cualquier dato a procesar por el programa se debe llevar a la memoria mediante las instrucciones del programa.

En la memoria central, hay también datos diversos y espacio de almacenamiento temporal que necesita el programa cuando se ejecuta y así poder funcionar

La memoria principal es la encargada de almacenar los programas y datos que se están ejecutando y su principal característica es que el acceso a los datos o instrucciones desde esta memoria es muy rápido.

Es un tipo de memoria volátil (su contenido se pierde cuando se apaga la computadora); esta memoria es, en realidad, la que se suele conocer como memoria principal o de trabajo; en esta memoria se pueden escribir datos y leer de ella. Esta memoria RAM puede ser estática (SRAM) o dinámica (DRAM) según sea el proceso de fabricación.

Las memorias RAM actuales más utilizadas son las SDRAM en sus dos tipos: DDR (Double Data Rate) y DDR2.

En la memoria principal se almacenan:

• Los datos enviados para procesarse desde los dispositivos de entrada.

• Los programas que realizarán los procesos.

• Los resultados obtenidos preparados para enviarse a un dispositivo de salida.

La memoria ROM, es una memoria que almacena información de modo permanente en la que no se puede escribir (viene pregrabada “grabada” por el fabricante) ya que es una memoria de sólo lectura.

Los programas almacenados en ROM no se pierden al apagar la computadora y cuando se enciende, se lee la información almacenada en esta memoria. Al ser esta memoria de sólo lectura, los programas almacenados en los   no se pueden modificar y suelen utilizarse para almacenar los programas básicos que sirven para arrancar la computadora.

Con el objetivo de que el procesador pueda obtener los datos de la memoria central más rápidamente, la mayoría de los procesadores actuales (muy rápidos) utilizan con frecuencia una memoria denominada caché que sirva para almacenamiento intermedio de datos entre el procesador y la memoria principal.

La memoria caché —en la actualidad— se incorpora casi siempre al procesador.

Los programas y los datos se almacenan en RAM. Las memorias de una computadora personal se miden en unidades de memoria y suelen ser actualmente de 512 MB a 1, 2 o 3 GB, aunque ya es frecuente encontrar memorias centrales de 4 y 8 GB en computadoras personales y en cantidad mayor en computadoras profesionales y en servidores.

Normalmente una computadora contiene mucha más memoria RAM que memoria ROM interna; también la cantidad de memoria se puede aumentar hasta un máximo especificado, mientras que la cantidad de memoria ROM, normalmente es fija. Cuando en la jerga informática se menciona la palabra memoria se suele referir a memoria RAM que normalmente es la memoria accesible al programador.

La memoria RAM es una memoria muy rápida y limitada en tamaño, sin embargo, la computadora tiene otro tipo de memoria denominada memoria secundaria o almacenamiento secundario que puede crecer comparativamente en términos mucho mayores.

La memoria secundaria es realmente un dispositivo de almacenamiento masivo de información y por ello, a veces, se la conoce como memoria auxiliar, almacenamiento auxiliar, almacenamiento externo y memoria externa.

Unidades de medida de memoria

La memoria principal es uno de los componentes más importantes de una computadora y sirve para almacenamiento de información (datos y programas).

Existen dos tipos de memoria y de almacenamiento:

Almacenamiento principal (memoria principal o memoria central) y almacenamiento secundario o almacenamiento masivo (discos, cintas, etc.).

La memoria central de una computadora es una zona de almacenamiento organizada en centenares o millares de unidades de almacenamiento individual o celdas. La memoria central consta de un conjunto de celdas de memoria (estas celdas o posiciones de memoria se denominan también palabras, aunque no “guardan” analogía con las palabras

del lenguaje). Cada palabra puede ser un grupo de 8 bits, 16 bits, 32 bits o incluso 64 bits, en las computadoras más modernas y potentes.

Si la palabra es de 8 bits se conoce como byte. El término bit (dígito binario) se deriva de las palabras inglesas “binary digit” y es la unidad de información más pequeña que puede tratar una computadora.

El término byte es muy utilizado en la jerga informática y, normalmente, las palabras de 16 bits se suelen conocer como palabras de 2 bytes, y las palabras de 32 bits como palabras de 4 bytes.

La memoria central de una computadora puede tener desde unos centenares de millares de bytes hasta millones de bytes. Como el byte es una unidad elemental de almacenamiento, se utilizan múltiplos para definir el tamaño de la memoria central: Kilobyte (KB) igual a 1.024 bytes(210), Megabyte (MB) igual a 1.024 × 1.024 bytes (220 = 1.048.576), Gigabyte (GB) igual a 1.024 MB (230 = 1.073.741.824).

Las abreviaturas MB y GB se han vuelto muy populares como unidades de medida de la potencia de una computadora.

Desgraciadamente la aplicación de estos prefijos representa un mal uso de la terminología de medidas, ya que en otros campos las referencias a las unidades son potencias de 10.

Por ejemplo, las medidas en distancias, Kilómetro (Km) se refiere a 1.000 metros, las medidas de frecuencias, Megahercio (MHz) se refieren a 1.000.000 de hercios.

En la jerga informática popular para igualar terminología, se suele hablar de 1 KB como 1.000 bytes y 1 MB como 1.000.000 de bytes y un 1 GB como 1.000 millones de bytes, sobre todo para correspondencia y fáciles cálculos mentales, aunque como se observa en la Tabla 1.1 estos valores son sólo aproximaciones prácticas.

Espacio de direccionamiento

Para tener acceso a una palabra en la memoria se necesita un identificador que a nivel de hardware se le conoce como dirección. Existen dos conceptos importantes asociados a cada celda o posición de memoria: su dirección y su contenido.

Cada celda o byte tiene asociada una única dirección que indica su posición relativa en memoria y mediante la cual se puede acceder a la posición para almacenar o recuperar información. La información almacenada en una posición de memoria es su contenido.

La Figura muestra una memoria de computadora que consta de 1.000 posiciones

en memoria con direcciones de 0 a 999 en código decimal. El contenido de estas direcciones o posiciones de memoria se llaman palabras, que como ya se ha comentado pueden ser de 8, 16, 32 y 64 bits.

Por consiguiente, si trabaja con una máquina de 32 bits, significa que en cada posición de memoria de su computadora puede alojar 32 bits, es decir 32 dígitos, bien ceros o unos.

Las direcciones de memoria se definen usando enteros binarios sin signo o sus correspondientes enteros decimales.

El número de posiciones únicas identificables en memoria se denomina espacio de direccionamiento.

Por ejemplo, en una memoria de 64 kilobytes (KB) y un tamaño de palabra de un byte tienen un espacio de direccionamiento que varía de 0 a 65.535 (64 KB, 64 × 1.024 = 65.536).

Los bytes sirven para representar los caracteres (letras, números y signos de puntuación adicionales) en un código estándar internacional denominado ASCII (American Standard Code for Information Interchange), utilizado por todas las computadoras del mundo, o bien en un código estándar más moderno denominado Unicode. Todos estos símbolos se almacenan en memoria y con ellos trabajan las computadoras.