El “Controlador” de todo. Sistemas Operativos.


Sistemas Operativos.

Para dar respuesta a la pregunta de ¿Que son los Sistemas Operativos? necesitamos hacer un breve recuento. Hasta ahora hemos hablado de los componentes de todo sistema informático e hicimos una división básica cuyas componentes son el Hardware y el Software.

Vimos también las definiciones y variedad de ambos componentes y además hicimos un recorrido por sus funciones en el sistema.




Llega el momento de ver cómo funciona el sistema y para eso tenemos que definir lo que es un Sistema Operativo y su importante papel en la interrelación:

sistemas operativos

 

El Sistema Operativo es una pieza de Software que se encarga de interrelacionar a todos los componentes del Hardware (CPU y Dispositivos Input/Output) entre sí y con las aplicaciones de Software y a ambos con el Usuario del Sistema.

Es importante resaltar que cuando decimos “interrelacionar” estamos hablando de comunicar e interpretar las funciones físicas y virtuales de operación desde y hacia los tres componentes del Sistema.

En otras palabras, no podemos hablar de un sistema informático, sin la presencia de un sistema operativo. Sus funciones más importantes son:

  • Estructurar el sistema de archivos que utilizara el Software que se instale.
  • Albergar todos los programas manejadores de los periféricos de entrada y/o salida que se conecten al equipo (drivers).
  • Servir como Programa de Arranque del Sistema, y mantenerse monitoreando el desempeño de este.
  • Albergar una serie de herramientas intrínsecas del sistema para solventar los problemas de compatibilidad entre el Software Instalado y los periféricos de entrada y/o salida.
  • Administrar los recursos del sistema tales como uso del Procesador y manejo de la memoria operativa y de los sistemas de almacenaje de información.

Clasificaciones más importantes de los Sistemas Operativos.

Pueden ser clasificados principalmente en función de:

  • Número de Usuarios: Multiusuario o Monousuario
  • Numero de tareas simultaneas: Multitareas o Monotareas
  • Tiempo de Ejecución: Tiempo real y Tiempo diferido.

Sistemas operativos más relevantes.

A través del tiempo se han generado muchos Sistemas Operativos por los diversos creadores de Software en alianzas con los fabricantes de Hardware, y la mayoría de ellos han tratado de generar un estándar del mercado. Los sistemas que han perdurado en el tiempo, son aquellos que han logrado mas soporte por parte de los creadores de Software Comercial.




De acuerdo a las distintas Plataformas, los grandes grupos que han perdurado en el tiempo son:

MS-Dos: Fue el primer estándar en el Mercado y prácticamente acaparo la atención de los fabricantes de Hardware y de los desarrolladores de Software de su época.

Windows: Desde su primer lanzamiento con Windows 3.1 hasta el actual Windows 10, incluyendo al manejador de redes Windows NT, esta familia de sistemas operativos, gracias a su interface grafica de usuarios, ha sido el más popular de todos los sistemas operativos.

Mac Os: En todas sus versiones, y debido a la exclusividad en los populares Computadores de la firma Apple, ha sido uno de los más utilizados sistemas operativos.

Unix: Incluyendo su versión libre: Linux, este sistema operativo no ha dejado de ganar en popularidad gracias a su versatilidad manejando gráficos, textos y operaciones matemáticas, además de su capacidad Multiusuario y Multitareas.

Y en las más recientes plataformas Móviles destacan:

Android, el consentido de Google. el IOS para los dispositivos móviles de Apple y en menor grado el BBOS de Blackberry.

Android

Es importante destacar que actualmente existen muy pocas aplicaciones exclusivas a uno u otro sistema operativo, ya que la mayoría de las grandes Compañías de desarrollo de Software, así como una gran cantidad de desarrolladores independientes, ha trabajado en la adaptación de sus Programas a los distintos Sistemas Operativos.

Igual sucede con los desarrolladores de Aplicaciones para Móviles, quienes no han renunciado a su diversificación hacia todos los sistemas operativos con sus correspondientes Mercados.

