Apuntes de Informática Edgar F. Flores Muñoz Unidad 3. Sistema Operativo 3.1 Definición y tareas del sistema operativo. El sistema operativo es el conjunto de programas que organiza y administra los recursos de la computadora. Las tareas que cumple el sistema operativo son: • • • • • • • • • Administra los recursos como discos, cintas, impresoras, memoria, etc. (hardware) Organiza el tiempo de uso de los recursos físicos (hardware). Controla la entrada y salida de datos, representado por I/O de Input/Output. Maneja la recuperación después de errores. Administra la memoria. Administra el procesador (CPU). Asigna tiempo de proceso a trabajos y tareas (software). Provee seguridad. Provee de comandos al usuario. Para redondear y dejar el concepto de sistema operativo de manera general, hay que indicar que el conjunto de todo el hardware y software es lo que llamaremos recursos de la computadora o recursos del sistema. Y a cada programa que conforma al sistema operativo le llamaremos comando. El concepto de sistema operativo no es aplicable en las primeras computadoras, ya que todo se manejaba por medio de hardware, incluso la captura de programas y datos se hacia ya sea por medio de interruptores (switches) que en una posición representaban 0 y en la otra representaban 1 o por medio de tarjetas perforadas, en donde una perforación representaba un estado y donde no hubiera perforación representaba el otro estado (0 o 1). Los primeros indicios de un sistema operativo real aparecen durante la tercer generación de computadoras. En la actualidad el sistema operativo es considerado como la pieza de software más importante, ya que sin él el resto de los programas no podrían ejecutarse, ya que muchas de las tareas, como la carga de las instrucciones y datos en memoria se lo delegan completamente al sistema operativo, incluso, dependiendo del sistema operativo sera la forma y el tipo de programación que tengan los programas a ejecutar en la computadora. 3.2 Tipos de sistemas operativos Podemos decir que existen tantos tipos de sistemas operativos como tipos de computadoras han existido, pero seguramente usted ha escuchado hablar acerca de Windows, en sus diversas modalidades 3.0,95, 98, 2000, ME, XP, que pertenece a la compañía Microsoft, o incluso de la misma Microsoft habrá escuchado hablar del MS-DOS, pero hay que señalar que no son los únicos sistemas operativos que existen, así como las PC's no es la única arquitectura de computadoras que existe. A continuación listaremos algunos de los sistemas operativos más usados, así como sus principales características. Sistema Operativo Microsoft Tipo de computadora donde se utiliza PC's con procesadores Intel o compatibles de Intel (Intel x86), como AMD o Cyrix (Estas características son comunes tanto para MS-DOS como para las diversa versiones de Windows) Principales Características Apuntes de Informática Sistema Operativo Edgar F. Flores Muñoz Tipo de computadora donde se utiliza * MS-DOS Principales Características * Monousuario * Monotarea * Interfaz de Texto * No distingue las mayúsculas de las minúsculas en la ejecución de comandos. * Windows 1-3.11 Realmente no es considerado un sistema operativo, ya que trabaja sobre alguna versión de MS-DOS instalado previamente. * Monousuario * Multitarea * Interfaz de Gráfica * No distingue las mayúsculas de las minúsculas en la ejecución de comandos. * Windows 95,98, ME No requiere de una previa instalación de MS-DOS * Monousuario * Multitarea * Interfaz de Gráfica * No distingue las mayúsculas de las minúsculas en la ejecución de comandos. * Windows NT, 2000 * Monousuario ( a pesar que puede reconocer a varios usuarios de una misma computadora) * Multitarea * Interfaz de Gráfica * Agrega seguridad y autenticación de usuarios * No distingue las mayúsculas de las minúsculas en la ejecución de comandos. * Windows XP * Monousuario ( a pesar que puede reconocer a varios usuarios de una misma computadora) * Multitarea * Interfaz de Gráfica * Seguridad y autenticación de usuarios * No distingue las mayúsculas de las minúsculas en la ejecución de comandos. Apple Macintosh * Mac OS hasta versión 9 Macintosh * Monousuario * Multitarea * Interfaz de Gráfica * Mac OS X (UNIX) Mac G4, se planea que posteriormente para Intel x86. * Multiusuario IBM PS/2 * Monousuario * Multitarea Esta versión se basa en el Kernel de una distribución de BSD agregando la interfaz gráfica * Interfaz de Gráfica de macintosh * Distingue las mayúsculas de las minúsculas en la ejecución de comandos. IBM * OS/2 * Multitarea * Interfaz de Gráfica * Buenas capacidades para el trabajo en red.. Apuntes de Informática Edgar F. Flores Muñoz Sistema Operativo * VMS Tipo de computadora donde se utiliza IBM Mainframe Principales Características * Multiusuario * Multitarea * Interfaz de Texto * Distingue las mayúsculas de las minúsculas en la ejecución de comandos. * AIX (UNIX) Minicomputadores IBM * Multiusuario * Multitarea * Multiproceso * Interfaz de Texto / Gráfica * Distingue las mayúsculas de las minúsculas en la ejecución de comandos. UNIX Son distintas las plataforma sobre las cuales trabaja el sistema operativo Unix, aquí presentamos algunas de ellas. * HP-UX (HP) HP * Multiusuario * Solaris (Sun) Sparc e Intel x86 * Multitarea * Irix (Silicon Graphics) Silicon Graphics * Multiproceso * GNU/Linux (Diversas distribuciones) Intel x86, DEC Alpha, UltraSPARC , G3 y G4 * Interfaz de Texto / Gráfica * BSD (Diversas distribuciones) Intel x86, DEC Alpha, UltraSPARC y PC-98. * Distingue las mayúsculas de las minúsculas en la ejecución de comandos. Desarrollo original de la Universidad de Bearkley, California Para estos apuntes, utilizaremos como base al sistema operativos MS-DOS para la linea de comandos y a Windows 9x para la interfaz gráfica de usuario, GUI, por el lado de Microsoft, y por el lado de Unix consideraremos a GNU/Linux como la base en la línea de comandos y a los escritorios KDE y GNOME para las GUI. 3.3Comandos de los sistemas operativos MS-DOS y GNU/Linux Un poco de historia: MS-DOS o simplemente DOS, es el sistema operativo que creo la base para la mayor corporación de software que ha existido, Microsoft. DOS, que significa Sistema Operativo de Discos (MS-DOS, Microsoft - Disk Operating System), ha sido utilizado desde 1981 por las computadoras PC de IBM o compatibles. A pesar de la gran difusión de Windows y entornos gráficos, MS-DOS sigue siendo usado. Linux, o mejor dicho, GNU/Linux, es un sistema operativo cuyo núcleo fue creado originalmente por Linus Torvalds. A diferencia de Windows y otros sistemas operativos propietarios, ha sido desarrollado por miles de usuarios de computadoras de todo el mundo. La ventaja de GNU/Linux es que pertenece a otra filosofía de desarrollo del software: la del código abierto. El código abierto, a diferencia del software propietario, es desarrollado bajo la premisa de que los programas son una forma de expresión de ideas y que las ideas, como en la ciencia, son patrimonio de la humanidad y deben ser compartidas con todo el mundo. Para lograr esto, el código abierto expone el código fuente de sus programas a quien desee verlo, modificarlo o copiarlo. Apuntes de Informática Edgar F. Flores Muñoz La línea de comandos. La línea de comandos es el lugar donde podemos escribir las ordenes, ejecutar los programas o comandos que deseemos en el sistema operativo. La línea de comandos se conforma por el PROMPT o indicador de sistema. Ejemplos de prompt en MS-DOS, que nos indican la unidad de disco y directorios de trabajo. C:\Windows\Escritorio> A:\> D:\Documentos> Unidad C: directorio \Windows\Escritorio Unidad A: directorio \ (raíz) Unidad D: directorio \Documentos Es importante señalar que la \ es la diagonal que separa directorio en MS-DOS y Windows, mientras que la / sirve muchas veces para separar parámetros de los comandos. Ejemplos de prompt en GNU/Linux, en GNU/Linux no existen las unidades de disco con nombre de letra como en MS-DOS o MS-Windows, si no como directorios y el prompt en ocasiones indica el directorio actual de trabajo. $ [ed@softed ed]$ # [root@softed root]# Los prompt que contiene el símbolo de $, son de un usuario común dentro de GNU/Linux, el primero indica nada, pero el segundo nos dice el nombre de usuario (ed), el nombre de la máquina (softed) y el directorio actual (ed). Los prompt que contiene el símbolo de #, son de un usuario administrador dentro de GNU/Linux, el primero indica nada, pero el segundo nos dice el nombre de usuario (root), el nombre de la máquina (softed) y el directorio actual (root). Es importante señalar que la / es la diagonal que separa directorio en GNU/Linux, mientras que el (guión) sirve muchas veces para separar parámetros de los comandos, la \ recibe el nombre de escape, no confundir con la tecla ESC o ESCAPE, ya que en GNU/Linux hay caracteres que tiene alguna utilidad implícita en la línea de comandos, anteponiendo \ le podemos quitar dicha utilidad o propiedad y solamente dejarlo como el carácter que queremos representar. De esta forma, si queremos hacer referencia a un nombre de archivo que contenga espacios en blanco, debemos anteponer el \ al espacio de manera que no se entienda como división de parámetros si no como parte del nombre de archivo. $ cd Mis\ Documentos Sirve para entrar al directorio ''Mis Documentos'' Archivos y Directorios Los Archivos y Directorios son los medios lógicos con los cuales podemos almacenar, clasificar y y Apuntes de Informática Edgar F. Flores Muñoz organizar nuestros datos y programas. Archivo: Conjunto de informaciones o instrucciones organizadas en registros y que se almacenan como una sola unidad que puede manejarse en bloque. Los archivos contiene pues los datos y las instrucciones que usamos. El nombre completo de un archivo se compone por un nombre y una extensión, unidos por un punto, el nombre debe contener al menos 1 carácter y la extensión puede o no existir. Las extensiones nos ayudan a identificar que tipo de archivo tenemos, así algunas extensiones son: Extensión Tipo de Archivo Extensión Tipo de Archivo Extensión Tipo de Archivo .txt Archivo de texto .doc Documento .dat Archivo de Datos .gif Imagen .bmp Imagen .jpg Imagen .c Código fuente de un programa en Lenguaje C .pas Código fuente de un programa en Lenguaje Pascal .java Código fuente de un programa en Lenguaje Java .exe Programa Ejecutable en MS-DOS y Windows .com Comando del sistema operativo MS-DOS .bat Archivo de proceso por lotes .sh Shell de Unix .wav Archivo de audio .mp3 Archivo de audio comprimido .mov Archivo de vídeo .mpg Archivo de vídeo .avi Archivo de vídeo Para MS-DOS los archivos ejecutables, es decir, los que contienen programas, deben tenerla extensión . EXE o .COM, en GNU/Linux, esto tiene más que ver con las propiedades del archivo que con la extensión del mismo. Directorio (Folder o Carpeta) : división lógica dentro de un medio de almacenamiento, para organizar y categorizar archivos y subdirectorios. Como mencionamos antes, en MS-DOS y Windows la diagonal \ sirve para separar directorios y en GNU/Linux (Unix en general) la diagonal / es la que separa directorios. Para MS-DOS las unidades reciben el nombre de las letras del abecedario mientras que para GNU/Linux las unidades de disco se encuentran relacionadas, montadas, a un directorio. De tal forma que si queremos hacer referencia al directorio tareas en un disco flexible deberemos hacerlo de la siguiente manera: MS-DOS A:\tareas A: representa el disco flexible Linux /mnt/floppy/tareas /mnt/floppy es el directorio relacionado al disco flexible A continuación veremos algunos de los comandos principales de los sistemas operativos MS-DOS y GNU/Linux (Unix en general). Apuntes de Informática Acción Edgar F. Flores Muñoz Comando MS-DOS Comando GNU/Linux Comandos de manipulación de Directorios Creación de directorio Cambio de directorio Eliminar directorio Ver o listar el contenido de un directorio MD (Make Directory) mkdir (make directory) Uso: Uso: C:\> md nombre_directorio $ mkdir nombre_directorio CD (Change Directory) cd (change directory) Uso: Uso: C:\> cd nombre_directorio $ cd nombre_directorio Nota: Para salir de un directorio se usa cd .. y si se ejecuta cd sin darle nombre de directorio, muestra el nombre del directorio actual Nota: Para salir de un directorio se usa cd .. y si se ejecuta cd sin darle nombre de directorio, cambia al usuario a su directorio hogar RD (Remove Directory) rm -R (remove) Uso: Uso: C:\> rd nombre_directorio $ rm -R nombre_directorio Nota: El directorio debe estar vacío Nota: El comando rm es para borrar archivos, no existe un comando para remover directorios, pero puede usarse este comando con el parámetro -R para que remueva el directorio con todo y su contenido. DIR (Directory) ls (list) Uso: Uso: C:\> dir $ ls Nota: Existen parámetros para cambiar el comportamiento del comando DIR, aquí mostramos algunos Nota: Existen parámetros para cambiar el comportamiento del comando ls, aquí mostramos algunos /w ocupa todo el ancho de la pantalla -l muestra más detalles /p presenta por pantallas -t ordena por fecha /s busca dentro de los subdirectorios Ver el nombre del directorio actual CD (Change Directory) pwd (print working directory) Uso: Uso: C:\> cd $ pwd COPY cp (copy) Uso: Uso: C:\> copy origen destino $ cp origen destino Nota: Tanto el origen como en el destino se puede especificar la unidad de disco, directorios y archivos a copiar, puede omitirse el destino, de tal forma que MS-DOS tomara como destino el directorio en uso Nota: Debe especificarse tanto el origen como el destino, indicándose los directorios, para el directorio actual se usa . (punto) DEL (Delete) rm (Remove) Uso: Uso: C:\> del nombre_archivo $ rm nombre_archivo Comandos de manipulación de Archivos Copiar un archivo Borrar un archivo Nota: Como se vio anteriormente también se usa este comando para remover directorio al usar el parámetro -R Ver el contenido de un archivo TYPE cat (concatenate files and print on the standard output) Uso: Uso: C:\> type nombre_archivo $ cat nombre_archivo Apuntes de Informática Acción Crear un archivo de texto Edgar F. Flores Muñoz Comando MS-DOS Comando GNU/Linux COPY CON cat > Uso: Uso: C:\> copy con nombre_archivo $ cat > nombre_archivo Nota: Se usa el comando copy con el parámetro con que significa CONSOLE, consola, es decir que el origen es la consola, teclado y el destino es el archivo que se quiere crear. Nota: Se usa el comando cat con el > que redirecciona la salida estándar, la pantalla, a un archivo, en este caso el comando cat al no darle un archivo de entrada, toma la entrada estándar, el teclado, como el archivo que debe procesar creando de esta forma el nuevo archivo. Para esta forma de crear el archivo, se debe escribir el contenido deseado y después presionar Control-Z y Enter Para terminar de capturar el contenido del archivo, se presiona Control-D al inicio de una nueva línea. Mover un archivo Cambiar el nombre de un archivo MOVE mv (Move) Uso: Uso: C:\> move archivo_origen directorio_destino $ move archivo_origen archivo_destino REN (Rename) mv (Move) Uso: Uso: C:\> ren nombre_original nombre_nuevo $ mv nombre_original nombre_nuevo CLS (CLear Screen) clear Uso: Uso: C:\> cls $ clear MS-DOS no maneja contraseñas de usuario passwd (password) Configuración del Sistema Limpiar pantalla Cambio de contraseña de usuario Uso: $ passwd Cambio de Fecha DATE date Uso: Uso: C:\> date # date [MMDDhhmm[[CC]YY][.ss]] Nota: Para cambiar la fecha y la hora se requiere de privilegios de administrador, en caso de no tenerlos, al ejecutar date sin parámetros, solo se despliega la fecha y hora del sistema. Cambio de Hora TIME Se usa date Uso: C:\> time Manejo de Discos Cambiar etiqueta del disco LABEL Uso: C:\> label unidad: Nota: unidad puede ser A, B, C, D, o cualquier unidad de disco a la cual se le pueda cambiar la etiqueta, por lo general esto no aplica a los discos compactos. Formateo de Discos FORMAT Uso: C:\> format unidad: Nota: unidad puede ser A, B, C, D, o cualquier unidad de disco a la cual se le pueda formatear, por lo general esto no aplica para los discos compactos y no debe hacerse en un disco duro funcional, ya que se borra toda la información del disco. No existe un equivalente, ya que para GNU/Linux no se les pone etiqueta a los discos. Apuntes de Informática Edgar F. Flores Muñoz 3.4 Interfaces gráficas (MS-Windows, KDE, GNOME) Un poco de historia de la GUI (Graphical User Interface, Interfaz Gráfica de Usuario) No, Steve, creo que es más como que ambos teníamos al vecino rico llamado Xerox, e irrumpiste para robar el jueguito de TV, y encontraste que yo había estado allí primero, y dijiste. '¡Hey no es justo! ¡Yo quiero robar el jueguito de TV!' - Respuesta de Bill Gates después de que Steve Jobs acusara a Microsoft de plagiar el GUI de Apple para Windows 1.0 (Tomado y traducido de http://www.applehistory.com) Una GUI es una interfaz gráfica de usuario para la computadora. La mayoría de la computadoras usan un GUI hoy en día, ya que provee de ventanas, menús desplegables, botones, barrar de desplazamiento, iconos, imágenes y el ratón o dispositivo señalador. Las primeras interfaces de usuario para computadora no eran gráficas o visualmente orientadas; eran totalmente en texto y usando comandos de linea con el teclado. MS-DOS es un ejemplo de un Sistema Operativo basado en el control por medio del teclado y presenta todo en modo texto, y es usando aun hoy en día. La primer interfaz gráfica de usuario fue desarrollada por Xerox Corporation en su Centro de Investigación en Palo Alto (PARC) en la década de los 70's, pero no fue sino hasta la década de los 80's que las GUIs se volvieron populares y extendidas. Para esta época el poder de los CPU y de los monitores era el necesario para una GUI efectiva y lo suficientemente barata para el uso en las computadoras caseras. En 1983 sale al mercado Apple Lisa, la primer computadora casera en usar una GUI. En 1984 Apple lanza Macintosh, mejorando la GUI de Lisa. En 1985 Microsoft libera Windows 1.0, comenzando con esto la guerra con Apple. Posteriormente cada uno de los sistemas entre batallas legales y mejoramientos han llegado a las actuales versiones de MS-Windows XP y Mac OS X (el cual esta basado en una distribución de BSD). Por el lado del código abierto, surgen básicamente dos GUIs importante KDE y GNOME. En 1998 se libera la versión 1.0 de KDE y en 1999 la versión 1.0 de GNOME. En general funcionan para Sistemas Operativos basados en UNIX, por lo que ambas GUI son las preferidas por los usuarios de GNU/Linux. Algo importante de mencionar del GNOME es el hecho que es un proyecto iniciado por mexicanos, dicho grupo liderado por Miguel de Icaza, dio inicio en 1997 al GUI que actualmente usa Linux Red Hat (una de las compañías más importante en cuanto a GNU/Linux se refiere) como base para su Bluecurve GUI, lo cual nos da pauta a que en México no debemos ser únicamente consumidores de tecnología, si no también productores de la misma. Apuntes de Informática Edgar F. Flores Muñoz Unidad 8. Estructura de la información 8.1 Sistemas numéricos posicionales A lo largo de la historia del hombre han existido diversas maneras de representar cantidades (información numérica), en un inicio, se contaba con piedras o los dedos, para posteriormente dar lugar a los diversos sistemas de numeración como el romano, maya o árabe por mencionar algunos. Es del sistema arábigo de numeración del cual se desprende nuestro actual sistema numérico, que consta de 10 dígitos, 0,1,2,3,4,5,6,7,8,9, con los cuales podemos representar cualquier cantidad que queramos al combinar dichos dígitos en distintas posiciones. De esta manera la combinación de dígitos 1532 nos representa un millar, cinco centenas, tres decenas y 2 unidades, esto gracias a que las distintas posiciones de los dígitos les dan un múltiplo para saber que cantidad realmente representa cada uno de ellos. Dicho múltiplo esta dado por la base en que se encuentre representado el número y la base estara elevada a la posición del dígito, las posiciones de los dígitos se determinan como positivos hacia la izquierda y como negativos hacia la derecha del punto decimal, siendo el primer dígito a la izquierda del punto decimal la posición cero. número 1 5 3 2 . Posición 3 2 1 0 Punto decimal Dígito Base Posición Múltiplo Valor 1 10 3 1000 1000 Millares 5 10 2 100 500 Centenas 3 10 1 10 30 Decenas 2 10 0 1 2 Unidades Para nosotros el sistema de numeración más natural es aquel que consta de 10 dígitos, pero dentro del universo de sistemas de numeración posicionales, existen una infinidad de sistemas de numeración con distintas bases, y la base del sistema numérico es la cantidad de dígitos con que contamos para representar cualquier cantidad. Base Dígitos 10 0,1,2,3,4,5,6,7,8,9 2 0,1 8 0,1,2,3,4,5,6,7 16 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F * • Como en el caso de la base 16, las bases numéricas mayores a 10 necesitan dígitos nuevos para representar las cantidades mayores o iguales a 10, por lo que se usan las letras del abecedario para representar estas cantidades, considerando el ordenalfabético para ir asignando desde el número 10 hasta la base deseada de la A hasta la Z, cabe mencionar que si se requiere un sistemanumérico con una base mayor a 37 (10 dígitos numéricos y 27 letras) será necesario definir la simbología a usar en cantidades mayores o iguales a 37. Apuntes de Informática Edgar F. Flores Muñoz Las computadoras al ser dispositivos electrónicos trabajan a base de impulsos eléctricos, de encendidos y apagados, de bits y es por esto que hay que conocer la manera en que se transforma la información dentro de la computadora, de como un número 33 de base 10 se convierte en 100001 de base 2. Conversión de números de base 10 a cualquier base (n) Utilizaremos un ejemplo para ver la forma de convertir un número de base 10 a cualquier base Convertir 355.3125 en base 10 a base 2 Debe hacerse la conversión en dos partes, la parte entera y la parte decimal. Parte entera: 355/2 = 177 residuo 1 177/2 = 88 residuo 1 88 / 2 = 44 residuo 0 44 / 2 = 22 residuo 0 22 / 2 = 11 residuo 0 11 / 2 = 5 residuo 1 5 / 2 = 2 residuo 1 2 / 2 = 1 residuo 0 1 / 2 = 0 residuo 1 1. Se divide el número entre la base a la que se quiere convertir, quedando un residuo y un cociente (divisiones enteras) 2. Se divide el cociente de nuevo tantas veces como sea necesario hasta que este sea cero. 3. Se toman los residuos y se acomodan de derecha a izquierda del primero que salio al último y ese es el número en la base deseada. 101100011 Parte decimal: 0.3125 x 2 = 0.625 1. Se multiplica el decimal por la base a la que se quiere convertir 0.625 x 2 = 1.25 2. Se toma la parte decimal del resultado y se vuelve a multiplicar por la base, se hace esto tantas veces sea necesario hasta tener una parte decimal nula. 0.25 x 2 = 0.5 0.5 x 2 = 1.0 3. Se toman los enteros de los resultados y se acomodan de izquierda a derecha del primero al último y ese es el número decimal en la base deseada. 0.0101 Hecho lo anterior podemos afirmar que 355.3125 en base 10 es igual a 101100011.0101 en base 2 Ejemplo: ( 1000.25 )10 = ( )2 = ( )16 = ( La parte entera a base 2 )8 La parte decimal a base 2 1000 / 2 = 500 residuo 0 0.25 x 2 = 0.5 entero 0 500 / 2 = 250 residuo 0 0.5 x 2 = 1.0 entero 1 250 / 2 = 125 residuo 0 125 / 2 = 62 residuo 1 62 / 2 = 31 residuo 0 31 / 2 = 15 residuo 1 15 / 2 = 7 residuo 1 Apuntes de Informática Edgar F. Flores Muñoz La parte entera a base 2 La parte decimal a base 2 7 /2= 3 residuo 1 3 /2= 1 residuo 1 1 /2= 0 residuo 1 ( 1000.25 )10 = ( 1111101000.01 )2 La parte entera a base 16 La parte decimal a base 16 1000 / 16 = 62 residuo 8 62 / 16 = 3 residuo 14 = E 3 / 16 = 0 residuo 3 0.25 x 16 = 4.0 entero 4 ( 1000.25 )10 = ( 3E8.4 )16 La parte entera a base 8 La parte decimal a base 8 1000 / 8 = 125 residuo 0 125 / 8 = 15 residuo 5 15 / 8 = 1 residuo 7 1 /8= 0 residuo 1 0.25 x 8 = 2.0 entero 2 ( 1000.25 )10 = ( 1750.2 )8 Resultado : ( 1000.25 )10 = ( 1111101000.01 )2 = ( 3E8.4 )16 = ( 1750.2 )8 Conversión de números de cualquier base (n) a base 10 La conversión de un número en cualquier base (n) a base 10 se hace con un solo método, que es de hecho el mismo que usamos para identificar los múltiplos de un número en base 10, la diferencia será que en lugar de usar 10 usaremos la base en la que se encuentra el número. De nuevo usaremos un ejemplo para identificar el algoritmo de conversión. Convertir 10011101.00101 de base 2 a base 10 1. Se identifican las posiciones de cada dígito dentro de la cifra, considerando que la primer posición a la izquierda del punto decimal es la posición cero y que hacia la izquierda son posiciones positivas y hacia la derecha son posiciones negativas. 2. Se multiplica cada dígito por la base elevada a la posición del dígito. 3. Se suman los resultados de cada multiplicación y ese es el equivalente del número en la base 10 Posición (P) 7 Dígito (D) ( 1 P 6 5 0 7 4 0 6 3 1 5 2 1 4 1 1 3 0 0 2 -1 . 1 1 DxB 1x2 0x2 0x2 1x2 1x2 1x2 0x2 1x2 Resultado 128 0 0 16 8 4 0 1 0 -2 0 0x2 0 -3 0 -1 0x2 0 -4 1 -2 1x2 -5 0 -3 0.125 1 -4 )2 -5 0x2 0 Base (B) 1x2 SUMA 0.03125 156.15625 ( 10011101.00101 )2=( 156.15625 )10 ** Nota: Para realizar las operaciones de los exponentes o posiciones negativas, hay que considerar que Apuntes de Informática B−n= 1 Bn ejemplo : Edgar F. Flores Muñoz 2−5= 1 1 = =1÷32=0.03125 25 32 Ejemplos : Convertir ( 3E8.4 )16 = ( )10 Posición (P) 2 1 0 -1 Base (B) Dígito (D) ( 3 E 8 4 )16 DxBP Resultado . 3x162 14x161 8x160 768 224 4x16-1 SUMA 0.25 1000.25 8 ( 3E8.4 )16 = ( 1000.25 )10 Convertir ( 773.53 )8 = ( Posición (P) 2 1 0 Dígito (D) ( 7 7 3 DxBP Resultado )10 -1 -2 5 3 7x82 7x81 3x80 5x8-1 3x8-2 448 0.625 0.046875 507.671875 56 . 3 Base (B) )8 SUMA ( 773.53 )8 = ( 507.671875 )10 Ejercicios: Realizar las siguientes conversiones entre las bases que se indican 1. 2. 3. 4. 5. ( 759.08 )10 = ( )12 = ( )16 = ( )5 ( 759.08 )9 = ( )10 = ( )3 = ( )8 ( 759.08 )12 = ( )10 = ( )2 = ( )16 ( 759.08 )11 = ( )10 = ( )8 = ( )8 ( 1532.671875 )9 = ( )10 = ( )2 = ( )8 = ( )16 Apuntes de Informática Edgar F. Flores Muñoz Conversiones entre la base 2 y las bases 4, 8 y 16. La conversión entre la base 2 y las bases 4,8 y 16 puede realizarse de manera directa o utilizando tablas gracias a que las bases 4, 8 y 16 son bases potencia de la base 2, es decir que: 22=4, 23=8 y 24=16 Lo que para fines de conversión significa que entre las bases 2 y 4 cada dos dígitos de la base 2, es decir cada dos bits, son equivalentes a un dígito de la base 4, de manera similar, cada tres bits representan un dígito de la base 8 y cada 4 bits representan un dígito de la base 16. De lo anterior podemos generar las siguientes tablas de conversión. Base 2 Base 4 Base 2 Base 8 Base 2 Base 16 Base 4 Base 3 Base 9 00 0 000 0 0000 0 00 00 0 01 1 001 1 0001 1 01 01 1 10 2 010 2 0010 2 02 02 2 11 3 011 3 0011 3 03 10 3 100 4 0100 4 10 11 4 101 5 0101 5 11 12 5 110 6 0110 6 12 20 6 111 7 0111 7 13 21 7 1000 8 20 22 8 1001 9 21 1010 A 22 1011 B 23 1100 C 30 1101 D 31 1110 E 32 1111 F 33 En las tablas anteriores se agregaron la conversión entre las bases 16 y 4 así como entre las bases 3 y 9, ya que el concepto se aplica de la misma manera que entre las otras bases, 42=16 y 32=9. La utilización de las tablas es la siguiente: Convertir 111100101.101001 de la base 2 a las bases 4, 8 y 16. Cuando la base de origen es menor a la base destino, se debe dividir la cifra en grupos de dígitos tomando como referencia el punto decimal la cifra y la cantidad de dígitos del grupo debe corresponder con la potencia a la que se debe elevar la base menor para obtener la mayor. Si la cantidad de dígitos no corresponde a un múltiplo de la potencia, es decir, que falten dígitos para tener grupos completos, se agregaran ceros para completar los grupos, después simplemente se sustituye cada grupo por el correspondiente dígito usando las tablas. En este ejemplo la conversión queda de la siguiente forma, los ceros que se tuvieron que agregar a la cifra original para tener grupos completos están sombreados. Apuntes de Informática Edgar F. Flores Muñoz Base 0 1 1 1 1 0 0 1 0 1 . 1 0 1 0 0 1 2 1 4 3 2 1 1 . 2 2 1 Base 1 1 1 1 0 0 1 0 1 . 1 0 1 0 0 1 2 7 8 4 5 . 5 1 Base 2 0 0 0 1 1 1 1 0 0 1 0 1 . 1 0 1 0 0 1 0 0 1 16 E 5 . A 4 Quedando entonces que : ( 111100101.101001 )2 = ( 13211.221 )4 = ( 745.51 )8 = ( 1E5.A4)16 Convertir C3F.9E de base 16 a las bases 2 y 4. Cuando la base origen es mayor a la base destino, simplemente se sustituyen los dígitos de dicha base usando sus equivalentes en la base destino, sin olvidar incluir todo los ceros y en el mismo orden de los dígitos en la base original, una vez hecha la sustitución, pueden ser eliminados los ceros en los extremos a la izquierda del punto decimal y los ceros en los extremos a la derecha del punto decimal, para este ejemplo se sombrea el cero que sera eliminado. Base 16 C 3 F . 9 E 2 1100 0011 1111 . 1001 1110 Base 16 C 3 F . 9 E 4 30 03 33 . 21 32 Quedando entonces que : ( C3F.9E )16 = ( 110000111111.1001111 )2 = ( 300333.2132 )4 Apuntes de Informática Edgar F. Flores Muñoz Operaciones aritméticas en base 2. Las operaciones aritméticas, como la suma, resta, multiplicación y división en diferentes bases se realizan de la misma forma que lo hacemos en base 10, lo que cambia por supuesto es el conjunto de dígitos a nuestra disposición, a manera de ejemplo, veremos la forma de sumar y multiplicar usando la base 2. Para la suma la únicas consideraciones a hacer son las siguientes: 0+0=0, 1+0=1, 1+1=10 Fuera de esto, la suma es exactamente igual, veamos 1 1 1 1 1 1 0 1 1 1 + 1 1 1 1 1 1 1 0 1 1 0 Un ejemplo más complejo seria 1 0 1 1 1 1 1 1 1 0 1 0 1 1 1 1 0 1 1 0 1 1 0 0 1 1 1 1 1 1 1 0 0 1 + 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 La multiplicación solo requiere de saber dos tablas de multiplicar, la tabla del cero y la del uno 0x0=0 0x1=0 1x0=0 1x1=1 Ejemplos: 1 X 1 1 1 0 1 1 1 0 0 0 0 0 1 1 0 1 1 1 0 1 0 0 1 1 1 1 0 1 1 1 0 1 1 X 1 1 1 1 1+1 1 1 0 0 1 0 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 1 1 1 1 0 1 1 1 0 1 1 1 0 0 0 0 1 1 Apuntes de Informática Edgar F. Flores Muñoz Prefijos de cantidad. Los prefijos de cantidad que mencionaremos han existido desde hace mucho tiempo, y tiene un valor definido que es el que se encuentra en base 10, para aplicar los mismos prefijos a cantidades en la informática, se les ha hecho un ajuste a los valores considerando que las computadoras trabajan en un sistema binario o de base 2, ya que el valor de cada prefijo esta dado por la base elevada a un exponente, se busco el exponente que acercara más el valor en base 2 al valor en base 10, dicho lo anterior tenemos los siguientes prefijos y valores: Nombre Abreviación Valor para base 2 Valor para base 10 10 Kilo K 2 = 1,024 103 = 1,000 Mega M 220 = 1,048,576 106 = 1,000,000 Giga G 230 = 1,073,741,824 109 = 1,000,000,000 Tera T 240 = 1,099,511,627,776 1012 = 1,000,000,000,000 Peta P 250 = 1,125,899,906,842,624 1015 = 1,000,000,000,000,000 Exa E 260 = 1,152,921,504,606,846,976 1018 = 1,000,000,000,000,000,000 70 Zetta Z 2 = 1,180,591,620,717,411,303,424 1021 = 1,000,000,000,000,000,000,000 Yotta Y 280 = 1,208,925,819,614,629,174,706,176 1024 = 1,000,000,000,000,000,000,000,000 Entonces, si hablamos de un Mbyte o mega byte estaremos hablando aproximadamente de un millón de bytes o exactamente de 1,048,576 bytes. 8.2 Códigos de Información Un código de información desde el punto de vista informático es un tabla de relación entre símbolos, caracteres, y un equivalente número en binario. Tres juegos de códigos comunes son: ASCII EBCDIC Unicode (para las PCs y UNIX y DOS computadoras) (para IBM System 390 computadoras de gran potencia) (para Windows NT y explorador de Web reciente) El código ASCII (American Standard Code for Information Interchange) utiliza 7 bits por carácter, permitiendo 128 diferentes caracteres, lo que es suficiente para el alfabeto en letras mayúsculas y minúsculas y los símbolos de una máquina de escribir corriente además de algunas combinaciones reservadas para su uso interno. Un código ASCII extendido usa 8 bits por carácter lo que añade otros 128 caracteres posibles. Este juego de códigos más amplio permite que se agreguen los símbolos de lenguajes diferentes al inglés y varios símbolos gráficos. Apuntes de Informática Edgar F. Flores Muñoz Se usan códigos ASCII en UNIX y en las computadoras de base DOX para representar texto simple. El Sistema de las computadoras IBM 390 usa su propio juego de códigos, llamado EBCDIC (Extended Binary Coded Decimal Interchange Code). Una nueva norma, llamada Unicode (http://www.unicode.org/) (Unicode Worldwide Code Standard Código Norma Universal Unicode), se usa en las computadoras bajo Windows NT. IE4 y Netscape 4 entienden al Unicode y su uso se está extendiendo. El Unicode usa 16 bits por carácter, por lo que para los mismos caracteres insume el doble de espacio que con el código ASCII. Pero Unicode puede manejar muchos más caracteres. La meta de Unicode es representar cada elemento usado en la escritura de cualquier idioma del planeta. Bastante trabajo. El Unicode versión 3.0 contiene 49,194 caracteres, en lugar de los escasos pocos centenares de caracteres para ASCII y EBCDIC , de los utilizados en los lenguajes más importantes del mundo. Además de letras y números, el Unicode incluye puntuación, símbolos matemáticos y técnicos, formas geométricas, caracteres gráficos y modelos del Braille. Unicode contiene el código ASCII de norma como un subconjunto. Apuntes de Informática Edgar F. Flores Muñoz Tabla ASCII Tabla ASCII extendida Paridad Con todos éstos 0 y 1, sería fácil que la computadora cometiera un error. La paridad es una manera ingeniosa de verificar errores que pudieran ocurrir durante el procesamiento. En un sistema de paridad par un bit extra (haciendo que haya 9 bits en total) es asignado para que figure como 0 o como 1, haciendo que el número de bits resulte par. De forma que en nuestro ejemplo Apuntes de Informática Edgar F. Flores Muñoz anterior en el número 10101100 hay 4 bits activos o sea cuatro 1 .Por eso, el noveno bit que es el bit de paridad tendrá que ser 0, ya que el número de bits activos o 1, es de 4 , o sea par. En un sistema de paridad impar el número de bits activos o sea 1, deberá resultar impar. Si el número de bits 1 es incorrecto, ha ocurrido un error. Usted no sabrá cuál dígito o dígitos son los equivocados, pero al menos sabrá que ha sucedido un error. Si el número de bits está equivocado, ha ocurrido un error. Usted no sabrá qué dígito o dígitos están equivocados, pero por lo menos la computadora sabrá que ocurrió un error. Los circuitos integrados de memoria que almacenan sus datos pueden ser con paridad o sin paridad. Si se mezclan los dos tipos de circuitos integrados, pueden suceder fallas extrañas, difíciles de encontrar.