1.1. REPRESENTACIÓN DE LA INFORMACIÓN 1.1.1. INTRODUCCION

Anuncio
1.1.
REPRESENTACIÓN DE LA INFORMACIÓN
1.1.1. INTRODUCCION
Los computadores digitales actuales se basan en una tecnología electrónica que permite representar los datos
mediante combinaciones de circuitos flip-flop o biestables. Estos elementos básicos sólo admiten dos
estados, representados por el nivel de tensión a su salida. La información que se representa mediante la
combinación de elementos que sólo admiten dos estados se denomina información binaria. Cada uno de los
elementos de la información binaria recibe el nombre de bit (binary digit) y se codifica mediante el empleo de
uno de los dos únicos símbolos 0 o 1. Dicho de otro modo, cualquier dato que se deba procesar en un
computador digital deberá estar representado por un código formado por una secuencia de ceros y unos. La
codificación consiste en establecer unas reglas que definan una correspondencia entre cada elemento de
información y la secuencia de bits que constituye su código. Existen varios criterios genéricos para establecer
esta correspondencia, que dan lugar a tipos diferentes de códigos. Dichos criterios se denominan sistemas de
codificación.
Clasificación de la información
Existen dos flujos de información en un computador digital:


Flujo de datos: han de ser manipulados para producir los resultados.
Flujo de control: o flujo de instrucciones, expresa las manipulaciones a realizar en dichos datos.
Los datos pueden ser:


Numéricos: números de tipo natural, entero o real.
Alfabéticos: letras del alfabeto.
El flujo de control se compone de las órdenes que debe ejecutar el computador, y que reciben el nombre de
códigos de instrucción.
1.1.2. SISTEMAS DE CODIFICACION
Codificación directa
Es el sistema de codificación más simple de todos y consiste en establecer una correspondencia biunívoca
entre un conjunto de símbolos y un conjunto de códigos binarios mediante una tabla. Si se tiene un conjunto
de n elementos tales que cada uno de ellos puede tomar m valores distintos, el número Nc de combinaciones
distintas de valores que puede tomar dicho conjunto de elementos (número de códigos posibles) viene dado
por la expresión:
Nc = m^n
Dado que m vale 2 para los elementos binarios, con n elementos se pueden obtener 2^ n códigos distintos.
Codificación por campos
Cada campo se codifica por una tabla independiente. La suma de longitudes de estas tablas es inferior a la de
una tabla directa única. La codificación por campos resulta habitualmente más sencilla que la codificación
directa. Esta última presenta en contrapartida una total libertad en la asignación de códigos, lo que permite en
muchos casos facilitar las operaciones de proceso de la información codificada.
Codificación por secuencias de códigos
A menudo los elementos de información no se procesan o almacenan aisladamente sino en conjunto. En estos
casos los códigos de los sucesivos datos suelen tratarse o registrarse secuencialmente. El tratamiento
secuencial de los códigos abre una nueva posibilidad consistente en hacer que determinados códigos
especiales modifiquen la interpretación de los que aparezcan a continuación. Este sistema de codificación
consigue reducir la longitud de las tablas de codificación a costa de aumentar la longitud del código asignado
a ciertos símbolos.
1.1.3. CODIGOS NUMERICOS
Fundamentos
Se puede definir un sistema de numeración como el conjunto de símbolos y reglas que se utilizan para la
representación de cantidades. Existe un elemento fundamental que caracteriza a todos los sistemas de
numeración, y que se denomina base del sistema de numeración. Dicha base es el número de símbolos que se
utilizan para realizar la representación. Se denomina rango de representación, en un sistema de numeración y
con un número de cifras determinado n, al conjunto de cantidades representables en el mismo.
Sistemas posicionales
En los sistemas de numeración, la representación de una cantidad siempre se efectúa mediante cadenas de
símbolos. Si el significado de los símbolos varía en función de la posición que ocupen en la cadena, entonces
dicho sistema de numeración recibe el nombre de posicional. Los ejemplos más importantes de sistemas de
numeración posicionales son el decimal o de base 10, utilizado por el hombre en la cultura occidental, y el
binario o de base 2, que es el que utiliza el computador para representar la información y con el que es capaz
de trabajar. Cabe mencionar que existen otros sistemas de numeración, como los sistemas de residuos, que no
son posicionales pero que no se tratarán por tener menos importancia.
Teorema fundamental de la numeración
Supóngase una cantidad X expresada en un sistema cuya base es b, y que está representada por una cadena de
dígitos { xi } donde el subíndice indica la posición de la cifra respecto a la coma en el sentido mencionado
anteriormente, y donde se considera que el dígito inmediatamente a la izquierda de la coma ocupa la posición
de referencia 0. Entonces dicha cantidad X (de la que se desea conocer normalmente su valor decimal) se
obtiene a partir de su representación mediante la fórmula:
X = Suma de i [ -infinito, infinito ] xi · bi
Asimismo, dada una cantidad X y un sistema de representación posicional de base b, existirá una única
representación posible de dicha cantidad en dicha base, realizada a partir de dígitos que cumplan la condición
0 <= xi < b, para todo i.
1.1.4. SISTEMAS DE NUMERACION
Sistema decimal
Es el de base 10 y es el que entiende de modo natural el ser humano. Es, por tanto, el sistema que se utilizará
como referencia para conocer las cantidades representadas en los otros sistemas de numeración. Se suponen n
cifras enteras y sin signo.
Rango de representación: 0 <= X < 10^n
Sistema binario
Este es el sistema de numeración que utiliza el computador internamente. Este sistema de numeración es de
base 2. Para convertir un número decimal a binario, se divide sucesivamente por 2, y se toman sucesivamente
el último cociente y desde el último resto hasta el primero.
Rango de representación: 0 <= X < 2^n
Sistema octal
Este es el sistema de numeración en base 8 y utiliza 8 símbolos para representar las cantidades. Dichos
símbolos son: 0, 1, 2, 3, 4, 5, 6 y 7 y tienen el mismo significado que sus equivalentes decimales. La
conversión de octal a binario se realiza mediante la siguiente tabla:
OCTAL
0
1
2
3
4
5
6
7
=======================================
BINARIO 000 001 010 011 100 101 110 111
Rango de representación: 0 <= X < 8^n
Sistema hexadecimal
Este es el sistema de numeración en base 16 y utiliza 16 símbolos para representar las cantidades. Dichos
símbolos son: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E y F. Los diez primeros son los números decimales y
tienen el mismo significado que en la numeración decimal. Los seis últimos son letras que representan: A=10,
B=11, C=12, D=13, E=14 y F=15. La conversión de hexadecimal a binario se realiza mediante la siguiente
tabla:
HEXADECIMAL
0
1
2
3
4
5
6
7
======================================================
BINARIO
0000 0001 0010 0011 0100 0101 0110 0111
======================================================
HEXADECIMAL
8
9
A
B
C
D
E
F
======================================================
BINARIO
1000 1001 1010 1011 1100 1101 1110 1111
Rango de representación: 0 <= X < 16^n
Sistema binario - decimal
Los denominados códigos binario - decimales corresponden a una codificación por campos, en la que cada
campo contiene el código de una cifra decimal. Como existen 10 posibles cifras decimales, del 0 al 9, cada
campo deberá
tener al menos 4 bits, por ser 24 = 16 > 10.
DECIMAL BCD 8421 Aiken 2421 exceso de 3 Binario 5421
================================================
0
1
2
3
4
5
6
7
8
9
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
0000
0001
0010
0011
0100
1011
1100
1101
1110
1111
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
0000
0001
0010
0011
0100
1000
1001
1010
1011
1100
1.1.5. ARITMETICA BINARIA
Suma
0+0=0
0+1=1
1+0=1
1+1=0*
* = con 1 de acarreo
Resta
0-0=0
0-1=1*
1-0=1
1-1=0
* = con un préstamo de 1
Multiplicación
0x0=0
0x1=0
1x0=0
1x1=1
División
0 / 0 = Error *
0/1=0
1 / 0 = Error *
1/1=1
* la división por 0 no tiene sentido
1.1.6. REPRESENTACION DE NUMEROS NEGATIVOS
Módulo y signo






El cambio de signo es inmediato: sólo cambiar el bit de la izquierda.
La multiplicación y la división se tratan sin dificultad operándose por un lado con las magnitudes y por
otro con los signos.
La posibilidad de desbordamiento al operar con sumas, restas y multiplicaciones suponen una dificultad.
El rango de representación es simétrico [ -2^n-1 + 1, 2^n-1 - 1 ] pero la ambigüedad de representación del
0 complica la detección de números negativos.
La extensión de signo es relativamente complicada.
Las operaciones de suma y resta se complican al depender de los signos y magnitudes de los operandos.
Complemento a 1






El cambio de signo se reduce al complemento lógico (cambiar ceros por unos y viceversa).
La suma es sencilla pero teniendo en cuenta que cuando aparece un acarreo a la posición n se debe
incrementar en una unidad el resultado.
Se complican la multiplicación y la división, puesto que hay que considerar la posibilidad de que haya
operandos complementados.
Existe la posibilidad de desbordamiento, que deberá detectarse al operar.
El rango de representación es simétrico [ -2^n-1 + 1, 2^n-1 - 1 ] y el cero admite dos representaciones:
00...00 o 11...11.
La extensión de signo se limita a repetir el bit de la izquierda.
Complemento a 2






El cambio de signo es sencillo aunque ligeramente más complicado que en el complemento a 1: realizar
el complemento lógico y añadir 1.
La suma y resta son más sencillas que con el complemento a 1: consiste en realizar la suma directa.
Existe la posibilidad de desbordamiento en estas operaciones, que no debe confundirse con el acarreo
superior que se elimina.
Se complican la multiplicación y la división, puesto que hay que considerar la posibilidad de que haya
operandos complementados.
El rango de representación es asimétrico [ -2^n-1, 2^n-1 - 1 ]. Esto presenta el problema de que no se
puede hacer el complemento de -2^n-1 ya que daría el mismo código, lo que se supone que es un
desbordamiento. Sin embargo el cero tiene una única representación.
La extensión de signo se limita a repetir el bit de la izquierda.
Exceso a M
En este sistema los números se incrementan en M y el resultado se representa luego en binario puro. El
número X viene representado por X + M expresado en binario. En la mayoría de los casos se hace M = 2^ n-1,
donde n es el número de bits empleados para la representación. Este sistema de representación se utiliza para
expresar los exponentes en el caso de coma flotante.
Representación en coma flotante



El exponente se representa en el sistema de exceso a 2^n-1, siendo n el número de bits que se dedican al
mismo.
La mantisa es un número real normalizado: sin parte entera y tal que la primera cifra fraccionaria es
significativa.
La base de exponenciación o raíz es una potencia de 2 determinada por el fabricante: 2, 8 o 16.
Coma flotante estándar IEEE 754





