Si buscas hosting web, dominios web, correos empresariales o crear páginas web gratis, ingresa a PaginaMX
Por otro lado, si buscas crear códigos qr online ingresa al Creador de Códigos QR más potente que existe


Teoría de Lenguajes y Compiladores


1. INTRODUCCIÓN
1.1 Estructura de la maquina
1.1.1 Partes de un computador
1.1.1.1 Dispositivos de entrada


Son los que envían información a la unidad de procesamiento, en código binario. Dispositivos de entrada (entre otros):
  • Teclado
  • Mouse
  • Micrófono
  • Escáner
  • Lector de código de barras
  • Webcam
  • Lápiz Óptico
  • Joystick
  • Tarjetas perforadas
  • Pantalla Táctil
 
1.1.1.2 Dispositivos de salida
 
Son los dispositivos que reciben información que es procesada por la CPU y la reproducen para que sea perceptible para la persona.

Dispositivos de salida (entre otros):
  • Monitor
  • Impresoras
  • Altavoces
  • Auriculares
  • Fax

1.1.1.3 Memoria auxiliar o secundaria

El almacenamiento secundario (memoria secundaria, memoria auxiliar o memoria externa) es el conjunto de dispositivos (aparatos) y medios (soportes) de almacenamiento, que conforman el subsistema de memoria de una computadora, junto a la memoria principal.

No deben confundirse las "unidades o dispositivos de almacenamiento" con los "medios o soportes de almacenamiento", pues los primeros son los aparatos que leen o escriben los datos almacenados en los soportes.

La memoria secundaria es un tipo de almacenamiento masivo y permanente (no volátil), a diferencia de la memoria RAM que es volátil; pero posee mayor capacidad de memoria que la memoria principal, aunque es más lenta que ésta.

El proceso de transferencia de datos a un equipo de cómputo se le llama "procedimiento de lectura". El proceso de transferencia de datos desde la computadora hacia el almacenamiento se denomina "procedimiento de escritura".

En la actualidad para almacenar información se usan principalmente tres 'tecnologías':
  • Magnética (ej. disco duro, disquete, cintas magnéticas);
  • Óptica (ej. CD, DVD, Blu-ray Disc, etc.)
Algunos dispositivos combinan ambas tecnologías, es decir, son dispositivos de almacenamiento híbridos, por ej., discos Zip.
  • Memoria Flash (Tarjetas de Memorias Flash y Unidades de Estado sólido SSD)

Características del almacenamiento secundario
  • Capacidad de almacenamiento grande.
  • No se pierde información a falta de alimentación.
  • Altas velocidades de transferencia de información.
  • Mismo formato de almacenamiento que en memoria principal.
  • Siempre es independiente del CPU y de la memoria primaria. Debido a esto, los dispositivos de almacenamiento secundario, también son conocidos como, Dispositivos de Almacenamiento Externo.
 
1.1.1.4 Unidad Central de Proceso

Es la parte de la computadora donde se manipulan los símbolos, los números, letras y datos, además controla y dirige la operación de la computadora, ejecuta funciones de procesamiento, y se le conoce generalmente como procesador.

Procesa o manipula los datos almacenados en memoria; puede recuperar información desde memoria (esta información son datos o instrucciones de programas). También puede almacenar los resultados de estos procesos en memoria para su uso posterior.

El procesador o CPU, lleva a cabo una gran variedad de cálculos, comparaciones numéricas y transferencias de datos como respuesta a las peticiones de los programas que están siendo ejecutados en memoria. La CPU controla las operaciones básicas del ordenador enviando y recibiendo señales de control, direcciones de memoria y datos de un lugar a otro de la computadora a través de un grupo de canales llamados BUS.

La Unidad Central de Proceso esta constituida internamente por la Unidad de Control (Control Unit UC), la Unidad Aritmética/Lógica (Arithmetc-Logic Unit UAL) y la Unidad de Memoria comúnmente llamada memoria principal o almacenamiento primario y su función es la de guardar los datos en registros que leen y escriben de las celdas de memoria, llevan y traen datos entre celdas de memoria y registros especiales, decodifican y ejecutan las instrucciones de un programa.


1.1.1.4.1 Memoria principal

También llamada almacenamiento primario o memoria de acceso aleatorio (Random Access Memory RAM), cumple con tres funciones básicas almacena los programas del sistema operativo que permiten la operación de la computadora, almacena todo o parte de los programas que se están ejecutando y por ultimo almacena los datos que están siendo utilizados por los programas. Datos y programas son puestos en almacenamiento primario para su procesamiento, después de esto son retornados a un medio de almacenamiento secundario o a una unidad de salida predeterminada.

Para su funcionamiento el computador requiere de la memoria principal o RAM (Random Access Memory), que es el espacio lógico a donde se almacenan las instrucciones o datos que el microprocesador debe ejecutar o procesar. Esta memoria es temporal, pues existe sólo mientras el sistema está en encendido y su contenido varía de acuerdo a la aplicación o aplicaciones que se estén ejecutando.
La memoria principal se divide en:
  • Memoria Base o Convencional
  • Memoria alta
  • Memoria Extendida

1.1.1.4.2 Unidad de control

Controla y coordina el funcionamiento de las partes que integran una computadora, determina que operaciones se deben realizar y en que orden; asimismo sincroniza todo el proceso de la computadora, dependiendo de la interpretación de las instrucciones que integran los programas, genera el conjunto de ordenes elementales necesarias para que se realice los procesos necesarios.

