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.

Publicado el Deja un comentario

Dispositivos de Entrada/Salida (E/S): periféricos

Los dispositivos de Entrada/Salida (E/S) [Input/Output (I/O) en inglés] permiten la comunicación entre la computadora y el usuario.

Los dispositivos de entrada, como su nombre indica, sirven para introducir datos (información) en la computadora para su proceso. Los datos se leen de los dispositivos de entrada y se almacenan en la memoria central o interna.

Los dispositivos de entrada convierten la información de entrada en señales eléctricas que se almacenan en la memoria central. Dispositivos de entrada típicos son los teclados; otros son: lectores de tarjetas —ya en desuso—, lápices ópticos, palancas de mando (joystick), lectores de códigos de barras, escáneres, micrófonos, etc.

Hoy día tal vez el dispositivo de entrada más popular es el ratón (mouse) que mueve un puntero electrónico sobre la pantalla que facilita la interacción usuario-máquina7.

Los dispositivos de salida permiten representar los resultados (salida) del proceso de los datos. El dispositivo de salida típico es la pantalla (CRT)8 o monitor. Otros dispositivos de salida son: impresoras (imprimen resultados en papel), trazadores gráficos (plotters), reconocedores de voz, altavoces, etc.

El teclado y la pantalla constituyen —en muchas ocasiones— un único dispositivo, denominado terminal. Un teclado de terminal es similar al teclado de una máquina de escribir moderna con la diferencia de algunas teclas extras que tiene el terminal para funciones especiales.

Si está utilizando una computadora personal, el teclado y el

monitor son dispositivos independientes conectados a la computadora por cables. En ocasiones, la impresora se conoce como dispositivo de copia dura (hard copy), debido a que la escritura en la impresora es una copia permanente (dura) de la salida, y en contraste a la pantalla se la denomina dispositivo de copia blanda (soft copy), ya que la pantalla actual se pierde cuando se visualiza la siguiente.

Los dispositivos de entrada/salida y los dispositivos de almacenamiento secundario o auxiliar (memoria externa) se conocen también con el nombre de dispositivos periféricos  simplemente periféricos ya que, normalmente, son externos a la computadora.

Estos dispositivos son unidades de discos [disquetes (ya en desuso), CD-ROM, DVD, cintas, etc.], videocámaras, teléfonos celulares (móviles), etc.

Todos los dispositivos periféricos se conectan a las computadoras a través de conectores y puertos (ports) que son interfaces electrónicos.

Publicado el Deja un comentario

COMPOSICIÓN FÍSICA DE UNA COMPUTADORA

Los dos componentes principales de una computadora son: hardware y software.

Hardware es el equipo físico o los dispositivos asociados con una computadora. Sin embargo, para ser útil una computadora necesita además del equipo físico, un conjunto de instrucciones dadas.

El conjunto de instrucciones que indican a la computadora aquello que deben hacer se denomina software o programas y se escriben por programadores.

Una red consta de un número de computadoras conectadas entre sí directamente o a través de otra computadora central (llamada servidor), de modo que puedan compartir recursos tales como impresoras, unidades de almacenamiento, etc., y que pueden compartir información.

Una red puede contener un núcleo de PC, estaciones de trabajo y una o más computadoras grandes, así como dispositivos compartidos como impresora.

La mayoría de las computadoras, grandes o pequeñas, están organizadas como se muestra en la Figura.

Una computadora consta fundamentalmente de cinco componentes principales: dispositivos de entrada; dispositivos de salida; unidad central de proceso (CPU) o procesador (compuesto de la UAL, Unidad Aritmética y Lógica y la UC, Unidad de Control); la memoria principal o central; memoria secundaria o externa y el programa.

Si a la organización física de la Figura se le añaden los dispositivos para comunicación exterior con la computadora, aparece la estructura típica de un sistema de computadora que, generalmente, consta de los siguientes dispositivos de hardware:

• Unidad Central de Proceso, (CPU, Central Processing Unit).