Emplea mantisa fraccionaria normalizada.
La mantisa se representa en el sistema de módulo y signo.
Utiliza el formato de precisión ampliada, valiendo siempre 1 el bit implícito.
La coma está a la derecha del bit implícito, constituyendo dicho bit la parte entera de la mantisa.
El exponente se representa en exceso, pero a 2^n-1 - 1 en vez de a 2^n-1, como sucedía en los casos
anteriores.
Juego de caracteres alfanuméricos







Las letras del alfabeto: mayúsculas y minúsculas.
Las 10 cifras del sistema decimal: del 0 al 9.
Los signos de puntuación: . , : ; ? + * % ...
Los caracteres de control: órdenes entre dispositivos.
Longitud del código binario: número de bits utilizados para codificar un carácter. Suele estar entre 6 y 12
bits.
El sistema de codificación suele ser directo.
Número máximo de caracteres distintos que se pueden representar con la longitud de código
anteriormente definida: 2^longitud .
1.2.
EL COMPUTADOR Y SUS CARACTERÍSTICAS
1.2.1. 1. QUE ES UN COMPUTADOR ?
Es una máquina que lleva a cabo "procesamiento" de información "digital". Información digital es aquella que
puede expresarse por medio de números (o letras).
El procesamiento o transformación que lleva a cabo el computador (con o sobre la información digital), no
es fijo y debe ser definido por el usuario de la máquina. Se dice entonces que el usuario programa la
computadora.
El procesamiento de la información produce como resultado mas información.
A la información que va ser procesada, nos referiremos como datos de entrada o entrada, a la información
producida nos referimos como resultados o salida.
1.2.2. ORGANIZACIÓN INTERNA DEL COMPUTADOR
Una computadora esta conformada por los subsistemas: Procesador, Memoria y Dispositivos de Entrada y
Salida.
Ilustración 1: La Organización Interna de la
Computadora
El Preprocesador
Es el cerebro del computador, se denomina
comúnmente (Unidad central de Proceso ) CPU.
Es una compleja pieza de circuitos la cual controla la
operación del computador.
Esta hecha de cientos de miles diminutos suitches y
sendas por las puede transmitir información binaria.
Ella puede manipular información a altas velocidades
de acuerdo a un conjunto fijo de instrucciones o
programas que se encuentra dentro de ella.
Ilustración 2: El Preprocesador
La razón para su aparente inteligencia es la velocidad
con la cual puede ejecutar una simple instrucción. Un
microprocesador puede procesar mas de 100 millones de instrucciones por segundo. Su función es ejecutar
programas almacenados en la memoria principal, tomar de ellos cada instrucción, examinarla y ejecutarlas
una después de la otra. La CPU está conformada por tres unidades diferentes, así: Unidad de Control, Unidad
Aritmética Lógica, Registros de Almacenamiento Temporal y están contenidos en un chip muy pequeño
llamado microprocesador, de un tamaño no mayor que el de la uña más pequeña. Los constructores de
Microprocesadores mas conocidos son INTEL y MOTOROLA:
Modelo
Procesador
8086
8088
80286
80286
80386 DX
80386 SX
80486 DX
80486 DX
80486 SX
Pentium
Procesadores Intel Historia
Año
Capacidad
Tamaño
Lanzamiento
del Bus
Palabra
1978
16 bits
16
1979
8 bits
16
1982
16 bits
16
1982
16 bits
16
1985
32 bits
32
1988
16 bits
32
1989
32 bits
32
1989
32 bits
32
1985
32 bits
32
1993
64 bits
32
Memoria
Direccionada
1 MB
1 MB
16 MB
16 MB
4 GB
4 GB
4 GB
4 GB
4 GB
4 GB
Tabla 1: Procesadores Intel
Unidad de Control
La Unidad de Control es la encargada de la búsqueda de las instrucciones en memoria, su interpretación y la
generación de las señales de control necesarias para ejecutar la operación especificada por cada instrucción.
Tiene dos aspectos esenciales:


Secuenciamiento de las instrucciones.
Interpretación de las instrucciones.
Secuenciamiento De Instrucciones
Es el proceso por el cual las instrucciones de un programa van siendo seleccionadas para su ejecución en un
orden determinado. Se puede emplear un registro denominado contador de programa (CP) que contiene el
valor de la posición de memoria cuando se está ejecutando la instrucción y que se incrementará en una unidad
al ir a ejecutar la siguiente instrucción. Las instrucciones de ruptura de secuencia permiten la selección de un
camino entre varios posibles y la realización de bucles en el algoritmo. Pueden ser de dos tipos:


Incondicionales: el CP se actualiza con la dirección donde continúa el programa (CP <- x).
Condicionales: el CP se actualiza con CP <- x si la condición vale 1, y CP <- CP + p (palabras de
memoria) si la condición vale 0.
En la llamada a una subrutina, las operaciones que hay que realizar son:


Guardar el contenido del CP con la siguiente instrucción del programa en un registro de la UCP.
Cargar y comenzar la ejecución de la subrutina y volver al programa una vez finalizada.
Microoperaciones
La ejecución de un programa consiste en la ejecución secuencial de sus instrucciones. Cada instrucción se
ejecuta durante un ciclo de instrucción que está compuesto de subciclos más pequeños:




1. Ciclo de búsqueda.
2. Ciclo de direccionamiento indirecto.
3. Ciclo de ejecución.
4. Ciclo de interrupción.
La realización de cada uno de estos subciclos implica una o más operaciones más pequeñas que son las
microoperaciones. Representan las operaciones atómicas de la UCP.
Ciclo de búsqueda
Ocurre al comienzo de cada ciclo de instrucción y origina que se realice la búsqueda de la instrucción en
memoria. Se utilizan los cuatro registros siguientes:




Registro de dirección de memoria (RD): especifica la próxima dirección de memoria de donde se va a
leer o donde se va a escribir.
Registro de datos de memoria (RM): contiene el dato a escribir en la memoria o recibe el dato leído de
la memoria.
Contador de programa (CP): almacena la dirección de la próxima instrucción que hay que ir a buscar a
la memoria.
Registro de instrucción (RI): almacena la última instrucción leída de la memoria.
Para agrupar microoperaciones se deben seguir dos reglas simples:


1. Respetar la secuencia de acciones.
2. Evitar conflictos simultáneos en el mismo registro.
Ciclo de direccionamiento indirecto
El siguiente paso es encontrar los operandos a los que se refiere la instrucción. La secuencia de pasos que
constituye el ciclo de direccionamiento indirecto es:



1. El campo de dirección de la instrucción se transfiere al registro de dirección de memoria.
2. El registro de dirección de memoria se utiliza para buscar la dirección del operando.
3. El campo de dirección del registro de instrucción se actualiza desde el registro de datos de memoria.
Ciclo de ejecución
Los ciclos de búsqueda, direccionamiento indirecto e interrupción son simples y predecibles. Cada uno de
ellos contiene una secuencia fija de microoperaciones y en cada caso las mismas microoperaciones se repiten
una y otra vez. Esto no sucede con el ciclo de ejecución, ya que puede necesitar varias microoperaciones para
completar dicho ciclo. Existen tantas secuencias como códigos de operación diferentes.
Ciclo de instrucción
Se introduce un registro de dos bits denominado código del ciclo de instrucción (CCI) cuyo contenido indica
en que fase del ciclo de instrucción se encuentra la UCP. Al final de cada uno de los cuatro ciclos el CCI se
actualiza al valor que corresponde al siguiente ciclo que se ha de ejecutar.
Interpretacion De Las Instrucciones
Todas las microoperaciones que se necesitan para realizar un ciclo de instrucción pertenecen a una de las
cuatro categorías siguientes:




Transferencia de datos desde un registro a otro.
Transferencia de datos desde un registro al bus del sistema.
Transferencia de datos desde el bus del sistema a un registro.
Realización de una operación aritmético lógica, utilizando registros como entradas y salidas.
La Unidad de Control efectúa dos funciones básicas:


Secuenciamiento: la UC se encarga de que la UCP realice una serie de microoperaciones en la secuencia
adecuada.
Ejecución: la UC es responsable de que se ejecute cada microoperación.
El interés ahora se centra en la interacción entre la UC y los otros elementos de la UCP. En un modelo general
de la UC, las entradas son:




Reloj: permite a la UCP mantener la temporización básica de todo el sistema. Cada pulso del reloj se
denomina ciclo del procesador o ciclo de reloj.
Registro de instrucción: se utiliza para determinar que microoperaciones hay que ejecutar durante el
ciclo de ejecución.
Señales de condición: para conocer el estado en que se encuentra la UCP y el resultado de las
operaciones anteriores realizadas en la UAL.
Señales de control del bus del sistema: determinadas señales que son necesarias para su
funcionamiento, incluidas las señales de interrupción.
Y las salidas son:


Señales de control internas a la UCP: las que originan que los datos se muevan entre los diferentes
registros y las que activan funciones específicas de la UAL.
Señales de control hacia el bus del sistema: señales de control a memoria y señales de control a
módulos de E/S.
Diseño A Nivel De Registro
A continuación se enumeran los pasos que constituye el procedimiento de diseño a nivel de registros:



Definir el comportamiento del sistema digital: mediante un conjunto S de secuencias de operaciones de
transferencias entre registros (algoritmo).
Analizar S: para determinar tipos de componentes y número de componentes de cada tipo.
Construir un diagrama de bloques D: de la Unidad de Procesamiento y verificar que son posibles todas
las transferencias de información expresadas en S y se satisface el criterio coste/prestaciones especificado
en el diseño.


Analizar S y D: para identificar e introducir los puntos de control necesarios.
Diseñar la Unidad de Control: generar las señales de control identificadas en el paso anterior, en el
orden especificado por el algoritmo de transferencia de registros S.
Comprobar: el funcionamiento del diseño resultante.
Unidad Aritmético Lógica
La Unidad Aritmético Lógica (UAL) es la parte del computador donde se efectúan las operaciones aritméticas
y lógicas sobre los datos. Los datos llegan a la UAL a través de registros y los resultados que se generan
también se almacenan en registros. Cuando la UAL finaliza una operación activa determinados indicadores
que pueden ser utilizados por la unidad de control. La unidad de control envía señales que controlan las
operaciones y el movimiento de datos de entrada y salida de la UAL.
Sumadores Y Restadores Binarios
Un sumador binario se puede considerar como un conversor de código que recibe a la entrada dos números
binarios x e y de n bits cada uno:


x = xn-1 xn-2 ... x1 x0
y = yn-1 yn-2 ... y1 y0
y produce una salida s de n + 1 bits que es la suma de los operandos:

s = sn sn-1 ... s1 s0
Semisumador binario (SSB)
Consta de dos entradas binarias ( x e y ) y dos salidas: una es el resultado de la suma ( s ) módulo 2 y la otra
es el arrastre o acarreo ( c ) que indica si el resultado de la suma es igual a 2. La tabla de verdad de un SSB es:
x y c s
==========
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 0
Las ecuaciones lógicas serían:


s = (x AND y) OR (x AND y) = x EXCL y
c = x AND y
Sumador binario completo (SBC)
Se diferencia del SSB porque tiene una tercera entrada ( c i ) llamada arrastre de la etapa anterior, que le
permite encadenarse con otros SBC para el diseño de circuitos de suma de números de n bits ( n > 1 ). Acepta
como entradas un bit de cada uno de los operandos ( xi e yi ) y un bit de arrastre ( ci-1 ) de la etapa previa, y
genera como salida un bit de suma ( si ) y un bit de arrastre ( ci ) para la etapa siguiente. La tabla de verdad de
un SBC es:
xi yi ci-1 ci si
==============
0 0 0
0 0
0 0 1
0 1
0 1 0
0 1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
Las ecuaciones lógicas serían:


si = (xi AND yi AND ci-1) OR (xi AND yi AND ci-1) OR (xi AND yi AND ci-1) OR (xi AND yi AND ci1)
ci = (xi AND yi) OR (xi AND ci-1) OR (yi AND ci-1)
Sumador - restador binario paralelo
Para poder restar números, se utiliza la representación de números negativos en complemento a 2. Si y = y n-1
yn-2 ... y1 y0 , entonces -y se define por:

-y = yn-1 yn-2 ... y1 y0 + 1
Para obtener -y a partir de y, se efectúan las operaciones siguientes:


1. Sustituir todos los bits de y por su complemento (cambiar 0 por 1 y 1 por 0).
2. Sumar 1 al bit menos significativo.
Con cada módulo SBC se incluye una puerta OR-Exclusiva, a la cual le llegan a su vez dos entradas:


La entrada yi propia de la etapa.
La entrada M que controla la operación: si es 0 es un sumador y si es 1 es un restador.
Detección del rebose
Se puede producir un rebose en el caso de que los sumandos tengan el mismo signo. Pueden ocurrir dos casos:


x e y son positivos: como xn-1 = yn-1 = 0, entonces cn-1 = 0.
x e y son negativos: como xn-1 = yn-1 = 1, entonces cn-1 = 1.
La siguiente tabla muestra las condiciones de rebose:
xn-1 yn-1 sn-1 Rebose (R)
====================
0
0 0
0
0
0 1
1
0
1 0
0
0
1 1
0
1
0 0
0
1
0 1
0
1
1 0
1
1
1 1
0
La ecuación lógica sería:

R = (xn-1 AND yn-1 AND sn-1) OR (xn-1 AND yn-1 AND sn-1) = cn-2 EXCL cn-1
Por lo tanto, se incorpora una puerta OR - Exclusiva entre cn-1 y cn-2.
MULTIPLICADORES Y DIVISORES BINARIOS
Multiplicadores
Los multiplicadores más simples se basan en el método clásico a lápiz y papel, es decir, se multiplica todos
los dígitos del multiplicando por el dígito menos significativo del multiplicador, se deja en la misma fila, se
continúa con el siguiente dígito del multiplicador y se lleva a una fila inferior desplazada un lugar a la
izquierda, y así sucesivamente hasta sumar finalmente todas las filas. En un multiplicador binario ocurre
igual: se hacen productos parciales mediante puertas AND y los resultados se llevan a las entradas yi de los
SBC que estar n agrupados
correctamente, donde cada acarreo final de una fila se llevar al SBC de la fila inferior que le corresponda. Al
final se tendrán todas las salidas Pi que serán las sumas de todas las columnas (vacías o no). Cuando se trata
de números con signo, la solución más fiable es el llamado algoritmo de Booth:







1. El multiplicando y el multiplicador se almacenan en los registros M y m respectivamente.
2. Hay un registro de 1 bit que se coloca a la derecha del bit menos significativo ( m0 ) y se representa por
m-1.
3. El resultado de la multiplicación se obtiene en los registros A ( xi ) y m. Los registros A y m-1 se
inicializan a 0.
4. La UC del multiplicador examina uno a uno los bits del registro m con el bit que está a su derecha.
5. Si los dos bits son iguales, todos los bits de los registros A, m y m -1 se desplazan 1 bit a la derecha.
6. Si los dos bits difieren, el multiplicando se suma o se resta del registro A, según sean 0-1 o 1-0.
7. El desplazamiento se produce siempre después de la suma o la resta, pero el bit A n-1 permanece en su
sitio para preservar el signo del número en A y en m (desplazamiento aritmético).
Esto se ve mejor en la siguiente tabla (b es un bit):
A
m
m-1
=====================
b ... b b ... b b
...
...
...
b ... b b ... b b
Divisores
Dados dos operandos, el dividendo D y el divisor d, el objetivo de los circuitos de división es calcular el
cociente Q y el resto R tales que:

D=dxQ+R
Se requiere que el resto sea menor que el divisor ( 0 <= R < d ). El dividendo, el cociente y el divisor se
corresponden respectivamente con el producto ( P ), el multiplicador ( m ) y el multiplicando ( M ), es decir,
los
circuitos utilizados en ambas operaciones son análogos. Si en la multiplicación interviene repetidamente la
suma, en la división ocurre igual con la resta. El procedimiento que se utiliza para obtener el cociente es el
siguiente:
1. Se examinan los bits del dividendo de izquierda a derecha, hasta comprobar que sea mayor o igual que el
divisor (es capaz de dividir).
2. Hasta que ocurre este suceso se van colocando 0 en el cociente de izquierda a derecha.
3. Cuando el suceso tiene lugar, se coloca un 1 en el cociente y se resta el divisor del dividendo parcial (resto
parcial).
4. A partir de aquí la división es cíclica añadiendo bits adicionales del dividendo al resto parcial hasta que el
resultado es mayor o igual que el divisor.
5. El proceso continúa hasta que se acaban todos los bits del dividendo.
OPERACIONES DE DESPLAZAMIENTO
Un registro de desplazamiento es todo registro capaz de efectuar transferencias series entre sus celdas
adyacentes. Tienen n entradas y salidas en paralelo, una entrada serie para desplazamiento izquierda y derecha
(EI y ED), una señal de reloj y otra de control. Los desplazamientos se pueden clasificar atendiendo al
tratamiento que se da a la información:
Tratamiento del bit de signo


Aritmético (A): no se altera el bit de signo y lo copia en el caso de desplazarse a la derecha.
Lógico (L): el bit de signo es un bit más en la operación.
Sentido del desplazamiento


Izquierda (I): cada bit se desplaza a la celda izquierda inmediata.
Derecha (D): cada bit se desplaza a la celda derecha inmediata.
Tratamiento de los bits que rebosan


Abierto (A): se pierden los bits que rebosan.
Cerrado (C): los bits que rebosan por un extremo se introducen por el otro.
Longitud de los registros


Simple (S): se utiliza un solo registro en la operación de desplazamiento.
Doble (D): se utilizan dos registros en la operación de desplazamiento.
Estructura de los registros de desplazamiento
En relación con la forma de procesar la información los registros de desplazamiento se pueden clasificar en
cuatro categorías:




Entrada paralelo / Salida paralelo: las entradas y las salidas se producen simultáneamente.
Entrada serie / Salida serie: la salida se puede utilizar después de desplazarse todos los bits.
Entrada paralelo / Salida serie: se desplaza desde el bit más significativo al menos de la entrada.
Entrada serie / Salida paralelo: se desplaza desde el bit más significativo al menos en la salida.
OPERACIONES DE COMPARACION
Un comparador es un circuito lógico que tiene dos entradas ( x e y ) de n bits cada una y tres salidas: M
(mayor), I (igual) y m (menor), que indican la relación entre dichas magnitudes:
M I m Entrada
==============
1 0 0
x>y
0 1 0
x=y
0 0 1
x<y
El diseño de un circuito comparador se puede realizar de tres formas distintas:
Utilizando un circuito combinacional
La tabla de verdad para construir el circuito sería:
x y M I
m
==============
0 0 0 1
0
0 1 0 0
1
1 0 1 0
0
1 1 0 1
0
Y las expresiones booleanas que se deducen:



M = x AND y
I = (x AND y) OR (x AND y)
m = x AND y
Utilizando un circuito secuencial
El comparador recibe los bits xi e yi de forma serie, comenzando por los más significativos:
x0 ... xn-2 xn-1 ---> | Comparador | ----> M
| ---> I
y0 ... yn-2 yn-1 ---> | secuencial
| ----> m
Utilizando un sumador
La UAL también posee una serie de biestables capaces de almacenar las condiciones que se producen en la
ejecución de las operaciones aritméticas (registro de estado):
Arrastre (C) | Resultado >= 2^n ===> C = 1
| Resultado < 2^n ===> C = 0
Rebose (V) | xn-1 yn-1 rn-1 + xn-1 yn-1 rn-1 = 1 ===> V = 1
| xn-1 yn-1 rn-1 + xn-1 yn-1 rn-1 = 0 ===> V = 0
Signo resultado (N) | Resultado < 0 ===> N = 1
| Resultado >= 0 ===> N = 0
Resultado cero (Z) | Resultado = 0 ===> Z = 1
| Resultado # 0 ===> Z = 0
El procedimiento difiere según sea números sin signo o con signo representados en C2:
Test
Condición
Test
Condición
sin signo sin signo
en C2
en C2
===========================================
x >= y
C=1
x >= y
N EXCL V = 0
x<y
C=0
x<y
N EXCL V = 1
x>y
C=1yZ=0 x>y
Z = 0 y (N EXCL V) = 0
(C + Z = 0)
(Z + (N EXCL V) = 0)
x <= y
C = 0 o Z = 1 x <= y
Z = 1 o (N EXCL V) = 1
(C + Z = 1)
(Z + (N EXCL V) = 1)
x=y
Z=1
x=y
Z=1
x#y
Z=0
x#y
Z=0
LOS REGISTROS
Los registros son un conjunto de lugares donde el procesador
almacena datos mientras trabaja sobre ellos. La figura muestra
los registros de un microprocesador 8088, 8086, 286.
Registros de un microprocesador.
Cada uno de ellos es una parte Integral del procesador.
Procesadores posteriores tienen dos registros mas, con
capacidad mayor para el almacenamiento de información. Es
un área temporal por la cual pasan los datos mientras están
siendo procesados. El primer grupo de registros AX, BX, CX
y DX también llamados de propósito general, son utilizadas
para realizar operaciones.
Los procesadores 386 y posteriores tienen 8 registros de
propósito general, y son EAX, EBX, ECX, EDX, ESI, EDI,
EBP y ESP.
Ilustración 3: Registros
El tamaño del registro varia entre 16 o 32 bits, dependiendo
del microprocesador.
El grupo de registros ( CS, DS, SS) de segmento se usan para ayudar al procesador a encontrar su camino por
la memoria del computador. Son útiles para ayudar en los procesos de toma de datos de la memoria. CS,
indica donde se almacena un programa en memoria, DS sirve para localizar datos en memoria.
El ultimo grupo de registros ayudan a los anteriores y son: IP Registro apuntador de Instrucciones, guarda el
lugar de memoria en que se encuentra la instrucción siguiente a ejecutar por el procesador. Los otros (SI y DI)
ayudan en tareas de movimiento de datos.
1.2.3. LA MEMORIA
CONCEPTOS BASICOS
Uno de los aspectos más destacables de la memoria de un computador es su localización y desde este punto de
vista se pueden clasificar en tres grandes grupos:



Memoria interna del procesador: está constituida por un pequeño conjunto de registros de alta
velocidad que son internos a la UCP.
Memoria principal: es una memoria relativamente grande y rápida utilizada para el almacenamiento de
los programas y sus correspondientes datos.
Memoria externa o secundaria: son dispositivos periféricos de almacenamiento accesibles a la UCP a
través de controladores de E/S.
Otra característica importante de la memoria es su capacidad, es decir, la cantidad de información que puede
almacenar. Esta se mide en palabras, y las palabras a su vez de varios bits. Un tema relacionado con la
capacidad de la memoria es el de la unidad de transferencia. Se consideran los tres conceptos siguientes:


Palabra: unidad natural de organización de la memoria. Es igual al número de bits utilizados para la
representación de un número o una instrucción.
Unidades direccionables: la unidad direccionable es la palabra. La relación entre el número n de bits y el
número N de unidades direccionables es: 2^n = N.

Unidad de transferencia: es el número de bits leídos de o escritos en la memoria simultáneamente, es
decir, en unidades más grandes llamados bloques.
Una propiedad muy importante de un dispositivo de memoria es el orden o método de acceso en que debe ser
localizada la información. Se distinguen cuatro tipos:




Acceso aleatorio: puede accederse a la información en cualquier orden, siendo el tiempo de acceso
independiente de la posición de la información.
Acceso secuencial: sólo se puede acceder a la información mediante una secuencia lineal, siendo el
tiempo de acceso dependiente de la posición de la información.
Acceso directo: incorpora un mecanismo de lectura - escritura compartido y los registros individuales
tienen una dirección única que se basa en su posición física.
Acceso asociativo: es de tipo aleatorio pero que no accede al contenido de la información sino a la
posición de memoria que contiene una palabra determinada.
El sistema de memoria de un computador utiliza diferentes tipos físicos. Los tres tipos más usados en la
actualidad son:



Memorias de semiconductor: con tecnología LSI o VLSI utilizadas como memoria principal del
computador.
Memorias magnéticas: utilizadas como memorias secundarias (discos o cintas).
Memorias ópticas: utilizadas también como memorias secundarias.
Resultan particularmente interesantes algunas características físicas del almacenamiento de datos. Entre las
más sobresalientes están:


Alterabilidad: posibilidad de alterar el contenido de una memoria. Pueden ser ROM (de sólo lectura),
RWM (de lectura - escritura), RAM (de acceso aleatorio) o PROM (ROM programable).
Permanencia de la información: existen tres características de los dispositivos de memoria que pueden
redundar en la destrucción de la información que almacenan: lectura destructiva (DRO lectura destructiva
y NDRO lectura no destructiva), volatilidad (RAM volátiles y ROM no volátiles) y almacenamiento
estático/dinámico (estática si no varía con el tiempo y dinámica si varía).
Desde el punto de vista del usuario la velocidad y la capacidad son las características fundamentales de la
memoria. Para medir el rendimiento en velocidad de una memoria se utilizan los tres par metros siguientes:



Tiempo de acceso (TA): se define como el tiempo medio necesario para leer una cantidad fija de
información.
Tiempo de ciclo de memoria (TC): es el intervalo entre dos lecturas cuando en las memorias DRO no es
posible iniciar una segunda lectura después de la primera sin efectuar antes la restauración de la
información.
Velocidad de transferencia o frecuencia de acceso (FA): es el número de palabras por segundo que
pueden ser accedidas en un dispositivo de memoria.
JERARQUIA DE MEMORIAS
Se entiende por organización la disposición física de los bits para formar palabras. La unidad de memoria de
un computador se puede ver como una jerarquía de componentes. Desde el punto de vista del diseñador, esta
jerarquía impone una serie de ligaduras que se pueden resumir en los tres parámetros siguientes:



Capacidad de la memoria.
Rapidez.
Coste.
La relación entre capacidad, tiempo de acceso y coste es la siguiente:



Menor tiempo de acceso ===> Mayor coste por bit
Mayor capacidad ===> Menor coste por bit
Mayor capacidad ===> Mayor tiempo de acceso
La solución a este conflicto está en emplear una jerarquía de memorias, siendo una típica:





Registros de la UCP
Memoria caché
Memoria principal
Discos magnéticos
Cintas magnéticas
Cuando se va hacia los niveles inferiores de la jerarquía ocurre que:
 El coste por unidad de información (bit) disminuye.
 La capacidad aumenta.
 El tiempo de acceso aumenta.
La frecuencia de acceso a la memoria por parte de la UCP disminuye.
CARACTERÍSTICAS LÓGICAS DE LA MEMORIA PRINCIPAL DEL
COMPUTADOR
Está compuesta por un número de celdas consecutivas
llamadas byte, cada byte pueden almacenar un carácter
de información.
Cada byte está conformado por 8 bits y el computador
sabe donde se encuentra en memoria porque cada byte
tiene un número único que la identifica, la llamada
dirección, por medio del cual los programas las
localizan o referencian. La memoria la utilizamos para
almacena datos y programas. Su constitución física era
hasta hace unos años formada por núcleos magnéticos.
Los computadores actuales usan para la memoria el
Ilustración 4: Ejemplo de Memoria
componente básico llamado Chip electrónico. Debido
Principal
a que el elemento anterior es más pequeño y barato se
ha logrado reducir el costo de los equipos y el tamaño. La capacidad de almacenamiento de un computador
puede expresarse en función del número de bytes que puede almacenar. Un byte son 8 bits. La gráfica
muestra como almacena la computadora la palabra AMOR cada carácter en memoria se representa por una
secuencia de unos y ceros llamada código ASCII.
LA MEMORIA RAM
En la memoria RAM se almacenan las instrucciones
y los datos que el computador maneja, es una
memoria volátil lo cual significa que al apagar el
computador se borra. Para efecto de su
administración técnica se conocen las siguientes
divisiones:
Ilustración 5: Fotografía de una memoria
RAM
La Memoria RAM Convencional
Es el lugar donde se ejecutan los programas, donde la computadora realiza cálculos y donde se carga el
Sistema Operativo. La máxima cantidad de memoria convencional es 640 Kbytes
Memoria Superior
A la memoria situada en la dirección comprendida entre 640 Kbytes y 1 Mbyte se llama memoria superior, y
tiene un tamaño de 384 Kbyte. En ella se almacena los programas que dan soporte algunas partes del
hardware. El PC (computador personal) original usaba sólo una parte de esta memoria para su BIOS, el
sistema básico de Entrada/Salida que proporcionaba al PC las instrucciones de bajo nivel para controlar
periféricos como unidades de disco y el teclado. Otra pequeña parte se utilizó para la memoria de vídeo,
donde se almacena la información que se visualizará en los monitores monocromos o en color. Hoy , el área
de memoria superior todavía no se ha llenado con la ROM. Los primeros 128 Kb se utilizan para la memoria
de vídeo : los sistemas gráficos monocromo, CGA, EGA o VGA de la mayoría de los PC. Los siguientes 128
Kb están reservados para ROM instalables como la ROM de vídeo y la ROM del controlador de disco duro.
Los últimos 128 Kb están reservados para la ROM BIOS.
Memoria Extendida
Es la memoria por encima de 640 Kbyte, aparece cuando los constructores de software y de computadores se
dieron cuenta que 1Mbyte era muy poca memoria. Toda la memoria por encima de 640 Kbytes es memoria
extendida.
Memoria Alta
Son los primeros 64 Kbyte de la memoria extendida.
MEMORIA EXPANDIDA
Los usuarios de hojas de cálculo fueron los primeros que reclamaron más memoria. Cuando se trabaja con
ellas , está almacenando en memoria; cuanto más memoria tenga, mayor será la hoja de cálculo que pueda
crear. Para grandes usuarios de estos programas 640 Kbyte no fue suficiente. Se propuso una solución que
utilizaba una combinación de hardware y software. LOTUS, INTEL, MICROSOFT y constituye una forma
para acceder memoria hasta a 32 Mbytes por encima de la memoria convencional. La memoria expandida no
significa que sea memoria más allá de la marca de 1 Mb, ni los programas pueden ejecutarse en esa zona. Al
contrario, es más bien un área de almacenamiento de memoria sobre una tarjeta de expansión compatible
EMS situada dentro del ordenador. Los programas compatibles EMS pueden acceder a la memoria de la
tarjeta, lo cual significa que el programa puede acceder a más memoria para almacenar datos.
MEMORIA ROM (MEMORIA DE SOLO LECTURA)
En la memoria ROM se encuentran almacenados procedimientos que la computadora debe realizar en el
momento en que se enciende: algunas de ellas son verificación de memoria, de conexión de periféricos como
teclado, impresora, detectar el disco con sistema de arranque etc. También se encuentra la ROM BIOS que
está activa todo el tiempo y se encarga con el sistema operativo de realizar actividades de control de
dispositivos de periféricos.
EL RELOJ INTERNO DE LA COMPUTADORA
Todos los microcomputadores tiene un sistema de reloj, que es utilizado por las computadoras para tomar el
tiempo de sus operaciones de procesamiento. Las primeras computadoras operaban a 4.77 megahertz. Hertz es
una medida de los ciclos de un reloj por segundo. Un ciclo es el tiempo que le toma realizar una operación,
como mover un byte de un lugar de la memoria a otro.
1.2.4. UNIDAD DE ENTRADA / SALIDA
DISPOSITIVOS EXTERNOS
Un dispositivo externo o periférico se conecta al computador a través de un enlace con un controlador de E/S.
El enlace se utiliza para intercambiar datos e información sobre su control y su estado, entre el controlador de
E/S y el dispositivo externo. Los periféricos se pueden clasificar en tres categorías:



Adaptados al usuario: son apropiados para comunicar información al usuario.
Adaptados a la máquina: permiten comunicarse con el sistema.
De comunicación: están preparados para transmitir información a dispositivos remotos.
La comunicación con el controlador de E/S se efectúa mediante señales de datos, de control y de estado del
dispositivo. Los datos están constituidos por un conjunto de bits que se envían o se reciben desde el
controlador. Las señales de control determinan la función que realiza el dispositivo, tales como:


Enviar el dato al controlador de E/S (Leer).
Aceptar el dato del controlador de E/S (Escribir).