Los pasos que sigue la unidad de control para ejecutar sus operaciones se pueden resumir como sigue, se extrae de la memoria principal la instrucción a ejecutar, esa información es almacenada en el contador de instrucciones, la información que se almacena es la próxima instrucción a ejecutar en el registro de instrucción propiamente dicha. Una vez conocido el código de la operación a ejecutar la unidad de control ya sabe que circuitos de la UAL deben intervenir, pueden establecerse las conexiones eléctricas necesarias a través del secuenciador, extrae de la memoria principal los datos necesarios para ejecutar la instrucción en proceso, ordena a la AUL que efectúe las operaciones, el resultado de este es depositado en el acumulador de la AUL, si la instrucción ha proporcionado nuevos datos estos son almacenados en la memoria principal y se incrementa en una unidad el contenido del contador de instrucciones a ejecutar.

1.1.1.4.3 Unidad Aritmético/Lógica

Realiza operaciones aritméticas (suma, resta, multiplica y divide), determina cuando un número es positivo, negativo o cero; así mismo ejecuta y realiza operaciones lógicas (comparaciones, conjunciones, disyunciones y negaciones).
Es la unidad encargada de realizar las operaciones elementales de tipo aritmético y lógico. Para comunicarse con otras unidades utiliza el bus de datos. La operación a realizar por la ALU (suma, resta, desplazamientos, comparaciones, etc.) se decide mediante señales de control enviadas desde la unidad de control.
Los elementos que componen la ALU son los siguientes:

Circuito operacional (OP). Formado por los circuitos necesarios para la realización de las operaciones con los datos procedentes del registro de entrada. También acepta como entrada órdenes para seleccionar el tipo de operación que debe realizar.

Registro de entrada (RE). Contiene los datos u operandos que intervienen en una instrucción antes de que se realice la operación por parte del circuito operacional. También se emplea como almacenamiento de resultados intermedios o finales de las operaciones.

Registrado de estado (RS). Engloba un conjunto de biestables (indicadores) en los que se deja constancia de condiciones que se dieron en la última operación realizada y que habrán de ser tenidas en cuenta en operaciones posteriores (indicadores de signo, de cero, de desbordamiento, etc.). Al registro de estado también se le conoce con el nombre de palabra de estado.

Registro acumulador (RA). Contiene los datos que están tratando en cada momento. Almacena los resultados de las operaciones realizadas por el circuito operacional. Está conectado con los registros de entrada para realimentación en el caso de operaciones encadenadas. También tiene una conexión directa con el bus de datos para envío de resultados a la memoria principal o a la UC.

1.1.2 Memoria principal o central
1.1.2.1 Estructura de la memoria principal

Chip de memoria RAM: Es la memoria de acceso temporal de un ordenador, allí se almacenan los programas mientras esta en funcionamiento, al apagarla todo lo que estaba en ella se borra, el punto es que es mucho más rápida que el disco duro.

Módulo de memoria RAM: Los módulos de memoria RAM son tarjetas de circuito impreso que tienen soldados integrados de memoria DRAM por una o ambas caras, para el integrado de presencia que sirve para identificar cada módulo.

Pines de conexión: Los contactos o pines, son los puntos de unión entre nuestra RAM y la placa madre.

1.1.2.2 Representación de la información en memoria
1.1.2.2.1 Números

Permite realizar algoritmos simples, así como ejecutar operaciones aritméticas. El más usado es el sistema de numeración decimal, que surgió gracias a que se utilizaban los dedos de la mano para contar las cosas.
En los sistemas de numeración, cada cantidad se representa en forma de potencias sucesivas del sistema en que estamos, como puede ser base 2, base 10, base 16.

1.1.2.2.2 Caracteres
Para representar las letras del alfabeto y otros símbolos, llamados caracteres, una computadora utiliza un conjunto de 8 bits. A este conjunto se le llama byte
Bit: es la mínima unidad de memoria y se corresponde con uno de los valores posibles, en dígitos binarios 0 o 1.
Byte: representación de un solo carácter (letra, número, espacio o símbolo). Es la mínima unidad de información. Un byte equivale a 8 bits.
  • Kbyte (kilo byte): conjunto de 1024 bytes.
  • Mbyte (mega byte): es igual a 1024 kbytes.
  • Gbyte (giga byte): es igual a 1024 mbytes.
  • Tbyte (tera byte): es igual a 1024 gbytes.
1.1.2.2.3 Códigos para control de errores

Los errores en la transmisión pueden ser debidos a tres causas distintas:
  • Características materiales de la línea.
  • Equipos de transmisión.
  • Causas externas al circuito de datos.
Para cuantificar el efecto de los errores sobre la transmisión se utiliza la tasa de error, o BER (Bit Error Rate), que es el cociente entre el número de bits recibidos erróneamente y el número total de bits transmitidos.
Para detectar el mayor número de errores se utilizan los códigos de control de errores. Estos códigos se dividen en auto correctores y detectores.

Códigos autocorrectores
Los códigos autocorrectores son aquellos que detectan y corrigen los errores producidos en una posición concreta. Esta tarea la desempeña el equipo receptor.

Códigos detectores
En los códigos puramente detectores el receptor detecta los errores, pero no es capaz de corregirlos, lo que hace es solicita el reenvío de la información. Las técnicas de solicitud de reenvío se denominan ARQ.
Los códigos de control de errores son siempre redundantes. Un código redundante es el que utiliza más bits de los estrictamente necesarios para la transmisión de los datos; gracias a esta característica se pueden detectar y corregir los errores.
Se dividen en sistemáticos y no sistemáticos, según la forma de añadir los bits redundantes.