• Memoria principal.

• Memoria secundaria (incluye medios de almacenamiento masivo como disquetes, memorias USB, discos duros, discos CD-ROM, DVD…).

• Dispositivos de entrada tales como teclado y ratón.

• Dispositivos de salida tales como monitores o impresoras.

• Conexiones de redes de comunicaciones, tales como módems, conexión Ethernet, conexiones USB, conexiones serie y paralelo, conexión Firewire, etc.

Las computadoras sólo entienden un lenguaje compuesto únicamente por ceros y unos. Esta forma de comunicación se denomina sistema binario digital y en el caso concreto de las máquinas computadoras, código o lenguaje máquina.

Este lenguaje máquina utiliza secuencias o patrones de ceros y unos para componer las instrucciones que posteriormente reciben de los diferentes dispositivos de la computadora, tales como el microprocesador, las unidades de discos duros, los teclados, etc.

 La Figura muestra la integración de los componentes que conforman una computadora cuando se ejecuta un programa; las flechas conectan los componentes y muestran la dirección del flujo de información.

El programa se debe transferir primero de la memoria secundaria a la memoria principal antes de que pueda ser ejecutado. Los datos se deben proporcionar por alguna fuente. La persona que utiliza un programa (usuario de programa) puede proporcionar datos a través de un dispositivo de entrada.

Los datos pueden proceder de un archivo (fichero), o pueden proceder de una máquina remota vía una conexión de red de la empresa o bien la red Internet.

Los datos se almacenan en la memoria principal de una computadora a la cual se puede acceder y manipular mediante la unidad central de proceso (CPU).

Los resultados de esta manipulación se almacenan de nuevo en la memoria principal. Por último, los resultados (la información) de la memoria principal se pueden visualizar en un dispositivo de salida, guardar en un almacenamiento secundario o enviarse a otra computadora conectada con ella en red.

Uno de los componentes fundamentales de un PC es la placa base (en inglés, motherboard o mainboard) que es una gran placa de circuito impreso que conecta entre sí los diferentes elementos contenidos en ella y sobre la que se conectan los elementos más importantes del PC: zócalo del microprocesador, zócalos de memoria, diferentes conectores, ranuras de expansión, puertos, etc.

Los paquetes de datos (de 8, 16, 32, 64 o más bits a la vez) se mueven continuamente entre la CPU y todos los demás componentes (memoria RAM, disco duro, etc.).

Estas transferencias se realizan a través de buses.

Los buses son los canales de datos que interconectan los componentes del PC; algunos están diseñados para transferencias pequeñas y otros para transferencias mayores. Existen diferentes buses siendo el más importante el bus frontal (FSB, Front Side Bus) en los sistemas actuales o bus del sistema (en sistemas más antiguos) y que conectan la CPU o procesador con la memoria RAM.

Otros buses importantes son los que conectan la placa base de la computadora con los dispositivos periféricos del PC y se denominan buses de E/S.

Publicado el Deja un comentario

La ciencia de los algoritmos

En las primeras máquinas de computación, la complejidad de los algoritmos utilizados estaba restringida por limitaciones tales como la capacidad de almacenamiento de datos y lo intrincado y tedioso de los procedimientos de programación.

Sin embargo, a medida que estas limitaciones comenzaron a desaparecer las máquinas se empezaron a aplicar a tareas cada vez mayores y más complejas.

A medida que los intentos de expresar estas tareas en forma algorítmica comenzaron a plantear problemas a la capacidad de la mente humana, tuvieron que dedicarse cada vez más esfuerzos de investigación al estudio de los algoritmos y al proceso de programación.

Fue en este contexto en el que el trabajo teórico de los matemáticos empezó a dar sus frutos. Como consecuencia del teorema de incompletitud de Gödel, los matemáticos ya habían estado investigando cuestiones relativas a los procesos algorítmicos que los avances de la tecnología estaban entonces planteando.

