Está en la página 1de 8

Funcionamiento de un ordenador

El ordenador es un equipo digital y como tal maneja informacin digital exclusivamente, es decir, maneja exclusivamente nmeros (dgitos). Ms concretamente, maneja slo seales electrnicas de tipo 0 y 1 (dgitos 0 y 1) que son en realidad smbolos que sirven para identificar la ausencia de seal elctrica 0, y existencia de seal elctrica 1. El interruptor de cualquier habitacin tambin funciona as, de forma que ante un 0 (ausencia de seal elctrica) la luz est apagada, y ante un 1, la luz est encendida. El paso de estas seales elctricas a los smbolos numricos (nmeros 0 y 1) se lleva a cabo mediante la codificacin que no es otra cosa, que un convenio (acuerdo entre varias partes). Codificacin Cambio de lenguaje o de cdigo lingstico sin modificar el contenido. El lenguaje coloquial podemos decir que es la traduccin de un lenguaje a otro manteniendo el significado de la expresin. Los nmeros por todos utilizados se basan en unas reglas definidas sobre un cdigo lingstico de 10 cifras o dgitos (los nmeros del 0 al 9). El ordenador slo entiende 2 tipos de seales: ausencia de seal y presencia de seal, que se han codificado como 0 y 1 a estos nmeros se les denomina bit, y a la codificacin en s se denomina base 2 o binario (la codificacin anterior se denomina decimal pues usa 10 dgitos). Tambin se puede definir bit como la mnima unidad de informacin, ya que nos proporciona una mnima informacin posible de como est la luz de la habitacin; si necesitramos ms informacin, necesitaramos conocer ms de un bit. Por ejemplo si necesitamos saber si la luz est encendida y si Juan est dentro necesitamos 2 bits, uno para saber como est la luz, y otro para saber si Juan est dentro de la habitacin o no. A este criterio se han aadido otro puramente matemtico, que es que para representar un numero cualquiera se utiliza el sistema binario que se basa slo en dos dgitos 0 y 1 y aadir el nmero de dgitos necesarios (bits) por la izquierda. El sistema decimal por ejemplo se basa en 10 dgitos diferentes, los nmeros del 0 al 9 y se van aadiendo por la izquierda dgitos adicionales para nmeros mayores. Por ejemplo, si queremos representar los nmeros del 0 al nueve podramos utilizar 4 bits siguiendo los criterios de la siguiente tabla: Dgito 3 Dgito 2 Dgito 1 Dgito 0 Nmer o decimal 0 1 2 3 4 5 6 7 Nmero binario 0000 0001 0010 0011 0100 0101 0110 0111

0 0 0 0 0 0 0 0

0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1

1 1

0 0

0 0

0 1

8 9

1000 1001