Códigos no sistemáticos
En los códigos no sistemáticos los bits redundantes se añaden implícitamente en el código. Se les llama códigos M entre N, como por ejemplo el 3 entre 8, que para emitir un carácter de 8 bits añade otros 3 de control.
Los bits de control siempre se ponen a 1 flanqueando el carácter.

Códigos sistemáticos
En los códigos sistemáticos para determinar el valor de los bits redundantes se aplica un algoritmo a la información a transmitir.

1.1.2.3 Acceso a memoria
1.1.2.3.1 Proceso de lectura


La memoria de sólo lectura, conocida también como ROM (read-only memory), es un medio de almacenamiento utilizado en ordenadores y dispositivos electrónicos, que permite sólo la lectura de la información y no su escritura, independientemente de la presencia o no de una fuente de energía.
Los datos almacenados en la ROM no se pueden modificar, o al menos no de manera rápida o fácil. Se utiliza principalmente en su sentido más estricto.

1.1.2.3.2 Proceso de escritura

Consiste en leer/escribir sobre sí misma, ya que se pueden grabar datos o solo leerlos ya que es la memoria que utiliza para la ejecución de todos los programas y aplicaciones que son utilizados.

1.1.2.4 Características
1.1.2.4.1 Capacidad


Es decir, el número de miles de posiciones que contiene. Normalmente se expresan en K.palabras, aunque en los ordenadores personales al ser las palabras de 8 bits se expresan en K-bytes. En la actualidad, el tamaño de la palabra es múltiplo del byte, ya que de esta forma el acceso a la misma puede hacerse desde uno al ancho máximo del bus de datos, ahorrando en muchos casos tiempo. Así tendremos palabras de 8, 16, 32, 64 bits y capacidades de siempre medidas en potencia de dos: 8, 16, 64, 128 K...etc. (siendo 1K igual a 1025).
 
1.1.2.4.2 Tiempo de acceso

Es el tiempo que invierte el ordenador desde que se emite la orden de lectura-escritura, hasta que finaliza la misma. Este tiempo es muy pequeño, y de él depende la potencia del ordenado. Son típicos tiempos del orden de microsegundos e incluso del orden de 2 a 10 nanosegundos.

1.1.2.4.3 Volatilidad
En una memoria volátil si se pierde su contenido al interrumpir el suministro de energía
  • Lo contrario es la persistencia.
  • Tenemos memorias dinámicas que exigen un refresco (reescritura) continuado.
  • Memorias estáticas que no exigen refresco.
  • Memorias grabables eléctricamente, que perduran sin alimentación
  • Memorias de larga vida: CD-ROM, disco duro,...
1.1.2.4.4 Costo
El costo puede variar de distintas maneras interviniendo fundamentalmente:
  • La marca
  • Capacidad
  • Tipo de memoria
  • Velocidad de respuesta o tiempo de acceso
1.1.2.5 Clasificación
1.1.2.5.1 ROM


La memoria de sólo lectura, conocida también como ROM (acrónimo en inglés de read-only memory), es un medio de almacenamiento utilizado en ordenadores y dispositivos electrónicos, que permite sólo la lectura de la información y no su escritura, independientemente de la presencia o no de una fuente de energía.

Los datos almacenados en la ROM no se pueden modificar, o al menos no de manera rápida o fácil. Sin embargo, las ROM más modernas, como EPROM y Flash EEPROM, efectivamente se pueden borrar y volver a programar varias veces, aun siendo descritos como "memoria de sólo lectura" (ROM).

1.1.2.5.2 RAM

Es la memoria de trabajo. Su característica principal es que permiten tanto la lectura como la escritura por parte del procesador.
Recibe este nombre porque el acceso a cualquier dirección escogida de manera aleatoria es siempre el mismo (cosa que no sucede en un disco -el acceso a la información almacenada depende de su posición- o en una cinta).

1.1.2.5.3 PROM

PROM (ROM programable). Es una memoria digital donde el valor de cada bit depende del estado de un fusible (o antifusible), que puede ser quemado una sola vez. Por esto la memoria puede ser programada (pueden ser escritos los datos) una sola vez a través de un dispositivo especial, un programador PROM. Estas memorias son utilizadas para grabar datos permanentes en cantidades menores a las ROMs, o cuando los datos deben cambiar en muchos o todos los casos.
Pequeñas PROM han venido utilizándose como generadores de funciones, normalmente en conjunción con un multiplexor. A veces se preferían a las ROM porque son bipolares, habitualmente Schottky, consiguiendo mayores velocidades.

1.1.2.5.4 EPROM

EPROM (ROM programable borrable). Es un tipo de chip de memoria ROM no volátil inventado por el ingeniero Dov Frohman. Está formada por celdas de FAMOS (Floating Gate Avalanche-Injection Metal-Oxide Semiconductor) o "transistores de puerta flotante", cada uno de los cuales viene de fábrica sin carga, por lo que son leídos como 1 (por eso, una EPROM sin grabar se lee como FF en todas sus celdas).

Características

Las memorias EPROM se programan mediante un dispositivo electrónico que proporciona voltajes superiores a los normalmente utilizados en los circuitos electrónicos. Las celdas que reciben carga se leen entonces como un 0.

Una vez programada, una EPROM se puede borrar solamente mediante exposición a una fuerte luz ultravioleta. Esto es debido a que los fotones de la luz excitan a los electrones de las celdas provocando que se descarguen. Las EPROM se reconocen fácilmente por una ventana transparente en la parte alta del encapsulado, a través de la cual se puede ver el chip de silicio y que admite la luz ultravioleta durante el borrado.