Con ese bagaje, el escenario estaba dispuesto para la aparición de una nueva disciplina conocida con el nombre de Ciencias de la computación.

Actualmente, las Ciencias de la computación se han consolidado como ciencia de los algoritmos.

El ámbito de esta ciencia es muy amplio, abarcando campos tan diversos como las matemáticas, la ingeniería, la psicología, la biología, la administración empresarial y la lingüística.

De hecho, los investigadores que trabajan en diferentes ramas de las Ciencias de computación pueden tener definiciones muy distintas acerca de dichas ciencias. Por ejemplo, alguien que se dedique a investigar en el campo de la arquitectura de computadoras podría centrarse en la tarea de miniaturización de los circuitos y ver, por tanto, las Ciencias de la computación como una serie de avances tecnológicos junto con una aplicación de los mismos.

Sin embargo, alguien que investigue el campo de los sistemas de bases de datos podría ver las Ciencias de la computación como una manera de buscar la forma de hacer más útiles los sistemas de información.

Y un investigador en el campo de la inteligencia artificial podría considerar las Ciencias de la computación como el estudio de la inteligencia y del comportamiento inteligente.

Cuestiones que nos permitan centrar el estudio de las Ciencias de la computación.

• ¿Qué problemas pueden resolverse mediante procesos algorítmicos?

• ¿Cómo puede facilitarse el descubrimiento de algoritmos?

• ¿Cómo pueden mejorarse las técnicas de representación y comunicación de algoritmos?

• ¿Cómo pueden analizarse y compararse las características de los diferentes algoritmos?

• ¿Cómo pueden utilizarse los algoritmos para tratar la información?

• ¿Cómo pueden aplicarse los algoritmos para generar un comportamiento inteligente?

• ¿Cómo afecta a la sociedad la aplicación de algoritmos?

Abstracción

El concepto de abstracción impregna hasta tal punto el estudio de las Ciencias de la computación y el diseño de los sistemas de computadoras, que nos vemos obligados a tenerlo en cuenta en este capítulo preliminar.

El término abstracción, tal como lo estamos utilizando aquí, hace referencia a la distinción entre las propiedades externas de una entidad y los detalles de la composición interna de la misma.

Es la abstracción lo que nos permite ignorar los detalles internos de un dispositivo complejo tal como una computadora, un automóvil o un microondas y emplearlo como una única unidad comprensible.

Además, es gracias a la abstracción que se pueden diseñar y fabricar dichos sistemas complejos. Las computadoras, los automóviles y los hornos microondas se construyen a partir de componentes, cada uno de los cuales está a su vez construido a partir de otros componentes más pequeños. Cada componente representa un nivel de abstracción, en el sentido de que el uso de ese componente está aislado de los detalles de la composición interna del componente.

Es, por tanto, gracias a que aplicamos la abstracción que somos capaces de construir, analizar y gestionar sistemas de computadoras grandes y complejos que nos resultarían inmanejables si los contempláramos en su totalidad con un nivel detallado.

En cada nivel de abstracción, contemplamos el sistema en términos de una serie de componentes, denominados herramientas abstractas, cuya composición interna ignoramos. Esto nos permite concentrarnos en cómo interactúa con los restantes componentes del mismo nivel y cómo el conjunto de todos los componentes forma un componente de nivel superior. De este

modo, somos capaces de entender la parte del sistema que sea relevante para la parte del sistema que tengamos entre manos, en lugar de perdernos en un océano de detalles.

Conviene recalcar que el concepto de abstracción no está limitado a los campos de la ciencia y la tecnología. Se trata de una técnica importante de simplificación, gracias a la cual nuestra sociedad ha creado un estilo de vida que sería imposible si no utilizáramos ese concepto. Pocos de nosotros comprendemos cómo se implementan en realidad los diversos aparatos, productos y servicios que tan útiles nos son en la vida cotidiana. Ingerimos alimentos y vestimos prendas de ropa que no seríamos capaces de producir por nosotros mismos.

