Está en la página 1de 85

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/251740144

Introducción a la Informática: Conceptos Básicos

Book · January 2001

CITATIONS READS
0 10,210

3 authors:

Miguel Angel Niño Zambrano Carlos Cobos


Universidad del Cauca Universidad del Cauca
39 PUBLICATIONS   50 CITATIONS    129 PUBLICATIONS   727 CITATIONS   

SEE PROFILE SEE PROFILE

Martha Eliana Mendoza


Universidad del Cauca
60 PUBLICATIONS   456 CITATIONS   

SEE PROFILE

Some of the authors of this publication are also working on these related projects:

Harmony Searh Optimization View project

Virtual community of practice to potentiate knowledge and skills for building mobile applications in computer science students View project

All content following this page was uploaded by Miguel Angel Niño Zambrano on 23 December 2013.

The user has requested enhancement of the downloaded file.


Universidad del Cauca

Introducción a la
Informática
Conceptos Básicos

. . . . . . . . . .

Miguel Angel Niño Zambrano


Carlos Alberto Cobos Lozada
Martha Eliana Mendoza Becerra

TOMO I
PRIMERA EDICION

FACULTAD DE INGENIERÍA ELECTRÓNICA Y TELECOMUNICACIONES


PROGRAMA DE INGENIERIA DE SISTEMAS
POPAYAN, AGOSTO DE 2001
2 Universidad del Cauca

TABLA DE CONTENIDO

CAPITULO 1 .................................................................................................................................... 7
HISTORIA DE LA INFORMÁTICA ........................................................................................... 7
1.1. HISTORIA DE LA INFORMATICA .................................................................................. 8
1.1.1. 500 a.C. - 1822 D.C. ....................................................................................................... 8
1.1.2. 1823 - 1936.................................................................................................................... 10
1.1.3. 1937 - 1949.................................................................................................................... 12
1.1.4. 1950 - 1962.................................................................................................................... 14
1.1.5. 1963 - 1971.................................................................................................................... 15
1.1.6. 1972 - 1989.................................................................................................................... 16
1.1.7. 1990 - Presente.............................................................................................................. 18
1.2. CONCLUSIONES ................................................................................................................... 20

CAPITULO 2................................................................................................................................. 21
INTRODUCCIÓN A LA LÓGICA DE COMPUTADORES ..................................................... 21
2.1. LÓGICA DE PROPOSICIONES ....................................................................................... 22
2.1.1. Introducción .................................................................................................................. 22
2.1.2. Lenguaje Proposicional ................................................................................................ 22
2.1.3. Semántica ...................................................................................................................... 24
2.2. LEYES DEL ALGEBRA DE BOOLE ............................................................................... 26
2.2.1. Introducción .................................................................................................................. 26
2.2.2. Operaciones .................................................................................................................. 28
2.2.3. Leyes Fundamentales .................................................................................................... 28
2.2.4. Aplicación A Circuitos Lógicos..................................................................................... 29
2.3. FUNCIONES LÓGICAS ................................................................................................... 31
2.3.1. Introducción .................................................................................................................. 31
2.3.2. Funciones Lógicas Elementales y Secundarias............................................................. 32
2.3.3. Compuertas Lógicas...................................................................................................... 33
2.3.4. Construcción de Circuitos Integrados........................................................................... 34
2.3.5. Ejemplos de Circuitos lógicos ....................................................................................... 35
2.4. REPRESENTACIÓN DE LA INFORMACIÓN................................................................ 37
2.4.1. Introducción .................................................................................................................. 37
2.4.2. Sistemas De Codificación.............................................................................................. 38
2.4.3. Códigos Numéricos ....................................................................................................... 39
2.4.4. Sistemas De Numeración............................................................................................... 40
2.4.5. Aritmética Binaria......................................................................................................... 42
2.4.6. Representación De Números Negativos ........................................................................ 44

CAPITULO 3................................................................................................................................. 51
ARQUITECTURA DEL COMPUTADOR................................................................................. 51
3.1. EL COMPUTADOR Y SUS CARACTERÍSTICAS ......................................................... 52
3.1.1. Definición de Computador ............................................................................................ 52
3.1.2. Organización Interna del Computador ......................................................................... 52

Facultad de Ingeniería Electrónica y Telecomunicaciones


3 Universidad del Cauca

3.1.3. Funciones de un Computador ....................................................................................... 80


3.2. CONCEPTOS BASICOS DE SISTEMAS OPERATIVOS ............................................... 81
3.2.1. Introducción .................................................................................................................. 81
3.2.2. ¿Qué es un Sistema Operativo? .................................................................................... 82
3.2.3. Componentes de un Sistema Operativo ......................................................................... 84
3.2.4. Orientación del Sistema Operativo ............................................................................... 86
BIBLIOGRAFIA ......................................................................................................................... 88

LISTA DE TABLAS
Tabla 1:Historia de la Informática 500 a.C. - 1822 D.C................................. 10
Tabla 2: Historia de la Informática 1823 - 1936 ............................................ 12
Tabla 3 : Historia de la Informática 1937 - 1949 ........................................... 14
Tabla 4: Historia de la Informática 1950 - 1962 ............................................ 15
Tabla 5: Historia de la Informática 1963 - 1971 ............................................ 16
Tabla 6: Historia de la Informática 1972 – 1989 ........................................... 18
Tabla 7: Historia del Informática 1990 - Presente ......................................... 19
Tabla 8: Procesadores Intel .......................................................................... 53

Facultad de Ingeniería Electrónica y Telecomunicaciones


4 Universidad del Cauca

PROLOGO
PROPOSITO
El propósito de este material es el de servir de material de referencia para la
asignatura de Introducción a la Informática, que se imparte en el primer
semestre del Programa de Ingeniería de Sistemas de la Universidad del
Cauca.

Es de vital importancia que los estudiantes encuentren en un mismo material


una serie de conceptos básicos en informática, bien detallados, así como la
introducción a la solución de problemas con Algoritmos y con un énfasis
fuerte en la programación en C. Prácticamente el estudiante encontrará
parte de la información necesaria del desarrollo de la asignatura en este
material, podrá ser complementado con otras lecturas, consultas o manuales
de referencia que traten los temas.

ORGANIZACIÓN DEL MATERIAL


El presente material corresponde al primer tomo de una colección de tres
materiales de referencia de la materia de introducción a la informática. Los
dos tomos siguientes están en proceso de terminación. Los contenidos de
éstos están organizados de la siguiente forma:

TOMO I: Conceptos Básicos. Hace un recorrido bastante detallado de la


historia de la informática, con imágenes relacionadas. Luego se presenta las
bases matemáticas y lógicas que debe poseer el estudiante para tener
herramientas que le permitan solucionar problemas de forma algorítmica, así
se entra en la lógica de proposiciones, leyes del álgebra de boole, funciones
lógicas y simplificación de funciones. Además, la representación de la
información en el computador, el computador y sus partes, haciendo una
descripción detallada de su funcionamiento interno y la lógica que le atañe,
para finalmente presentar una introducción a los sistemas operativos y su
importancia en el funcionamiento del computador.

TOMO II: Algoritmos y Fundamentos de Programación en C. Esta parte


presenta de forma clara y concisa las técnicas para el análisis, diseño e
implementación de solución a problemas utilizando el computador. Se ha
diseñado el material de tal forma que presente los conceptos básicos de
cada tema, para luego demostrar con varios ejemplos las soluciones
implementadas en pseudocódigo y lenguaje C. El alcance del material
comienza desde las asignaciones simples, pasando por programación
estructurada, programación modular, hasta llegar a los conceptos de
estructuras de datos simples.

Facultad de Ingeniería Electrónica y Telecomunicaciones


5 Universidad del Cauca

TOMO III: Programación Avanzada en C. Esta parte presenta los


conceptos básicos y avanzados del manejo de vectores, punteros y cadenas
de caracteres. Que finalmente se complementan con el siguiente curso del
Programa de Ingeniería de Sistemas “Estructura de Datos I”.

AGRADECIMIENTOS
Los autores expresan sus agradecimientos a los estudiantes del primer
semestre de Ingeniería de Sistemas de la Universidad del Cauca por el
aporte con ideas y programas que permitieron enriquecer el presente
material.

Especial agradecimiento a los profesores del Programa de Ingeniería de


Sistemas, por el aporte en ideas en la conceptualización de la organización
del material.

Un agradecimiento a todas las personas que de alguna u otra forma


colaboraron con información acerca del tema del texto y con la cual se pudo
clarificar conceptos importantes y actualizados para complementar y
desarrollar todos los temas.

Finalmente a todos nuestros seres queridos por el tiempo y paciencia que


nos brindaron en la construcción del material.

Facultad de Ingeniería Electrónica y Telecomunicaciones


6 Universidad del Cauca

TOMO I: CONCEPTOS FUNDAMENTALES

OBJETIVOS

OBJETIVO GENERAL
9 Lograr que los estudiantes obtengan las bases mínimas acerca de la
informática, sus orígenes y conceptos básicos para entender el
funcionamiento del computador y sus aplicaciones para la solución de
problemas.

OBJETIVOS ESPECÍFICOS
9 Establecer los conceptos básicos de los computadores: como hardware y
software, de tal forma que se familiarice con la jerga informática.
9 Definir y dar un rol a cada uno de los componentes del computador,
conociendo su funcionamiento interno y la tecnología que utiliza.
9 Conocer los conceptos básicos de los sistemas operativos, estableciendo
las diferencias básicas entre cada uno de ellos.

Facultad de Ingeniería Electrónica y Telecomunicaciones


Capitulo 1

Historia de la informática

Introducción:

Es importante tener en cuenta la evolución que tuvo los computadores a


través de la historia y la manera como estos cambiaron la forma de
comunicarnos, y de interactuar con el entorno. Esto nos da la visión
necesaria para enfocar nuestros esfuerzos a proyecciones futuras del uso de
los computadores y la programación de los mismos.
8 Universidad del Cauca

1.1. HISTORIA DE LA INFORMATICA

A través de la historia, el desarrollo de máquinas matemáticas ha ido de la


mano con el desarrollo de los computadores, cada avance en uno es seguido
inmediatamente por un avance en el otro, por ejemplo, cuando la humanidad
desarrolló el concepto del sistema de conteo en base diez, el ábaco fue una
herramienta para hacerlo más fácil. Además, el desarrollo de los
computadores ha ido de la mando del desarrollo del software, por ejemplo,
cuando los computadores electrónicas fueron construidas, se desarrollaron
programas computacionales que permitieron soportar aplicaciones sobre
campos como la dinámica de fluidos, teoría de los números, física, etc.

1.1.1. 500 a.C. - 1822 D.C.


Esta sección comienza desde la aparición del ábaco en China y Egipto,
alrededor del año 500 años A.C. hasta la invención del Motor Diferencial por
Charles Babbage, en 1822. El descubrimiento de los sistemas logarítmicos
por Charles Napier condujo a los avances en calculadoras. Posteriormente
se presenta la forma como se logro convertir la multiplicación y división en
suma y resta a partir de un número de máquinas (incluyendo la regla
deslizante). Babbage sobrepasó los límites de la ingeniería cuando inventó
su motor, basado en este principio. En esta etapa se encuentran avances
como:

Instrumento Descripción
El ábaco El ábaco fue la primera máquina conocida que ayudaba a
ejecutar operaciones matemáticas. Se piensa que se originó
entre el 600 y 500 A.C. en China o Egipto. Pelotas redondas,
usualmente de madera se resbalaban de un lado a otro en
varas o alambres puestas horizontalmente, ejecutaban suma y
substracción. Como una indicación de su potencial, el ábaco
se usa todavía en muchas culturas orientales.

Napier Bones Justo antes de morir en 1617, el matemático escocés John


Napier (mejor conocido por su invención de logaritmos)
desarrolló un juego de palitos para calcular, a los que llamó
"Napier Bones", así llamados porque se tallaron las ramitas con
hueso o marfil, los "bones" se incorporaron el sistema
logarítmico. Los Huesos de Napier tuvieron una influencia
fuerte en el desarrollo de la regla deslizante (cinco años más
tarde) aparecieron máquinas calculadoras que contaron con
logaritmos.
Regla deslizante En 1621 la primera regla deslizante fue inventada por el
matemático inglés William Oughtred. La regla deslizante

Facultad de Ingeniería Electrónica y Telecomunicaciones


9 Universidad del Cauca

(llamada "Círculos de Proporción") era un juego de discos