1.1.2.6 Estructura física
1.1.2.6.1 Núcleos de ferrita


La memoria de toros o memoria de núcleos magnéticos, fue una forma de memoria principal de los computadores, hasta comienzos de 1970. La función de esta memoria era similar a la que realiza la memoria RAM en la actualidad: es el espacio de trabajo, para la CPU, donde se graban los resultados inmediatos de las operaciones que se van realizando. A diferencia de la RAM basada en tecnologías DRAM, se basa en las propiedades magnéticas de su componente activo, el núcleo de ferrita y era una memoria no volátil.

1.1.2.6.2 Integradas

Una placa madre integrada, es aquella placa madre que viene equipada con todos los elementos y chips que le permiten controlar los periféricos conectados a la computadora (video, sonido, red, módem, etc.), sin necesidad de tener que instalar otra tarjeta. Es decir, todos los chips controladores vienen integrados en una sola placa madre, lo que nos permitirá ahorrar dinero y evitar un sobrecalentamiento del PC.

1.1.2.6.3 Burbujas magnéticas

La memoria de burbuja (Bubble memory) es un tipo de memoria para almacenamiento de información no volátil. Utiliza una fina película de material magnético que contiene pequeñas zonas magnetizadas conocidas como burbujas, que pueden ser manipuladas y que almacenan un bit de datos cada una.

Principio de funcionamiento y principales características:

La presencia o ausencia de una burbuja en determinada posición se interpreta como 0 ó 1 respectivamente. Para mover la burbuja dentro del material magnético, se emplean campos magnéticos. A diferencia del disco duro, no intervienen partes mecánicas.

A diferencia de lo que ocurre con la memoria de sólo lectura (ROM), se puede escribir en la memoria de burbujas. También a diferencia de la memoria de acceso aleatorio (RAM), los datos almacenados en las burbujas de memoria permanecerán allí hasta que se modifiquen, incluso cuando se apague el equipo.

Por ello, la memoria de burbuja se utilizó en entornos en los que un equipo debía de tener la capacidad de recuperarse de un fallo de corriente eléctrica, con una pérdida mínima de datos.

1.1.2.7 Otras (fotodigítales, rayo láser, biológicas, etc.)

Los dispositivos de almacenamiento óptico enfocan el rayo laser sobre el medio de grabación: un disco girando.

1.1.3 Unidad de control
1.1.3.1 Secuencia lógica de funciones
1.1.3.1.1 Localización y extracción de la instrucción


Se vuelca el valor del contador de programa sobre el bus de direcciones. Entonces la CPU pasa la instrucción de la memoria principal a través del bus de datos al Registro de Datos de Memoria (MDR). A continuación el valor del MDR es colocado en el Registro de Instrucción Actual (CIR), un circuito que guarda la instrucción temporalmente de manera que pueda ser decodificada y ejecutada.

El decodificador de instrucción interpreta e implementa la instrucción. El registro de instrucción (IR) mantiene la instrucción en curso mientras el contador de programa (PC, program counter) guarda la dirección de memoria de la siguiente instrucción a ser ejecutada.
  • Recogida de datos desde la memoria principal
  • Se accede al banco de registros por los operandos (solo si es necesario)
  • Se calcula el valor del operando inmediato con extensión de signo (solo si es necesario)
También se lee la dirección efectiva de la memoria principal si la instrucción tiene una dirección indirecta, y se recogen los datos requeridos de la memoria principal para ser procesados y colocados en los registros de datos.

1.1.3.1.2 Transferencias de memoria principal la unidad de control

La unidad de transferencia es igual al número de líneas de entrada/salida de datos del módulo de memoria.
  • Realmente es igual a la palabra, pero suele ser por ej. 64,128 o 256 bits.
  • Conceptos relacionados con la memoria interna:
Es la unidad “natural” de organización de la memoria, suele coincidir con el número de bits utilizados para representar números y con la longitud de las instrucciones.

UNIDAD DE TRANSFERENCIA: para la memoria principal, es el número de bits que se leen o escriben en memoria a la vez.
No tiene por qué coincidir con una palabra o con una unidad direccionable. Para memoria externa, los datos se transfieren en unidades más grandes llamadas bloques.

1.1.3.1.3 Definiciones de la instrucción

Se denomina instrucción en informática al conjunto de datos insertados en una secuencia estructurada o específica que el procesador interpreta y ejecuta.

Los tipos de instrucción permitidos están definidos y determinados dentro de cada plataforma en el conjunto de instrucciones (en inglés ISA, instruction set architecture), que también determina los registros de origen y destino de la CPU, y en ocasiones un dato inmediato (aquellos que son especificados explícitamente en la instrucción).

Estas instrucciones del computador son las que determinan el funcionamiento de la CPU que las ejecuta. La CPU puede realizar una diversidad de funciones, que son el reflejo de la variedad de las instrucciones definidas para dicha CPU. El programador tiene un repertorio de instrucciones como medio para controlar la CPU.

Una instrucción se puede ver como una cadena de bits que se agrupan en campos con tamaños diferentes.
Las instrucciones que es capaz de realizar la UCP se denominan instrucciones máquina.

El lenguaje que se utiliza para su codificación es el lenguaje máquina y, de acuerdo con su función, se clasifican en:
  • Instrucciones de transferencia de datos. Transfieren datos
  • Instrucciones aritméticas, lógicas y de comparación. Operaciones
  • Instrucciones de transferencia de control. Secuencia de ejecución
  • Instrucciones de gobierno. Controlan estado CPU