Inclusive, existen en el Mercado de Software, aplicaciones que simulan un sistema operativo (virtual), corriendo desde una plataforma con otro instalado.



Custom Search

 

Guardar

Algoritmos y Diagramas de Flujo para la Programación de Computadoras.


Programación de las Computadoras.

Sin importar que lenguajes de programación los desarrolladores de Software planean usar, el razonamiento y la secuencia de su trabajo deben ser los mismos. Recuerde, su trabajo es hacer que el ordenador “ejecute una rutina” para darnos a nosotros, los usuarios, los resultados que buscamos. Para hacer este trabajo, los desarrolladores utilizan dos herramientas importantes: la Formación de los Algoritmos y los Diagramas de Flujo.




Operación de un Programa.

Ahora, consideremos la forma en que una computadora resuelve un problema.

  • En primer término debe existir una lista de instrucciones escritas por el hombre para resolver dicho problema, a la cual conocemos con el nombre de programa, y debe encontrarse almacenada en la memoria residente del computador.
  • Al darse la orden de comienzo de ejecución del programa, la unidad de control se hace cargo de que se ejecuten las instrucciones en el orden determinado por el programa, transfiriéndole la unidad lógico-aritmética la ejecución de operaciones y comparaciones, y recibiendo de esta los resultados intermedio y finales.
  • Una vez terminado el proceso de cálculos, la unidad de control procede a enviar dichos resultados a las unidades de salida para su utilización por el usuario. Este procedimiento será ejecutado tantas veces como se lo ordenemos al computador y siempre de la misma forma.

programación de algoritmos

Siempre debemos tener presente, el hecho de que el computador solo hace lo que le ordena el usuario. Es decir que las equivocaciones que puedan existir en los resultados suministrados por el computador, no son más que consecuencias de los errores introducidos en el programa que se está ejecutando o en los datos introducidos por los usuarios.

La Formación de Algoritmos.

Como regla general, hay tres pasos a seguir para la solución de un problema a través de la computadora:

  1. Determinar el problema que queremos resolver.
  2. Desarrollar el modelo finito del problema.
  3. Basado en el modelo finito, obtener un algoritmo.

Llegar a la determinación de los problemas no siempre es tan fácil como pudiera parecer. Muchas veces la omisión de este paso ha causado la perdida de una gran cantidad de horas de trabajo, por no haberse definido previamente los objetivos concretos que se querían alcanzar.

Esta labor es generalmente un trabajo de conjunto entre el usuario y el programador, y no se debe adelantar ningún otro paso sin antes haberla concluido.

La elaboración del modelo finito consiste básicamente en la recopilación de todos los elementos involucrados en las variaciones del problema (llamados variables), y la determinación de las relaciones matemáticas o lógicas existentes entre ellos.

Por último, el programador debe analizar el modelo obtenido y trabajar en la formación del algoritmo. Este término define a la serie de instrucciones, en una secuencia dada, necesarias para describir las operaciones que llevan a la solución de un problema.




Diagramas de Flujo.

El planteamiento de los algoritmos puede hacerse de muchas maneras, no obstante, en computación suele utilizarse la forma grafica por ser la que permite una mejor visualización de la secuencia en que deben ejecutarse las instrucciones que conforman a dichos algoritmos.

A la representación grafica de los algoritmos, se les conoce con el nombre de DIAGRAMA DE FLUJO, y está formada por un conjunto de símbolos conectados entre sí, que representan la secuencia y el tipo de proceso a realizarse en cada una de las etapas de solución de un problema.

Los símbolos mas utilizados para hacer un diagrama de flujo, son los siguientes:

SÍMBOLOS DE DIAGRAMAS

A continuación, podemos ver un ejemplo de diagrama de flujo muy básico con el que se definió un algoritmo para que una maquina haga la separación y selección de monedas de dos tipos distintos y presente un resultado acerca de la cantidad de monedas por tipo.

DIAGRAMA DE FLUJO