rotatorios que se calibraron con los logaritmos de Napier. Uno
de los primeros aparatos de la informática analógica, la regla
deslizante se usó normalmente (en un orden lineal) hasta
comienzos de 1970, cuando calculadoras portátiles
comenzaron a ser más populares.
Calculadora mecánica En 1623 la primera calculadora mecánica fue diseñada por
Wilhelm Schickard en Alemania. Llamado "El Reloj
Calculador", la máquina incorporó los logaritmos de Napier,
hacia rodar cilindros en un albergue grande. Se sabe que el
matemático famoso Johannes Kepler hizo un pedido de un
Reloj Calculador, pero fue destruido por el fuego antes de que
se terminara.
Pascalina En 1642 la primera calculadora automática mecánica fue
inventada por el matemático francés y filósofo Blaise Pascal.
Llamada la "Pascalina", el aparato podía multiplicar y
substraer, utilizando un sistema de cambios para pasar dígitos.
Se desarrolló la máquina originalmente para simplificar el
trabajo del padre de Pascal para la recolección del impuesto.
Aunque la Pascalina nunca fue un éxito comercial como Pascal
había esperado, el principio de los cambios fue útil en
generaciones subsecuentes de calculadoras mecánicas.
La máquina de multiplicar En 1666 la primera máquina de multiplicar se inventó por Sir
Samuel Morland, entonces jefe de mecánicos de la corte de
Rey Charles II de Inglaterra. El aparato constó de una serie de
ruedas, cada una representaba, dieses, cientos, etc. Un alfiler
del acero movía los diales para ejecutar los cálculos. A
diferencia de la Pascalina, el aparato no tenía avance
automático de columnas.
Máquina calculadora La primera calculadora de propósito general fue inventada por
el matemático alemán Gottfried Von Leibniz en 1673. El
aparato se basó en la Pascalina, mientras opera usa un cilindro
de dientes (la rueda de Leibniz). Aunque el aparato podía
ejecutar multiplicación y división, padeció de problemas de
fiabilidad que disminuyeron su utilidad.
El jugador de ajedrez En 1769 el Jugador de Ajedrez Automático fue inventado por el
automático Barón Empellen, un noble húngaro. El aparato y sus secretos
se le atribuyeron a Johann Nepomuk Maelzel, un inventor de
instrumentos musicales, quien recorrió Europa y los Estados
Unidos con el aparato a finales de 1700 y principios de 1800.
Pretendió ser una máquina pura, el Autómata incluía un
jugador de ajedrez "robótico". El “Automatón” era una
sensación dondequiera que iba, pero tenía muchos retractores,
incluso el famoso Edgar Allan Poe, ha escrito críticas
detalladas diciendo que este era una "máquina pura". En
cambio, generalmente, siempre se creyó que el aparato fue
operado por un humano oculto en el armario debajo del tablero
de ajedrez. El Autómata se destruyó en un incendio en 1856.
La máquina lógica Se inventó la primera máquina lógica en 1777 por Charles
Mahon, el Conde de Stanhope. El "demostrador lógico" era un
aparato tamaño bolsillo que resolvía silogismos tradicionales y
preguntas elementales de probabilidad. Mahon es el precursor
de los componentes lógicos en los computadores modernas.

Facultad de Ingeniería Electrónica y Telecomunicaciones


10 Universidad del Cauca

Jacquard Loom El "Jacquard Loom" se inventó en 1804 por Joseph-Marie


Jacquard. Inspirado por instrumentos musicales que se
programaban usando papel agujereados, la máquina se
parecía a una atadura del telar que se podría controlar
automáticamente usando una línea tarjetas agujereadas. La
idea de Jacquard, que revolucionó el hilar de seda formaría la
base de muchos aparatos de la informática e idiomas de la
programación.

Calculadoras de La primera calculadora de producción masiva se distribuyó,


producción masiva empezando en 1820 por Charles Thomas de Colmar.
Originalmente se les vendió a casas del seguro parisienses. El
"aritmómetro" de Colmar operaba usando una variación de la
rueda de Leibniz. Más de mil aritnómetros se vendieron y
eventualmente recibió una medalla en la Exhibición
Internacional en Londres en 1862.
Máquina diferencial En 1822 Charles Babbage completó su diseño de la "Máquina
Diferencial" una máquina que se puede usar para ejecutar
cálculos de tablas simples. La máquina Diferencial era un
ensamble complejo de ruedas, engranajes y remaches. Fue la
misión de la vida para Babbage diseñar su "Artefacto
Analítico," un aparato de propósito general que era capaz de
ejecutar cualquier tipo de calculo matemático. Los diseños del
artefacto analítico eran la primera conceptualización clara de
una máquina que podría ejecutar el tipo de operaciones que
ahora se consideran el corazón de informática. Babbage
nunca construyó su artefacto analítico, pero su plan influyó en
el desarrollo de los computadores digitales modernos. Se
construyó el artefacto analítico finalmente por un equipo de
ingenieros en 1989, cien años después de la muerte de
Babbage en 1871. Por su discernimiento Babbage hoy se
considera como el "Padre de los Computadores Modernos".
Tabla 1:Historia de la Informática 500 a.C. - 1822 D.C.

1.1.2. 1823 - 1936


Durante este tiempo, muchas culturas del mundo fueron avanzando desde
sociedades basadas en la agricultura a sociedades basadas en la industria.
Con estos cambios vinieron los avances matemáticos y en ingeniería, los
cuales hicieron posible máquinas electrónicas que pueden resolver
argumentos lógicos complejos. Comenzando con la publicación de “Boolean
Algebra” (Álgebra Boole) de George Boole y terminando con la fabricación
del modelo de la “Máquina de Turíng” para máquinas lógicas, este período
fue muy próspero para los computadores. En esta etapa se encuentran
avances como:

Facultad de Ingeniería Electrónica y Telecomunicaciones


11 Universidad del Cauca

Instrumento Descripción
Álgebra de Boole En 1854 el desarrollo del Algebra de Boole fue publicado por el
matemático Inglés George S. Boole. El sistema de Boole redujo
argumentos lógicos a permutaciones de tres operadores básicos
algebraicos: "y", "o" y "'no". A causa del desarrollo del Álgebra de
Boole, Boole es considerado por muchos el padre de la teoría de la
información.
Máquina lógica de En 1869 la primera máquina lógica en usar el Álgebra de Boole para
Boole resolver problemas más rápido que los humanos, fue inventada por
William Stanley Jevons. La máquina llamada, el Piano Lógico, usó
un alfabeto de cuatro términos lógicos para resolver silogismos
complicados.
Calculadora guiada En 1885 la primera calculadora guiada por teclas, se inventó por
por teclas Dorr Eugene Felt. Para preservar la expansión del modelo del
aparato, llamado el "Comptómetro", Felt compró cajas de
macarrones para albergar los aparatos. Dentro de los siguientes
dos años Felt vendió ocho de ellos al New York Weather Bureau y
el U.S. Tresury. Se usó el aparato principalmente para la
contabilidad, pero muchos de ellos fueron usados por la U.S. Navy
en programas de ingeniería y era probablemente la máquina de
contabilidad más popular en el mundo en esa época.
Sistema de tarjetas En 1886 la primera máquina tabuladora en usar una tarjeta
agujeradas agujerada de entrada del datos fue inventado por Dr. Herman
Hollerith. Fue desarrollada por Hollerith para usarla en clasificar en
1890 el censo en U.S., en que se clasificó una población de
62,979,766. Su diseño dejó que un operador apuntara un indicador
en una matriz de agujeros, después de lo cual se picaría en una
tarjeta pálida un agujero al inverso de la máquina. Después del
censo Hollerith fundó la Compañía de las Máquinas de Tabulación.
Posteriormente se fusiona con otras compañías y llegó a ser lo que
hoy se conoce como la “International Bussines Machine” (IBM).
Máquina de En 1893 la primera máquina exitosa de multiplicación automática se
multiplicar desarrolló por Otto Steiger. "El Millonario" como se le conocía,
automatizó la invención de Leibniz de 1673, y fue fabricado por
Hans W. Egli de Zurich. Originalmente hecha para negocios, la
ciencia halló inmediatamente un uso para el aparato y varios miles
de ellos se vendieron en los cuarenta años siguientes.
Tubo de vacío En 1906 el primer tubo de vacío fue inventado por un inventor
americano, Lee De Forest. "El Audion", como se llamaba, tenía tres
elementos dentro de una bombilla del vidrio evacuada. Los
elementos eran capaces de hallar y amplificar señales de radio
recibidas de una antena. El tubo de vacío encontraría uso en varias
generaciones tempranas de computadores, a comienzos de 1930.
Flip-flop En 1919 el primer circuito multivibrador biestable (o flip-flop) fue
desarrollado por inventores americanos W.H. Eccles y F.W. Jordan.
El flip-flop permitió que un circuito tuviera uno de dos estados
estables, que son intercambiables. Formó la base para el
almacenamiento del bit binario, estructura de los computadores de
hoy.
Computador En 1931 el primer computador capaz de resolver ecuaciones

Facultad de Ingeniería Electrónica y Telecomunicaciones


12 Universidad del Cauca

analógico (para diferenciales analógicas fue desarrollada por el Dr. Vannevar Bush
ecuaciones y su grupo de investigación en MIT. "El Analizador Diferencial",
diferenciales) como se llamaba, usaba engranajes diferenciales que rodaban a
través de motores eléctricos. Los grados de rotación de los
engranajes se interpretaron como cantidades. Los cálculos se
estaban limitados por la precisión de los ángulos en los pasos de
los motores.
Programa mecánico En 1933 el primer programa mecánico fue diseñado por Wallace J.
Eckert. El programa controló las funciones de dos de las máquinas
analógicas al unísono y operadas por un cable. Los trabajos de
Eckert sembraron la fundación para las investigaciones informático-
científica de la Universidad de Columbia.
Máquina lógica En 1936 el primer modelo general de máquinas lógicas fue
desarrollado por Alan M. Turing. El documento se título: "En
Números calculables," se publicó en 1937 en la Sociedad de
Procedimientos Matemáticos de Londres y describió las limitaciones
de un computador hipotético. Los números calculables eran esos
números que eran números reales, capaz de ser calculados a
través de lo finito.
Tabla 2: Historia de la Informática 1823 - 1936

1.1.3. 1937 - 1949


Durante la segunda guerra mundial los estudios en computadores fueron de
interés nacional. Un ejemplo de ello es el "Coloso", la contra Inglesa a la
máquina Nazi de códigos, el "Enigma". Después de la guerra, el desarrollo
empezó su nido con tecnología eléctrica permitiendo un avance rápido en los
computadores. En esta etapa se encuentran avances como:

Instrumento Descripción
Las funciones de En 1937 Claude F. Shannon realizó el primer paralelo entre la
cambio Lógica de Boole y las funciones de cambió de los circuitos.
Shannon siguió desarrollando sus teorías acerca de la eficacia
de la información comunicativa. En 1948 formalizó estas ideas
en su "teoría de la información," que cuenta con la Lógica de
Boole.
Electrónica digital En 1939 el primer computador electrónico digital se desarrolló en
la Universidad del Estado de Iowa por Dr. John V. Atanasoff y
Clifford Berry. El prototipo se llamó el Atanasoff Berry Computer
(ABC), fue la primera máquina en hacer uso de tubos de vacío
como los circuitos de la lógica.
Computador En 1941 el primer controlador para computador de propósito
programable general usado se construyó por Konrad Zuse y Helmut Schreyer.
El "Z-3," como se llamó, usaba relees electromagnéticos y era
programada usando películas agujereadas. Su sucesor, el "Z-4,"
fue contrabandeado fuera de Berlín cuando Zuse escapo de los
Nazis en Marzo de 1945.
Electrónica inglesa En el diciembre de 1943 se desarrolló la primera calculadora
inglesa electrónica para criptoanálisis. "El Coloso," como se
llamaba, se desarrolló como una contraparte al Enigma, la

Facultad de Ingeniería Electrónica y Telecomunicaciones


13 Universidad del Cauca

máquina de codificación alemana. Entre su diseñadores


