You are on page 1of 22

2009

Modulo 3: Los programas de sistemas

Introducción a la computación

Carlos Alfredo Almonte López

L.I Soraya Ivvette Valdez García

Ingeniería en computación

1 19/09/2009
Página 2 de 22

Tema Pagina

1. Programación de bajo nivel 4

a) Descripción funcional de la memoria 6

b) Lenguajes: de máquina y simbólico 7

c) Programa fuente 9

d) Programa objeto 10

e) Mapa de memoria 11

f) Ciclo de ejecución de la unidad 13


central de procesamiento

g) Tipos de direccionamiento de 15
memoria y sus características

2.Programas de sistemas 19

A. Ensambladores 20

B. Macroprocesadores 20

C. Cargadores 20

D. Compiladores e interpretes 20

E. Sistema operativo 21
Página 3 de 22

INTRODUCCION

En este modulo veremos los diferentes


programas de sistemas que hay como
la programación de bajo nivel, el
programa de fuente, programa objeto
entre otros.

Además aprenderemos a diferenciar los


programas de sistema y sus funciones
que tienen cada uno de los programas
que veremos en este modulo.
Página 4 de 22

3.1 PR OGRA MA CION DE B AJO NIVEL

Un lenguaje de programación de bajo niv el es el que


proporciona poca o ninguna abstracción del microprocesador
de un ordenador. Consecuentemente es fácilmente trasladado
a lenguaje de máquina.

La palabra "bajo" no implica que el lenguaje sea inferior a un


lenguaje de alto nivel; se refiere a la reducida abstracción
entre el lenguaje y el hardware.

Uso: v entajas e incon veniente s.

En general se utiliza este tipo de lenguaje para programar


controladores (drivers).

La programación en un lenguaje de bajo nivel como el


lenguaje de la máquina o el lenguaje simbólico tiene ciertas
ventajas:

• Mayor adaptación al equipo.


• Posibilidad de obtener la máxima velocidad con mínimo
uso de memoria.

Pero también tiene importantes inconvenientes:

• Imposibilidad de escribir código independiente de la


máquina.
• Mayor dificultad en la programación y en la comprensión
de los programas.
• El programador debe conocer más de un centenar de
instrucciones.
• Es necesario conocer en detalle la arquitectura de la
máquina.
Página 5 de 22

Características

• Se trabaja a nivel de instrucciones, es decir, su


programación es al más fino detalle.
• Está orientado a la máquina.

Primer a gener ación

El lenguaje de programación de primera generación (por sus


siglas en inglés, 1GL), es el lenguaje de código máquina. Es el
único lenguaje que un microprocesador entiende de forma
nativa. El lenguaje máquina no puede ser escrito o leído
usando un editor de texto, y por lo tanto es raro que una
persona lo use directamente.

Se gunda gener ación

El lenguaje de programación de segunda generación (por sus


siglas en inglés, 2GL), es el lenguaje ensamblador. Se
considera de segunda generación porque, aunque no es
lenguaje nativo del microprocesador, un programador de
lenguaje ensamblador debe conocer la arquitectura del
microprocesador (como por ejemplo las particularidades de
sus registros o su conjunto de instrucciones).

Un pr og rama fuente es aquel que nos permite escribir un


algoritmo mediante un lenguaje formal. Por eso al código
desarrollado al programar se le llama código fuente.
Página 6 de 22

3.1.1 Descripción funcional de la Memoria


- Formada por gran cantidad de celdas (palabras) de n
Bits para guardar información.
• N: ancho de palabra de la memoria.

- Dirección de memoria: identificativo de cada palabra o


Posición de memoria.
- Operaciones realizadas sobre la memoria:
• Lectura
• Escritura
- Cada operación de lectura o escritura se efectúa sobre una
palabra completa de
Memoria.
- Tiempo de ciclo de memoria: duración máxima de una
operación de memoria.
Estructura y Tecnología de Computadores I
Descripción funcional de un computador -3-
Elementos de oper ación.
- Tipos de operadores:
• Número de operandos
∗ Monádico
∗ Diádico
• Funcionamiento:
∗ Serie
∗ Paralelo
• Operaciones realizadas
∗ De propósito general
∗ De propósito específico
Página 7 de 22