1.1.3.1.4 Ejecución

A partir del registro de instrucción, los datos que forman la instrucción son decodificados por la unidad de control. Ésta interpreta la información como una secuencia de señales de control que son enviadas a las unidades funcionales relevantes de la CPU para realizar la operación requerida por la instrucción.
 
 1.1.3.1.5 Supervisión

La unidad central de proceso, UCP, dirige y controla el proceso de información realizado por la computadora.

LA UCP procesa o manipula la información almacenada en memoria; puede recuperar información desde memoria (esta información son datos o instrucciones: programas). También puede almacenar los resultados de estos procesos en memoria para su uso posterior.

La UCP consta de dos componentes: La unidad de control (control unit,Uc) y unidad aritmética lógica (UAL).

Un microprocesador es el chip que ejecuta los programas. El procesador o CPU, lleva a cabo una gran variedad de cálculos, comparaciones numéricas y transferencias de datos como respuesta a las peticiones de los programas que están siendo ejecutados en memoria. La CPU controla las operaciones básicas del ordenador enviando y recibiendo señales de control, direcciones de memoria y datos de un lugar a otro del ordenador a través de un grupo de 'sendas electrónicas' llamadas BUS.

1.1.3.2 Elementos
1.1.3.2.1 Reloj


Proporciona una sucesión de impulsos eléctricos o ciclos a intervalos constantes que marcan los instantes en que han de comenzar los distintos pasos de que consta cada instrucción.

1.1.3.2.2 Registró contador de instrucciones

Contiene en cada momento la dirección de memoria donde se encuentra la instrucción siguiente a ejecutar. Al iniciar la ejecución de un programa toma la dirección de su primera instrucción. Incrementa su valor en uno de forma automática cada vez que concluye una instrucción, salvo que la instrucción que se esté ejecutando sea de salto o de ruptura.

1.1.3.2.3 Registro de instrucciones

Dedicado a memorizar temporalmente la instrucción que la UC esta interpretando o ejecutando en ese momento. El programa que se esta ejecutando reside en memoria principal y la UC va buscando y captando las instrucciones secuencialmente para interpretarlas y generar las ordenes de ejecución. La captación de una instrucción implica leerla en la memoria y almacenarla en el registro de instrucción. La instrucción que se está ejecutando lleva consigo un código de operación (COP) y unos operandos o la dirección de los mismos.

1.1.3.2.4 Decodificador

Es el que interpreta realmente la instrucción. Se encarga de extraer el código de operación de la instrucción en curso, lo analiza y emite las señales necesarias al resto de los elementos para su ejecución a través del secuenciador.

1.1.3.2.5 Secuenciador

En este dispositivo se generan ordenes muy elementales (microórdenes), que sincronizadas por el reloj hacen que se vaya ejecutando poco a poco la instrucción que está cargada en el registro de instrucción.
Hay dos tipos de Secuenciadores:

Secuenciador Cableados: todas las señales se generan con circuitos lógicos electrónicos. Siempre se producen las mismas señales ante la misma instrucción. Son las mas rápidas pero menos flexibles y mas difíciles de construir.

Secuenciador Programados: tienen una pequeña memoria que contiene un microprograma que se ejecuta para cada sentencia de programa. Las instrucciones de los microprogramas se denominan microinstrucciones.

1.1.3.2.6 Banco de registro

Aparte de los registros anteriormente explicados, bajo el control de la UC existe otro banco de registros imprescindibles para la realización de cualquier programa. Estos registros se utilizan para conservar datos temporales.

1.1.3.2.7 Descentralización de funciones y nuevas tecnologías

Al implementar nuevas tecnologías suelen haber varios cambien entorno a las funciones de los elementos que componen a la unidad de control cabe destacar de que a pesar de que haya cambios no significa que queden obsoletas todas las funciones si no mejorar tanto cada una de ellas y sirviendo para la ejecución y realización de tareas.

Otro punto muy importante es destacar que no necesariamente deben aplicar las nuevas tecnologías sin embargo es lo que se recomendaría comúnmente para mejorar la eficacia de los proyectos según su uso se debe verificar que cumpla con las especificaciones necesarias de la función a desempeñar.

1.1.4 Unidad aritmético/lógica
1.1.4.1 Operaciones básicas

La mayoría de las ALU pueden realizar las siguientes operaciones:
  • Operaciones aritméticas de números enteros (adición, sustracción, y a veces multiplicación y división).
  • Operaciones lógicas de bits (AND, NOT, OR, XOR, XNOR).
  • Operaciones de desplazamiento de bits (Desplazan o rotan una palabra en un número específico de bits hacia la izquierda o la derecha, con o sin extensión de signo). Los desplazamientos pueden ser interpretados como multiplicaciones o divisiones por 2.
1.1.4.2 Unidad aritmética
1.1.4.2.1 Aritmética binaria y de unidad aritmética

La unidad aritmético lógica, también conocida como ALU (siglas en inglés de arithmetic logic unit), es un circuito digital que calcula operaciones aritméticas (como suma, resta, multiplicación, etc.) y operaciones lógicas (si, y, o, no), entre dos números.

Suma en binario
La tabla de sumar, en binario, hay cuatro combinaciones posibles:


Las sumas 0 + 0, 0 + 1 y 1 + 0 son evidentes:
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1