Utilizamos dispositivos eléctricos y sistemas de comunicación sin entender la tecnología subyacente. Empleamos los servicios de otras personas sin conocer los detalles de sus respectivas profesiones. Con cada nuevo avance, una pequeña parte de la sociedad decide especializarse en su implementación mientras que el resto de nosotros aprendemos a utilizar los resultados en forma de herramientas abstractas. De esta forma, el conjunto de herramientas abstractas de la sociedad se va expandiendo cada vez más y la capacidad de progresar de la sociedad se incrementa.

Veremos que los equipos de computación se construyen en una serie de niveles de herramientas abstractas. También veremos que el desarrollo de sistemas software de gran envergadura se lleva a cabo de una forma modular, de manera que cada módulo se emplea como una herramienta abstracta a la hora formar otros módulos de mayor complejidad. Además, la abstracción desempeña un papel importante en la tarea de hacer progresar a las propias Ciencias de la computación, haciendo a los investigadores centrar su atención en áreas concretas dentro

un campo complejo.

Publicado el Deja un comentario

¿Qué es un algoritmo?

El concepto de algoritmo.

Informalmente, un algoritmo es un conjunto de pasos que define cómo hay que realizar una tarea.

Por ejemplo, existen algoritmos para cocinar (recetas), para encontrar el camino en una ciudad desconocida (direcciones), para hacer funcionar una lavadora (instrucciones que normalmente pueden en el manual), para tocar música (expresadas mediante partituras) y para realizar trucos de magia.

Por ejemplo:

Para que una máquina como una computadora pueda llevar a cabo una tarea, es preciso diseñar y representar un algoritmo de realización de dicha tarea y en una forma que sea compatible con la máquina.

A la representación de un algoritmo se la denomina programa.

Por comodidad de los seres humanos, los programas informáticos suelen imprimirse en papel o visualizarse en las pantallas de las computadoras. Sin embargo, para comodidad de las máquinas, los programas se codifican de una manera compatible con la tecnología a partir de la cual esté construida la máquina.

El proceso de desarrollo de un programa, de codificarlo en un formato compatible con la máquina y de introducirlo en una máquina se denomina programación.

Los programas y los algoritmos que representan se denominan colectivamente software, por contraste con la propia máquina que se conoce con el nombre de hardware.

El estudio de los algoritmos comenzó siendo un tema del campo de las matemáticas. De hecho, la búsqueda de algoritmos fue una actividad de gran importancia para los matemáticos mucho antes del desarrollo de las computadoras actuales.

El objetivo era determinar un único conjunto de instrucciones que describiera cómo resolver todos los problemas de un tipo concreto.

Uno de los ejemplos mejor conocidos de estas investigaciones pioneras es el algoritmo de división para el cálculo del cociente de dos números de varios dígitos.

Otro ejemplo es el algoritmo de Euclides descubierto por este matemático de la antigua Grecia que permite determinar el máximo común divisor de dos números enteros positivos.

Una vez que se ha encontrado un algoritmo para llevar a cabo una determinada tarea, la realización de esta ya no requiere comprender los principios en los que el algoritmo está basado. En lugar de ello, la realización de la tarea se reduce al proceso de seguir simplemente las instrucciones proporcionadas. (Podemos emplear el algoritmo de división para calcular un cociente o el algoritmo de Euclides para hallar el máximo común divisor sin necesidad de entender por qué funciona el algoritmo.)

En cierto sentido, la inteligencia requerida para resolver ese problema está codificada dentro del algoritmo.

Es esta capacidad de capturar y transmitir inteligencia (o al menos un comportamiento inteligente) por medio de algoritmos lo que nos permite construir máquinas que lleven a cabo tareas de utilidad.

En consecuencia, el nivel de inteligencia mostrado por las máquinas está limitado por la inteligencia que podamos transmitir mediante algoritmos. Solo podemos construir una máquina para llevar a cabo una tarea si existe un algoritmo que permita realizar esa tarea. A su vez, si no existe ningún algoritmo para resolver un problema, entonces la solución de ese problema cae fuera de la capacidad de las máquinas disponibles.