estaban Alan M. Turing, diseñador de la Máquina Turing, quien
había escapado de los Nazis unos años antes. El Coloso tenía
cinco procesadores, cada uno podría operar a 5,000 caracteres
por segundo. Por usar registros especiales y un reloj interior, los
procesadores podrían operar en paralelo (simultáneamente),
esta le daba al Coloso una rapidez promedio de 25,000
caracteres por segundo. Esta gran rapidez era esencial en el
esfuerzo del desciframiento de códigos durante la guerra. El
plan del Coloso era quedar como información secreta hasta
muchos años después de la guerra.
MARK I (ASCC) En 1944, el primer programa controlador americano para un
computador fue desarrollado por Howard Hathaway Aiken. La
"Calculadora Automática Controlada por Secuencia (ASCC)
MARK I," como se llamaba, fue una mejora de los planes de
Charles Babbage de la máquina analítica, de cien años antes.
Cintas de papel agujereados llevaban las instrucciones. El
MARK I midió cincuenta pies de largo y ocho pies de alto, con
casi quinientas millas de instalación eléctrica, y se usó en la
Universidad de Harvard por 15 años.
El primer error de un El 9 de septiembre de 1945 a las 3: 45 p.m., el primer caso real
computador (bug) de un error que causa un malfuncionamiento en un computador
fue documentado por los diseñadores del Mark II. El Mark II,
sucesor al MARK I que se construyó en 1944, experimentó un
fallo. Cuando los investigadores abrieron la caja, hallaron una
polilla. Se piensa que fue el origen del término "bug" que
significa insecto o polilla en inglés.
El ENIAC En 1946 el primer computador electrónico digital a gran escala
que llegó a ser operacional fue el ENIAC (Electronic Numeric
Integrate and Calculator), usó un sistema de interruptores
montados externamente y enchufes para programarlo. El
instrumento fue construido por J. Presper Eckert Hijo y John
Mauchly. La patente por el ENIAC no fue aceptada, de cualquier
modo, cuando se juzgó que se derivó de una máquina del
prototipo diseñada por el Dr John Vincent Atanasoff, quien
también ayudó a crear el computador Atanasoff-Berry. Se
publicó el trabajo este año que detalla el concepto de un
programa almacenado. En 1952 fue inventado el sucesor del
ENIAC, el EDVAC.
El transistor En 1947 se inventó la primera resistencia de traslado, (transistor)
en Laboratorios Bell por John Bardeen, Walter H. Brattain, y
William Shockley. Los diseñadores recibieron el Premio Nobel
en 1956 por su trabajo. El transistor es un componente pequeño
que regula el flujo eléctrico presente. El uso de transistores
como interruptores permitieron a los computadores llegar a ser
mucho más pequeñas y subsiguientemente llevó al desarrollo de
la tecnología de la "microelectrónica".
El computador "Guarda En 1948 el primer computador de programas almacenados se
Programas" desarrolló en la Universidad Manchester por F.C . y Williams T.
Kilburn. El "Manchester Mark I", como se llamaba, se construyó
para probar un tuvo CRT de memoria, inventada por Williams.
Un computador a gran escala de programas almacenados se
desarrolló un año más tarde (EDSAC) por un equipo

Facultad de Ingeniería Electrónica y Telecomunicaciones


14 Universidad del Cauca

encabezado por Maurice V. Wilkes.


Memoria En 1949 la primera memoria fue desarrollada por Jay Forrester.
Empezando en 1953, la memoria, que constó de una reja de
anillos magnéticos en alambre interconectados, reemplazó los
no confiables tubos al vacío como la forma predominante de
memoria por los próximos diez años.

Tabla 3 : Historia de la Informática 1937 - 1949

1.1.4. 1950 - 1962


Desde 1950 hasta 1962, numerosos desarrollos avanzaron la tecnología de
los computadores. Una vez que la tecnología electrónica fue aplicada a las
máquinas de computo, los computadores pudieron llegar mucho más lejos de
lo establecido en sus habilidades previas. Guiadas por el modelo de Turing
para máquinas lógicas los estudiosos de los computadores integraron la
lógica en sus máquinas. Los programadores fueron capaces de explotar
estas utilidades mucho mejor una vez que los primeros lenguajes de
programación como COBOL, fueron inventados. En esta etapa se
encuentran avances como:

Instrumento Descripción
Computador En 1950 el primer computador interactivo en tiempo real, fue completado
Interactivo por un plan de diseño en MIT. El "Computador de Torbellino" como se
llamaba, fue creada para proyectos en el desarrollo de un simulador de
vuelo por la U.S. Navy. El Torbellino usó un tubo de rayos catódicos y una
pistola de la luz para proveer interactividad. El Torbellino se conectaba a
una serie de radares y podría identificar un avión poco amistoso e
interceptores a su posición proyectada. Este sería el prototipo para una
red de computadores y sitios de radar (SAGE) como un elemento
importante de la defensa aérea de EUA por un cuarto de siglo después de
1958.
UNIVAC En 1951 se entregó el primer computador comercialmente disponible al
Escritorio del Censo por el Eckert Mauchly Corporación. El UNIVAC
(Universal Automatic Computer o Computador Universal Automático) fue
el primer computador que no estaba disponible sólo para laboratorios. El
UNIVAC llegó a ser casera en 1952 cuando se televisó en un reportaje de
noticias para proyectar el ganador del Eisenhower-Stevenson raza
presidencial con exactitud estupenda. Ese mismo año Maurice V. Wilkes
(diseñador de EDSAC) creó los conceptos fundamentales de
microprogramación, que serían el modelo básico a seguir por parte de los
diseñadores y constructores de computadores.
Circuito En 1958 el primer circuito integrado se construyó por Jack S. Kilby. Se
Integrado hizo de varios elementos individuales de silicona congregados. El
concepto proveyó la creación del circuito integrado, que dejó grandes
adelantos en la tecnología microelectrónica. También ese año, vino el
desarrollo de un lenguaje de programación llamado LISP (Procesador de
Lista), para permitir la investigación en inteligencia artificial (IA).

Facultad de Ingeniería Electrónica y Telecomunicaciones


15 Universidad del Cauca

COBOL En 1960 el primer lenguaje de programación de alto nivel transportable


entre modelos diferentes de computadores se desarrolló por un grupo en
el departamento de defensa de los Estados Unidos, patrocinado en la
Universidad de Pennsylvania. El lenguaje era COBOL (Comun Bussines
Languaje o Lenguaje Común Orientada al Negocio ) y uno de los
miembros del equipo de desarrollo era Grace Hopper (quien también
escribió el primer programa recopilador práctico). También se introdujo
este año el primer láser, por Theodore H. Maiman en los Laboratorios de
Investigación de Hughes. El láser (amplificación ligera por estimuló de
emisión de radiación) podría emitir luz coherente de un cristal de rubí
sintético.
Cuaderno En 1962 los primeros programas gráficos que dejan que el usuario
Gráfico dibujara interactivamente en una pantalla fueron desarrollados por Ivan
Sutherland en MIT. El programa, llamado "Sketchpad," usó una pistola de
luz para la entrada de gráficos en una pantalla CRT.
Tabla 4: Historia de la Informática 1950 - 1962

1.1.5. 1963 - 1971


Una vez que el primer minicomputador fue construido en 1963, y luego que el
supercomputador triunfo en el campo de los negocios en 1964, se inició la
revolución de los computadores. Esta revolución se llevó a cabo junto con
otros sucesos importantes como la creación de cables de fibra óptica, el
desarrollo de los semiconductores, el rayo láser y las bases de datos
relaciónales. Doce años después el computador llegó a los hogares y se
inició el uso masivo del mismo como soporte a una amplia gama de
actividades humanas, como por ejemplo, en el trabajo, en el estudio y en la
recreación. En esta etapa se encuentran avances como:

Instrumento Descripción
El minicomputador En 1963 el primer minicomputador comercialmente exitoso
fue distribuido por la Corporación de Equipos Digitales (DEC).
El DEC PDP-8 fue el sucesor del PDP-1, el primer
computador desarrollado por DEC en 1959. El
minicomputador se convirtió en un elemento importante para
las empresas comerciales y en el desarrollo de la ciencia y de
la informática universitaria. La distribución del
minicomputador de 12-bits PDP-8 abrió las puertas del
comercio del minicomputador a otros computadores.
Sistema IBM 360 En 1964 la familia de computadores del Sistema/360 fue
lanzada por IBM. El Sistema/260 reemplazó los transistores
con circuitos integrados o tecnología de lógica sólida. Se
vendieron más de treinta mil unidades, y una nueva era en
tecnología de computadores empezó. Un mes después de
lanzar el Sistema/360, se corrió el primer programa BASIC en
la Universidad de Dartmouth por su inventores, Tomás Kurtz
y John Kemeny. BASIC sería el lenguaje introductorio a una
generación entera de usuarios de los computadores.

Facultad de Ingeniería Electrónica y Telecomunicaciones


16 Universidad del Cauca

Supercomputador En 1964 el primer supercomputador que estuvo


comercialmente disponible fue llamada CDC 6600, tenía
varios bancos de datos y este quedaría como el computador
más poderosa por muchos años después de su desarrollo.
El programa de ajedrez En 1967 los primeros programas exitosos de ajedrez fueron
desarrollados por Richard Greenblatt en MIT. El programa,
llamado MacHack, fue presentado en un torneo de ajedrez a
la categoría del novicio y ganó. El desarrollo futuro de
tecnología de la inteligencia artificial (IA) era contar
pesadamente en tales software de juego.
Minicomputador de 16-bit En 1969, el primer minicomputador de 16-bits fue distribuido
por Data General Corporation. El computador llamado Nova,
fue una mejora en velocidad y poder sobre los
minicomputadores de 12-bits, PDP-8.
Fibra óptica En 1970 el primer cable de fibra óptica fue comercialmente
producido por Corning Glass Works Inc. Los cables de fibra
óptica de vidrio permitieron que una mayor cantidad de datos
se transmitieran por ellos de manera más rápida que por
alambres o cables convencionales. El mismo año los
circuitos ópticos fueron mejorados por el desarrollo del primer
láser semiconductor.
Base de datos relacional En 1970 el primer modelo para el desarrollo de bases de
datos relacionales fue publicado por E.F. Codd. Una base de
datos relacional es un programa que organiza datos, graba y
consulta los mismos. La publicación de Codd se tituló "Un
modelo relacional de Datos para banco de datos grandes
compartidos", abrió un nuevo campo entero en desarrollo de
bases de datos.
Chip microprocesador En 1971 el primer chip microprocesador fue introducido por
Intel Corporation. El chip 4004 era un procesador 4-bit con
2250 transistores, capaz de casi el mismo poder como el
1946 ENIAC (que llenó un cuarto grande y tenía 18,000 tubos
al vacío). El chip 4004 medía 1/ 6-pulgadas de largo por 1/ 8-
pulgadas de ancho.
Computador personal En 1971 se construyó el primer computador personal y fue
distribuido por John Blankenbaker. El computador llamado
Kenbak-1, tenía una capacidad de memoria de 256 bytes,
desplegaba datos como un juego de LED pestañeantes y era
tedioso programarlo. Aunque sólo se vendieron 40
computadores Kenbak-1 (a un precio de $750), introdujo la
revolución del computador personal.
Tabla 5: Historia de la Informática 1963 - 1971

1.1.6. 1972 - 1989


Una vez que el computador personal (PC en inglés) fue llegando a los
hogares, la revolución del PC comenzó. La competencia de los mercados
entre manufactureros como IBM y Apple Computer avanzaron rápidamente
en el campo. Por primera vez la habilidad de cálculos de alta calidad,

Facultad de Ingeniería Electrónica y Telecomunicaciones


17 Universidad del Cauca

estaba en la casa de cientos de miles de personas. Los computadores


finalmente se convirtieron en herramientas de la gente común. En esta etapa
se inventaron las siguientes:

Instrumento Descripción
Altair En enero de 1975 Micro Instrumentation Telemetry Systems (MITS)
introdujeron el Altair, un minicomputador personal. El Altair era barato
($350), permitía el almacenamiento de la memoria, llevó el
microprocesador de 8-bits Intel 8080. Cuando se actualizó el computador
con 4 kilobytes de expansión de memoria, Paul Allen y Bill Gates (más
tarde socios de Microsoft Corporation) desarrollaron una versión de BASIC
como un lenguaje de programación para computadores.
Computadores En 1977, Commodore, Apple Computer, y Tandy distribuyeron el primer
personales computador personal ensamblado. Dentro de unos años el PC había
llegado a ser un pedazo de la vida personal de cada uno de sus usuarios,
y aparecería pronto en bibliotecas públicas, escuelas, y lugares de
negocio. Fue también durante este año que apareció la primera red de
área local comercialmente disponible (LAN), desarrollada por Datapoint
Corporation, llamada ARCnet.
Procesador En 1980 el primer prototipo de Computador con Instrucciones Reducidas
RISC (RISC) fue desarrollado por un grupo de investigación en IBM. El
minicomputador 801 usó un juego simple de instrucciones de lenguaje
máquina, que puede procesar un programa muy rápido (usualmente
dentro de un ciclo de máquina). Varios vendedores mayoritarios
actualmente ofrecen computadores RISC. Se cree que el RISC es el
futuro formato de los procesadores, debido a su rapidez y eficacia.
Microprocesad En 1980 se desarrolló el primer microprocesador de 32-bit en un solo chip
or de 32-bit en Laboratorios Bell. El chip, llamado el Bellmac-32, proporcionó un mejor
poder computacional sobre los procesadores anteriores de 16-bit.
IBM PC-XT En 1981 la revolución de los computadores personales ganó impulso
cuando IBM introdujo su primer computador personal. La principal fuerza
que dio reputación a IBM fue la de hacer que los PC se usaran
masivamente. El primer IBM PC, era un sistema basado de un floppy el
cual usó el microprocesador 8088 de Intel. Las unidades originales tenían
pantallas de sólo texto, los gráficos verdaderos eran una alternativa que
llegó más tarde. Se limitó la también memoria, típicamente sólo 128K, o
256K de RAM. La máquina usó un sistema operativo conocido como DOS
(Disk Operating System o Sistema Operativo de Disco), un sistema de
línea de comandos similar a los más antiguos sistemas CP/M. IBM más
tarde lanzó el IBM PC/ XT. Esta era una máquina extendida que añadió
una unidad de discos duros y gráficos CGA. Mientras la máquina llegó a
ser popular, otras compañías empezaron a lanzar imitaciones del IBM PC.
Estos tempranos "clones" se distinguieron por incompatibilidades debido a
su incapacidad a reproducir debidamente el IBM BIOS. Se
comercializaron normalmente como "90% compatible". Se superaría Este
problema pronto y la competencia serviría para empujar la tecnología y
precios mas bajos.
Procesamiento En 1981 el primer computador comercial de proceso en paralelo fue
paralelo distribuido por BBN Computers Advanced Inc. El computador llamado la
"Mariposa", era capaz de asignarles a partes de un programa hasta 256
diferentes procesadores, en consecuencia de esto la velocidad del
proceso y la eficacia se incrementaron.