Pero la suma de 1+1, que sabemos que es 2 en el sistema decimal, debe escribirse en binario con dos cifras (10) y, por tanto 1+1 es 0 y se arrastra una unidad, que se suma a la posición siguiente a la izquierda.

Resta en binario
Los términos que intervienen en la resta se llaman minuendo, sustraendo y diferencia.


Las restas 0 - 0, 1 - 0 y 1 - 1 son evidentes:
0 – 0 = 0
1 – 0 = 1
1 – 1 = 0

La resta 0 - 1 se resuelve, igual que en el sistema decimal, tomando una unidad prestada de la posición siguiente.  Esa unidad prestada debe devolverse, sumándola, a la posición siguiente.

Multiplicación binaria
Los factores de la multiplicación sólo pueden ser CEROS o UNOS, el producto sólo puede ser CERO o UNO.


División binaria
Igual que en el producto, la división es muy fácil de realizar, porque no son posibles en el cociente otras cifras que UNOS y CEROS.

Consideremos el siguiente ejemplo, 42: 6 = 7, en binario:


1.1.4.2.2 Sistemas para las operaciones

Decimal a binario
Se divide el número del sistema decimal entre 2, cuyo resultado entero se vuelve a dividir entre 2, y así sucesivamente hasta que el dividendo sea menor que el divisor, 2. Es decir, cuando el número a dividir sea 1 finaliza la división.

A continuación se ordenan los restos empezando desde el último al primero, simplemente se colocan en orden inverso a como aparecen en la división, se les da la vuelta. Éste será el número binario que buscamos.

Decimal (con decimales) a binario
Para transformar un número del sistema decimal al sistema binario:
  1. Se transforma la parte entera a binario. (Si la parte entera es 0 en binario será 0, si la parte entera es 1 en binario será 1, si la parte entera es 5 en binario será 101 y así sucesivamente).
  2. Se sigue con la parte fraccionaria, multiplicando cada número por 2. Si el resultado obtenido es mayor o igual a 1 se anota como un uno (1) binario. Si es menor que 1 se anota como un 0 binario. (Por ejemplo, al multiplicar 0.6 por 2 obtenemos como resultado 1.2 lo cual indica que nuestro resultado es un uno (1) en binario, solo se toma la parte decimal del resultado).
  3. Después de realizar cada multiplicación, se colocan los números obtenidos en el orden de su obtención.
  4. Algunos números se transforman en dígitos periódicos, por ejemplo: el 0.1.
Binario a decimal
Para realizar la conversión de binario a decimal, realice lo siguiente:
  1. Inicie por el lado derecho del número en binario, cada cifra multiplíquela por 2 elevado a la potencia consecutiva (comenzando por la potencia 0, 20).
  2. Después de realizar cada una de las multiplicaciones, sume todas y el número resultante será el equivalente al sistema decimal.
Binario a decimal (con parte fraccionaria binaria)
  1. Inicie por el lado izquierdo (la primera cifra a la derecha de la coma), cada número multiplíquelo por 2 elevado a la potencia consecutiva a la inversa (comenzando por la potencia -1, 2-1).
  2. Después de realizar cada una de las multiplicaciones, sume todas y el número resultante será el equivalente al sistema decimal.
Sistema Binario a octal
Debido a que el sistema octal tiene como base 8, que es la tercera potencia de 2, y que dos es la base del sistema binario, es posible establecer un método directo para convertir de la base dos a la base ocho, sin tener que convertir de binario a decimal y luego de decimal a octal. Este método se describe a continuación:
Para realizar la conversión de binario a octal, realice lo siguiente:
  1. Agrupe la cantidad binaria en grupos de 3 en 3 iniciando por el lado derecho. Si al terminar de agrupar no completa 3 dígitos, entonces agregue ceros a la izquierda.
  2. Posteriormente vea el valor que corresponde de acuerdo a la tabla:
  1. La cantidad correspondiente en octal se agrupa de izquierda a derecha.
Octal a binario
Cada dígito octal se convierte en su binario equivalente de 3 bits y se juntan en el mismo orden.

Binario a hexadecimal
Para realizar la conversión de binario a hexadecimal, realice lo siguiente:
  1. Agrupe la cantidad binaria en grupos de 4 en 4 iniciando por el lado derecho. Si al terminar de agrupar no completa 4 dígitos, entonces agregue ceros a la izquierda.
  2. Posteriormente vea el valor que corresponde de acuerdo a la tabla:
  1. La cantidad correspondiente en hexadecimal se agrupa de derecha a izquierda.
Hexadecimal a binario
Note que para pasar de Hexadecimal a binario, se remplaza el número Hexadecimal por el equivalente de 4 bits, de forma similar a como se hace de octal a binario.

1.1.4.3 Unidad lógica
1.1.4.3.1 Operaciones lógicas

La puerta AND o compuerta AND: es una puerta lógica digital que implementa la conjunción.


La puerta NOT o compuerta NOT: es una puerta lógica digital que implementa la negación lógica. Cuando su entrada está en 0 (cero) o en BAJA, su salida está en 1 o en ALTA, mientras que cuando su entrada está en 1 o en ALTA, su SALIDA va a estar en 0 o en BAJA.


La puerta OR o compuerta OR: es una puerta lógica digital que implementa la disyunción lógica.


Cuando todas sus entradas están en 0 (cero) o en BAJA, su salida está en 0 o en BAJA, mientras que cuando una sola de sus entradas está en 1 o en ALTA, su SALIDA va a estar en 1 o en ALTA.