Realizar alguna función de control particular para ese dispositivo.
Las señales de estado indican el estado en que se encuentra el dispositivo. La lógica de control asociada con el
periférico gobierna su funcionamiento en respuesta a las órdenes enviadas por el controlador de E/S.
CONTROLADOR DE E/S
Es el módulo del computador responsable del control de uno o más dispositivos externos y del intercambio de
datos entre dichos periféricos con la memoria principal o con los registros de la UCP. Debe poseer una
interfaz interna al computador (para su conexión con la UCP y con la memoria principal) y una interfaz
externa al computador (para su conexión con el dispositivo externo). Las principales funciones de un
controlador de E/S pertenecen a una de las categorías siguientes:





Control y temporización.
Comunicación con la UCP.
Comunicación con el dispositivo externo.
Almacenamiento temporal de datos.
Detección de errores.
La función de E/S requiere un mecanismo de control y temporización que coordine el intercambio de
información entre los recursos internos y los dispositivos externos. Requiere de una secuencia de pasos:





La UCP pide al controlador de E/S que compruebe el estado del dispositivo al que está conectado.
El controlador de E/S devuelve el estado del dispositivo.
Si el dispositivo está operativo y preparado para transmitir, la UCP solicita la transferencia del dato
mediante una orden al controlador de E/S.
El controlador de E/S obtiene el dato del dispositivo externo.
El dato se transfiere desde el controlador de E/S a la UCP.
La comunicación con la UCP requiere:




Decodificación de la orden: el controlador de E/S acepta órdenes de la UCP por el bus de control.
Datos: el intercambio de datos entre la UCP y el controlador de E/S se realiza mediante el bus de datos.
Información sobre el estado: a causa de la lentitud de los periféricos es importante conocer el estado del
controlador de E/S.
Reconocimiento de la dirección: cada palabra de memoria tiene asociada una dirección y el controlador
de E/S reconoce una dirección única para cada uno de los periféricos que controla.
El controlador de E/S contiene entre otros un registro de estado que se le suele llamar puerto. La UCP además
de comunicarse con la unidad de E/S también debe hacerlo con la unidad de memoria. La forma de realizar
esta
comunicación es mediante buses que contienen líneas de dirección, de datos y de control. Hay tres maneras de
utilizar el bus para interconectar la UCP con la memoria y con la unidad de E/S:
Utilizar dos buses independientes, uno para la memoria y otro para el sistema de E/S. Utilizar un bus común
para la memoria y el sistema de E/S, pero con líneas de control independientes para cada uno.
Utilizar un único bus con líneas de control también comunes.
E/S CONTROLADA POR PROGRAMA
Los datos se intercambian entre la UCP y el controlador de E/S. La UCP ejecuta un programa que tiene el
control directo de la operación de E/S e incluye la comprobación del estado del dispositivo, el envío de una
orden de lectura o escritura y la transferencia del dato. Cuando la UCP emite una orden al controlador de E/S
debe esperar hasta que finalice la operación de E/S. Si la UPC es más rápida que el controlador de E/S se
malgasta el tiempo de la UCP. La UCP puede enviar al controlador cuatro tipo de órdenes:




Ordenes de control: se utilizan para activar un periférico y decirle que hacer.
Ordenes de comprobación: se utilizan para verificar diferentes condiciones de estado asociadas con un
controlador de E/S y sus periféricos.
Ordenes de lectura: originan que el controlador de E/S obtenga un dato del periférico y lo coloque en un
registro interno.
Ordenes de escritura: hacen que el controlador de E/S tome un dato del bus de datos y a continuación lo
transmita al periférico.
Después de efectuar la transferencia de un dato, el computador permanece en un bucle de espera hasta que el
periférico está preparado para realizar la siguiente transferencia. El computador no realiza ningún trabajo útil
mientras permanece en el bucle de espera.
E/S POR INTERRUPCIONES
La idea básica del mecanismo de E/S por interrupciones consiste en eliminar el bucle de espera. La UCP
envía una orden de E/S al periférico y prosigue con la tarea que estaba ejecutando. Cuando el periférico está
preparado para intercambiar información, fuerza una interrupción en la tarea que realiza la UCP para que
atienda a la operación de E/S. El periférico advierte a la UCP que está preparado para la transmisión
activando una línea especial del bus de control: la línea de petición de interrupción PI. La secuencia de pasos
en el tratamiento de una petición de interrupción por parte de un único periférico es:







1. Activar el sistema de interrupciones en la UCP.
2. El periférico activa la línea de petición de interrupción (PI = 1).
3. La UCP suspende en ese momento la ejecución del programa en curso.
4. La UCP inhibe las interrupciones y comienza a ejecutar el programa del servicio de la interrupción.
5. Se informa al periférico de que se ha reconocido su petición mediante una línea de reconocimiento de
petición (RI = 1) y desactiva la línea de petición (PI = 0).
6. Una vez finalizado el programa de servicio, se activa de nuevo el sistema de interrupciones.
7. La UCP continúa la ejecución del programa interrumpido donde lo dejó.
A continuación, se presenta una clasificación que resume los diferentes tipos de interrupciones:
Origen:



Externa: las provoca un periférico.
Interna: las provoca la UCP.
Simuladas: son interrupciones software.
No. de líneas de interrupción:


1 línea: sólo una línea de petición PI.
Múltiples líneas: PI1, PI2, ..., PIn.
Control de la UCP sobre la interrupción:


Enmascarables: la UCP puede desactivarlas.
No enmascarables: la UCP no puede desactivarlas.
Identificación de la fuente de la interrupción:



Múltiples líneas: PI1, PI2, ..., PIn.
Encuesta: la interrupción se identifica por programa.
Vectorizadas: la interrupción identifica un periférico.
Gestión de la prioridad de la interrupción:


Por software: un programa determina la prioridad.
Por hardware: un circuito determina la prioridad.
Niveles de interrupción:


Nivel único: la interrupción no puede interrumpirse.
Multinivel: anidamiento de interrupciones.
ACCESO DIRECTO A MEMORIA (DMA)
Tanto la E/S controlada por programa como la E/S por interrupciones, sufren de dos desventajas:


La transferencia de datos está limitada por la velocidad con que la UCP puede comprobar y atender a un
periférico.
La UCP está obligada a gestionar la transferencia de E/S.
Cuando se mueven grandes cantidades de datos, se necesita una técnica más eficaz: el acceso directo a
memoria (DMA). El DMA necesita un módulo adicional conectado al bus del sistema: el controlador de
DMA que es capaz de hacer las funciones asignadas a la UCP y asumir el control del sistema. Contiene un
registro de datos, un registro de dirección y un registro contador de palabras. Cuando la UCP desea leer o
escribir un bloque de datos emite una orden al controlador de DMA enviándole la siguiente información:




Si la operación de E/S es de lectura o escritura.
La dirección del periférico.
La posición de comienzo en memoria donde hay que leer o escribir.
El número de palabras que se tienen que leer o escribir.
Existen diferentes formas de obtener el control del bus:





Por ráfagas: cuando el DMA toma el control del bus no lo libera hasta haber transmitido el bloque de
datos pedido.
Por robos de ciclo: cuando el DMA toma el control del bus lo retiene durante un solo ciclo, transmite
una palabra y libera el bus.
DMA transparente: solamente se roban ciclos cuando la UCP no está utilizando el bus del sistema.
Por demanda: el periférico es quien comienza la transferencia por DMA, pero devuelve el control a la
UCP cuando no tiene más datos disponibles.
Dato a dato: cada vez que el periférico solicita una transferencia por DMA, se envía un único dato y se
devuelve el control a la UCP.
PROCESADOR DE E/S (PE/S)
El controlador de E/S se potencia para convertirse en un procesador con un conjunto de instrucciones
especializadas en operaciones de E/S. La UCP dirige al procesador de E/S para que ejecute un programa de
E/S que esté residente en memoria. El PE/S busca y ejecuta ese programa sin la intervención de la UCP y
permite a ésta especificar una secuencia de actividades que sólo se interrumpe cuando se ha ejecutado la
secuencia completa. Además tiene una memoria local y se puede considerar que es un computador, que
consigue controlar un gran número de periféricos con una intervención mínima de la UCP. Existe dos tipos
comunes de PE/S:
 Canal selector: controla múltiples dispositivos de alta velocidad. En cualquier instante de tiempo está
dedicado a la transferencia de datos con uno sólo de estos dispositivos.
 Canal multiplexor: controla de forma simultánea operaciones de E/S con múltiples dispositivos.