Facultad de Ingeniería Electrónica y Telecomunicaciones


18 Universidad del Cauca

Macintosh En 1984 el primer Macintosh personal computer fue distribuido por Apple
Computer Inc. El Macintosh, el cual tenía una capacidad de lmemoria de
128KB, integró un monitor y un ratón, fue el primer computador en
legitimar la interfaz gráfica. La interface de Mac era similar a un sistema
explorado por Xerox PARC. En lugar de usar una interface de línea de
comando que era la norma en otras máquinas, el MacOS presentó a los
usuarios "iconos" gráficos, sobre las ventanas gráficas, y menúes
deslizantes. El Macintosh era un riesgo significativo para Apple porque el
nuevo sistema era incompatible con cualquiera otro tipo de software, o su
propia Apple, o el IBM PC línea. Se desestimó por memoria limitada y la
falta de una unidad de discos duros. La máquina pronto llegó a ser una
norma para artistas gráficos y publicistas, esto permitió que la máquina
creciera en una plataforma más establecida.
IBM PC-AT En 1984 IBM distribuyó el IBM PC-AT, el primer computador que usaba el
chip microprocesador Intel 80286. La serie Intel 80x86 adelantó el poder
del procesador y la flexibilidad de los computadores IBM. IBM introdujo
varios cambios en esta nueva línea. Se introdujo un sistema gráfico
nuevo, EGA, permitió manipular 16 colores de gráficos a resoluciones más
altas (CGA, el sistema más antiguo que sólo tenía cuatro colores). La
máquina también incorporó un bus de datos de 16-bit, y mejor que el de 8-
bits del XT. Esto permitió la creación de tarjetas de expansión más
sofisticadas. Otra mejora incluyeron un teclado extendido, un mejor
suministro de energía y una caja del sistema más grande.
Tabla 6: Historia de la Informática 1972 – 1989

1.1.7. 1990 - Presente


Para este tiempo los computadores han sido adaptadas a casi todo aspecto
de la vida moderna. Desde controlar motores de automóviles hasta comprar
en los supermercados. Cada vez aparecen máquinas más rápidas y nuevas.
Esto hace que las casas de software tomen ventaja de estas nuevas
máquinas. En esta etapa se han inventado las siguientes:

Instrumento Descripción
Computadores En 1990 se construyó el primer procesador óptico en los laboratorios Bell
ópticos de AT&T. El procesador emplea pequeños, semi-conductores láser para
llevar información y circuitos ópticos que procesan la información. Usar
luz, en lugar de electricidad, para llevar datos podía teóricamente hacer
los computadores miles de veces más rápidos.
Interruptor de En 1991 la primera demostración de un interruptor quántico se dio en el
un solo átomo movimiento de un átomo, se dio a conocer en IBM Almaden Research
Center. Un átomo Xenon se colocó en una superficie cristalina, el cual
puede ser observado por microscopio. Reemplazar interruptores
electrónicos con interruptores atómicos podía hacer tales interruptores un
milésimo de su tamaño del presente.
Virus Miguel Temprano en 1992 un virus fue descubierto, el cual estaba programado
Angel para activarse el 6 de marzo, el cumpleaños de Miguel Angel. Se esperó
que el virus extendido dañara o destruyera archivos de usuario en la
unidad de disco duro. Recibió una cobertura de las noticias nunca visto,

Facultad de Ingeniería Electrónica y Telecomunicaciones


19 Universidad del Cauca

advirtió a las personas sobre la necesidad de proteger sus sistemas de los


ataques informáticos. Aunque se diseñó el virus para ser destructivo,
realmente tenía un efecto positivo. Las noticias alertaron a personas
sobre los peligros de los virus, y se informó a ellos de precauciones para
proteger sus sistemas..
Nuevos En 1992 varios microprocesadores nuevos estuvieron disponibles los
microprocesad cuales mejorarían dramáticamente el desempeño de los computadores de
ores escritorio. El Intel 80486 llegó a ser la norma nueva para las PC sistemas
y Motorola 68040 permitieron proveer de ahorro de energía a los
computadores. Procesadores más nuevos como el Pentium, i860, y el
chip PowerPC RISC ofreció más ganancias en energía del proceso y
rapidez. Existen hoy en día procesadores que corren a grandes
velocidades (1 GHZ). Cada año aparece un nuevo procesador más rápido
y potente.
Nuevos 1992 fue el año del estampido para los sistemas operativos nuevos. En
sistemas abril Microsoft S.A. lanzó Windows v3.1. Otros programas nuevos
operativos incluyen IBM OS/ 2 v2.0, y Apple System 7.1. Todas las versiones nuevas
fueron una versión revisada de sistemas más viejos. Agregaron cosas
como tipos de letra y mejoramiento de vídeo. Hoy en día existen S.O. que
permiten trabajar el hardware de la máquina de manera extendida (simular
un hardware mas potente que el que existe realmente) y proveen gran
versatilidad en el manejo de aplicaciones y redes de computadores para la
comunicación de datos.
Miniaturización Los avances en tecnología de la miniaturización han alentado a los
fabricantes de computadores a suministrar máquinas de la calidad más
alta en conjuntos más pequeños. El poder de proceso, el cual hace veinte
años habría ocupado un cuarto entero, hoy día se puede llevar en un
computador del tamaño de una libreta que pesa sólo seis o siete libras.
Palmtop, lo bastante pequeña como para encajar en un bolsillo, tiene más
rapidez y poder que los supercomputadores de los 1950.
Redes Redes de Area Local, o LANs, están entre las técnicas más rápidas
desarrolladas para comunicación entre las oficinas hoy día.
Recientemente, los avances en tecnología LAN se han incluido para la
comunicación de computadores con luces infrarojas y ondas de radio.
Estos sistemas inalámbricos permiten a los LAN ser usados sin instalar
cable y permitir a los LAN ser personalizados fácilmente e ingresar mas
estaciones sin cables.
Guardado de Entre los muchos adelantos recientes para tecnología del computador se
información encuentran los sistemas de almacenamiento de la información de las
máquinas modernas. Los diferentes tipos de disquetes los cuales alguna
vez mantuvieron 128 kilobytes de información, ahora pueden guardar 12
megabytes de información. Adelantos tal como "flóptical" que usa
sincronización del láser de los discos del floppy mejorar la capacidad de
almacenamiento en capacidades inimaginables. Los CD-ROM, capaces
de guardar 500 megabytes de información, llegaran a ser miniaturizados
mientras los discos más pequeños podrán retener más información.
Tabla 7: Historia del Informática 1990 - Presente

Facultad de Ingeniería Electrónica y Telecomunicaciones


20 Universidad del Cauca

1.2. Conclusiones
La historia de los computadores está ligada al deseo del hombre de inventar
herramientas que simplifiquen su trabajo, para el caso de los computadores
se deseaba simplificar las operaciones matemáticas en un inicio y
posteriormente a través del tiempo, se comenzó a depender de los
computadores debido a los beneficios específicos del manejo de todo tipo de
información y en este tiempo de su capacidad de comunicación.

Los diseños de los computadores modernos no difieren mucho de los


principales precursores de los computadores, como lo fueron los trabajos de
Babbage, Jaquard, Turing etc. Pero sólo hasta el siglo XX se desarrollaron
los grandes avances tecnológicos basados en estas ideas, esto se debió en
gran parte a la necesidad de mejorar las estrategias de guerra, mercados, el
comercio y hoy en día la comunicación de la información y el manejo del
conocimiento.

Hoy en día aún no existen limitaciones importantes en los dispositivos


hardware y las aplicaciones software de los computadores, sólo la
imaginación y la necesidad del hombre pueden establecerlos.

Facultad de Ingeniería Electrónica y Telecomunicaciones


Capitulo 2

Introducción a la Lógica de
Computadores

Introducción:

Uno de los principales componentes que se deben tener en cuenta para


entender el funcionamiento de los computadores y la forma de trabajar es la
lógica interna de la que están constituidos, como la lógica de proposiciones,
leyes del álgebra de boole, sistemas de representación de la información y
las compuertas lógicas. De esta forma se podrá entender de manera más
precisa y consciente cada una de las operaciones que realiza el computador,
su naturaleza y el por qué de su sistema de decisión único 1 ó 0.
22 Universidad del Cauca

2.1. LÓGICA DE PROPOSICIONES

2.1.1. Introducción

Teniendo en mente que queremos presentar los sistemas deductivos de la


lógica como una herramienta práctica para los informáticos, vamos a
introducirnos en el estudio de la lógica comenzando por la más simple, la
lógica de proposiciones, que corresponde a la lógica que simboliza y
describe razonamientos basados en enunciados declarativos.

Proposiciones
Formalmente, se define una proposición como un enunciado declarativo que
puede ser verdadero o falso, pero no ambos a la vez. Las proposiciones se
representan mediante variables proposicionales simbolizadas mediante
letras. Con la combinación de variables proposicionales y conjunciones se
obtienen fórmulas senténciales o sentencias. Estas pueden ser:

x Tautología: es la sentencia que es verdadera.


x Contradicción: es la sentencia que es falsa.
x Indeterminación: es la sentencia que ni es verdadera ni falsa.

Ejemplo:
Dada la siguiente proposición: p = “El día esta soleado”, determinar si es
verdadero o falso.

Respuesta: La proposición dada tendrá dos posibles valores: verdadero si en


verdad el día actual es soleado pero si esta nublado el valor de la
proposición será falso.

2.1.2. Lenguaje Proposicional

Sintaxis
El primer paso en el estudio de un lenguaje es definir los símbolos básicos
que lo constituyen (alfabeto) y cómo se combinan para formar sentencias.
Está constituido por:

x Símbolos de veracidad: V para verdadero y F para falso.


x Símbolos de variables: p, q, r, s, ...

Facultad de Ingeniería Electrónica y Telecomunicaciones


23 Universidad del Cauca

x Símbolos de conectivas: NO, Y, O, O ... O, SI ... ENTONCES, ... SI Y


SOLO SI .... Comúnmente los símbolos más utilizados son las partículas
inglesas NOT, AND, OR, XOR, IF .. THEN, ==> respectivamente. Para
evitar confusiones con el leguaje de este libro se utilizaran la
representación de estas últimas.
x Símbolos de puntuación: (,), para evitar ambigüedades.

Reglas de formación
Las clases de sentencias bien formadas se definen por reglas puramente
sintácticas, llamadas reglas de formación y que son:

x Una variable proposicional es una sentencia bien formada.


x Una sentencia bien formada precedida de la negación es una sentencia
bien formada.
x Dos sentencias bien formadas unidas por una de las partículas conectivas
binarias constituye una sentencia bien formada.
x Se pueden omitir los paréntesis que encierran una sentencia completa.
x El estilo tipográfico de los paréntesis se puede variar para hacerlos más
evidentes usando corchetes y llaves.
x A las conjunciones (Y) y disyunciones (O) se les puede permitir tener más
de dos argumentos.

Conectivas
Las conectivas se dividen por su aplicación en:

x Singulares: se aplican a una única sentencia.


x Binarias: se aplican a dos sentencias.

Por su definición, también se pueden dividir en:

x Primitivas: las variables proposicionales, los paréntesis y las conectivas


OR y NOT.
x Definidas: las conectivas AND, IF ... THEN, ... ==> ... y XOR.