En la anterior tabla podemos deducir que cualquier nmero puede ser representado en sistema binario con el suficiente nmero de bits (dgitos 0 y 1). Por ejemplo el nmero decimal 10 sera en binario 1010, el decimal 16 en binario sera 1111, y el decimal 17 en binario sera 10000. Igual que en el sistema decimal decimos que los 0 a la izquierda no tienen valor, tambin se mantiene esto en el sistema binario, por lo que por ejemplo, el nmero 0001 0000 y el 1 0000 representan al mismo nmero decimal 017 o simplemente 17 (el espacio en blanco intermedio en el 0001 0000 es simplemente para aclarar la visualizacin. Si un sistema electrnico dispone de 8 bits (8 dgitos binarios) podremos por tanto representar slo a 256 nmeros decimales diferentes que irn desde el 0000 0000 hasta el 1111 1111 y todas las posibles combinaciones intermedias, que se correspondern a los nmeros decimales del 0 al 255. Desde el punto de vista de la informacin podemos decir tambin que con 8 bits podemos conocer como mximo 256 informaciones distintas. Este sistema necesitar por tanto 8 seales distintas y simultneas para poder informar de uno cualquiera de los nmeros comprendidos entre el 0 y el 255, o lo que es lo mismo, 8 cables con ausencia o presencia de seal de forma simultnea en un instante dado. A estos 8 dgitos en informtica se denomina Byte. Los buses de datos entre los diferentes componentes de un ordenador suelen tener 8 cables, aunque en los ordenadores modernos este nmero est aumentando para acelerar la velocidad del ordenador. El Byte es una unidad fundamental en el terreno de los ordenadores ya que con el objeto de no aumentar indefinidamente el nmero de cables se adopt este criterio en la prctica totalidad de los circuitos. Por tanto para representar a nmeros mayores al 255 se necesitan aadir ms Bytes, o sea mas grupos completos de 8 bits: Por ejemplo el 256 sera: 0000 0001 0000 0000 (2 grupos de 8 bits). Existe una regla matemtica que dice que con 2^x =Y, en palabras significa que con 2 elevado a x bits se pueden representar Y nmeros/informaciones diferentes (x = bits e Y = nmero decimal/informacin diferente). Por ejemplo para 16 bits, 2^16 = 65536, podemos representar a 65536 nmeros diferentes (del 0 al 65535) como mximo, expresado en Bytes, con 2 Bytes (2 grupos de 8 Bits = 16 Bits) podemos representar a 65536 nmeros diferentes/informaciones distintas. Como 1 Byte = 8 bits, la formula anterior quedara expresada en Bytes de la siguiente forma: 2^(X * 8)=Y, siendo X en Bytes. Por ejemplo con 2 Bytes podemos representar a 2^(2*8)=2^16=65536 nmeros distintos (del 0 al 65535) o 65536 informaciones distintas. Con esta convencin funcionan la mayora de los circuitos del ordenador, es decir comunican informaciones en grupos de 8 bits, o lo que es lo mismo Byte a Byte, necesitando por tanto 8 cables de datos y un sistema de sincronizacin y control para conocer en que instante se activan los 8 cables de un grupo y en que instante los del siguiente grupo. Estas seales se agrupan en el denominado Bus de control que forma parte del bus principal ya mencionados anteriormente. Los nmeros binarios tambin se agrupan como los decimales, en grupos de mil, as como unidad fundamental de masa tenemos el gramo, a 1000 gramos se llama Kilogramo, de la misma forma a 1000 Bytes se llama Kilobyte y se representa con las letras KB (para ser exactos a 1024, no a mil), al 1 milln de Bytes se llama Megabyte y se representa 1 MB (en realidad a 1024 * 1024 = 1,048,576 bytes pero se usa generalmente la aproximacin), a mil millones de Bytes se llama Gigabyte y se representa con las letras GB y a un billn (con b) de informaciones de 8 Bits se denomina 1 Terabyte y se representa por 1 TB. En todos estos casos se utiliza la aproximacin 1024 es aproximadamente igual a 1000 aunque esto es menos cierto cuanto mayor es el nmero. Cuando se habla de que un disco duro tiene una capacidad de 500 GB nos estamos refiriendo a que puede guardar 500,000,000,000 Bytes diferentes de forma simultnea. Como cada Byte guarda 256

informaciones diferentes, en este disco duro se pueden almacenar hasta 256 * 500 * 10 ^ 9 = 128,000,000,000,000 informaciones (128 billones de informaciones diferentes). La aproximacin de 1000 en lugar de 1024 es frecuente cuando se habla de tamaos en especial de tamaos de memoria y de disco duro (puesto que son nmeros muy grandes y realmente los fabricantes ya los indican as), pero no cuando se habla de velocidades de transferencias de datos que los fabricantes las expresan en Kilobits por segundo (no Kilobytes por segundo), y en estos casos la B va en minscula. Por tanto si contratamos una lnea ADSL de 10 Mbps, realmente estamos contratando una lnea de datos que nos va a permitir como mximo trasferir 10*10^6 bits por segundo desde Internet hasta nuestro equipo. En esta lnea como mximo vamos a poder conseguir una velocidad de descarga de archivos (10*10^6)/8 MBps = 1,25 MBps (que es la mxima velocidad de descarga que indicar nuestro navegador ya que los programas indican la velocidad en MBps no en Mbps). Por tanto si queremos descargar un archivo de 200 MB (200 Megabytes), como mnimo tardaremos 200/8=25 segundos en descargar dicho archivo con nuestra ADSL de 10 Mbps (conocida generalmente como una lnea de 10 Megas de bajada); y eso en el hipottico caso que nuestro proveedor nos suministre el 100% de la capacidad de la lnea contratada. A decir verdad ser como mximo el 95%, ya que el 5% restante se pierden en la gestin de la transmisin de los datos, puesto que estos se transmiten por la lnea en bloques de una tamao generalmente fijo y numerados, y el tamao y el nmero de cada bloque tambin tiene que ser transmitido para que el receptor una cada uno de los bloques recibidos, en el orden correcto para formar el archivo. Es evidente que los fabricantes realizan estas aproximaciones por sus propios intereses de marketing, ya que hablando de tamaos nos hablan de que tienen un almacenamiento, cuando en realidad es ms pequeo (1000 es inferior a 1024), y hablando de velocidades les interesa vendernos la mxima velocidad: 8 Kbps es aparentemente un nmero mayor 1 KBps, aunque en este caso ambos nmeros son equivalentes. Funcionamiento de la memoria

Memoria Principal
El funcionamiento del ordenador se basa en que toda la memoria est organizada en posiciones numeradas consecutivamente comenzando en la posicin de memoria 0, hasta el tamao total de la memoria del equipo.

Registros de la CPU
Internamente en la CPU existen unas memorias muy rpidas y de un tamao muy pequeo que sirven como almacn temporal de datos para realizar las propias operaciones. Ya hemos mencionado que la estructura interna de la CPU es muy similar a la del propio ordenador. Esta memoria interna de la CPU se denomina registros. Las primeras CPUs tenan 16 registros (memoria interna de 16 posiciones). Algunos de estos registros son fundamentales y se mantienen en la actualidad en casi todas las CPUs: El contador de programa: Es el registro que indica a la CPU la posicin de memoria donde buscar la siguiente instruccin a ejecutar. Cuando se ejecuta una instruccin normalmente el valor de este registro se incrementa en una unidad, y se solicita de esta forma a la memoria principal la instruccin de la siguiente posicin de memoria en el siguiente ciclo de ejecucin. Cuando la memoria es muy grande y esta divida en bloques se utilizan los registros de Puntero de segmento y puntero de ndice para esta funcin. Puntero de segmento: Cuando la memoria principal es muy grande, se suele dividir en partes denominadas segmentos. Este registro sirve para indicar a la CPU la zona de memoria donde reside un programa. Puntero de ndice: Al dividir la memoria principal en segmentos, la CPU utiliza dicho registro como ndice dentro de cada segmento. La primera posicin de memoria de un segmento tiene como ndice 0. El acumulador: Es un registro intermedio de clculo, donde se van acumulando temporalmente los resultados de las operaciones aritmticas y lgicas que realiza la CPU.

Flags: Son registros con indicaciones del resultado de la ltima operacin (instruccin anterior) y del estado de la propia CPU. Estos registros son generalmente consultados por instrucciones condicionales para modificar el comportamiento del programa. Los flags no son mas que unos registros en los que la CPU activa o desactiva bits individuales en funcin de resultados de operaciones anteriores y de su propio estado, por tanto existirn instrucciones para consultar cada uno de estos bits individuales. El puntero de pila. Generalmente todos los programas de ordenador mantienen un lugar de la memoria principal denominada pila con datos temporales con forme avanza la ejecucin del programa. Tambin la utilizan los programas de atencin a las interrupciones para salvaguadar los registros que necesitan utilizar y devolverlos a su estado original al finalizar dicho programa. Para poder acceder a ella se utiliza este registro de forma similar al contador de programa.

Al resto de registros de la CPU se les denomina genricamente registros de datos, y son utilizados por los diferentes programas segn las necesidades de cada uno. Funcionamiento de la CPU Cuando arrancamos un ordenador, la CPU recibe una seal electrnica denominada RESET por una de sus patillas de conexin. Esta seal provoca que la CPU borre todos los registros internos incluido el contador de programa (los ponga todos a 0) y comience un ciclo de ejecucin. Dicho ciclo consiste en solicitar a la memoria principal la instruccin que exista en la posicin indicada en el registro de contador de programa. Cuando recibe dicha instruccin, la ejecuta, y a continuacin incrementa en una unidad el valor del contador del programa. Cuando un ciclo de ejecucin finaliza comienza el siguiente, y as indefinidamente mientras est arrancado el ordenador. De esta forma la CPU va ejecutando las instrucciones grabadas en la memoria en un orden secuencial y una a una. Cada instruccin no es ms que un nmero binario con un significado acordado que entiende la propia CPU. Se puede por ejemplo acordar que la instruccin con el valor 0 significa sumar al contador de programa 10 posiciones al valor que tiene en ese momento. As por ejemplo conseguiramos el resultado de que la CPU saltara directamente 10 posiciones de la memoria principal en el siguiente ciclo de ejecucin. Tipos de instrucciones que ejecuta la CPU Todas las CPUs entienden un nmero de instrucciones finito. A estas instrucciones se les denomina lenguaje mquina y no son por tanto mas que informaciones binarias almacenadas en la memoria del ordenador (recordemos que la memoria es una lista de informaciones binarias consecutivas agrupadas en Bytes). Cada modelo de CPU tiene unas instrucciones propias pero en general todas las CPUs tienen unos determinados conjuntos de instrucciones que se pueden clasificar en: Instrucciones de salto: Son aquellas que cambian el contador de programa de forma explcita. Al final de cada instruccin que ejecuta la CPU, siempre se incrementa una unidad el contador de programa, salvo que se la CPU est ejecutando una instruccin que ya modifique el propio contador de programa. Dentro de estas instrucciones suele existir una especial denominada NOP (no operacin), que realmente significa pasar a la siguiente instruccin sin realizar ninguna modificacin interna. Esta instruccin se utiliza para medir tiempos, conocida la velocidad de reloj de la CPU y el tiempo que tarda en ejecutarse la propia instruccin, con un grado de exactitud bastante grande podemos simplemente contando desde una posicin del contador de programa hasta otra el tiempo que transcurre. El algunas CPUs tambin existe la instruccin STOP que deja completamente parada a la CPU y por tanto reduce el consumo energtico, hasta que llega una instruccin de interrupcin (ver siguientes apartados). Instrucciones de desplazamiento: Son aquellas que mueven datos de un dispositivo a otro, por ejemplo mover el contenido del acumulador a la posicin de memoria X, o mover el contenido del bus de datos del controlador de teclado a la posicin de memoria indicada

por el contador de programa (para posteriormente conocer que tecla ha pulsado el usuario) Instrucciones matemticas: Son aquellas que realizan clculos matemticos. Estos pueden ser aritmticos y/o lgicos. Un clculo aritmtico es por ejemplo, sumar el contenido del registro A de la CPU con el contenido del registro B, y depositar el resultado en el registro acumulador o por ejemplo sumar el valor de la siguiente posicin de memoria del contador de programa al acumulador. Un ejemplo de clculo lgico es la funcin lgica AND entre los registros A y B y dejar el resultado en el acumulador. Casi todas las operaciones matemticas ejecutadas por la CPU dejan el resultado en el acumulador. Instrucciones condicionales: Son instrucciones que tambin pueden afectar al contador de programa si se cumple una condicin, en cuyo caso no se incrementara en una unidad al final del ciclo de la instruccin, el contador de programa. Por ejemplo si el acumulador es mayor que cero saltar a la posicin de memoria Y indicada en la siguiente posicin de memoria del contador de programa; en caso contrario continuar con la instruccin siguiente. Muchas de estas instrucciones comprueban valores especficos del registro de FLAGS. Instrucciones de entrada/salida. Son aquellas destinadas al intercambio de informacin con los controladores de los perifricos. Bsicamente son instrucciones de lectura y escritura en los distintos controladores disponibles en el ordenador. Interrupciones: Son instrucciones de salto especiales, ya que generalmente son seales elctricas (para atenderlas lo antes posible) que llegan directamente al las conexiones de las CPU, y que cuando las detecta, la CPU deja de ejecutar el programa que estaba atendiendo y comienza otro diferente en otra posicin de memoria dada (o en otro segmento de la memoria principal). A esta interrupcines se les denomina interrupciones generadas por hardware. Antes de realizar el salto en s, la propia CPU guarda en el valor actual del contador de programa en otro registro. Los propios programa de interrupciones utilizan el registro de la pila para guardar al principio los registros que van a necesitar. Antes de que finalice el programa de interrupcin devuelven los registros modificados a su estado anterior. Los programas de atencin a la interrupcin tienen una instruccin especial que es la de retorno (RET), que cuando la CPU la detecta dentro de un programa de interrupcin, lo da por finalizado y recupera el contador de programa anteriormente almacenado en el registro, continuando de esta forma con el programa que estaba ejecutando antes de que la CPU fuera interrumpida por la seal de interrupcin. Tambin existen interrupciones generadas por software o TRAPS, por ejemplo debido a un error en el programa, en estos casos el funcionamiento es anlogo al de la interrupcin por hardware. Los sistemas operativos modernos funcionan generalmente as, es decir estn a la espera de sucesos. Instrucciones privilegiadas: Con el objeto de evitar conflictos entre programas en los ordenadores multiusuario, se introdujeron en la CPUs un conjunto de instrucciones privilegidas y un sistema de ejecucin denominado modo protegido. De esta forma, slo algunos programas (el sistema operativo y los que este decide) tienen un acceso completo a todos los recursos e instrucciones del equipo, los programas de aplicacin no tienen opcin a todos los recursos, ya que en este caso podran interferir a otros programas.

Antes de comenzar cada ciclo de ejecucin de una instruccin, la CPU comprueba si tiene activada alguna interrupcin y en caso afirmativo la atiende como se ha mencionado. En caso negativo comienza con el ciclo de ejecucin normal tambin comentado con anterioridad; de esta forma se evita que la ejecucin de una instruccin quede a medias. Con las interrupciones, la CPU consigue estar pendiente y atender situaciones imprevistas, como por ejemplo la pulsacin de una tecla en el teclado de un ordenador por parte del usuario. La velocidad de ejecucin de cada instruccin por parte de la CPU es tan rpida, que no nos damos cuenta de que en realidad existe un pequeo retardo entre que pulsamos una tecla, y el ordenador la detecta y la presenta en pantalla. Es tan rpida que incluso durante el tiempo que dura la pulsacin de una tecla (apretar y soltar), es capaz de ejecutar cientos, miles, o incluso millones de instrucciones.

Como el lector habr podido deducir existirn instrucciones que justo a continuacin del cdigo mquina de la propia instruccin guarde un dato e incluso varios (por ejemplo 2 operadores) en la memoria principal. En los ejemplos anteriores hemos hablado de los valores X e Y de la siguiente posicin de memoria indicada por el contador de programa. Por tanto podemos generalizar que las instrucciones de la CPU pueden llegar a ser bastante complejas y necesitar varios Bytes consecutivos en la memoria principal, o bastante sencillas de un nico Byte. Ejecutando instrucciones tan sencillas como las enumeradas en los ejemplos anteriores a una gran velocidad y bien planificadas se pueden resolver problemas tan complejos como el de enviar un hombre a la luna. El ordenador de la cpsula Apolo XI que llevo al primer hombre a la Luna tena una CPU Intel 8085 que dispona de 128 instrucciones distintas en lenguaje mquina y funcionaba a una velocidad de 1 Mhz (1 milln de estas instrucciones por segundo, aunque en realidad algunas menos; sobre unas 200,000 instrucciones por segundo). El los ordenadores que atienen a ms de un usuario existe un circuito en la placa base que provoca interrupciones a intervalos de tiempo regulares, el temporizador del sistema. De esta forma, cada vez que se recibe una de estas interrupciones, la CPU cambia el programa que est ejecutando y pasa al siguiente. As, la CPU consigue dar la impresin de estar atendiendo a todos los programas al mismo tiempo, cuando en realidad lo que est haciendo es dividir su tiempo entre todos los programas que requieren su atencin. Qu es un PC compatible? PC es la abreviacin de Personal Computer. Un ordenador personal (PC), es un ordenador monousuario, es decir, atiende exclusivamente a una persona. En esto radica la diferencia con otra clase de ordenadores, como por ejemplo los Servidores, que son capaces de atender a un gran nmero de usuarios (100, por ejemplo). La primera marca que puso en el mercado estos equipos fue IBM (International Business Machines). Sin embargo, se sabe que esta no es la nica marca de PC que existe, por lo que el conjunto de esas marcas de equipos que funcionan casi en un 100% igual que un PC IBM, reciben el nombre de PC-compatibles. Por otro lado, se han desarrollado otros tipos de computadores personales, como por ejemplo los Macintosh de Apple, a partir de 1984. Se diferencian, fundamentalmente de los PC-Compatibles, en la forma de comunicacin entre el usuario y el computador (la interfaz de usuario). Qu es el Sistema Operativo? Es un programa o conjunto de programas que en un sistema informtico gestiona los recursos de hardware y provee servicios a los programas de aplicacin, ejecutndose en modo privilegiado respecto de los restantes. Una misin importante del S.O. es evitar que los programas de un usuario interfieran con los programas de otro. Por este motivo se aadieron a las CPUs la clasificacin de instrucciones en modo usuario y en modo privilegiado. Slo el S.O. puede ejecutar instrucciones en modo privilegiado, cada vez que cede la ejecucin a un programa de usuario lo hace en modo usuario. Si un programa de usuario necesita realizar alguna tarea del modo privilegiado utiliza unas programas propios del sistema operativo: Las llamadas al sistema (le pide al sistema operativo que las realice). Un sistema operativo es un programa o conjunto de programas de ordenador destinado a permitir una gestin eficaz de sus recursos. Comienza a trabajar cuando se enciende el computador, y gestiona el hardware de la mquina desde los niveles ms bsicos, permitiendo tambin la interaccin con el usuario. Un sistema operativo se puede encontrar normalmente en la mayora de los aparatos electrnicos que utilicen microprocesadores para funcionar, ya que gracias a estos podemos entender la mquina y que sta cumpla con sus funciones (telfonos mviles, reproductores de DVD, autoradios y ordenadores).

Funciones bsicas y clasificacin


Proporcionar comodidad en el uso de un ordenador. Gestionar de manera eficiente los recursos del equipo, ejecutando servicios para los procesos (programas) Brindar una interfaz al usuario, ejecutando instrucciones (vulgarmente comandos). Permitir que los cambios debidos al desarrollo del propio SO se puedan realizar sin interferir con los servicios que ya se prestaban (evolutividad).

Desde un punto de vista ms estricto, las funciones de un sistema operativo son: Gestin de procesos: Cada uno de los programas que se ejecutan en cada momento se denominan procesos. El sistema operativo divide el tiempo de la CPU para atender a cada uno de ellos en funcin de su estado y prioridad de forma que a todos los usuarios les de la sensacin de que disponen de todo lo necesario Gestin de memoria: Los procesos necesitan una parte de la memoria principal para ser ejecutados y obtener sus resultados. Esta memoria debe protegerse y organizarse. El sistema operativo se encarga de estas tareas Gestin de perifricos: Generalmente los perifricos solo pueden atender a un usuario cada vez. El sistema operativo se encarga de repartirlos. Gestin de archivos: Los programas de usuarios se almacenan en archivos. El sistema operativo se encarga de almacenarlos con las correspondientes verificaciones de seguridad y fiabilidad.

Sistemas operativos para servicios de Internet


Windows XP y Windows 7 Windows 2008 Server Linux (Debian, Ubuntu, Fedora, Open SUSE, Red Hat)