Custom Search

 

Guardar

Algo sobre Lenguajes de Programación


Lenguajes de programación.

Hay un solo lenguaje de programación que cualquier computadora puede realmente entender y ejecutar: su propio código de máquina binario nativo. Este es el nivel más bajo posible de lenguaje en el que es posible escribir un programa para comunicarse con una computadora. Todos los otros lenguajes de programación son llamados de más alto nivel  o más bajo nivel en proporción a cuanto se alejen o se acerquen al código binario de la maquina.

De acuerdo a esto, un lenguaje del más bajo nivel corresponde totalmente al código de máquina, por lo que una instrucción de lenguaje de bajo nivel se traduce en una sola instrucción de lenguaje máquina. Sin embargo, una instrucción de lenguaje de alto nivel por lo general se traduce en varias instrucciones de lenguaje de máquina.

Software HostingLos lenguajes de bajo nivel tienen la ventaja de que pueden ser escritos para aprovechar las peculiaridades de la arquitectura de la unidad central de procesamiento (CPU) que es el “cerebro” de cualquier ordenador. De manera que, un programa escrito en un lenguaje de bajo nivel puede ser muy eficaz, haciendo uso óptimo de la memoria de la computadora y tiempo de procesamiento. Sin embargo, escribir un programa de bajo nivel requiere de una cantidad considerable de tiempo, así como una comprensión muy clara del funcionamiento interno del microprocesador. Por lo tanto, la programación de bajo nivel se suele utilizar sólo para programas muy pequeños, o para segmentos de código que son muy críticos y deben funcionar tan eficientemente como sea posible.

Los Lenguajes de alto nivel permiten un desarrollo mucho mas rápido de grandes programas. El programa final, ejecutado por la computadora no es tan eficiente, pero las ventajas del ahorro en tiempo del programador generalmente superan las desventajas de la ineficiencias del programa. Esto se debe a que el costo de escribir un programa es casi constante para cada línea de código, independientemente del Lenguaje usado. Así, un lenguaje de alto nivel donde cada línea de código equivale a 10 instrucciones de Lenguaje de máquina, cuesta solamente la decima parte de lo que costaría programar las 10 líneas de código en Lenguaje de Maquina.




Los primeros Lenguajes de programación de alto nivel se fueron diseñando para tipos específicos de tareas. Los Lenguajes modernos son más de uso general. En cualquier caso, cada Lenguaje tiene sus propias características, vocabulario y sintaxis. Los más importantes son los siguientes:

FORTRAN.

Fue de los primeros lenguajes de programación. FORTRAN (acrónimo de FORmula TRANslator) fue diseñado para manejar operaciones matemáticas, originalmente en computadoras mainframe. Aunque fue muy eficiente en los cálculos matemáticos, FORTRAN fue incapaz de manejar texto de cualquier tipo y apenas podía colocar títulos e identificadores en sus salidas impresas.

programming-languagesdif

 

COBOL.

Su nombre es el acrónimo de COmmon Business Oriented Language. COBOL en su concepción, es casi el opuesto del FORTRAN. COBOL fue diseñado para facilitar las salidas escritas con mucho texto, en aplicaciones de procesamiento de datos para negocios y usando el Ingles para sus informes de salida. Fue concebido para manejar data textual de negocios y sus capacidades matemáticas están restringidas a poco más que operaciones con dinero y porcentajes.

PASCAL.

Debe su nombre a Blaise Pascal, filósofo y físico francés, y uno de los Padres de la automatización del computo. PASCAL fue diseñado específicamente como un Lenguaje didáctico. Su objeto era ayudar al estudiante a aprender correctamente las técnicas y los requisitos de la programación estructurada. Fue diseñado originalmente para ser utilizado en cualquier plataforma. Es decir, un programa en PASCAL podía compilarse en cualquier computadora, y el resultado funcionaría correctamente en cualquier otro equipo, incluso con un tipo de microprocesador diferente o incompatible. El resultado fue un Lenguaje relativamente lento, pero que funcionó y cumplió su cometido mientras estuvo de moda.