La identificación de las limitaciones de las capacidades algorítmicas terminó convirtiéndose en uno de los temas de las matemáticas en la década de 1930 con la publicación del teorema de incompletitud de Kurt Gödel.

Este teorema afirma, en esencia, que en cualquier teoría matemática que abarque nuestro sistema aritmético tradicional, hay enunciados cuya verdad o falsedad no puede establecerse por medios algorítmicos.

Por decirlo en pocas palabras, cualquier estudio completo de nuestro sistema aritmético, cae fuera de las capacidades de las actividades algorítmicas.

El enunciado de este hecho removió los cimientos de las matemáticas y el estudio de las capacidades algorítmicas que se inició a partir de ahí fue el comienzo del campo que hoy día conocemos como Ciencias de la computación.

De hecho, es el estudio de los algoritmos lo que forma la base fundamental de estas ciencias.

Publicado el Deja un comentario

Repercusiones sociales de las ciencias de la computación

El progreso en el campo de las ciencias de la computación está haciendo que se difuminen muchas distinciones en las que nuestra sociedad ha basado sus decisiones en el pasado, y está poniendo en cuestión muchos de los principios largamente sostenidos en nuestra sociedad.

En el campo de las leyes, genera cuestiones relativas al grado con el que se puede ser poseedor de la propiedad intelectual y también en relación a los derechos y responsabilidades que acompañan dicha posesión.

En el campo de la ética, genera numerosas opciones que desafían los principios tradicionales en los que se basa el comportamiento social. En el campo de la acción de gobierno, genera debates relativos al grado con el que habría que regular la tecnología informática y sus aplicaciones. En el

terreno filosófico, genera un debate entre la presencia del comportamiento inteligente y la presencia de la propia inteligencia. Y en toda la sociedad genera disputas relativas a si las nuevas aplicaciones representan nuevas libertades o nuevos controles.

Aunque no forman parte de las Ciencias de la computación, estos temas son importantes para aquellos que estén pensando en desarrollar su carrera en el campo de la computación o en algún campo relacionado.

Los avances científicos han encontrado en ocasiones aplicaciones controvertidas, provocando un serio descontento a los investigadores que en ellos participaron. Además, una carrera llena de éxitos profesionales puede descarrilar rápidamente debido a una equivocación ética.

La capacidad de tratar con los dilemas planteados por los avances en la tecnología de computadoras también es importante para aquellos que no están directamente involucrados en esos avances. De hecho, la tecnología está permeando la sociedad de forma tan rápida que son pocas las personas que no se ven afectadas por los avances tecnológicos, si es que hay alguna.

el conocimiento técnico de las disciplinas científicas no proporciona por sí solo soluciones a todas las cuestiones planteadas.

Encontrar soluciones en estos casos a menudo requiere la capacidad de escuchar, de entender otros puntos de vista, de llevar a cabo un debate racional y de modificar la propia opinión a medida que se adquieren nuevas formas de ver las cosas.

Cuestiones sociales

Las siguientes cuestiones pretenden ser una guía para los problemas éticos/ sociales/legales asociados con el campo de la computación. El objetivo no es responder simplemente a estas cuestiones. El lector debería considerar también por qué las ha contestado de la forma en que lo ha hecho y analizar si sus justificaciones son coherentes entre las distintas cuestiones.

1. Generalmente se acepta la premisa de que nuestra sociedad es diferente de lo que sería si no se hubiera producido la revolución informática. ¿Es nuestra sociedad mejor de lo que hubiera sido sin dicha revolución? ¿Es nuestra sociedad peor? ¿Sería diferente su respuesta si su posición dentro de la sociedad fuera distinta?