- Operaciones: lógicas, aritméticas, de desplazamiento, de


rotación, etc.
Elementos de inter cone xión
- Enlaces
• Conectan elementos entre los que se pretende intercambiar
información.
• Constan de n canales o líneas para transmitir datos de n bits
en paralelo.
- Tipos de enlaces
• Enlaces dedicados: entre dos elementos.
• Buses: entre múltiples elementos.
- Tipos de buses:
• Bus de datos: transferencia de datos entre elementos.
∗ Ancho del bus de datos: ancho del computador (suele
coincidir
También con el ancho de la palabra de memoria).
• Bus de direcciones: transferencia de direcciones.
∗ Ancho del bus de direcciones: fija el tamaño máximo de la
memoria.
• Bus de control: transferencia de señales de control (carga,
selección, lectura o
Escritura de memoria, etc.).
3.1.2 Lenguajes: de máquina y simbólico
La programación en lenguaje de maquina es difícil, por ello se
necesitan lenguajes que permitan simplificar este proceso los
lenguajes de bajo nivel han sido diseñados para ese fin.
Estos lenguajes dependen de la maquina o sea del conjunto
de instrucciones especificas de la computadora, ejemplo el
lenguaje ensamblador en el las instrucciones se escriben en
códigos alfabéticos conocidos como nemotécnicos
(abreviaturas de palabras inglesas o españolas, ejemplo
sumar en ingles
ADD = suma
SUB= resta
MPY = multiplicar
Página 8 de 22

DIV=dividir
LDA= cargar acumulador
STO= almacenar
Las palabras nemotécnicas son más fáciles de recordar que
las secuencias de dígitos de 0 a 1.Una instrucciones típica en
ensamblador puede ser
ADD X, Y, Z.
Esta instrucción significa que se deben sumar los números
almacenados en las direcciones X, Y y almacenar el resultado
en la dirección z, el lenguaje ensamblador traducirá la
instrucción a código de máquina, por ejemplo.
ADD = 1110
X=1001
Y=1010
Z=1011
La instrucción traducida será 1110 1001 1000 1011
Después que un programa ha sido escrito en lenguaje
ensamblador se necesita un programa llamado ensamblador,
que lo traduzca a código de maquina

Lenguaje de maquina: El lenguaje de maquina es aquel cuyas


instrucciones son directamente entendibles por la
computadora y no necesitan traducción posterior para que la
UCP pueda comprender y ejecutar el programa.
Las instrucciones en lenguaje maquina se expresan en
términos de la unidad de memoria más pequeña (bit) = digito
binario 0 o 1, en esencia una secuencia de bits que
especifican la operación y las celdas de memoria implicadas
en una operación
Ejemplo. Instrucciones en lenguaje de maquina:
Página 9 de 22

0010, 0000, 1001, 1001, 10001, 1110.


Como se observa estas instrucciones son fáciles de leer por
una computadora y difíciles para un programador y viceversa.
Por esta razón se hace difícil escribir programas en código o
lenguaje de máquina. Y se requiere otro lenguaje para
comunicarse con la computadora pero que se hace más fácil
de escribir y de leer por el programador. Para evitar la tediosa
tarea de escribir programas en este lenguaje se han diseñado
otros programas de programación que facilitan la escritura y
posterior ejecución de los programas.

3.1.3 Pr og rama f uente

El código f uente de un programa informático (o software) es


un conjunto de líneas de texto que son las instrucciones que
debe seguir la computadora para ejecutar dicho programa.
Por tanto, en el código fuente de un programa está descrito
por completo su funcionamiento.

El código fuente de un programa está escrito por un


programador en algún lenguaje de programación, pero en este
primer estado no es directamente ejecutable por la
computadora, sino que debe ser traducido a otro lenguaje (el
lenguaje máquina o código objeto) que sí pueda ser ejecutado
por el hardware de la computadora. Para esta traducción se
usan los llamados compiladores, ensambladores, intérpretes
y otros sistemas de traducción.

El término código fuente también se usa para hacer


referencia al código fuente de otros elementos del software,
como por ejemplo el código fuente de una página web que
está escrito en el lenguaje de marcado HTML o en Java script
u otros lenguajes de programación web y que es
posteriormente ejecutado por el navegador web para
visualizar dicha página cuando es visitada.

El área de la informática que se dedica a la creación de


programas y, por tanto a la creación de su código fuente, es
la programación.
Página 10 de 22

3.1.4 PR OGRA MA OBJET O

El pr og rama objeto se llama a bsoluto , si de be


car gar se de unas posicione s fijas de memoria, y
localiza ble si se puede car gar en cualquier lugar de
la memoria.

Además, antes de car gar el pr og rama objeto es


necesario unir los a otr os pr og rama s.

Los f or ma tos de los pr og rama s objetos localiza bles


son casi fle xibles como los estudiado s

P ar a los lenguajes de niv el ensamblador , aunque el


montaje en memoria r equier e bastante tiempo . Esta
función la r ealiza el montador de enlaces, mientr as
que en los sistemas oper ativ os complejos, la car ga
final la ef ectúa el car gador . Si el sistema opr esiv o es
más sencillo , e xisten solo un solo paso r ealizado por
el car gador enlazador .

El pr og rama objeto consta de cua tr o par tes: el


diccionario de símbolos e xter nos, el te xto , el
diccionario locali za ble y la f ic ha END .

El dir ectorio de símbolos e xter no s define las


secciones de contr ol las r efer encias e xter nas, los
puntos de entr adas y las ar ca s COMMON.

El te xto compr ende las instr uccione s en el lenguaje


de máquina y los da tos del pr og rama objeto .

El dir eccionario localiza ble contiene las dir ecciones


que tienen que modi ficar se en el. Momento de la
ejecución.
Página 11 de 22

3.1.5 A péndice I - MAP A DE MEMORIA

La memoria convencional en las máquinas más potentes


está casi enteramente a disposición del usuario, aunque en
los PC/XT el núcleo del sistema operativo ocupa un buen
fragmento de la misma (unos 45 Kb). En los 286 y superiores,
el núcleo del sistema se ubica en el HMA (primeros 64 Kb de
la memoria extendida). La memoria de vídeo está dividida en
dos bloques de 64 Kb: el ubicado entre A0000-AFFFF lo
emplean la EGA, VGA y SuperVga en modo gráfico. El
segundo, entre B0000-BFFFF es usado por la CGA y la
Hércules, también en modo gráfico. En modo de texto, el
adaptador monocromo de IBM (primeros PC sin gráficos)
emplea 4 Kb a partir de B0000; el adaptador de color utiliza
16 KB a partir de B8000. Las EGA/VGA soportan ambos tipos
de pantallas de texto; las tarjetas «bifrecuencia» también.
Entre C0000 y CFFFF puede estar ubicada la BIOS de la VGA
(normalmente entre C0000 y C7FFF) o las BIOS de discos
duros de XT, el resto de este segmento (en 386) es memoria
superior donde cargar los programas residentes con HILOAD
(o LOADHIGH en MS-DOS) que así no ocupan memoria
convencional. Los segmentos de 64 Kb que comienzan en
D0000 y E0000 pueden contener extensiones de la BIOS
(normalmente discos duros de XT) o también memoria
superior. Uno de los dos puede ser empleado para la «ventana»
Página 12 de 22

de memoria expandida EMS (PC/XT/AT), normalmente el


primero. En F0000 está colocada la ROM BIOS (aunque en
PC/XT es frecuente que sólo estén ocupados los últimos 8 Kb;
en los AT suele ubicarse un programa SETUP que permite al
usuario definir la configuración de la máquina). Por encima,
los primeros 64 Kb de memoria extendida son accesibles
incluso desde el modo real del 286 y 386, siempre que la línea
de direcciones A20 esté habilitada (lo que sucede a partir del
DR-DOS y del MS-DOS 5.0). Para ello, con CS=FFFF se puede
acceder a 65520 bytes (casi 64Kb) de RAM adicionales donde
se puede cargar el núcleo del sistema operativo y quizá algún
que otro programa residente (DR-DOS 6.0). El resto de la
memoria en máquinas 286/386 es memoria extendida, que
puede ser direccionada por controladores de disco virtual o
cachés de disco duro, e incluso -en 386- puede ser convertida
por software en memoria expandida paginable en el segmento
(dentro del primer mega) habilitado al efecto.
Página 13 de 22

3.1.6 CICLO DE EJECUCION DE LA Unidad central de


procesamiento

Oblea de un microprocesador Intel 80486DX2 (tamaño:


12×6,75 mm) es su empaquetado

La unidad centr al de pr ocesamiento o CPU (por el


acrónimo en inglés de central processing unit), o
simplemente el pr ocesador o micr opr ocesador , es el
componente en una computadora digital que interpreta las
instrucciones y procesa los datos contenidos en los
programas de la computadora. Las CPU proporcionan la
característica fundamental de la computadora digital (la
programabilidad) y son uno de los componentes necesarios
encontrados en las computadoras de cualquier tiempo, junto
con el almacenamiento primario y los dispositivos de
entrada/salida. Se conoce como microprocesador el CPU que
es manufacturado con circuitos integrados. Desde mediados
de los años 1970, los microprocesadores de un solo chip han
reemplazado casi totalmente todos los tipos de CPU, y hoy en
día, el término "CPU" es aplicado usualmente a todos los
microprocesadores.

La expresión "unidad central de proceso" es, en términos


generales, una descripción de una cierta clase de máquinas
de lógica que pueden ejecutar complejos programas de
computadora. Esta amplia definición puede fácilmente ser
aplicada a muchos de los primeros ordenadores que
Página 14 de 22

existieron mucho antes que el término "CPU" estuviera en


amplio uso. Sin embargo, el término en sí mismo y su
acrónimo han estado en uso en la industria de la informática
por lo menos desde el principio de los años 1960 . La forma,
el diseño y la implementación de las CPU ha cambiado
drásticamente desde los primeros ejemplos, pero su
operación fundamental ha permanecido bastante similar.

Las primeras CPU fueron diseñadas a la medida como parte


de una computadora más grande, generalmente una
computadora única en su especie. Sin embargo, este costoso
método de diseñar los CPU a la medida, para una aplicación
particular, ha desaparecido en gran parte y se ha sustituido
por el desarrollo de clases de procesadores baratos y
estandarizados adaptados para uno o muchos propósitos.
Esta tendencia de estandarización comenzó generalmente en
la era de los transistores discretos, computadoras centrales,
y microcomputadoras, y fue acelerada rápidamente con la
popularización del circuito integrado (IC), éste ha permitido
que sean diseñados y fabricados CPU más complejos en
espacios pequeños (en la orden de milímetros). Tanto la
miniaturización como la estandarización de los CPU han
aumentado la presencia de estos dispositivos digitales en la
vida moderna mucho más allá de las aplicaciones limitadas
de máquinas de computación dedicadas. Los
microprocesadores modernos aparecen en todo, desde
automóviles, televisores, neveras, calculadoras, aviones,
hasta teléfonos móviles o celulares, juguetes, entre otros.
Página 15 de 22

3.1.7 Tipos de dir eccionamiento de memoria y sus


car acte rística s

Los llamados modos de dir eccionamiento son las


diferentes maneras de especificar en informática un operando
dentro de una instrucción (lenguaje ensamblador). Cómo se
especifican e interpretan las direcciones de memoria según
las instrucciones.

Pueden ser:

• Inmedia to: En la instrucción está incluido


directamente el operando.

ejemplo:MOV
A,#17H

• Dir ec to: El campo de operando en la instrucción


contiene la dirección en memoria donde se encuentra el
operando.
Página 16 de 22

Ejemplo:
MOV A, 17H

• Indir ecto: El campo de operando contiene una


dirección de memoria, en la que se encuentra la
dirección efectiva del operando.
Página 17 de 22

Ejemplo:
MOV A,@17H

• Absolu to: El campo de operando contiene una


dirección en memoria, en la que se encuentra la
instrucción.
• De r e gistr o: Sirve para especificar operandos que
están en registros.
Página 18 de 22

ejemplo:MOV
A,R0

• Indir ecto mediante r e gistr os: El campo de operando


de la instrucción contiene un identificador de registro
en el que se encuentra la dirección efectiva del
operando.
Página 19 de 22

Ejemplo: MOV A,@R0

• De desplazamiento: Combina el modo directo e


indirecto mediante registros
• De pila: Se utiliza cuando el operando está en memoria
y en la cabecera de la pila.

3.2 Pr og ramas de sistema s

Son aplicaciones de utilidad que se suministran con el SO


pero no forman parte de él. Ofrecen un entorno útil para el
desarrollo y ejecución de programas, siendo algunas de las
tareas que realizan:

• Manipulación y modificación de archivos.


• Información del estado del sistema.
• Soporte a lenguajes de programación.
• Comunicaciones.
Página 20 de 22

3.2.1 Ensamblador es
Es un tipo de traductor que convierte programas escritos en
lenguaje ensamblador en programas escritos en código
máquina .

3.2.2 Macr opr oce sador es


Traduce un lenguaje de alto nivel a otro, cuando el primero no
puede pasar a lenguaje máquina directamente.

3.2.3 Car gado res

Es la parte de un sistema operativo que es responsable de


cargar programas en memoria desde los ejecutables (por
ejemplo, archivos ejecutables). El cargador es usualmente
una parte del núcleo del sistema operativo y es cargado al
iniciar el sistema y permanece en memoria hasta que el
sistema es reiniciado o apagado. Algunos sistemas operativos
que tienen un núcleo paginable pueden tener el cargador en
una parte paginable de la memoria, entonces a veces el
cargador hace un intercambio de memoria

3.2.4 Intér pr ete s


Se trata de tr aductor es-ejecutor es ya que con cada
instrucción realizan un proceso triple de lectura-traducción-
ejecución. Son relativamente lentos, pero muy buenos para la
depuración de programas.

Compilador es
Es el tipo de traductor más conocido. Se trata de un programa
que traduce código fuente escrito en un lenguaje de alto nivel
(Pascal) en código máquina (no siempr e). Son más rápidos
que los intérpretes pero presentan mayor dificultad a la hora
de detectar errores.

3.2.5 Sistema oper ativ o


Página 21 de 22

Es un software de sistema, es decir, un conjunto de


programas de computación destinados a realizar muchas
tareas entre las que destaca la administración de los
dispositivos periféricos.

Cuando se aplica voltaje al procesador de un dispositivo


electrónico, éste ejecuta un reducido código en lenguaje
ensamblador localizado en una dirección concreta en la ROM
(dirección de reset) y conocido como reset code, que a su vez
ejecuta una rutina con la que se inicializa el hardware que
acompaña al procesador. También en esta fase suele
inicializarse el controlador de las interrupciones. Finalizada
esta fase se ejecuta el código de arranque (startup code),
también código en lenguaje ensamblador, cuya tarea más
importante es ejecutar el programa principal (main()) del
software de la aplicación.1

Un sistema operativo se puede encontrar en la mayoría de los


aparatos electrónicos que utilicen microprocesadores para
funcionar, ya que gracias a éstos podemos entender la
máquina y que ésta cumpla con sus funciones (teléfonos
móviles, reproductores de DVD, autorradios, computadoras,
radios, etc.).

Conclusión:
Página 22 de 22

Este tema se me hizo muy interesante porque


comprendí los diferentes tipos de direccionamiento que
hay direccionamiento inmediato, directo e indirecto.

Además aprendí a diferenciar los diferentes tipos de


programas de sistemas, tales como: ensambladores
macro procesadores, cargadores entre otros también
aprendí como funciona cada uno de los programas de
sistemas

You might also like