BASIC.

Su nombre es la sigla de Beginner’s All-purpose Symbolic Instruction Code (Código de Instrucciones simbólicas multiuso) y fue el primer Lenguaje interpretador diseñado para uso general. Fue el Lenguaje de Programación mas utilizado y hoy en día evoluciono como Visual Basic para trabajar bajo ambiente Windows.

FORTH.

Es un Compilador e Interprete que fue desarrollado originalmente para el manejo de operaciones en tiempo real y que además permitía al usuario controlarlo y hacer modificaciones rápidamente. El nombre FORTH se origino por el concepto de Lenguaje de 4ta Generación y tenía la restricción de permitir solamente nombres de archivo de hasta 5 caracteres.

C.

Se origino como un lenguaje experimental denominado A, que luego fue mejorado, corregido y ampliado y fue llamado B. Este lenguaje a su vez fue mejorado, actualizado, depurado y finalmente fue llamado C. El lenguaje C ha resultado ser muy versátil y sorprendentemente potente. Es un Lenguaje muy simple y sin embargo es capaz de hacer desarrollos de gran magnitud. El Sistema operativo Unix, que ha sido adaptado a una amplia gama de plataformas y no ha dejado de ganar popularidad, está escrito en Lenguaje C.

C++.

Cuando se desarrollo el concepto de Objetos y de programación orientada a Objetos, el Lenguaje C estándar no tenía la estructura interna para manejarlo.             Sin embargo, C fue, y es todavía, muy útil por lo que se ha mantenido en uso. Pero se desarrollo adicionalmente una especie de lenguaje C extendido que fue originalmente llamado “C y algo”, o C-plus (C+). Posteriormente se siguieron desarrollando los conceptos de programación orientada a objetos y C+ evoluciono en C++.

JAVA.

La búsqueda constante de un Lenguaje de Plataforma Independiente, genero la aparición de Java. Este es el más reciente Lenguaje diseñado con ese objetivo. Cualquier computador con un ambiente de ejecución Java, puede correr un programa escrito en ese Lenguaje, lo cual lo hace, hasta el momento, el Lenguaje Universal por excelencia.

Uno de los aspectos más útiles de Java es que los navegadores Web ahora están diseñados para ser capaces de incorporar pequeñas aplicaciones Java, o “applets”, en páginas Web. Otros programas de Java, llamados “servlets”, se ejecutan en los servidores Web. Esto permite comunicaciones adicionales entre la página y el servidor y facilita un alto grado de interactividad y la generación de páginas dinámicas.

La desventaja de utilizar los applets de esta manera es que ellos inherentemente se ejecutan mucho más lentamente que los programas desarrollados en las computadoras.

JAVASCRIPT.

JavaScript es, en la mayoría de los aspectos, una versión interpretada de Java. Su uso más común está en páginas Web, donde puede ser utilizado para proporcionar interactividad y respuesta dinámica. Algunos servidores Web también pueden hacer uso de Javascript para la generación de páginas dinámicas.

PERL.

El Lenguaje Practico de Extracción y Reportes, Perl (Practical Extraction and Report Language), es muy similar al Lenguaje C en muchos aspectos. Sin embargo, tiene una serie de características que lo hacen muy útil para una amplia gama de aplicaciones. El uso más popular de Perl es la programación de CGI (Computer Generated Imagery) o Generación de Imágenes por Computadora, para desarrollo de aplicaciones Web. Por ejemplo, generalmente, cuando usted rellena y envía un formulario vía Internet, muy probablemente ese programa este escrito en Perl.

No obstante, ese no es el único uso de PERL, pues también es un excelente Lenguaje de programación de uso general que permite el desarrollo rápido en una amplia gama de Plataformas.

 HTML.