La puerta XOR, compuerta XOR u OR exclusiva: es una puerta lógica digital, en la cual, cuando todas sus entradas son distintas entre sí para dos entradas A y B, o cuando el número de 1 (unos) da una cantidad impar para el caso de tres o más entradas, su salida está en 1.


La puerta XNOR, compuerta XNOR o NOR exclusiva: es una puerta lógica digital en la cual, cuando tiene dos entradas, estas poseen el mismo valor lógico, o cuando el número de 1 (unos) da una cantidad par para el caso de tres o más entradas, su salida está en 1 o en ALTA.


1.1.4.3.2 Lógica digital y Unidad lógica

La unidad lógica es el dispositivo de almacenamiento de información creado por el sistema operativo u otro software, este último es responsable de mapear las operaciones en la unidad lógica en una o más operaciones en una o más unidades físicas (equipamiento, hardware). Una unidad física puede esta dividida en varias unidades lógicas y viceversa.

1.1.5 Buses
1.1.5.1 Definiciones

La comunicación del microprocesador con los periféricos tiene lugar a través de cables especiales denominados buses.Utilizando este símil, se pueden considerar dos factores importantes que determinan la calidad: el número de carriles y la velocidad a la que circular por ella. Del mismo modo la calidad de los buses depende delnúmero de bits que pueden fluir al mismo tiempo y de la velocidad con la que éstos lo hacen.

1.1.5.2 Bus de datos

Mueve los datos entre los dispositivos del hardware de Entrada como el teclado, el ratón, etc.; de salida como la Impresora, el Monitor; y de Almacenamiento como el Disco Duro, el Disquete o la Memoria-Flash. Estas transferencias que se dan a través del Bus de Datos son gobernadas por varios dispositivos y métodos, de los cuales el Controlador PCI, "Peripheral Component Interconnect", Interconexión de componentes Periféricos, es uno de los principales. Su trabajo equivale, simplificando mucho el asunto, a una central de semáforos para el tráfico en las calles de una ciudad.

1.1.5.2.1 4 BIT

En arquitectura de ordenadores, 4 bits es un adjetivo usado para describir enteros, direcciones de memoria u otras unidades de datos que comprenden hasta 4 bits de ancho, o para referirse a una arquitectura de CPU y ALU basadas en registros, bus de direcciones o bus de datos de ese ancho.

El Intel 4004, el primer microprocesador comercial de único chip, fue una CPU de 4 bits.

1.1.5.2.2 8 BIT BUS

Las CPU de 8 bits normalmente usan un bus de datos de 8 bits y un bus de direcciones de 16 bits lo que causa que su memoria direccionable esté limitada a 64 kilobytes; sin embargo esto no es una "ley natural", ya que existen excepciones.
El primer microprocesador de 8 bits ampliamente utilizado es el Intel 8080, que se usó en computadores de aficionados a finales de los años 1970 y principio de los años 1980, muchos corriendo el sistema operativo CP/M.

1.1.5.2.3 16 BIT BUS O ISA BUS

Abreviatura de (Arquitectura estándar de la industria). Diseño del BUS de 16 bits utilizado por primera vez en las computadoras PC/AT de IBM. La Arquitectura estándar extendida de la industria (EISA), es una extensión de 32 bits que fue hecha a este estándar de BUS en 1984. La arquitectura estándar de la industria o ISA tiene una velocidad de BUS de 8 MHz, y un caudal de procesamiento (de datos) máximo de 8 megabytes por segundo.

1.1.5.2.4 32 BIT O EISA BUS

(Arquitectura estándar extendida de la industria). BUS estándar de una computadora personal que extiende el BUS AT tradicional a 32 bits y le permite a más de un procesador compartir el BUS. La Arquitectura estándar extendida de la industria (EISA), fue desarrollada por la llamada Pandilla de Nueve en respuesta a la introducción, por IBM.

1.1.5.2 Bus direcciones

El bus de direcciones es un canal del microprocesador totalmente independiente del bus de datos donde se establece la dirección de memoria del dato en tránsito.

El bus de dirección consiste en el conjunto de líneas eléctricas necesarias para establecer una dirección.

1.1.6 Instrucciones
1.1.6.1 Formatos

La representación de la instrucción en la computadora se denomina formato. Sabemos que un programa está formado por una secuencia de instrucciones, cada una de las cuales especifica una acción particular. La parte esencial de la instrucción es lo que llamamos código de operación, que señala la acción que debe ejecutarse.

1.1.6.2 Códigos de operación

En informática, un opcode (operation code) o código de operación, es la porción de una instrucción de lenguaje de máquina que especifica la operación a ser realizada. Su especificación y formato serán determinados por la arquitectura del conjunto de instrucciones (ISA) del componente de hardware de computador - normalmente un CPU, pero posiblemente una unidad más especializada. Una instrucción completa de lenguaje de máquina contiene un opcode y, opcionalmente, la especificación de uno o más operandos - sobre los que la operación debe actuar. Algunas operaciones tienen operandos implícitos, o de hecho ninguno.

Algunas ISAs tiene instrucciones con campos definidos para los opcodes y operandos, mientras que otras (ej. la arquitectura Intel x86) tienen una estructura más complicada y de propósito específico.

1.1.6.2.1 Operaciones más usuales

Los operandos sobre los cuales los opcodes aplican pueden, dependiendo de la arquitectura del CPU, consistir de registros, valores en memoria, valores almacenados en la pila, puertos de I/O, bus, etc. Las operaciones que un opcode puede especificar pueden incluir aritmética, copia de datos, operaciones lógicas, y control del programa.