COMPONENTES Y PERIFÉRICOS BASICOS DEL COMPUTADOR
Placa Base (Tarjeta Madre)
Una primera distinción la tenemos en el formato de la
placa, es decir, en sus propiedades físicas. Dicho
parámetro está directamente relacionado con la caja, o sea,
la carcasa del ordenador. Hay dos grandes estándares:
ATX y Baby AT
La segunda distinción la haremos por el zócalo de la CPU,
así como los tipos de procesador que soporte y la cantidad
de ellos. Tenemos el estándar Tipo 5 para Pentium, el tipo
7 para Pentium y MMX, el tipo 8 para Pentium Pro y el
Slot 1(SEC) para Pentium II. Estos son los más conocidos.
Caja
Como ya se comenta en la sección de placas base, la principal
distinción la tenemos en el formato de la placa a la que sustenta.
Así tenemos que puede ser ATX ó Baby ATX.
El siguiente factor serán las dimensiones de la misma. De menor a
mayor las más normales son: Mini-torre, sobremesa, midi-torre ó
semi-torre, y gran torre, así como modelos para algunos
servidores que requieren el montaje en dispositivos tipo rack.
Cuanto mayor sea el formato, mayor será el número de bahias
para sustentar dispositivos tales como unidades de
almacenamiento. Normalmente también será mayor la potencia de
la fuente de alimentación.
Las características de un modelo mini torre típicas son: soporte
para hasta 7 ranuras de expansión. 2 unidades externas de 5 1/4,
2 también externas de 3 1/2 y 1 interna, fuente de alimentación de
200 w, pilotos de encendido, disco y turbo, pulsadores de reset y
turbo. En los modelos más modernos, el pulsador y la luz de turbo
se suelen sustituir por los de sleep. Los modelos MIDI suelen
traer 1 bahías más para dispositivos externos de 5 1/4, así como
una F.A. de 220 w.
Procesadores
En orden de aparición (Classic, MMX, Pro, PII, K5, K6, K6-2, 6x86, 6x86MX, MII, Winchip C6)
Memoria Principal
La primera distinción que debemos realizar es el formato físico, cuyo parámetro más importante es el número
de contactos (ó pins). Hoy en día podemos encontrarlas de 30 contactos (8 bits) y que miden unos 9 cm., 72
(32 bits) y con una longitud de casi 11cm., y 168 (64 bits) y casi 13 cm. Las dos primeras reciben el nombre
de SIMM y funcionan a 5V, y la última es conocida como DIMM y puede trabajar a 3,3V ó a 5V,
dependiendo del tipo. La siguiente distinción por orden de importancia sería el tipo, en orden a su antigüedad,
esta puede ser DRAM, Fast Page (o FPM), EDO ó SDRAM. Es importante consultar el manual de la placa
base para saber que tipos soporta.
El tipo SDRAM sólo se encuentra en formato DIMM, y es la que más dolores de cabeza nos puede causar, ya
que puede ser Buffered o Unbuffered, y trabajar a 3,3 o a 5V. Además, no todas las placas base soportan todas
estas combinaciones, algunas por ejemplo sólo soportan módulos de 3,3V. Afortunadamente, hay una muesca
en estas memorias que impide conectar un módulo en un zócalo para el que no ha sido diseñado. Otra
característica importante es la paridad, esta característica actualmente está en desuso, pero puede ser fuente de
problemas, ya que algunas placas no soportan esta característica, mientras otras (pocas) sólo funcionan con
ella. Saber si un módulo posee o no paridad es relativamente fácil, basta con contar el número de chips
(circuitos integrados) que hay en el circuito impreso. Si es impar entonces es memoria con paridad. Por
último nos queda comentar el tiempo de acceso, éste cuanto más pequeño sea, mejor. Si hablamos de
módulos SIMM, dependiendo de su antigüedad, son normales tiempos de 80, 70 , 60 ó incluso 50 ns. En las
memorias DIMM SDRAM, suelen ser habituales tiempos de alrededor de 10 ns. También es importante
señalar la máxima frecuencia a la que pueden trabajar. En este aspecto se debe recordar que el único diseño
capaz de trabajar a 100 Mhz es el tipo SDRAM. En cuanto a capacidades las más habituales son las de
256Kb, 1, 2, 4, 8, 16, 32, 64 y 128Mb., aunque no todas pueden estar soportadas por nuestra placa base, por
ejemplo los módulos de 2 Mb no suelen ser habituales, y los de 256Kb y 1Mb sólo están en formato de 30
pins., y los módulos DIMM empiezan a partir de 16 Mb. También hay que entender que el bus de datos del
procesador debe coincidir con el de la memoria, y en el caso de que no sea así, esta se organizará en bancos,
habiendo de tener cada banco la cantidad necesaria de módulos hasta llegar al ancho buscado.
Por tanto el ordenador sólo trabaja con bancos completos, y éstos sólo pueden componerse de módulos del
mismo tipo y capacidad
Tarjeta de Vídeo
Hoy en día todas las tarjetas de vídeo son gráficas e incluyen aceleración por
hardware, es decir, tienen "chips" especializados que se encargan de procesar
la información recibida desde el bus e interpretarla para generar formas,
efectos, texturas, que de otra forma no serían posibles o con peor calidad, o
colapsarían al ordenador y a su bus. La primera distinción a efectuar es si la
tarjeta soporta aceleración 2D, 3D o ambas. Las tarjetas con aceleración 3D
también suelen tener soporte para 2D, pero algunas 3D sólo trabajan como
complemento a las 2D, añadiéndoles dicho soporte. Es muy importante
entender que las tarjetas aceleradoras 3D sólo sirven para juegos y para
programas de diseño gráfico 3D que estén preparados para sacarles partido. Si
habitualmente trabajamos con programas ofimáticos tipo "Office", no
obtendremos ningún beneficio de estas nuevas tarjetas.
Disqueteras y Zips
Refiriéndonos exclusivamente al mundo del PC, en las unidades de disquete
sólo han existido dos formatos físicos considerados como estándar, el de 5 1/4
y el de 3 1/2. En formato de 5 1/4, el IBM PC original sólo contaba con
unidades de 160 Kb., esto era debido a que dichas unidades sólo aprovechaban
una cara de los disquetes.
Luego, con la incorporación del PC XT vinieron las unidades de doble cara
con una capacidad de 360 Kb.(DD o doble densidad), y más tarde, con el AT,
la unidad de alta densidad (HD) y 1,2 Mb.
El formato de 3 1/2 IBM lo impuso en sus modelos PS/2. Para la gama 8086
las de 720 Kb. (DD o doble densidad) y para el resto las de 1,44 Mb. (HD o
alta densidad) que son las que hoy todavía perduran.
En este mismo formato, también surgió un nuevo modelo de 2,88 Mb. (EHD o
Extra alta densidad), pero no consiguió cuajar.
Disco Duro
En el mundo del Pc hay dos grandes estándares, IDE y SCSI, aunque el primero está mucho
más extendido que el segundo, la tecnología SCSI está presente en otras muchas
plataformas, como los Mac , sistemas Unix, AS/400, etc... Los dos estándares han ido
sufriendo a lo largo del tiempo distintas implementaciones para intentar seguir el ritmo
marcado por otros componentes cada vez más rápidos, como los procesadores.
Parámetros a tener en cuenta:
 Capacidad: Aconsejable que sea a partir de 2,1 Gbytes en adelante.
 Tiempo de acceso: Importante. Este parámetro nos indica la capacidad para acceder de manera aleatoria a
cualquier sector del disco.
 Velocidad de Transferencia: Directamente relacionada con el interface.
En un dispositivo Ultra-2 SCSI es de 80 MBytes/seg. mientras que en el Ultra DMA/33 (IDE) es de 33,3
Mbytes/seg. En el modo DMA-2. Esta velocidad es la máxima que admite el interface, y no quiere decir que
el disco sea capaz de alcanzarla. Velocidad de Rotación: Tal vez el más importante. Suele oscilar entre las
4.500 y las 7.200 rpm (revoluciones por minuto). Caché de disco: La memoria caché implementada en el
disco es importante, pero más que la cantidad es importante la manera en que ésta se organiza. Por ello este
dato normalmente no nos da por si solo demasiadas pistas. Son normales valores entre 64 y 256 Kb.
IDE: Cronológicamente, y empezando por el primero no encontramos con los primeros discos IDE con su
limitación a 528 Mb. y pudiendo solo conectar hasta 2 de ellos. Después vinieron los discos EIDE
(FastATA), desarrollados por la compañía Western Digital, compatibles con los primeros, pero con algunas
mejoras, basadas en la especificación ATA-2, que ya soporta unidades de CD-ROM (ATAPI) y de cinta. Otra
mejora importante es el soporte de 2 canales para conectar hasta 4 unidades. Además se definen varios modos
de transferencia de datos, que llegan hasta los 16,6 Mb./seg. Como el PIO-4, o mejor aún el DMA-2, que
soporta la misma tasa pero sin intervención de la CPU. La última especificación, desarrollada por Quantum
es la Ultra DMA/33 (UltraATA), que permite transferencias DMA a 33 Mb./seg.
SCSI: En el caso de los discos SCSI, tenemos el primero, llamado SCSI-1, con un ancho de bus de 8 bits,
aunque ya en esta primera especificación se incluían características muy destacadas, como la posibilidad de
conectar hasta 7 dispositivos de todo tipo, discos, cintas, escáners, CD-ROM, etc... Después viene el SCSI-2,
que ya dispone de un ancho de bus de 16 bits. El siguiente paso es el Fast-SCSI, considerado el doble de
rápido. Después viene el Wide SCSI, ya con un ancho de bus de hasta 32 bits, así como un mayor
rendimiento.
CD - ROM
En primer lugar vamos a diferenciar entre lectores, grabadores y regrabadores.
Diremos que los más flexibles son los últimos, ya que permiten trabajar en
cualquiera de los tres modos, pero la velocidad de lectura, que es uno de los
parámetros más importantes se resiente mucho, al igual que en los grabadores.
Así tenemos que en unidades lectoras son habituales velocidades de alrededor de
34X (esto es 34 veces la velocidad de un lector CD de 150 Kps.), sin embargo en
los demás la velocidad baja hasta los 6 ó 12X.
Dado que las unidades lectoras son bastante económicas, suele ser habitual
contar con una lectora, y una regrabadora, usando la segunda sólo para
operaciones de grabación.
Teclado
El teclado es un componente al que se le da poca importancia, especialmente en
los ordenadores clónicos. Sin embargo es un componente esencial, pues es el
que permitirá que nuestra relación con el ordenador sea fluida y agradable, de
hecho, junto con el ratón son los responsables de que podamos interactuar con
nuestra máquina. Así, si habitualmente usamos el procesador de textos, hacemos
programación, u alguna otra actividad en la que hagamos un uso intensivo de
este componente, es importante escoger un modelo de calidad. En el caso de que
seamos usuarios esporádicos de las teclas, porque nos dediquemos más a juegos
o a programas gráficos, entonces cualquier modelo nos servirá, eso sí, que sea de
tipo mecánico. Parámetros importantes a tener en cuenta son el tacto, no debe de
ser gomoso, y el recorrido, no debe de ser muy corto.
También es importante la ergonomía, es aconsejable que disponga de una amplia
zona en la parte anterior, para poder descansar las muñecas. Y hablando de la
ergonomía, este es uno de los parámetros que más destaca en un teclado, uno de
los ya clásicos en este aspecto es el "Natural keyboard" de Microsoft.
Características:
Actualmente sólo quedan dos estándares en cuanto a la distribución de las teclas,
el expandido, que IBM lo introdujo ya en sus modelos AT, y el de Windows95,
que no es más que una adaptación del extendido, al que se le han añadido tres
teclas de más, que habitualmente no se usan, y que sólo sirven para acortar la
barra espaciadora hasta límites ridículos.
En cuanto al conector, también son dos los estándares, el DIN, y el mini-DIN. El
primero es el clásico de toda la vida, y aún es el habitual en equipos clónicos.
El segundo, introducido por IBM en sus modelos PS/2, es usado por los
fabricantes "de marca" desde hace tiempo, y es el habitual en las placas con
formato ATX.
De todas formas, no es un aspecto preocupante, pues hay convertidores de un
tipo a otro. Nos dejamos otro tipo de conector cada vez más habitual, el USB,
pero la verdad es que de momento apenas hay teclados que sigan este estándar
Monitor
El monitor es una parte del ordenador a la que muchas veces no le damos la
importancia que se merece. Hay que tener en cuenta que junto con el teclado y
el ratón son las partes que interactúan con nuestro cuerpo, y que si no le
prestamos la atención debida, podremos llegar incluso a perjudicar nuestra
salud. Evidentemente no en el caso de personas que hacen un uso esporádico,
pero si en programadores impenitentes o navegadores incansables, que puedan
pasarse muchas horas diarias al frente de la pantalla. Vamos a explicar los
parámetros que influyen en la calidad de un monitor:
Tamaño:
El tamaño de los monitores se mide en pulgadas, al igual que los televisores. Hay que tener en cuenta que lo
que se mide es la longitud de la diagonal, y que además estamos hablando de tamaño de tubo, ya que el
tamaño aprovechable siempre es menor.
Tubo:
Otro aspecto importante es la marca del tubo y el tipo, así como otros detalles relacionados con él. Fabricantes
de monitores hay muchos, pero de tubos son contados, con lo que si sabemos que modelo de tubo lleva
nuestro monitor sabremos ya bastantes cosas importantes de él.
Tamaño de punto:
Esta es una de las características que depende del tubo, y define el tamaño que tendrá cada uno de los puntos
que forman la imagen, por tanto cuanto más pequeño más preciso será. No hay que confundir el tamaño de
punto con el "pixel". El pixel depende de la resolución de la pantalla, y puede variar, mientras que el punto es
fijo, y depende exclusivamente del tubo.
Frecuencia de refresco:
Aquí si que podemos decir claramente que cuanto más mejor. La frecuencia de refresco está
proporcionalmente ligada a la estabilidad de la imagen, y por tanto al descanso y confort de nuestra vista.
Nunca deberíamos escoger valores por debajo de los 75 Mhz en modos de 1.024 x 768 puntos, aunque un
valor óptimo sería de 90 Mhz., que sería el mínimo exigible en resoluciones menores.
Resoluciones:
Resolución de pantalla se denomina a la cantidad de pixeles que se pueden ubicar en un determinado modo de
pantalla. Estos pixels están a su vez distribuidos entre el total de horizontales y el de verticales. Todos los
monitores pueden trabajar con múltiples modos, pero dependiendo del tamaño del monitor, unos nos serán
más útiles que otros: A nivel general se recomienda lo siguiente:
Tamaño en pulgadas Resoluciones recomendables :
14 480 x 640 800 x 600
15 800 x 600 1.024 x 768
17 1.024 x 768 1.280 x 1.024
19 1.280 x 1.024 1.600 x 1.024
21 1.600 x 1200 1.280 x 1200
Cuando hablamos de resoluciones, hay que decir lo mismo que con las frecuencias de refresco, si nuestra
tarjeta de vídeo no las soporta, no podremos usarlas. Hay que tener mucho cuidado de que estas resoluciones
se obtengan de manera "no entrelazada", ya que sino, la calidad de la imagen se resiente de una forma
inaceptable, reduciendo la frecuencia de refresco REAL a la mitad.
Mouse (Ratón)
Este dispositivo es uno de los más importantes para la
interacción con el computador.
En un inicio se incluyo en algunos sistemas de
computadora de la empresa Apple en aplicaciones
específicas, muy pronto tomaría fuerza y se colocaría como
uno de los principales periféricos para dar ordenes al
computador.
En la actualidad se pueden encontrar de diversos estilos, de
2 y tres botones, con rueda deslizante.
1.2.5. FUNCION DE UN COMPUTADOR
La función básica que realiza un computador es la ejecución de un programa. La secuencia de operaciones
realizadas en la ejecución de una instrucción constituye lo que se denomina ciclo de instrucción, que consta
de dos pasos:


Fase o ciclo de búsqueda.
Fase o ciclo de ejecución.
En el comienzo de cada ciclo de instrucción la UCP 1 busca en la memoria una instrucción. En una UCP tipo
von Neumann para realizar esta tarea se dispone de un registro especial llamado contador de programa (CP).
La
instrucción leída se almacena en un registro de la UCP conocido como registro de instrucción (RI). La
instrucción especifica el tipo de acción que pertenece a una de las cuatro categorías siguientes:




UCP - Memoria.
UCP-E/S.
Procesamiento de los datos.
Control.
Cualquier ciclo de instrucción puede estar formado puede estar formado por uno o varios estados:







Cálculo de la dirección de la instrucción (CDI): determina la dirección de la próxima instrucción que
se tiene que ejecutar.
Búsqueda de la instrucción (BI): leer la instrucción de su posición de memoria en la UCP.
Decodificación de la instrucción (DI): analizar la instrucción para determinar el tipo de operación que
se va a efectuar y los operandos que se utilizan.
Cálculo de la dirección del operando (CDO): si la operación realiza una referencia a un operando
almacenado en la memoria o que está disponible a través de una operación de E/S.
Búsqueda del operando (BO): leer el operando de la memoria o de un dispositivo de E/S.
Operación sobre los datos (OD): realizar la operación indicada en la instrucción.
Almacenar el operando (AO): escribir el resultado en memoria o en un dispositivo de E/S.
1.2.6. ESTRUCTURAS DE INTERCONEXION
Un computador consiste en un conjunto de componentes o módulos de tipos básicos que se comunican entre
sí mediante unos caminos, que constituye la estructura de interconexión. Los tipos de intercambios que se
necesitan son:


1
Memoria: un módulo de memoria consta de N palabras de dirección desde 0 hasta N-1, y con dos
operaciones que son leer y escribir.
E/S: un módulo de E/S consta de M puertos de dirección desde 0 hasta M-1, y con dos operaciones que
Unidad de Control de Proceso UCP

son leer y escribir.
UCP: la UCP lee instrucciones y datos, escribe datos después de procesarlos, utiliza señales de control
para dirigir la operación global del sistema y recibe señales de interrupción.
La estructura de interconexión debe soportar los siguientes tipos de transferencias:





Memoria a UCP.
UCP a Memoria.
E/S a UCP.
UCP a E/S.
E/S a o desde Memoria.
La mayoría de las estructuras de interconexión propuestas a lo largo de los años pertenece a uno de los cuatro
tipos siguientes:




Arquitectura de E/S a través de la UCP: la UCP y los módulos de E/S comparten la misma vía de
acceso a memoria, lo que obliga a la UCP a parar momentáneamente sus cálculos cuando se están
produciendo transferencias de datos.
Arquitectura de E/S a través de la Memoria: es posible el acceso directo a la memoria principal de dos
o más componentes de forma independiente.
Arquitectura de E/S mediante un conmutador central: existe un mecanismo de distribución
centralizado al cual se unen todos los componentes.
Arquitectura con bus de E/S: hay un conjunto de líneas que se comparten por todos los módulos. Esta
arquitectura se ha convertido en el estándar de interconexión.
INTERCONEXION MEDIANTE BUS
La característica clave de un bus es que se trata de un medio de transmisión compartido. Al bus se conectan
múltiples dispositivos, y una señal transmitida por cualquiera de ellos puede ser recibida por todas las otras
unidades conectadas. En un determinado instante de tiempo, solamente es posible la transmisión por parte de
un único dispositivo. Un bus del sistema consta de una serie de líneas que se pueden clasificar en tres grupos
funcionales:



Líneas de datos: establecen un camino para transferir datos desde los módulos del sistema. Su anchura
depende de la longitud de una instrucción.
Líneas de dirección: se utilizan para seleccionar la fuente o el destino de la información que hay sobre el
bus de datos. Su anchura depende de la capacidad de la unidad de memoria.
Líneas de control: gobiernan el acceso y el uso de las líneas de datos y dirección. Las más típicas son:
escritura en memoria, lectura de memoria, escritura a E/S, lectura de E/S, reconocimiento de
transferencia, petición del bus, autorización del bus, petición de interrupción, reconocimiento de
interrupción, reloj y reset.
1.3.
CONCEPTOS BASICOS DE SISTEMAS OPERATIVOS
1.3.1. INTRODUCCIÓN
En el más estricto sentido de la expresión el sistema operativo es un programa que inicia su ejecución al
encender el computador, establece un estado inicial de los componentes de dicho computador y tiene como
función primaria el permitir que otros programas se ejecuten y tengan un acceso ordenado a los recursos que
ofrece el equipo. Es lo que se conoce como el Kernel. Esto lo hace suministrando procesos que controlan a
los dispositivos periféricos, administrando recursos compartidos por varias tareas como la memoria y equipos
periféricos y estableciendo las prioridades de las tareas que ejecuta el computador. También debe mantener la
integridad del proceso recuperando el control cuando algún programa falla.
En un sentido más extenso el sistema operativo contiene otros elementos que amplían su funcionalidad.
Incluimos aquí programas que se pueden ejecutar ocasionalmente que se les reconoce como rutinas de
utilidad. Otro grupo de programas, en particular cuando se trata de sistemas de multitareas y multiusuarios,
que podemos incluir son servicios adicionales que puede brindar el sistema operativo. Aquí incluimos el
correo electrónico, web, bases de datos y otros elementos de conectividad.
Las oportunidades de trabajo en computación nos pueden llevar a trabajar en aspectos muy diversos pero sea
que trabajemos de cerca al computador atendiendo al funcionamiento de los servicios del sistema operativo o
estemos instalando sistemas o desarrollando aplicaciones, el conocer el funcionamiento de los sistemas
operativos es de suma importancia.
Hoy por hoy es común que tengamos un PC en casa que puede estar ejecutando un sistema operativo como
Windows 95/98. Para la inmensa mayoría de usuarios de PCs el sistema operativo es un elemento oscuro. En
más de una ocasión confunden el programa de procesamiento de palabras o cualquiera que sea el programa
que principalmente usan, con Windows. Y en cierta forma, esa es la idea. Que haya una integración tan
homogénea que el usuario común no pueda distinguir a un programa del otro.
Para el computista la historia es diferente. Es importante saber exactamente que ofrece el sistema operativo.
Es importante saber los mecanismos de seguridad, de conectividad, de multitarea, de acceso y seguridad en el
manejo de archivos y otra variedad de posibilidades. Es importante saber que posibilidades brinda de manejar
los equipos periféricos que se conecten al procesador, la capacidad para detectar problemas con estos equipos
y la posibilidad de sustitución de los equipos periféricos por otros más eficientes o de más capacidad.
Para el computista Windows 95/98 es tan sólo uno de los varios componentes que permiten integrar las
capacidades de varios equipos.
La computación del siglo 21 se mueve en dos direcciones. La conectividad de los equipos con la tecnología
Internet a la cabeza y la computarización de todos los dispositivos de uso diario. Esto va desde el teléfono a
la tostadora de pan.
En materia de equipos servidores los sistemas operativos por excelencia son UNIX y NT. Va a ser más
frecuente que si estamos familiarizados con uno de estos sistemas nos tropecemos con el otro y debamos
interconectar ambos sistemas operativos. Por algún tiempo más Windows 95/98 continuará siendo parte del
panorama mientras este sistema operativo sea una alternativa más económica que NT Workstation.
Dependiendo del giro que tomen compañías como Sun e IBM habrá que tomar en cuenta en un futuro al
sistema operativo JAVA/OS. Igualmente hay que considerar que rumbo va a tomar Novell de la que especula
puede moverse en igual dirección que Sun e IBM.
Linux, que hasta ahora ha sido la adoración del computista rebelde comienza a penetrar los mercados
conservadores como una alternativa tipo UNIX pero más económica.
Lo que es cierto es que a diferencia de años atrás cuando los fabricantes de hardware amarraban a los clientes
a sus sistemas operativos hoy en día los equipos deben correr los sistemas operativos preferidos de los clientes
o no sobreviven en el mercado.
1.3.2. ¿QUÉ ES UN SISTEMA OPERATIVO?
Un sistema operativo es un grupo de pequeños programas desarrollados para simplificar la labor del
programador cuando este necesita hacer uso de ciertos recursos que ofrece el computador. Estos pequeños
programas se les llama servicios porque eso es lo que son. Servicios que el computador presta al programa
que se ejecuta en ese computador. Estos servicios pueden abarcar el manejo de unidades de discos, el teclado,
la pantalla, la impresora, el módem, la conexión a la red y otros periféricos. También pueden ser servicios de
manejo de la memoria, las prioridades en las interrupciones que hagan los periféricos cuando necesitan ser
atendidos.
Otro servicio muy útil es el permitir ejecutar varios programas simultáneamente. Este servicio es
particularmente valioso y para muchas personas si un sistema operativo no ofrece este servicio no se le puede
llamar sistema operativo. Esta es la mayor crítica que se le hace al MS-DOS.
Lo importante de estos servicios es la integración entre ellos. No se trata de simples rutinas utilitarias que se
pueden ejecutar sin importar cual otra se esté utilizando o esté presente. El desarrollo de un sistema operativo
debe asegurar que estas varias piezas se comuniquen entre si para asegurar la integridad de la operación total.
Es por eso que es común que el sistema operativo ofrezca algún sistema de mensajes entre los varios
componentes. Estos mensajes llevan información de una tarea a la otra y/o instrucciones de qué hacer a
continuación.
Inicialmente, cuando los equipos no eran muy poderosos, una instrucción se ejecutaba después de otra en
forma predecible. La lentitud de los periféricos en relación a la velocidad del procesador hizo que se
implementara el mecanismo de interrupción por parte de los periféricos, permitiendo al procesador atender a
otros servicios mientras el componente periférico realiza su tarea. Al concluir lo que está haciendo, sea
imprimir una línea o traspasar a memoria un bloque de información, el periférico da un alerta al procesador
para que interrumpa lo que está haciendo y le atienda.
Esto hace que los procesos de un programa puedan ser ejecutados en lo que parece una forma desordenada.
Igual ocurre con los componentes del sistema operativo. A pesar de ese aparente desorden todo debe marchar
con un cierto orden.
Existen varias formas de mantener la sincronización. Una de esas formas es hacer que los módulos o partes
de un programa o el sistema operativo envíe mensajes a los módulos dependientes de los resultados
producidos. Si existe un mecanismo estándar, como ocurre con Windows, una parte del sistema operativo
puede analizar estos mensajes y "despertar" al programa que está esperando el mensaje para que se ponga a
trabajar.
Si este estándar no existe, lo que resta es al sistema operativo es ir despertando a los programas para que
revisen su lista de mensajes para ver si les llegó lo que esperaban y si no volver a "dormir" indicando tal cosa
al sistema operativo para que permita a otro programa revisar su lista. Esto es una forma cruda y simple de
explicar la cronología de ejecución de programas dentro de un computador.
El sistema operativo, con el objetivo de hacer uso eficiente del potencial del procesador, interrumpe al
programa que el procesador está ejecutando para atender a algún periférico que haya concluido lo que estaba
haciendo. Esta terminación puede ser exitosa o no. Lo importante es que los periféricos son relativamente
tan lentos que hay que atenderlos rápido para ponerlos a trabajar lo más rápido posible para que no atrasen al
trabajo que se quiere hacer con el computador.
Existen muchos tipos de sistemas operativos. Como hemos dicho, los hay para controlar el uso de equipos
que centralizan información, como los que nos dan el servicio de Internet, y los hay para equipos que realizan
tareas muy definidas como puede ser un reloj de control de entradas y salidas de empleados.
En el caso de un dispositivo el sistema operativo puede colocarse en ROM porque es simple y necesita estar
en memoria al momento de encender el dispositivo.
En el caso de un sistema de un servidor, el sólo proceso de arranque para llevar al sistema a un estado inicial
predecible puede requerir de un número amplio de programas que no se justifica que estén todo el tiempo en
memoria. Además pueden existir servicios que se usan ocasionalmente que igualmente no justifican el estar
permanentemente en memoria y que se traen desde un almacenamiento secundario, usualmente, un disco
magnético.
Un sistema operativo ofrece, por lo general, un mecanismo de comunicación con un operario. En el caso de
una central telefónica el mecanismo puede ser el auricular por el que envía mensajes que le indican al
operario si puede marcar el número, si hay conexión o el otro teléfono está ocupado. En los casos que más
nos atañen estamos hablando de un terminal con pantalla y teclado. El servicio de comunicación o interface
puede ser de una línea a la vez, como MS-DOS y UNIX, o puede ser gráfico con la adición de un apuntador
como es un mouse, en el caso de Windows 3/95/98/NT o X-Window (UNIX).
1.3.3. COMPONENTES DE UN SISTEMA OPERATIVO
Un sistema operativo es, por lo general, un programa complejo. Dependiendo del equipo en el que se ejecuta
este puede estar compuesto de unos cientos de instrucciones a millones de instrucciones. En el desarrollo de
sistemas operativos grandes como UNIX y NT es razonable dividirlo en módulos. Estos pueden ser
programados y probados por separado.
A continuación algunos términos que son relevantes para entender el funcionamiento de un sistema operativo.
Kernel
El Kernel o Ejecutivo es el núcleo del sistema operativo. Este está permanente en memoria una vez que el
equipo inicia sus funciones normales. Es responsable por:
 Traslado del control de un programa a otro.
 control y programación de dispositivos periféricos.
 Manejo de interrupciones y condiciones de error.
 Comunicación entre procesos.
 Cronogramación de tareas.
 Manejo de la memoria.
Programas, Procesos e instancias
Es importante establecer la diferencia entre un programa, un proceso y una instancia. Un programa es el
conjunto de instrucciones que escribe el programador. Estas, una vez que están en lenguaje de máquina,
residen en un medio magnético o pueden fijarse en un ROM.
Un proceso, o tarea, es la ejecución de este programa o una parte de él. A su vez, un proceso puede estar en
ejecución simultánea en varias etapas. A esto se les llama instancias de un proceso. Cada una de estas
ejecuciones es más o menos independiente de la otra.
Para saber los detalles de una instancia debemos examinar el grupo de datos que la define. Este grupo de
datos son el estado en que esta la instancia y la cola de mensajes a procesar. El estado puede contener la
instrucción por la que va la ejecución en ese momento y/o valores asignados a variables antes de comenzar la
ejecución o durante la misma.
El programador decide cuando escribe el programa si lo hace monolítico, lo divide en tareas y si las tareas
pueden tener varias instancias de ejecución. Para esto último, se debe preparar las tareas para que sean reentrantes. Una tarea es re-entrante cuando en cada instancia de ejecución el sistema operativo se asigna un
bloque de memoria separado para el almacenamiento de sus datos. Si alguna parte del proceso no es reentrante entonces una parte de memoria compartida entre las varias instancias sirve de control para determinar
cuando las otras instancias deben detener la ejecución hasta que la instancia controladora salga de la porción
del programa que no es re-entrante. Esta memoria compartida recibe el nombre de semáforo.
Multiprocesamiento
La mayoría de los PCs instalados contiene un solo CPU (Central Processing Unit) para procesar las tareas. Es
posible tener varios CPUs en el motherboard con lo que es posible tener varios procesos corriendo
simultáneamente. Cuando no se tienen varios CPUs se puede crear la ilusión de multiprocesamiento por
medio de mecanismos de interrupción de las tareas y mudando de una tarea a otra cada cierto tiempo. Esta
mudanza o switching es una de las tareas del ejecutivo. Aún con varios CPUs se puede hacer switching de
tareas asignadas a cada CPU. Windows NT puede atender a varios CPUs.
Existen dos formas básicas de proceder a la mudanza entre tareas. Las tareas pueden cooperar
suspendiéndose voluntariamente cada cierto tiempo o en puntos determinados en su ejecución o el sistema
operativo con ayuda de circuitos en el hardware interrumpe la tarea que se esté ejecutando. Estos dos
mecanismos se les conoce en inglés como cooperative switching y pre-emptive switching. Windows 3.1x es
un ejemplo de una mudanza cooperativa. UNIX y NT son ejemplos de pre-emptive switching.
Cuando el procesador muda de una tarea a la otra lo que hace es guardar el estado en que está la tarea a
suspenderse guardando el contenido de registros o memorias del procesador y reemplazándolos con valores
de la próxima tarea a ejecutar. Este cambio de contenido de registros se le denomina cambio de contexto.
Este cambio toma un tiempo pero es muy poco en comparación al tiempo que se les da a las tareas para su
ejecución.
Carga del Sistema Operativo
El sistema operativo del un computador es cargado a memoria de una de dos maneras. Se le carga en ROM
de modo permanente o se ubica en un almacenamiento externo, generalmente un disco magnético, y se carga
al encender el computador.
En el primer caso el sistema operativo toma control del equipo al momento de arrancar y es muy poco el
mantenimiento que tiene que hacer.
En el segundo caso, una parte muy pequeña del sistema operativo está presente en ROM para iniciar la carga
del sistema operativo desde una unidad externa de almacenamiento. Esta unidad externa es por lo general un
disco magnético pero puede ser un CD o un cartucho de cinta magnética.
Generalmente esta carga se hace en varias etapas. El programa en ROM revisa el estado de la memoria RAM
y procede a cargar un programa cargador más avanzado que puede realizar otras revisiones y establecer un
estado inicial adecuado al sistema operativo. Como etapa final de la carga del sistema operativo se inicia el
interface con el operador. Este interface puede ser de línea o gráfico.
1.3.4. ORIENTACIÓN DEL SISTEMA OPERATIVO
En los inicios de la computación el costo de los equipos centrales era tal alto que no se consideraba
económico permitir la alteración de los datos mientras el computador ejecutaba sus tareas. Los datos se
preparaban en un sistema externo, fuesen tarjetas o cintas perforadas y luego estos medios se alimentaban al
equipo central a la mayor velocidad que los equipos permitiesen. A esto se le llamó Procesamiento en
Tandas o Batch Processing.
UNIX en una gran medida echó por tierra ese concepto al demostrar que era posible atender la entrada de
datos y su modificación en lo que se llama modo interactivo. El modo de ver la computación fue cambiando
dándole más énfasis a la posibilidad de conectar terminales que a la posibilidad de crear lectores más rápidos
de tarjetas y cintas perforadas. La ingeniería de materiales tuvo mucho que ver en el abaratamiento de los
circuitos electrónicos. Hoy en día los equipos son un costo muy reducido del costo total del procesamiento de
los datos.
Nadie piensa en crear sistemas operativos para procesamiento en tandas. Todo sistema operativo debe
permitir la entrada de datos en cualquier momento. Esto implica que el sistema operativo debe poder realizar
más de una tarea a la vez.
Los sistemas operativos de hoy en día, sean para computadores o sean para dispositivos, ofrecen esta
interacción.
Descargar