De la sigla en inglés de Hipertexto Markup Language (lenguaje de marcas de hipertexto), hace referencia al “lenguaje de marcado” para la elaboración de páginas Web. Es un estándar que sirve de referencia del software que conecta con la elaboración de páginas web en sus diferentes versiones, define una estructura básica y un código (denominado código HTML) para la definición de contenido de una página web, como texto, imágenes, videos, juegos, entre otros.

Existen además otra gran cantidad de Lenguajes de Programación para aplicaciones especificas y de los cuales solo haremos mención, tales como PHP, LISP, ADA, RUBY, PHYTON y HASKELL.




Convirtiendo el Lenguaje de Maquina  a Lenguajes de Alto Nivel.

Los Lenguajes de Programación que vimos anteriormente, son todos considerados Lenguajes de Alto Nivel, y como ya habíamos mencionado, las Computadoras, como equipos eléctricos al fin, solo entienden el elemental lenguaje, de más bajo nivel, de los ceros y los unos, como representación del paso o no de la corriente eléctrica por sus millones de circuitos.

binario

Para convertir los Lenguajes de bajo nivel a Lenguajes de Alto Nivel, existen herramientas especificas de programación que hacen el trabajo. Hablemos algo acerca de ellas.

Lenguaje Ensamblador.

Lenguaje ensamblador no es más que una representación simbólica del código máquina, que también permite la designación simbólica de localizaciones de memoria. Por lo tanto, una instrucción para agregar el contenido de una ubicación de memoria a un registro interno del CPU, llamado el acumulador, puede ser agregar un número en lugar de una cadena de dígitos binarios (bits).

No importa cuán cerca este el lenguaje ensamblador al código de máquina, el equipo todavía no puede entenderlo. El programa de lenguaje ensamblador debe ser traducido a código máquina por un programa llamado ensamblador. El programa ensamblador reconoce las cadenas de caracteres que componen los nombres simbólicos de las diferentes operaciones de la máquina y sustituye el código máquina necesario para cada instrucción.

Al mismo tiempo, también calcula la dirección deseada, en la memoria, de cada nombre simbólico de dicha localización y sustituye las direcciones por los nombres. El resultado final es un programa de lenguaje de máquina que puede funcionar por sí mismo en cualquier momento.

Cuando llega a ese punto, el ensamblador y el programa de lenguaje ensamblador ya no son necesarios. Para ayudar a distinguir entre el “antes” y “después” de las versiones del programa, el programa original de lenguaje ensamblador también es conocido como el código fuente, mientras que el programa de lenguaje de máquina final se señala el código de objeto.

Si un programa de lenguaje ensamblador necesita ser cambiado o corregido, es necesario realizar los cambios en el código fuente y volver a montarlo para crear un programa objeto.

Lenguaje Compilador.

El Lenguaje compilador equivale al alto nivel del lenguaje ensamblador. Cada instrucción en el lenguaje compilador puede corresponder a muchas instrucciones de lenguaje de máquina. Una vez que el programa se ha escrito, se traduce al código máquina equivalente por un programa llamado compilador. Una vez que el programa ha sido compilado, el código máquina resultante se guarda por separado y se puede ejecutar por sí mismo en cualquier momento.

Al igual que sucede con los programas de lenguaje ensamblador, la actualización o corrección de un programa compilado requiere que el programa original o fuente, sea modificado apropiadamente y luego compilado para formar un nuevo programa de lenguaje de máquina u objeto.

Por lo general, el código compilado de la máquina es menos eficiente que el código producido cuando se utiliza lenguaje ensamblador. Esto significa que funciona un poco más lento y utiliza más memoria que la requerida para montar el programa ensamblador. Para compensar este inconveniente  tenemos el hecho de que toma mucho menos tiempo desarrollar un programa de lenguaje compilador, que el requerido para un programa de lenguaje ensamblador.

Lenguaje Interpretador.

Un lenguaje interpretador, al igual que un lenguaje compilador, se considera de alto nivel. Sin embargo, funciona de una manera totalmente diferente a la de estos. El programa interpretador reside en la memoria y ejecuta directamente el programa de alto nivel sin previamente hacer la traducción a código máquina.