Los opcodes también pueden ser encontrados en los bytecodes interpretados por un interpretador de código de byte (o la máquina virtual, en un sentido de ese término). En éstos, una arquitectura de conjunto de instrucciones es creada para ser interpretada por software en vez de un dispositivo de hardware. A menudo, los interpretadores de código de byte trabajan con tipos de datos y operaciones de más alto nivel, que el de un conjunto de instrucciones por hardware, pero son construidas a lo largo de líneas similares. Ejemplos incluyen la máquina virtual de Java (JVM) del lenguaje de programación Java, el código de byte usado en GNU Emacs para el código compilado de LISP, y muchos otros.

1.1.6.3 Direcciones
1.1.6.3.1 Instrucciones de una dirección

Se utilizan generalmente en máquinas cuya arquitectura funciona con filosofía de acumulador. El acumulador de la UAL contiene previamente el primer argumento de la operación, el segundo es el contenido en la propia instrucción, y después de ser operados ambos por el circuito operacional, el resultado queda depositado de nuevo en el acumulador.


1.1.6.3.2 Instrucciones de dos direcciones

Contienen el código de operación y dos operandos, de los que uno de ellos actúa, además, como receptor del resultado de la operación.

En las máquinas que utilizan instrucciones con dos direcciones el resultado puede depositarse en el lugar que inicialmente ocupaba uno de los operandos.

1.1.6.3.3 Instrucciones de tres direcciones

Constan en primer lugar de código de operación al que siguen tres operandos, de los cuales, los dos primeros son las direcciones de los argumentos que hay que operar y el tercero es la dirección donde se depositará el resultado.

Este formato se adoptó en algunos de los primeros computadores, en los que la capacidad de la memoria era pequeña y por tanto bastaba con pocos bits para los campos de dirección. De no ser así, la longitud del formato resulta ser excesivamente grande.

1.1.7 Memorias virtuales
1.1.7.1 Necesidad de la memoria virtual

La memoria virtual es una técnica de gestión de la memoria que permite que el sistema operativo disponga, tanto para el software de usuario como para sí mismo, de mayor cantidad de memoria que la disponible físicamente. La mayoría de los ordenadores tienen cuatro tipos de memoria: registros en la CPU, la memoria caché (tanto dentro como fuera del CPU), la memoria RAM y el disco duro. En ese orden, van de menor capacidad y mayor velocidad a mayor capacidad y menor velocidad.

La alternativa es usar memoria virtual, donde la combinación entre hardware especial y el sistema operativo hace uso de la memoria principal y la secundaria para hacer parecer que el ordenador tiene mucha más memoria principal (RAM) que la que realmente posee. Este método es invisible a los procesos. La cantidad de memoria máxima que se puede hacer ver que hay tiene que ver con las características del procesador.

1.1.7.2 Paginación

En sistemas operativos de computadoras, los sistemas de paginación de memoria dividen los programas en pequeñas partes o páginas. Del mismo modo, la memoria es dividida en trozos del mismo tamaño que las páginas llamados marcos de página. De esta forma, la cantidad de memoria desperdiciada por un proceso es el final de su última página, lo que minimiza la fragmentación interna y evita la externa.

En un momento cualquiera, la memoria se encuentra ocupada con páginas de diferentes procesos, mientras que algunos marcos están disponibles para su uso. El sistema operativo mantiene una lista de estos últimos marcos, y una tabla por cada proceso, donde consta en qué marco se encuentra cada página del proceso. De esta forma, las páginas de un proceso pueden no estar contiguamente ubicadas en memoria, y pueden intercalarse con las páginas de otros procesos.

1.1.7.3 Tablas de páginas

Las tablas de paginación o tablas de páginas son una parte integral del Sistema de Memoria Virtual en sistemas operativos, cuando se utiliza paginación. Son usadas para realizar las traducciones de direcciones de memoria virtual (o lógica) a memoria real (o física) y en general el sistema operativo mantiene una por cada proceso corriendo en el sistema.

1.1.7.4 Cargas de páginas
1.1.7.4.1 Método FIFO

Primero en entrar, primero en salir (En inglés First in, first out, también se usan las siglas FIFO), es un concepto utilizado en estructuras de datos, contabilidad de costes y teoría de colas. Guarda analogía con las personas que esperan en una cola y van siendo atendidas en el orden en que llegaron, es decir, que la primera persona que entra es la primera persona que sale.

PEPS se utiliza en estructuras de datos para implementar colas. La implementación puede efectuarse con ayuda de arrays o vectores, o bien mediante el uso de punteros y asignación dinámica de memoria.

Si se implementa mediante vectores el número máximo de elementos que puede almacenar está limitado al que se haya establecido en el código del programa antes de la compilación (cola estática) o durante su ejecución (cola pseudoestática ó dinámica). Sea cual sea la opción elegida, el número de elementos que podrá almacenar la cola quedará determinado durante toda la ejecución del programa. Así, el sistema debe reservar el tamaño de memoria necesario para acoger todos los datos, sea cual sea el número de elementos usados.

1.1.7.4.2 Método LRU

En sistemas operativos que utilizan paginación para el manejo de memoria, los algoritmos de reemplazo de páginas son usados para decidir qué páginas pueden ser sacadas de memoria cuando se necesita cargar una nueva y ya no hay espacios.

Agregar un comentario

Tu nombre

Tu dirección de correo (no se mostrará)

¿De qué color es el pasto? (chequeo de seguridad)

Mensaje *

© 2025

26181