Tablas de verdad
La tabla de verdad de una sentencia es una tabla en la que se presentan
todas las posibles interpretaciones de las variables proposicionales que
constituyen la sentencia y el valor de verdad de la sentencia para cada
interpretación.

Facultad de Ingeniería Electrónica y Telecomunicaciones


24 Universidad del Cauca

2.1.3. Semántica

Negación (NOT)
Consiste en cambiar el valor de verdad de una variable proposicional.
p NOT p
V F

Disyunción inclusiva (OR)


La sentencia será verdadera cuando una o ambas variables proposicionales
sean verdaderas.
p q p OR q
V V V
V F V
F V V
F F F

Conjunción (AND)
Es una conectiva definida por:

p AND q = NOT ( NOT p OR NOT q )

La sentencia será verdadera sólo cuando ambas variables proposicionales


sean verdaderas.
p q p OR q
V V V
V F F
F V F
F F F

Condicional (IF ... THEN O COND)

Es una conectiva definida por:

p COND q = NOT p OR q

La sentencia será verdadera cuando se cumpla:

si es válido p entonces el valor de la sentencia será el valor de q.

Facultad de Ingeniería Electrónica y Telecomunicaciones


25 Universidad del Cauca

p q p COND q
V V V
V F F
F V V
F F V

Bicondicional (... ==> ...)


Es una conectiva definida por:

p ==> q = ( ( p COND q ) Y ( Q COND p ) )

La sentencia será verdadera cuando ambas variables proposicionales sean


iguales.

p q p ==> q
V V V
V F F
F V F
F F V

Disyunción exclusiva (XOR)


Es una conectiva definida por:

p XOR q = NOT ( p ==> q )

La sentencia será verdadera sólo cuando una de las dos variables


proposicionales sea verdadera.

p q p XOR q
V V V
V F V
F V V
F F F

Ejemplos:
1) Dadas las siguientes proposiciones establecer el valor de verdad:
x Londres es la capital de España ( F)
x España es país y Colombia es país (V)
x La Tierra gira alrededor del Sol o el Sol Gira alrededor de la
Tierra y el cielo es azul (V)

Facultad de Ingeniería Electrónica y Telecomunicaciones


26 Universidad del Cauca

2) Pase las proposiciones anteriores a notación lógica:


p = Londres es la capital de España; q = España es país; r =
Colombia es país; s = La Tierra gira alrededor del Sol; t = el Sol
Gira alrededor de la Tierra; u = el cielo es azul;
Entonces:
x Los valores de verdad de las variables son: p = F; q = V; r =
V; s = V; t = F; u = V.
x P = F.
x p AND q = V AND V = V.
x s OR t AND u = V OR F AND V = V.

2.2. LEYES DEL ALGEBRA DE BOOLE

2.2.1. Introducción
Debido a que los computadores trabajan con información binaria, la
herramienta matemática adecuada para el análisis y diseño de su
funcionamiento es el Algebra de Boole. El Algebra de Boole fue desarrollada
inicialmente para el estudio de la lógica. En 1938 C.E. Shanon publicó un
libro llamado "Análisis simbólico de circuitos con relés", que establece los
primeros conceptos de la teoría actual de la conmutación, posteriormente se
produjeron numerosos trabajos en el Algebra de Boole para los
computadores digitales. Hoy en día, esta herramienta resulta fundamental
para el desarrollo de los computadores ya que, con su ayuda, el análisis y
síntesis de combinaciones complejas de circuitos lógicos puede realizarse
con rapidez y eficacia.

Definiciones básicas
Se comenzará el estudio del Algebra de Boole introduciendo el concepto de
clase. Se define como clase el total de los elementos que cumplen las
características definidas por un criterio de pertenencia. En general, una
subclase S de una clase dada C, es una clase cuyos elementos pertenecen a
la clase C. A su vez, la clase C podría ser una subclase de una clase más
amplia que contuviera todos los elementos de C juntos con otros elementos
distintos. E inversamente, la clase S puede contener sus propias subclases.
Una clase especialmente importante es la denominada clase de referencia o
clase universal, que es aquella que comprende todos los elementos bajo
estudio. Una vez definida la clase universal, se puede definir la clase
complementaria de una clase cualquiera A perteneciente a la universal, como
la clase que encierra a todos los elementos de la clase universal excepto
aquellos que están contenidos en la clase A. Finalmente, se define la clase
vacía como la clase complementaria de la clase universal. De acuerdo con la

Facultad de Ingeniería Electrónica y Telecomunicaciones


27 Universidad del Cauca

definición de clase universal, la clase vacía es aquella que no contiene


ningún elemento.

Diagramas de Venn
Los diagramas de Venn constituyen un sistema para representar
gráficamente las clases. Sus reglas básicas son las siguientes:

x La clase universal U se representa por un rectángulo.


x Una clase cualquiera A, perteneciente a la clase universal, se representa
mediante la superficie definida por una curva cerrada, dibujada en el
interior del rectángulo.
x Un elemento e de la clase A se representa por un punto dibujado en el
interior de la curva cerrada.
x La clase complementaria A' de la clase A se representa por la superficie
diferencia entre la de la clase universal U y la de la clase A.
x La clase vacía no tiene representación por medio de los diagramas de
Venn.
x La representación de varias clases pertenecientes a la misma clase
universal se realiza de la misma forma, es decir, dibujando en el interior
del rectángulo tantos círculos como clases distintas se deseen
representar.
x Las clases que tienen elementos comunes se representan mediante
círculos que se cortan entre sí. El área común define el subconjunto
formado por los elementos comunes a ambas clases. Si dos clases no
tienen ningún elemento en común, no habrá ningún punto de corte entre
sus dos diagramas.
x La representación de subclases de una clase dada se realiza dibujando
círculos en el interior de la clase.

Clase Universal U A’ Clase Complementaria

B C A Clase A

Elemento de Clase
D Subclase de A

Figura 1: Elementos del diagrama de Venn

Facultad de Ingeniería Electrónica y Telecomunicaciones


28 Universidad del Cauca

2.2.2. Operaciones
En esta sección se definirán las operaciones básicas del Algebra de Boole,
describiéndose a continuación su aplicación a los circuitos lógicos.

Unión o adición
La unión de dos clases A y B se define como la clase formada por todos los
elementos de la clase A, todos los elementos de la clase B, y ningún otro
elemento. La clase unión se representa mediante la simbología matemática:

A OR B

Otro operador que comúnmente se usa para representar la unión es el


operador se suma (+).

Intersección o producto
La intersección de dos clases A y B se define como la clase formada por
todos los elementos que pertenecen simultáneamente a las clases A y B. La
clase intersección se puede representar mediante los símbolos:

A AND B

Otro operador que comúnmente se usa para representar la intersección es el


operador se producto (x).

Complementación
La clase complementaria de una dada ya ha sido definida. Las notaciones
simbólicas empleadas para representar el complementario de A son: A' o
bien NOT A. Aquí se mencionarán dos propiedades importantes de la
complementación, que se pueden comprobar fácilmente:

x A + A' = U (clase universal)


x A x A' = 0 (clase vacía)

2.2.3. Leyes Fundamentales

Teoremas
x El resultado de aplicar cualquiera de las tres operaciones definidas a
variables del sistema booleano resulta en otra variable del sistema, y este
resultado es único.

Facultad de Ingeniería Electrónica y Telecomunicaciones


29 Universidad del Cauca

x Ley de idempotencia: A + A = A | A x A = A
x Ley de involución: (A')' = A
x Ley conmutativa: A + B = B + A | A x B = B x A
x Ley asociativa: A + (B + C) = (A + B) + C | A x (B x C) = (A x B) x C
x Ley distributiva: A + B x C = (A + B) x (A + C) | A x (B + C) = A x B +
AxC
x Ley de absorción: A + A x B = A | A x (A + B) = A
x Ley de De Morgan: (A + B)' = A' x B' | (A x B)' = A' + B'

Principio de dualidad
El concepto de dualidad permite formalizar este hecho: a toda relación o ley
lógica le corresponderá su dual, formado mediante el intercambio de los
operadores unión con los de intersección, y de los 1 con los 0.

Ejemplos:

# ADICION PRODUCTO
===============================================
1 A + A' = 1 A x A' = 0
2 A+0=A Ax1=A
3 A+1=1 Ax0=0
4 A+A=A AxA=A
5 A+B=B+A AxB=BxA
6 A + (B + C) = (A + B) + C A x (B x C) = (A x B) x C
7 A + B x C = (A + B) x (A + C) A x (B + C) = A x B + A x C
8 A+AxB=A A x (A + B) = A
9 (A + B)' = A' x B' (A x B)' = A' + B'

2.2.4. Aplicación A Circuitos Lógicos


Dado que los elementos de los circuitos utilizados en los computadores sólo
admiten dos estados, las clases y operaciones básicas del Álgebra de Boole
deberán particularizarse para este caso. Por tanto, habrá que aplicar un
Algebra de Boole de tipo binario, donde sólo existirán dos clases: la universal
que se representará por 1, y la vacía que se representará por 0. El estado de
un elemento del circuito lógico viene representado por una variable que sólo
puede tomar valores 0 o 1, que se corresponden con las dos clases posibles
en un Algebra de Boole binaria.

En el caso del álgebra binaria, las operaciones básicas del Álgebra de Boole
pueden describirse mediante las denominadas tablas de verdad, que

Facultad de Ingeniería Electrónica y Telecomunicaciones


30 Universidad del Cauca

agrupan en forma tabulada todas las combinaciones posibles de operandos,


con sus correspondientes resultados.

Adición B

A B A+B
1 1 1
1 0 1 Vcc A
0 1 1
0 0 0

Note que esta tabla se corresponde con en operador OR de capitulo anterior


de lógica de proposiciones.

Esta operación equivale a un circuito en paralelo con un interruptor en cada


hilo, donde al conectar cualquiera de ellos hay conducción en el circuito. El
interruptor posee dos posibles estados (abierto o cerrado) los cuales se le
puede aplicar el Álgebra de Boole. Para este caso cuando el interruptor esta
cerrado se representa como el 1 lógico y cuando el interruptor está abierto se
representa con el 0 lógico. El bombillo a su vez tiene dos posibles estados
(encendido = 1 o apagado = 0).

Producto

A B AxB A B
1 1 1
1 0 0 Vcc
0 1 0
0 0 0

Equivale a un circuito en serie donde existe dos interruptores en el mismo


hilo, de tal forma que sólo hay conducción cuando están cerrados ambos
interruptores. Los estados del circuito se explico anteriormente. La tabla se
corresponde con la función lógica AND.

Complementación
A

A A’ A’
Vcc
0 1
1 0

Facultad de Ingeniería Electrónica y Telecomunicaciones


31 Universidad del Cauca

Se representa bajo la forma de contactos complementarios de un mismo


interruptor, de modo que si uno está cerrado el complementario estará
abierto, y viceversa. En este caso no se valida el estado del bombillo sino el
estado de la posición del interruptor.

2.3. FUNCIONES LÓGICAS

2.3.1. Introducción

Una vez definidas las operaciones básicas en el Algebra de Boole binaria,


así como sus relaciones fundamentales, se avanza un paso más
estableciendo el concepto de función. Las funciones se utilizan para
describir el comportamiento de los circuitos lógicos empleados en los
computadores.

Concepto
Se define como función en el Algebra de Boole binaria o función lógica a todo
conjunto de variables relacionadas entre sí por cualquiera de las tres
operaciones básicas definidas anteriormente. De forma general, se
representará como:

f = f( A, B, C, ... )

El resultado de evaluar una función booleana es también una variable


booleana. A continuación se presentan dos teoremas de las funciones
booleanas:

LEY DE DE MORGAN GENERALIZADA


El complemento de una función booleana se obtiene complementando todas
las variables que intervienen en ella e intercambiando las operaciones
adición y producto. Esto puede expresarse simbólicamente de la forma:

[ f( A, B, C, ... , +, x ) ] ' = f( A', B', C', ... , x, + )

TEOREMA DE LA DESCOMPOSICIÓN DE FUNCIONES


Toda función puede descomponerse, con respecto a cualquiera de las
variables de las que depende, según la siguiente relación:

Facultad de Ingeniería Electrónica y Telecomunicaciones


32 Universidad del Cauca

f( A, B, C, ... ) = A x f( 1, B, C, ... ) + A' x f( 0, B, C, ... )

siendo f(1, B, C, ...) la función resultante de sustituir, en la función original,


todas las A por 1, y las A' por 0. El segundo término, f(0,B,C,...) es la función
resultante de sustituir las A por 0 y las A' por 1.

2.3.2. Funciones Lógicas Elementales y Secundarias