El usar un programa interpretador para ejecutar directamente el programa de usuario tiene ventajas y desventajas. La principal ventaja es que se puede ejecutar el programa para probar su funcionamiento, efectuar algunos cambios y ejecutar de nuevo de forma directa. Es decir, no hay necesidad de volver a compilar porque nunca se produce ningún nuevo código máquina. Esto puede acelerar enormemente el desarrollo y proceso de pruebas.

Como desventaja tenemos que esta disposición requiere que ambos, el interpretador y el programa de usuarios residan en la memoria al mismo tiempo. Además, debido a que el intérprete tiene que escanear solo una línea del programa de usuario a la vez, y además ejecutar partes internas de sí mismo en respuesta, la ejecución de un programa interpretado es mucho más lenta que la de un programa compilado.



Custom Search

 

Guardar

Sistemas de numeración. Binario, Hexadecimal


Sistemas de numeración.

Los seres humanos usamos como referencia para contar, un sistema de numeración basado en el número diez (10). Este sistema de numeración es conocido como sistema DECIMAL, y tiene su origen en la utilización de los dedos de las manos como principales auxiliares de conteo. Para numero mayores de diez, el sistema decimal, aunque un poco errático al principio (once, doce, etc.), se regulariza posteriormente, con el uso de grupos consecuentes (veinte, veintiuno…, treinta, treinta y uno, y así…..).




En el caso de los computadores, como equipos eléctricos al fin, la forma de conteo es algo distinta debido a que sus limitaciones solo le permiten distinguir estados de un componente tal como un suiche con sus posiciones de apagado y encendido.

De esta manera, tenemos que la representación convencional utilizada para la interpretación de estos estados, es utilizar el numero 0 para simbolizar el estado de apagado, y el numero 1 para el estado de encendido.

Sistema de numeración binario

A este sistema de numeración que basa su principio en la utilización de dos dígitos, le llamaremos sistema BINARIO, y desde este momento debemos aceptarlo como la única forma de comunicación “directa” que entiende un computador cualquiera.

Veamos ahora como se efectúa la interpretación numérica, por parte de un computador, utilizando este sistema elemental de numeración.

Software HostingAnteriormente habíamos definido a la memoria del computador como una serie de casillas compuestas por grupos de BITS (ocho en nuestro caso), y a las que llamábamos BYTES. Cada uno de estos BITS podía tomar uno cualquiera de los valores 0 y 1, permitiéndonos obtener “palabras” como por ejemplo:

                                                00011001

Desde el punto de vista del sistema de numeración BINARIO, esta palabra es conocida como “cadena de dígitos binarios”, y le corresponde un valor equivalente en el sistema de numeración  DECIMAL.

La correspondencia en el sistema decimal, de cualquier número binario, se obtiene aplicando el concepto de BASE NUMERICA. En general, para cualquier sistema de numeración, podemos definir como BASE NUMERICA al número que da origen al principio del conteo. Así, para el sistema DECIMAL podemos hablar de BASE 10, para el sistema BINARIO utilizaremos BASE 2, etc.

Por ejemplo, el número decimal 743 puede representarse como:

(7X102) + (4X101) + (3X100)

= 700 + 40 + 3

= 743

De igual manera, un número binario como el representado por la cadena 00011001 puede ser llevado a su decimal equivalente usando el mismo principio:

(1X24) + (1X23) + (0X22) + (0X21) + (1X20)

= 16 +      8     +     0     +     0     +      1

= 25

Como podemos observar, los sistemas BINARIO y DECIMAL trabajan de forma similar, solo que la cantidad de dígitos requeridos para expresar un número cualquiera, es mayor en el caso de que lo hagamos con dígitos binarios. Efectivamente, si hubiéramos utilizado dígitos decimales para la expresión del número 25, solo habríamos tenido que utilizar 2, en tanto que para expresar este mismo número utilizando dígitos binarios (11001) requerimos 5.

