Especialidades Padres y Alumnos Calendario E-Mail Enlaces

 Organización pedagógica didáctica y actualización: Aldo Martin

 Funcionamiento interno de una PC

Nociones sobre el funcionamiento de una PC

En esta clase explicaremos el funcionamiento esencial de los componentes más importantes de una PC, Memoria y Microprocesador, para esto nos valdremos de un diseño elemental de estos dos componentes comenzando con el de la memoria, la que consideraremos como si fuera una matriz de celdas. Cada casilla es identificada por el procesador con una dirección hexadecimal, para nuestro análisis las nombraremos con dígitos decimales, como se muestra en la figura.

En la memoria se almacenan temporariamente los datos de los procesos que se están ejecutando en este momento, esta no hace distinción entre datos o intrucciones, solo almacena información sin importar su naturaleza. Se podría definir un análogo a la memoria como el banco de trabajo de un carpintero, en el cual se ubican las herramientas y materiales para cumplir con un trabajo, sin importar cuan apto sea el carpintero, este verá limitada su capacidad de trabajo por el tamaño que tiene este banco. De forma similar el procesador limita su accionar a la cantidad de memoria que posee el sistema.

 

A continuación “construiremos” al  procesador mediante un diseño muy elemental, el cual se muestra en la figura.


En el esquema vemos tres componentes fundamentales: Unidad de Control, Unidad Artmetica (ALU), y los registros, así como el bus que comunica a todos los componentes dentro de procesador y el reloj. Daremos una breve explicación de cada una de ellos:

§       Unidad de Control: Es la encargada de controlar el funcionamiento general del sistema, así como también de definir el orden de actuación de cada elemento conectado al mismo.

Su función principal es la de ejecutar las instrucciones que conforman un programa, los pasos que realiza son los siguientes.

•               Extrae de la memoria la instrucción a ejecutar.

•               Decodifica y e interpreta la instrucción recogida.

•               Procede a la ejecución de las operaciones que demanda esa instrucción.

§         Unidad aritmética/lógica: ALU: se encarga de realizar las operaciones aritméticas y lógicas. Esta compuesta de una circuitería lógica que permite realizar operaciones ARITMETICA-LOGICAS cuando recibe determinadas ordenes.

§         Registros: la función de estos es contener, de manera temporal, los distintos datos que van a intervenir en las operaciones que se estén realizando, o el resultado de las mismas. Se pueden dividir en tres grupos:

•     Registros internos: Utilizados como auxiliares, no son accesibles al programador, y no pueden ser utilizados explícitamente.

•     Registros generales: pueden ser utilizados directamente por el programados, en ellos se guardan los resultados de operaciones que más tarde serán usados en otras operaciones.

•     Registros de indicadores: pueden considerarse como una extensión de la ALU, en ellos se guarda la información de la forma en que de debe llevar a cabo una operación, y los datos almacenados en ellos pueden modificar le resultado de una operación.

NOTA: En nuestro diagrama solo hemos representados los registros generales, obviando los internos e indicadores.

§         Registros de pila o Acumulador: En el procesador las instrucciones no se ejecutan secuencialmente, sino que se realizan según el orden de prioridad que tenga cada una, para indicar esto el dispositivo que requiere atención del procesador envía una interrupción, llamado de atención al procesador. El mismo al recibir esta interrupción guarda la información en de la operación que estaba haciendo antes en la pila o acumulador, y luego de atendida la interrupción, recupera la información guardada y continua con el proceso anterior.

LENGUAGES DE PROGRAMACION

La CPU  solo entiende de códigos binarios, pero esto resulta muy complicado de programar, por lo que se crearon diversas formas de codificar las instrucciones para hacer más practica la tarea de la programación, aquí aparecieron los llamados lenguajes de programación, en estos el programa es escrito en forma de una lista ordenada de instrucciones que se deben llevar a cabo siguiendo ciertas reglas impuestas por el lenguaje que sé este usando. Después de esto se traduce este programa a lenguaje máquina, que es el código binario que la CPU puede interpretar (NOTA: si uno visualiza algo escrito en código máquina se muestra en forma hexadecimal) mediante un programa llamado compilador. Cada lenguaje de programación tiene su propio  compilador, así como el lenguaje de cada pueblo tiene su propio diccionario. Dependiendo de cuan parecido sea  el lenguaje al código máquina es el nivel que tiene. Existen dos niveles de programación, a saber Alto nivel y Bajo nivel.

§         Bajo nivel: Esta formado por instrucciones sencillas, esto significa que no pueden ser subdivididas en instrucciones más pequeñas. Un ejemplo de estos es el ASSEMBLER.

§         Lenguajes de alto nivel: Este tipo de lenguajes está más humanizado que los anteriores, esto quiere decir las instrucciones son mas fácilmente interpretables por una persona. Posee macrointrucciones, instrucciones que se pueden dividir en instrucciones más sencillas. En ellos se pueden especificar varios elementos:

§         Constantes: Valores fijados con anterioridad y que no pueden ser modificados durante la ejecución del programa.

§         Variable: Posiciones de memoria, donde se puede guardar temporalmente información.

§         Expresiones: Operaciones formadas por constantes y variables ej.: “1*5”, “A+B”, “Sueldo*10”.

§         Asignación: Acción de asignarle un valor a una variable. Ej.: “a=1”, “Sueldo=Sueldo*1,2”.

§         Salida: Forma en la cual se muestra el resultado del proceso Ej.:”escribir “a””,”imprimir “sueldo””.

§         Entrada: Carga de datos guardados anteriormente. Ej.: “leer nombre”

§         Bifurcaciones: Sentencia de selección entre una opción u otra

§         Repetitivas: (Bucles). Repiten las sentencias contenidas dentro de estas estructuras.

Siguiendo con nuestro diseño:

Veremos un ejemplo de la ejecución de un programa sencillo que  suma los datos almacenados en dos direcciones de memoria y  almacena el resultado en otra dirección, y después  compara este valor con el almacenado en otro registro, y después ejecuta una instrucción almacenada en una cuarta dirección de memoria.


Ejemplo de un programa en lenguaje de alto nivel:

dimension tabla(3,50)

use archivo index in_arch

go top

do while not eof

   if control > 5

       exit

   endif

  tabla(control, cuenta)= cantidad * precio

  skip

enddo

Trabajo Practico

1.        ¿Cuál es la función de la memoria RAM?

2.        Esquematice la RAM.

3.        ¿Cuáles son los componentes principales de un procesador?. Explique brevemente c/u.

4.        Enumere los distintos tipos de registros explicando cada uno de ellos.

5.        ¿Qué es la pila?

6.        ¿Qué función tiene el bus interno?

7.        Esquematice al procesador.

8.        ¿Qué es más sencilla, una instrucción del procesador o del usuario?

9.        ¿Qué es un compilador?

10.     ¿Cuál es la diferencia entre lenguajes de bajo y alto nivel?

11.     Enumere los elementos de un lenguaje de programación de alto nivel.