En el apartado 2.2.4 se detallaron las tablas de verdad de las operaciones
lógicas básicas, además con la correcta combinación de éstas se pueden
obtener unas funciones secundarias, las cuales se resumen en la siguiente
tabla:

Función Operación Salida Representación


Funciones lógicas Elementales
NOT Complementación. A'

OR adición lógica. A+B

AND producto lógico. AxB

Funciones lógicas Secundarias


NOR complementación (A + B)' = A' x B'
de la adición lógica.
A B A NOR B
0 0 1
0 1 0
1 0 0
1 1 0

NAND complementación (A x B)' = A' + B'


del producto lógico.
A B A NAND B
0 0 1
0 1 1
1 0 1
1 1 0

XOR O exclusiva (A + B) x (A x B)'

A B A XOR B
0 0 0
0 1 1
1 0 1
1 1 0

Facultad de Ingeniería Electrónica y Telecomunicaciones


33 Universidad del Cauca

XNOR Complementación ((A + B) x (A x B)') '


del XOR
A B A XNOR B
0 0 1
0 1 0
1 0 0
1 1 1

Tabla 8: Tabla de Funciones y Compuertas Lógicas básicas

2.3.3. Compuertas Lógicas


La representación de las funciones lógicas de la Tabla 8 se les denomina
compuertas lógicas, estos elementos se pueden conectar entre si para
formar circuitos lógicos más elaborados, los cuales integren más entradas y
salidas específicas. Como ejemplo tenemos es siguiente circuito lógico:

AND-OR-INVERT (AOI)
Su estructura contiene compuertas AND, OR y NOT.

La importancia de estas compuertas lógicas radica en que son los elementos


básicos de construcción de la mayoría de los circuitos lógicos. Cuando se va
a construir un circuito lógico o digital se utiliza una placa impresa con
espacios en los cuales se inserta un circuito integrado (CI) digital.

Facultad de Ingeniería Electrónica y Telecomunicaciones


34 Universidad del Cauca

2.3.4. Construcción de Circuitos Integrados


Usando las leyes y propiedades presentadas en el apartado 2.2.3, todo o
cualquier circuito puede ser representado usando exclusivamente funciones
NAND y NOR. La razón de esto es económica, por diversas razones
constructivas es más barato construir todos los circuitos integrados apenas
con un único tipo de circuito. A continuación se presentan algunos ejemplos
de este tipo de construcción de circuitos.

Inversor Compuerta AND

Compuerta OR
Ley de Morgan

Facultad de Ingeniería Electrónica y Telecomunicaciones


35 Universidad del Cauca

2.3.5. Ejemplos de Circuitos lógicos


1. Escriba la expresión lógica del circuito del esquema de abajo,
simplifique:

Respuesta:

Sería la compuerta XOR.

2. Encontrar la tabla de verdad del siguiente circuito:

A
B
C x

D=1

Respuesta: Lo primero que se debe hacer es identificar el número de


variables de entrada. Estas variables definirán el número de posibles
combinaciones lógicas de la siguiente manera:

2 ^(Número de variables). Entonces 2^3 = 8 posibles combinaciones,


puesto que D es una variable que mantiene su valor constante.

Facultad de Ingeniería Electrónica y Telecomunicaciones


36 Universidad del Cauca

A B C D X = (A’ x B x C) x (A + D)’
0 0 0 1 0
0 0 1 1 0
0 1 0 1 0
1 0 0 1 0
0 1 1 1 0
1 1 0 1 0
1 0 1 1 0
1 1 1 1 0

3. Encontrar la tabla de verdad del siguiente circuito:


B
C z

A
D

El circuito posee cuatro entradas, luego 2^4 = 16 posibles


combinaciones lógicas. Además se utilizan compuertas más
compuestas como la XNOR y la NOR.

B C A D Z = ((((B + C) x (B x C)’)xAxD) x ((A + D)’))


0 0 0 0 0
0 0 0 1 0
0 0 1 0 0
0 1 0 0 0
1 0 0 0 0
0 0 1 1 0
0 1 1 0 0
1 1 0 0 0
1 0 0 1 0
0 1 1 1 0
1 1 1 0 0
1 1 0 1 0
1 0 1 1 0
1 1 1 1 0
0 1 0 1 0
1 0 1 0 0

Facultad de Ingeniería Electrónica y Telecomunicaciones


37 Universidad del Cauca

Casualmente los dos ejemplos anteriores los resultados fueron en


todas las posibilidades falso. Pero existen circuitos que tendrán
diferentes resultados con las diferentes combinaciones, como se
presenta el siguiente ejemplo.

4. Del siguiente Circuito Evalúe la salida (S) a partir de los valores de


entrada en la tabla.(20%)

Respuesta:
X Y Z S
1 0 1 1
1 1 1 1
0 0 1 0
0 1 1 1

2.4. REPRESENTACIÓN DE LA INFORMACIÓN

2.4.1. Introducción
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.

Facultad de Ingeniería Electrónica y Telecomunicaciones


38 Universidad del Cauca

Clasificación de la información
Existen dos flujos de información en un computador digital:

x Flujo de datos: han de ser manipulados para producir los resultados.


x Flujo de control: o flujo de instrucciones, expresa las manipulaciones a
realizar en dichos datos.

Los datos pueden ser:

x Numéricos: números de tipo natural, entero o real.


x 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.

2.4.2. Sistemas De Codificación

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 = mn

Dado que m vale 2 para los elementos binarios, con n elementos se pueden
obtener 2ncó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

Facultad de Ingeniería Electrónica y Telecomunicaciones


39 Universidad del Cauca

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.

2.4.3. Códigos Numéricos

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 posiciónales
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 posiciónales son el decimal ó de
base 10, utilizado por el hombre en la cultura occidental, y el binario ó 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 posiciónales 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 x bi

Facultad de Ingeniería Electrónica y Telecomunicaciones


40 Universidad del Cauca

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.

2.4.4. Sistemas De Numeración

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 < 10n

Por ejemplo, un sistema decimal (base 10), el número 125 el término 1


representa 100 (una centena o 1 X 102), el 2 representa 20 (dos decenas o 2
X 101) y el 5 representa 5 el mismo (5 unidades o 5 X 100). Así la notación
queda como:

125 = 1x102 + 2x101 + 5x100

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 < 2n

Ejemplos de número binarios:

Repr.
Repr. Binaria Potencia
Decimal
1 20 1
10 21 2
100 2 2
4
1000 23 8
10000 2 4
16

Facultad de Ingeniería Electrónica y Telecomunicaciones


41 Universidad del Cauca

100000 25 32
1000000 26 64
10000000 27 128
100000000 28 256
1000000000 29 512
10000000000 2 10
1.024

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 < 16n

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

Facultad de Ingeniería Electrónica y Telecomunicaciones


42 Universidad del Cauca

cifra decimal. Como existen 10 posibles cifras decimales, del 0 al 9, cada


campo deberá tener al menos 4 bits, por ser 2^4 = 16 > 10.

DECIMAL BCD 8421 Aiken 2421 exceso de 3 Binario 5421


================================================
0 0000 0000 0011 0000
1 0001 0001 0100 0001
2 0010 0010 0101 0010
3 0011 0011 0110 0011
4 0100 0100 0111 0100
5 0101 1011 1000 1000
6 0110 1100 1001 1001
7 0111 1101 1010 1010
8 1000 1110 1011 1011
9 1001 1111 1100 1100

2.4.5. Aritmética Binaria


La aritmética binaria consiste en la aplicación de las operaciones aritméticas
básicas a números binarios, esto permitirá que los computadores puedan
manejar y desarrollar las diversas operaciones matemáticas sobre los
números en su representación decimal. A continuación se presentan las
principales reglas de operación:

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

Facultad de Ingeniería Electrónica y Telecomunicaciones


43 Universidad del Cauca

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

Ejemplo:
Realice las siguientes operaciones en números binarios.(A=142; B=39; C=53; D=13) (14%):

Rta:
Lo primero que se debe hacer es convertir los números decimales en binarios así:

Representación Número Decimal Proceso Binario


7 6 5 4 3 2 1 0
A 142 2 2 2 2 2 2 2 2 10001110
1 0 0 0 1 1 1 0
7 3 2 1
=2 *1 + 2 *1 + 2 *1 + 2 *1
=128 + 8 + 4 + 2
=142
7 6 5 4 3 2 1 0
B 39 2 2 2 2 2 2 2 2 100111
0 0 1 0 0 1 1 1
5 2 1 0
=2 *1 + 2 *1 + 2 *1 + 2 *1
=32 + 4 + 2 + 1
=39
7 6 5 4 3 2 1 0
C 53 2 2 2 2 2 2 2 2 110101
0 0 1 1 0 1 0 1
5 4 2 0
=2 *1 + 2 *1 + 2 *1 + 2 *1
=32 + 16 + 4 + 1
=53
7 6 5 4 3 2 1 0
D 13 2 2 2 2 2 2 2 2 1101
0 0 0 0 1 1 0 1
3 2 0
=2 *1 + 2 *1 + 2 *1
= 8 + 4 + 1
=13

Luego se procede a realizar las operaciones:

Facultad de Ingeniería Electrónica y Telecomunicaciones


44 Universidad del Cauca

A+B C-B B*D B/D


Método tradicional 022
Multiplica
Acarreo 11 1 Préstamo 1 22 100111 Tradicional
100111 1101
10001110 110101 1101 1101 11
Completa 00100111 Completa 100111 100111 1101
De ceros De ceros
10110101 001110 100111 Suma con 1101
000000 sus 0000
Método de 100111 acarreos
Complemento: 000110100 1. Se verifica si
Completa 110101 1101 cabe en
de ceros 100111 1001. Como no
Complementa 011000 cabe se añade el
siguiente dígito.
2. 1101 esta 1
Suma
1 los vez y se resta a
de negrita 110101 10011.
Si hay 1 011000 3. El resultado
de 1001101 de la resta se le
acarreo 1 agrega el sigiente
final se
suma
001110 dígito del divisor
quedando 1101.
4. Se repite los
pasos anteriores
hasta que se
terminen los
digitos de divisor.

2.4.6. Representación De Números Negativos

Módulo y signo
x El cambio de signo es inmediato: sólo cambiar el bit de la izquierda.
x 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.
x La posibilidad de desbordamiento al operar con sumas, restas y
multiplicaciones suponen una dificultad.
x 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.
x La extensión de signo es relativamente complicada.
x Las operaciones de suma y resta se complican al depender de los signos
y magnitudes de los operandos.

Complemento a 1
x El cambio de signo se reduce al complemento lógico (cambiar ceros por
unos y viceversa).
x La suma es sencilla pero teniendo en cuenta que cuando aparece un

Facultad de Ingeniería Electrónica y Telecomunicaciones


45 Universidad del Cauca

acarreo a la posición n se debe incrementar en una unidad el resultado.


x Se complican la multiplicación y la división, puesto que hay que
considerar la posibilidad de que haya operandos complementados.
x Existe la posibilidad de desbordamiento, que deberá detectarse al operar.
x El rango de representación es simétrico [ -2^n-1 + 1, 2^n-1 - 1 ] y el cero
admite dos representaciones: 00...00 ó 11...11.
x La extensión de signo se limita a repetir el bit de la izquierda.

Complemento a 2
x 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.
x La suma y resta son más sencillas que con el complemento a 1: consiste
en realizar la suma directa.
x Existe la posibilidad de desbordamiento en estas operaciones, que no
debe confundirse con el acarreo superior que se elimina.
x Se complican la multiplicación y la división, puesto que hay que
considerar la posibilidad de que haya operandos complementados.
x 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.
x 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


x 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.
x La mantisa es un número real normalizado: sin parte entera y tal que la
primera cifra fraccionaria es significativa.
x La base de exponenciación o raíz es una potencia de 2 determinada por
el fabricante: 2, 8 ó 16.

Facultad de Ingeniería Electrónica y Telecomunicaciones


46 Universidad del Cauca

Coma flotante estándar IEEE 754


x Emplea mantisa fraccionaria normalizada.
x La mantisa se representa en el sistema de módulo y signo.
x Utiliza el formato de precisión ampliada, valiendo siempre 1 el bit
implícito.
x La coma está a la derecha del bit implícito, constituyendo dicho bit la
parte entera de la mantisa.
x 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


x Las letras del alfabeto: mayúsculas y minúsculas.
x Las 10 cifras del sistema decimal: del 0 al 9.
x Los signos de puntuación: . , : ; ? + * % ...
x Los caracteres de control: órdenes entre dispositivos.
x Longitud del código binario: número de bits utilizados para codificar un
carácter. Suele estar entre 6 y 12 bits.
x El sistema de codificación suele ser directo.
x Número máximo de caracteres distintos que se pueden representar con la
longitud de código anteriormente definida: 2^longitud.

Facultad de Ingeniería Electrónica y Telecomunicaciones


51 Universidad del Cauca

Capitulo 3

Arquitectura del Computador

Introducción:

La lógica del computador debe ser soportada por un correcto conjunto de


elementos físicos, interactuantes entre si y que permiten manipular toda la
información. Conocer como funciona internamente el computador nos dará un
mayor conocimiento de su comportamiento externo, asi como podremos
aprovechar de mejor forma cada uno de los componentes del mismo. En este
capitulo empezaremos dando una mirada general de los componentes y sus
interacciones, depués se procederá a revisar cada uno de los componentes,
definiendo sus características y los elementos actuales. Finalmente se presentan
los conceptos básicos del sistema operativo, el cual es el software que permitirá
poner a disposición de los usuarios todo el poder computacional de la máquina.

Facultad de Ingeniería Electrónica y Telecomunicaciones


52 Universidad del Cauca

3.1. EL COMPUTADOR Y SUS CARACTERÍSTICAS

3.1.1. Definición de 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 el computador.

El procesamiento de la información produce como resultado más información.


La información que va ser procesada, se refiere a los datos de entrada o
entrada, y la información producida se refiere a los resultados o salida.

3.1.2. Organización Interna del Computador


Un computador esta compuesto por los siguientes subsistemas: Procesador,
Memoria y Dispositivos de Entrada y Salida.

CPU E/S

Figura 2 Organización del Computador

El Procesador
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 switches y sendas por
las que 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.

Facultad de Ingeniería Electrónica y Telecomunicaciones


53 Universidad del Cauca

Figura 3 Procesador
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 y Registros de Almacenamiento
Temporal; están contenidos en un chip muy pequeño llamado microprocesador, de
un tamaño no mayor a 0.5 cm. Los constructores de Microprocesadores mas
conocidos son INTEL y MOTOROLA:

Procesadores Intel Historia


Modelo Año Capacidad Tamaño Memoria
Procesador Lanzamiento del Bus Palabra Direccionada
8086 1978 16 bits 16 1 MB
8088 1979 8 bits 16 1 MB
80286 1982 16 bits 16 16 MB
80286 1982 16 bits 16 16 MB
80386 DX 1985 32 bits 32 4 GB
80386 SX 1988 16 bits 32 4 GB
80486 DX 1989 32 bits 32 4 GB
80486 DX 1989 32 bits 32 4 GB
80486 SX 1985 32 bits 32 4 GB
Pentium 1993 64 bits 32 4 GB
Tabla 9: Procesadores Intel
A continuación se presentan los elementos que componen el procesador:

UNIDAD DE CONTROL - UC
La UC 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:

x Secuenciamiento de las instrucciones.


x Interpretación de las instrucciones.

Facultad de Ingeniería Electrónica y Telecomunicaciones


54 Universidad del Cauca

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:

x Incondicionales: el CP se actualiza con la dirección donde continúa el


programa (CP <- x).
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:

x Guardar el contenido del CP con la siguiente instrucción del programa en un


registro de la CPU.
x 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 CPU.

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:

x 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.
x Registro de datos de memoria (RM): contiene el dato a escribir en la
memoria o recibe el dato leído de la memoria.
x Contador de programa (CP): almacena la dirección de la próxima instrucción
que hay que ir a buscar a la memoria.
x Registro de instrucción (RI): almacena la última instrucción leída de la

Facultad de Ingeniería Electrónica y Telecomunicaciones


55 Universidad del Cauca

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
CPU. 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.

Ciclo de interrupción
El ciclo de interrupción se produce cuando el procesador es interrumpido para
atender un proceso de mayor prioridad. Para el caso el sistema operativo guarda
la información del proceso que se está ejecutando actualmente en una estructura
llamada PCB (Proces Control Block), si el proceso que ejecuta la interrupción ya
estaba corriendo en el sistema, entonces es cargado el proceso a los registros de
ejecución desde el PCB, sino se carga el programa entrante. Una vez atendido el
proceso que ejecutó la interrupción el sistema operativo vuelve a ejecutar el
mismo proceso que estaba trabajando antes de la interrupción.

Interpretacion de las Instrucciones


Todas las microoperaciones que se necesitan para realizar un ciclo de instrucción

Facultad de Ingeniería Electrónica y Telecomunicaciones


56 Universidad del Cauca

pertenecen a una de las cuatro categorías siguientes:

x Transferencia de datos desde un registro a otro.


x Transferencia de datos desde un registro al bus del sistema.
x Transferencia de datos desde el bus del sistema a un registro.
x Realización de una operación aritmético lógica, utilizando registros como
entradas y salidas.

La UC efectúa dos funciones básicas:

x Secuenciamiento: se encarga de que la CPU realice una serie de


microoperaciones en la secuencia adecuada.
x Ejecución: 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


CPU. En un modelo general de la UC, las entradas son:

x Reloj: permite a la CPU mantener la temporización básica de todo el sistema.


Cada pulso del reloj se denomina ciclo del procesador o ciclo de reloj.
x Registro de instrucción: se utiliza para determinar que microoperaciones hay
que ejecutar durante el ciclo de ejecución.
x Señales de condición: para conocer el estado en que se encuentra la CPU y
el resultado de las operaciones anteriores realizadas en la unidad aritmético
lógica -UAL.
x 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:

x Señales de control internas a la CPU: las que originan que los datos se
muevan entre los diferentes registros y las que activan funciones específicas
de la UAL.
x 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:

x Definir el comportamiento del sistema digital, mediante un conjunto S de


secuencias de operaciones de transferencias entre registros (algoritmo).
x Analizar S, para determinar tipos de componentes y número de componentes
de cada tipo.
x Construir un diagrama de bloques D, de la Unidad de Procesamiento y
verificar que son posibles todas las transferencias de información expresadas

Facultad de Ingeniería Electrónica y Telecomunicaciones


57 Universidad del Cauca

en S y se satisface el criterio coste/prestaciones especificado en el diseño.


x Analizar S y D, para identificar e introducir los puntos de control necesarios.
x 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.
x 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 UC. La UC 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 x = xn-1 xn-2 ... x1 x0


x y = yn-1 yn-2 ... y1 y0

y produce una salida s de n + 1 bits que es la suma de los operandos:

x 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:

x s = (x AND y) OR (x AND y) = x EXCL y


x c = x AND y

Facultad de Ingeniería Electrónica y Telecomunicaciones


58 Universidad del Cauca

Sumador binario completo (SBC)


Se diferencia del SSB porque tiene una tercera entrada ci 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 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1

Las ecuaciones lógicas serían:

x 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 ci-1)
x 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 = yn-1 yn-2 ... y1 y0 , entonces -y se define por:

x -y = yn-1 yn-2 ... y1 y0 + 1

Para obtener -y a partir de y, se efectúan las siguientes operaciones:

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:

x La entrada yi propia de la etapa.


x 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:

Facultad de Ingeniería Electrónica y Telecomunicaciones


59 Universidad del Cauca

x x e y son positivos: como xn-1 = yn-1 = 0, entonces cn-1 = 0.


x 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:

x 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 estan agrupados
correctamente, donde cada acarreo final de una fila se lleva 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.

Facultad de Ingeniería Electrónica y Telecomunicaciones


60 Universidad del Cauca

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 An-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:

x 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
entre sus celdas adyacentes. Tienen n entradas y salidas en paralelo, una entrada
serie para desplazamiento izquierda EI y derecha 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 en:

Facultad de Ingeniería Electrónica y Telecomunicaciones


61 Universidad del Cauca

Tratamiento del bit de signo


x Aritmético (A): no se altera el bit de signo y lo copia en el caso de desplazarse
a la derecha.
x Lógico (L): el bit de signo es un bit más en la operación.

Sentido del desplazamiento


x Izquierda (I): cada bit se desplaza a la celda izquierda inmediata.
x Derecha (D): cada bit se desplaza a la celda derecha inmediata.

Tratamiento de los bits que rebosan


x Abierto (A): se pierden los bits que rebosan.
x Cerrado (C): los bits que rebosan por un extremo se introducen por el otro.

Longitud de los registros


x Simple (S): se utiliza un solo registro en la operación de desplazamiento.
x 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:

x Entrada paralelo/Salida paralelo: las entradas y las salidas se producen


simultáneamente.
x Entrada serie/Salida serie: la salida se puede utilizar después de desplazarse
todos los bits.
x Entrada paralelo/Salida serie: se desplaza desde el bit más significativo al
menos de la entrada.
x 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:

Facultad de Ingeniería Electrónica y Telecomunicaciones


62 Universidad del Cauca

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:


x M = x AND y
x I = (x AND y) OR (x AND y)
x m = x AND y

Utilizando un circuito secuencial


El comparador recibe los bits xi e yi serialmente, 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

Facultad de Ingeniería Electrónica y Telecomunicaciones


63 Universidad del Cauca

===========================================
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 4 muestra los registros de un
microprocesador 8088, 8086, 286. Cada uno de ellos es una parte Integral del
procesador. Es un área temporal por la cual pasan los datos mientras están siendo
procesados. El tamaño del registro varia entre 16 o 32 bits, dependiendo del
microprocesador.

El primer grupo de registros AX, BX, CX y DX también llamados de propósito


general, son utilizadas para realizar operaciones. Los procesadores posteriores
tienen dos registros más, con capacidad mayor para el almacenamiento de
información.

Figura 4 Registros
Los procesadores 386 y posteriores tienen 8 registros de propósito general y son:
EAX, EBX, ECX, EDX, ESI, EDI, EBP y ESP.

El grupo de registros CS, DS y SS también llamados 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. El CS, indica

Facultad de Ingeniería Electrónica y Telecomunicaciones


64 Universidad del Cauca

donde se almacena un programa en memoria, el 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.

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:

x Memoria interna del procesador: está constituida por un pequeño conjunto


de registros de alta velocidad que son internos a la CPU.
x Memoria principal: es una memoria relativamente grande y rápida utilizada
para el almacenamiento de los programas y sus correspondientes datos.
x Memoria externa o secundaria: son dispositivos periféricos de
almacenamiento accesibles a la CPU 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 en varios bits. Un tema relacionado con la capacidad de la memoria es el
de la unidad de transferencia. Se consideran los tres conceptos siguientes:

x 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.
x 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.
x Unidad de transferencia: es el número de bits leídos de ó 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:

x 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.
x 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.
x 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

Facultad de Ingeniería Electrónica y Telecomunicaciones


65 Universidad del Cauca

física.
x 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:

x Memorias de semiconductor: con tecnología LSI o VLSI utilizadas como


memoria principal del computador.
x Memorias magnéticas: utilizadas como memorias secundarias (discos o
cintas).
x 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:

x 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).
x 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:

x Tiempo de acceso (TA): se define como el tiempo medio necesario para leer
una cantidad fija de información.
x 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.
x 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:

Facultad de Ingeniería Electrónica y Telecomunicaciones


66 Universidad del Cauca

x Capacidad de la memoria.
x Rapidez.
x Coste.

La relación entre capacidad, tiempo de acceso y coste es la siguiente:

x Menor tiempo de acceso ===> Mayor coste por bit


x Mayor capacidad ===> Menor coste por bit
x Mayor capacidad ===> Mayor tiempo de acceso

La solución a este conflicto está en emplear una jerarquía de memorias, siendo


una típica:

x Registros de la CPU
x Memoria caché
x Memoria principal
x Discos magnéticos
x Cintas magnéticas

Cuando se va hacia los niveles inferiores de la jerarquía ocurre que:

x El coste por unidad de información (bit) disminuye.


x La capacidad aumenta.
x El tiempo de acceso aumenta.
x La frecuencia de acceso a la memoria por parte de la CPU 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 los localizan o referencian.

La memoria la utilizamos para almacenar 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 componente básico llamado Chip electrónico.
Debido 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 Figura 5 muestra como el computador
almacena la palabra AMOR cada carácter en memoria se representa por una
secuencia de unos y ceros llamada código ASCII.

Facultad de Ingeniería Electrónica y Telecomunicaciones


67 Universidad del Cauca

Figura 5 Ejemplo de memoria principal

LA MEMORIA RAM
En la memoria RAM (Ver Figura 6)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:

Figura 6 Fotografía de un banco de memoria RAM

La Memoria RAM Convencional


Es el lugar donde se ejecutan los programas, donde el computador realiza
cálculos y donde se carga el Sistema Operativo 1. 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 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 video, donde se almacena la información que se visualizará en los
monitores monocromos o en color. 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

1
En los primeros sistemas operativos, algunos usan otras regipnes de la memoria del computador.

Facultad de Ingeniería Electrónica y Telecomunicaciones