2. ¿Es aceptable participar en la sociedad técnica actual sin hacer un esfuerzo por comprender los fundamentos de dichas tecnologías? Por ejemplo, ¿cree que los ciudadanos de un país democrático, cuyos votos determinan a menudo cómo se apoyará y se utilizará la tecnología, tienen la obligación de tratar de entender dicha tecnología? ¿Depende su respuesta de la tecnología que se esté considerando? Por ejemplo, ¿sería su respuesta igual a la hora de considerar la tecnología nuclear que a la hora de considerar la tecnología de computadoras?

3. Utilizando dinero en efectivo en las transacciones financieras, las personas han dispuesto tradicionalmente de la opción de gestionar sus asuntos financieros sin que les cobraran comisiones de servicio. Sin embargo, a medida que se va automatizando una parte cada vez mayor de nuestra economía, las instituciones financieras aplican comisiones de servicio para el acceso a

estos sistemas automatizados. ¿Cree que existe un punto en que dichas comisiones restringen de manera no equitativa el acceso de las personas a la economía? Por ejemplo, suponga que un empresario paga a sus empleados exclusivamente mediante un cheque y que todas las entidades financieras aplican una comisión de servicio a las operaciones de cobro y depósito de cheques. ¿Implicaría esto un trato injusto hacia los empleados? ¿Qué sucedería si un empresario insistiera en pagar únicamente mediante transferencia a una cuenta corriente?

4. En el contexto de la televisión interactiva, ¿en qué grado debería permitirse a las empresas recopilar información de los niños (quizá mediante un formato de juego interactivo)? Por ejemplo, ¿debería permitirse a las empresas obtener un informe de los niños sobre los hábitos de compra de sus padres? ¿Debería permitírseles obtener información acerca del propio

niño?

5. ¿Hasta qué punto debería un gobierno regular la tecnología de computadoras y sus aplicaciones? Considere, por ejemplo, los problemas planteados en las Cuestiones 3 y 4. ¿Qué razones son las que justificarían la regulación gubernamental?

6. ¿En qué grado pueden afectar a las generaciones futuras nuestras decisiones concernientes a la tecnología en general y a la tecnología de las computadoras en particular?

7. A medida que avanza la tecnología, nuestro sistema educativo se ve enfrentado al desafío de reconsiderar el nivel de abstracción con el que se presentan los temas. Muchas de las cuestiones que se plantean son del tipo de si una capacidad sigue siendo necesaria o si, por el contrario, debería permitirse a los estudiantes utilizar una herramienta abstracta. Por ejemplo, a los

estudiantes de trigonometría ya no se les enseña a calcular los valores de las funciones trigonométricas utilizando tablas. En lugar de ello, emplean calculadoras como herramientas abstractas para determinar dichos valores. Algunas personas argumentan que también debería prescindirse de enseñar el algoritmo de división sustituyéndolo por una abstracción. ¿Qué otros temas se ven afectados por controversias similares? ¿Cree que los procesadores de texto modernos eliminan la necesidad de dominar la ortografía?

¿Cree que el uso de la tecnología de vídeo hará que desaparezca algún día la necesidad de leer?

8. El concepto de biblioteca pública se basa, en gran medida, en la premisa de que todos los ciudadanos de una democracia deben tener acceso a la información. A medida que se disemina y almacena cada vez más información mediante tecnología de computadoras, ¿cree que el acceso a esta tecnología se convierte en un derecho de todo individuo? Si esto es así, ¿deberían ser las bibliotecas públicas el canal a través del cual se proporcionara dicho acceso?

9. ¿Qué problemas éticos surgen en una sociedad que depende del uso de herramientas abstractas? ¿Existen casos en los que no resulte ético utilizar un producto o servicio sin entender cómo funciona? ¿Y existen casos en los que no resulta ético utilizar un producto o servicio sin saber cómo se produce o suministra?, ¿o sin entender cuáles son las consecuencias de su uso?

10. A medida que nuestra sociedad se automatiza cada vez, resulta más fácil para los gobiernos vigilar las actividades de sus ciudadanos. ¿Cree que esto es bueno o es malo?