Obviamente, a pesar de que los computadores solo entienden y operan con números binarios, su gran ventaja sobre los seres humanos es la velocidad a la que realizan enormes cantidades de operaciones por segundo, aun trabajando con esas largas cadenas de ceros y unos que para nosotros son tan difíciles de entender y mucho mas, de memorizar.

Debido a esto, el hombre ha ideado diversos sistemas de notación que contribuyan a una más fácil comunicación con los computadores. Uno de estos sistemas se basa en el uso del sistema de numeración HEXADECIMAL, el cual consiste en la utilización de la base numérica 16.

En la tabla siguiente, se indican los elementos que conforman al sistema de numeración hexadecimal, así como su correspondencia con los elementos de los sistemas de numeración decimal y binario.

HEX.                         DEC.                      BIN.

0…………………………… 0……………………. 0000

1……………………………. 1…………………….. 0001

2…………………………… 2…………………….. 0010

3……………………………. 3…………………….. 0011

4……………………………. 4……………………. 0100

5……………………………. 5……………………. 0101

6……………………………. 6……………………. 0110

7……………………………. 7…………………….. 0111

8…………………………….. 8…………………… 1000

9……………………………. 9……………………..1001

A……………….…………..10……………………… 1010

B…………………….……..11……………….……… 1011

C……………………………12……………….……… 1100

D……………………………..13……………………… 1101

E……………………………..14……………………… 1110

F……………………………..15……………………… 1111

               TABLA 1





Veamos un ejemplo de representación numérica para el caso del número hexadecimal 2F:

2F = (2 X 16¹) + (FX16°)

=            32    +  (Fx1)

=           32    +    15

= 47 en decimal.

El número 47 decimal se representa como 101111 en binario, y es evidente que la utilización de 2F es mucho más fácil de visualizar y entender.

Si bien es cierto que la numeración a través del uso de hexadecimales tampoco puede ser entendida directamente por el computador, no lo es menos que los operadores pueden facilitar su trabajo de conversión debido a la peculiaridad de la relación entre ambos sistemas, que consiste en lo siguiente:

  1. La base del sistema binario es 2
  2. La base del sistema hexadecimal es 16
  3. La cuarta potencia de 2 es 16.

Unidos al hecho de que un byte puede ser dividido en dos grupos de 4 bits, y que estos grupos permiten la aplicación de las siguientes reglas:

    • Para convertir hexadecimal en binario, hay que convertir cada digito hexadecimal por los cuatro bits correspondientes en binario (ver tabla 1).
  • Para convertir binario en hexadecimal, hay que dividir el número binario en grupos de cuatro bits (de derecha a izquierda) y luego sustituir cada uno de los grupos por el digito hexadecimal correspondiente.

De esta manera, y si tomamos en consideración que en nuestro caso tenemos como unidad de referencia el byte (grupo de ocho bits), tendremos que “casualmente”, el mayor numero expresado en binario dentro de ese byte (11111111), coincide con el mayor numero expresado por un numero hexadecimal de dos dígitos (FF), y es el 255, el mayor número posible expresado seria 1111111111111111 (16 números uno) y esto sería representado en hexadecimal como FFFF, que no es más que 65536.

Como podemos observar, existe una curiosa relación entre estos números con los que hemos querido ejemplificar. Por ejemplo, al referirnos a la capacidad de memoria de un computador, habíamos dicho que esta se media en kilobytes y en sus múltiplos, y que estos no eran más que un grupo de múltiplos de 1024 bytes. Esto indica, que si hablamos de un computador con 64K nos estamos refiriendo a una capacidad real de 1024X64=65536 bytes…

Todas estas “coincidencias” tienen una explicación lógica, pero entrar con más profundidad en este tipo de explicaciones, implicaría alejarnos demasiado del objetivo de este sitio web, por lo cual las dejaremos para una posterior oportunidad.



Custom Search

 

Guardar

¿Qué es el Software y cómo funciona?


Software… ¿Qué es?