68 Universidad del Cauca

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 se 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 crean 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
En la memoria ROM (Memoria de sólo lectura) se encuentran almacenados
procedimientos que el computador 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.

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:

x Adaptados al usuario: son apropiados para comunicar información al usuario.


x Adaptados a la máquina: permiten comunicarse con el sistema.
x De comunicación: están preparados para transmitir información a dispositivos

Facultad de Ingeniería Electrónica y Telecomunicaciones


69 Universidad del Cauca

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:

x Enviar el dato al controlador de E/S (Leer).


x Aceptar el dato del controlador de E/S (Escribir).
x 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 CPU. Debe poseer una interfaz interna al
computador (para su conexión con la CPU 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 siguientes
categorías:

x Control y temporización.
x Comunicación con la CPU.
x Comunicación con el dispositivo externo.
x Almacenamiento temporal de datos.
x 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:

1. La CPU pide al controlador de E/S que compruebe el estado del dispositivo al


que está conectado.
2. El controlador de E/S devuelve el estado del dispositivo.
3. Si el dispositivo está operativo y preparado para transmitir, la CPU solicita la
transferencia del dato mediante una orden al controlador de E/S.
4. El controlador de E/S obtiene el dato del dispositivo externo.
5. El dato se transfiere desde el controlador de E/S a la CPU.

La comunicación con la CPU requiere:

x Decodificación de la orden: el controlador de E/S acepta órdenes de la CPU

Facultad de Ingeniería Electrónica y Telecomunicaciones


70 Universidad del Cauca

por el bus de control.


x Datos: el intercambio de datos entre la CPU y el controlador de E/S se realiza
mediante el bus de datos.
x Información sobre el estado: a causa de la lentitud de los periféricos es
importante conocer el estado del controlador de E/S.
x 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 CPU 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 CPU con la
memoria y con la unidad de E/S:

x Dos buses independientes, uno para la memoria y otro para el sistema de


E/S.
x Un bus común para la memoria y el sistema de E/S, pero con líneas de
control independientes para cada uno.
x Un único bus con líneas de control también comunes.

E/S CONTROLADA POR PROGRAMA


Los datos se intercambian entre la CPU y el controlador de E/S. La CPU 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 CPU emite una orden al
controlador de E/S debe esperar hasta que finalice la operación de E/S. Si la CPU
es más rápida que el controlador de E/S se malgasta el tiempo de la CPU. La CPU
puede enviar al controlador cuatro tipo de órdenes:

x Ordenes de control: se utilizan para activar un periférico y decirle que hacer.


x Ordenes de comprobación: se utilizan para verificar diferentes condiciones
de estado asociadas con un controlador de E/S y sus periféricos.
x Ordenes de lectura: originan que el controlador de E/S obtenga un dato del
periférico y lo coloque en un registro interno.
x 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.

Facultad de Ingeniería Electrónica y Telecomunicaciones


71 Universidad del Cauca

E/S POR INTERRUPCIONES


La idea básica del mecanismo de E/S por interrupciones consiste en eliminar el
bucle de espera. La CPU 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 CPU
para que atienda a la operación de E/S. El periférico advierte a la CPU 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 CPU.


2. El periférico activa la línea de petición de interrupción (PI = 1).
3. La CPU suspende en ese momento la ejecución del programa en curso.
4. La CPU 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 CPU 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:

x Externa: las provoca un periférico.


x Interna: las provoca la CPU.
x Simuladas: son interrupciones software.

No. de líneas de interrupción:

x 1 línea: sólo una línea de petición PI.


x Múltiples líneas: PI1, PI2, ..., PIn.

Control de la CPU sobre la interrupción:

x Enmascarables: la CPU puede desactivarlas.


x No enmascarables: la CPU no puede desactivarlas.

Identificación de la fuente de la interrupción:

x Múltiples líneas: PI1, PI2, ..., PIn.


x Encuesta: la interrupción se identifica por programa.
x Vectorizadas: la interrupción identifica un periférico.

Facultad de Ingeniería Electrónica y Telecomunicaciones


72 Universidad del Cauca

Gestión de la prioridad de la interrupción:

x Por software: un programa determina la prioridad.


x Por hardware: un circuito determina la prioridad.

Niveles de interrupción:

x Nivel único: la interrupción no puede interrumpirse.


x 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:

x La transferencia de datos está limitada por la velocidad con que la CPU puede
comprobar y atender a un periférico.
x La CPU 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 CPU y asumir el control del sistema. El DMA, contiene un
registro de datos, un registro de dirección y un registro contador de palabras.
Cuando la CPU desea leer o escribir un bloque de datos emite una orden al
controlador de DMA enviándole la siguiente información:

x Si la operación de E/S es de lectura o escritura.


x La dirección del periférico.
x La posición de comienzo en memoria donde hay que leer o escribir.
x El número de palabras que se tienen que leer o escribir.

Existen diferentes formas de obtener el control del bus:

x Por ráfagas: cuando el DMA toma el control del bus no lo libera hasta haber
transmitido el bloque de datos pedido.
x 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.
x DMA transparente: solamente se roban ciclos cuando la CPU no está
utilizando el bus del sistema.
x Por demanda: el periférico es quien comienza la transferencia por DMA, pero
devuelve el control a la CPU cuando no tiene más datos disponibles.
x 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 CPU.

Facultad de Ingeniería Electrónica y Telecomunicaciones


73 Universidad del Cauca

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 CPU 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 CPU 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 CPU. Existe dos tipos
comunes de PE/S:

x 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.
x 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, el Slot 1(SEC) para Pentium II y el Slot
2(SEC) para Pentium III. 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

Facultad de Ingeniería Electrónica y Telecomunicaciones


74 Universidad del Cauca

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ía 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, PIII,
Athlon)

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.

Facultad de Ingeniería Electrónica y Telecomunicaciones


75 Universidad del Cauca

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 al
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.

Facultad de Ingeniería Electrónica y Telecomunicaciones


76 Universidad del Cauca

Disco Duro
En el mundo del PC hay dos grandes estándares, IDE y SCSI, aunque el primero
está más extendido que el segundo, la tecnología SCSI está presente en otras
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:

9 Capacidad: Aconsejable que sea a partir de 2,1 Gbytes en adelante.


9 Tiempo de acceso: Este parámetro es muy importante, nos indica la capacidad para acceder
de manera aleatoria a cualquier sector del disco.
9 Velocidad de Transferencia: Directamente relacionada con la 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 la interface, y no quiere decir que
el disco sea capaz de alcanzarla.
9 Velocidad de Rotación: Tal vez el más importante. Suele oscilar entre las 4.500 y las 7.200 rpm
(revoluciones por minuto).
9 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 encontramos los primeros discos IDE con su
limitación a 528 Mb., y pudiendo sólo 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. Entre las más recientes especificaciones desarrolladas por Quantum se encuentra 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 ésta 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 (ROM), grabadores
(RW) 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 reciente
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. Actualmente de manejan
mayores velocidades Ej. 56 X. Existen nuevos dispositivod como los
DVD ROM y DVD RW con mayor capacidad de almacenamiento y
rapidez. 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.

Facultad de Ingeniería Electrónica y Telecomunicaciones


77 Universidad del Cauca

Teclado
El teclado es un componente al que se le da poca importancia,
especialmente en los computadores 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 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. Este es uno de los
parámetros que más se destaca en un teclado, uno de los ya clásicos en
este aspecto es el "Natural keyboard" de Microsoft.

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 y
navegadores incansables, que puedan pasarse muchas horas diarias al
frente de la pantalla. Los parámetros que influyen en la calidad de un
monitor son:

Facultad de Ingeniería Electrónica y Telecomunicaciones


78 Universidad del Cauca

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, 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 reciente 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 incluyó en algunos sistemas de


computadores 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.

Facultad de Ingeniería Electrónica y Telecomunicaciones


79 Universidad del Cauca

El Reloj Interno del Computador


Todos los microcomputadores tiene un sistema de reloj, que es utilizado por los
computadores para tomar el tiempo de sus operaciones de procesamiento. Los
primeros computadores 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.

Estructuras de Interconexión
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:

x 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.
x 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 son leer y escribir.
x CPU: la CPU 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:

x Memoria a CPU.
x CPU a Memoria.
x E/S a CPU.
x CPU a E/S.
x E/S a ó 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:

x Arquitectura de E/S a través de la CPU: la CPU y los módulos de E/S


comparten la misma vía de acceso a memoria, lo que obliga a la CPU a parar
momentáneamente sus cálculos cuando se están produciendo transferencias
de datos.
x 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.
x Arquitectura de E/S mediante un conmutador central: existe un mecanismo
de distribución centralizado al cual se unen todos los componentes.
x 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.

Facultad de Ingeniería Electrónica y Telecomunicaciones


80 Universidad del Cauca

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:

x 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.
x 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.
x 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.

3.1.3. Funciones 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:

x Fase o ciclo de búsqueda.


x Fase o ciclo de ejecución.

En el comienzo de cada ciclo de instrucción la CPU 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 CPU 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:

x CPU - Memoria.
x CPU -E/S.
x Procesamiento de los datos.
x Control.

Cualquier ciclo de instrucción puede estar formado puede estar formado por uno o
varios estados:

x 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.

Facultad de Ingeniería Electrónica y Telecomunicaciones


81 Universidad del Cauca

x Búsqueda de la instrucción (BI): leer la instrucción de su posición de


memoria en la CPU.
x 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.
x 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.
x Búsqueda del operando (BO): leer el operando de la memoria o de un
dispositivo de E/S.
x 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.

3.2. CONCEPTOS BASICOS DE SISTEMAS OPERATIVOS

3.2.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, Linux, Unix, AS/400, etc. Para la
inmensa mayoría de usuarios de PCs el sistema operativo es un elemento oscuro.

Facultad de Ingeniería Electrónica y Telecomunicaciones


82 Universidad del Cauca

En más de una ocasión confunden el programa de procesamiento de palabras o


cualquiera que sea el programa que principalmente usan, con el sistema
operativo. 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 el sistema operativo, 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 (actualmente existe Windows 2000 Server). 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 el uso de un sistema operativo basado en lenguaje de
programación JAVA. Igualmente hay que considerar que rumbo va a tomar Novell
de la que se 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.

3.2.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

Facultad de Ingeniería Electrónica y Telecomunicaciones


83 Universidad del Cauca

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 sí 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 debe hacer el 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.

Facultad de Ingeniería Electrónica y Telecomunicaciones


84 Universidad del Cauca

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).

3.2.3. Componentes de un Sistema Operativo


Un sistema operativo es, por lo general, un programa complejo. Dependiendo del
equipo en el que se ejecuta éste 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 núcleo es el centro del sistema operativo. Este está permanente en
memoria una vez que el equipo inicia sus funciones normales. Es responsable por:

Facultad de Ingeniería Electrónica y Telecomunicaciones


85 Universidad del Cauca

9 Traslado del control de un programa a otro.


9 Control y programación de dispositivos periféricos.
9 Manejo de interrupciones y condiciones de error.
9 Comunicación entre procesos.
9 Cronogramación de tareas.
9 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 re-entrantes. Una tarea es re-
entrante cuando en cada instancia de ejecución el sistema operativo se
autoasigna un bloque de memoria separado para el almacenamiento de sus datos.
Si alguna parte del proceso no es re-entrante 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 una sola CPU (Central Processing
Unit) para procesar las tareas. Es posible tener varias 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
Kernel. Aún con varios CPUs se puede hacer switching de tareas asignadas a
cada CPU. Por ejemplo, Windows NT puede atender a varias CPUs.

Facultad de Ingeniería Electrónica y Telecomunicaciones


86 Universidad del Cauca

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 de 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 la interface con el operador. Este interface puede ser de línea o gráfico.

3.2.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

Facultad de Ingeniería Electrónica y Telecomunicaciones


87 Universidad del Cauca

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.

Facultad de Ingeniería Electrónica y Telecomunicaciones


88 Universidad del Cauca

BIBLIOGRAFIA
[1.] http://www.monografias.com/trabajos6/orievo/orievo.shtml
[2.] www.lucho.com/procesad.htm.
[3.] http://members.tripod.com/~pchardware
[4.] http://www.inf.ufsc.br/ine5365/portlog.html
[5.] Apuntes de clase desarrollados en la asignatura de Introducción a la
Informática durante los semestres de 1999 y 2000.
[6.] Allen B. Tucker, y otros. Fundamentos de Informática. McGraw - Hill.
[7.] Luis Joyanes Aguilar. Fundamentos de Programación. Algoritmos y
Estructuras de Datos. Segunda Edición. McGraw - Hill. 1996.
[8.] Turbo C/C++. Hebert Schildt, McGraw -Hill.

Facultad de Ingeniería Electrónica y Telecomunicaciones

View publication stats

También podría gustarte