11. ¿Qué tecnologías imaginadas por George Orwell (Eric Blair) en su novela 1984 se han hecho realidad? ¿Se están utilizando en la forma en que Orwell predijo?

12. Si existiera una máquina del tiempo, ¿en qué periodo de la historia querría vivir? ¿Hay alguna tecnología actual que le gustaría llevar consigo? ¿Podría llevar esas tecnologías consigo sin llevar al mismo tiempo otras tecnologías? ¿Hasta que punto puede separarse una tecnología de otra? ¿Es coherente protestar contra el calentamiento global y, sin embargo, aceptar los nuevos tratamientos médicos?

13. Suponga que su trabajo le obligara a vivir en un país con otra cultura. ¿Debería continuar aplicando los principios éticos de su cultura nativa o adoptar la ética de la cultura de su país anfitrión? ¿Depende su respuesta de si los temas planteados afectan a la forma de vestir o a los derechos humanos? ¿Qué estándares éticos deberían prevalecer si continúa residiendo en su país nativo pero tiene que hacer negocios con un país extranjero, con una cultura diferente?

14. ¿Cree que la sociedad se ha hecho demasiado dependiente de las aplicaciones informáticas para el comercio, las comunicaciones o las relaciones sociales? Por ejemplo, ¿cuáles serían las consecuencias de una interrupción prolongada en el servicio de Internet y/o de telefonía móvil?

15. La mayor parte de los teléfonos inteligentes son capaces de identificar la ubicación del teléfono por medio del sistema GPS. Esto permite a las aplicaciones proporcionar información específica de la ubicación (como por ejemplo las noticias locales, el pronóstico del tiempo en esa localidad o

información acerca de las empresas situadas en las proximidades), basándose en la ubicación actual del teléfono. Sin embargo, dichas capacidades GPS también pueden permitir a otras aplicaciones informar acerca de la ubicación del teléfono a otras personas. ¿Es eso bueno? ¿Qué posibles abusos podrían darse si alguien conociera la ubicación del teléfono (y por tanto nuestra ubicación)?

Publicado el Deja un comentario

Representación de sonidos en la computadora

La representación de sonidos ha adquirido una importancia notable debido esencialmente a la infinidad de aplicaciones multimedia tanto autónomas como en la web.

El método más genérico de codificación de la información de audio para almacenamiento y manipulación en computadora es mostrar la amplitud de la onda de sonido en intervalos regulares y registrar las series de valores obtenidos.

La señal de sonido se capta mediante micrófonos o dispositivos similares y produce una señal analógica que puede tomar cualquier valor dentro de un intervalo continúo determinado.

En un intervalo de tiempo continuo se dispone de infinitos valores de la señal analógica, que es necesario almacenar y procesar, para lo cual se recurre a una técnica de muestreo.

Las muestras obtenidas se digitalizan con un conversor analógico-digital, de modo que la señal de sonido se representa por secuencias de bits (por ejemplo, 8 o 16) para cada muestra.

Esta técnica es similar a la utilizada, históricamente, por las comunicaciones telefónicas a larga distancia. Naturalmente, dependiendo de la calidad de sonido que se requiera, se necesitarán más números de bits por muestra, frecuencias de muestreo más altas y lógicamente más muestreos por períodos de tiempo.

Como datos de referencia puede considerar que para obtener reproducción de calidad de sonido de alta fidelidad para un disco CD de música, se suele utilizar, al menos, una frecuencia de muestreo de 44.000 muestras por segundo.

Los datos obtenidos en cada muestra se codifican en 16 bits (32 bits para grabaciones en estéreo). Como dato anecdótico, cada segundo de música grabada en estéreo requiere más de un millón de bits.

Un sistema de codificación de música muy extendido en sintetizadores musicales es MIDI (Musical Instruments Digital Interface) que se encuentra en sintetizadores de música para sonidos de videojuegos, sitios web, teclados electrónicos, etc.