Los computadores requieren para su trabajo una serie de instrucciones que definimos anteriormente como programas, los cuales podían ser los propios del sistema (alojados en la memoria ROM), o los introducidos por el usuario (alojados en la memoria RAM). El termino Software se refiere a la parte intangible del sistema y no tiene traduccion literal al Español.



Contrariamente a lo que muchos pueden pensar y excepto en aplicaciones de Inteligencia Artificial, son incapaces de actuar por cuenta propia. Su manera de resolver problemas o tomar decisiones es solo un reflejo del criterio de la persona que prepara los programas que el Computador ejecuta. Estos programas son conocidos como Programas de Usuario, y no son más que conjuntos de instrucciones introducidas al computador para su ejecución de forma ordenada y en perfecta secuencia.

Los datos o información de trabajo son toda aquella información generada por el usuario (o el propio programa) que se utiliza para la realización del cálculos y/o análisis lógicos.

Los programas del sistema son los que se encargan de coordinar el funcionamiento del computador y son definidos por el fabricante a través de instrucciones alambradas, y por ende, permanentes.

Software HostingLa memoria interna del Computador está compuesta por dos tipos de memoria, las memorias de “lectura solamente” o tipo ROM (Read Only Memory), y las memorias de “acceso aleatorio” o tipo RAM (Random Acces Memory).

El ROM es la zona de la memoria residente destinada a albergar los programas permanentes del sistema y no se puede ser alterado (normalmente) ni borrado, aunque el computador sea desenergizado.

El RAM es una zona de memoria para uso general del usuario en donde la información, ya sea datos o programas, puede ser almacenada o recuperada cuando sea requerido. Originalmente, todas las memorias eran del tipo volátil, lo que significaba que el contenido de la memoria RAM se perdía cada vez que desenergizábamos al computador.

.

memoria RAM

La aparición de las llamadas memorias no volátiles o permanentes revoluciono una vez más el mundo de las computadoras y además implico el que pudieran aparecer los dispositivos portátiles de computación, así como los más diversos medios de almacenaje y manejo para la información digital.

Normalmente, la memoria puede ser visualizada como un grupo de casillas (también llamadas localizaciones), numeradas de 0 en adelante. El numero de localización es conocido como “dirección” y tiene como principal característica ser único, y siempre el mismo, dentro de cada computador. Cada localización de memoria almacena una “palabra” que a su vez está dividida en BITS.

Un BIT está definido como la unidad elemental de información binaria y solo puede tener los valores 0 y 1. Su nombre esta derivado de la contracción resultante de las palabras “BInary digiT”.

ROM

La cantidad de BITS que componen una “palabra” está en función de la arquitectura del Microprocesador y aunque en un inicio el estándar fue de 8 bits, las capacidades fueron creciendo a 16, 32, 64 bits, alcanzando hoy en día tamaños de hasta 256 bits. Para nuestra explicación usaremos un tamaño de 8 bits recibiendo el nombre de “BYTE”.



Otros términos que creemos conveniente aclarar, son los muy usados símbolos “K”, “M”, “G” y “T” cuando nos referimos a capacidades de memoria. Estas representaciones cuantitativas de la memoria de un computador, no son más que el resultado de la asociación con los prefijos “Kilo”, “Mega”, “Giga” y “Tera” del Sistema Métrico Decimal, utilizado para representar grupos de 1,000, 1,000,000, 1,000,000,000, y 1,000,000,000,000 de unidades.

En el caso que estamos usando para la explicación, el prefijo “Kilo” usado en la expresión kilobyte, no significa exactamente 1000 bytes, sino 1024. Este número, como veremos más adelante, es el resultado de elevar el número 2 a su decima potencia (2¹º). Esto quiere decir, que cuando nos referimos a la capacidad de memoria de un computador usando el término 16K, lo que queremos decir es que este computador es capaz de almacenar 16,384 “palabras” de ocho Bits cada una, o lo que es lo mismo, 16,384 bytes.



Custom Search

 

Guardar