LOS PROGRAMAS DEL SISTEMA

Anuncio
LOS
PROGRAMAS
DEL
SISTEMA
INDICE:
1.LOS LENGUAJES BINARIO Y ENSAMBLADOR
2.LOS LENGUAJES DE ALTO NIVEL
3.EL SISTEMA OPERATIVO
4.LOS PROGRAMAS DE APLICACIONES
5.EJEMPLOS DE SISTEMAS OPERATIVOS
6.BIBLIOGRAFIA
TEMA 3: LOS PROGRAMAS DEL SISTEMA
1.LOS LENGUAJES BINARIO Y ENSAMBLADOR.
Concepto de sistema informático.
Sistema:conjunto de cosas que ordenadamente relacionadas entre sí contribuyen a determinado objeto.
Un sistema se compone a su vez de otros sistemas.
Componentes de un sistema informático:
Hardware y software:El hardware o soporte físico es todo aquello que podemos tocar: CPU, disco duro,
placa, disquetes, monitor, etc.
El software o soporte lógico es todo aquello que no es hardware: los programas, ficheros, bases de datos, el
sistema operativo, etc. El contenido de un disquete es software mientras que el disquete por sí mismo es
hardware.
El software se estructura en capas, donde cada capa trata de crear una abstracción para la capa siguiente que
así puede tratar con un dispositivo virtual más sencillo de utilizar.
Lenguajes de programación.:Los ordenadores son máquinas que sólo entienden un lenguaje binario, es decir,
sólo entienden dos estados (encendido y apagado). Conceptualmente podemos considerar que el ordenador
está compuesto por millones de interruptores donde cada interruptor puede tomar los valores 1ó 0, donde 1
significa que pasa corriente por ese interruptor y 0 significa que no pasa. Sin embargo, los seres humanos
usamos el lenguaje natural que cuenta con muchos más símbolos y reglas, que sin embargo no es entendido
por el computador.
1
Existen varios tipos de lenguajes de programación:
Lenguajes de bajo nivel
lenguaje máquina
lenguaje ensamblador
Los lenguajes de bajo nivel son aquellos que están más próximos al lenguaje que entiende el computador.
El lenguaje máquina:es un lenguaje de 1s y 0s que es directamente entendible por el ordenador, es muy
engorroso, es fácil cometer errores y difícil detectarlos,
depende del hardware.
PROBLEMA
Estructuras de datos
Algoritmo
PROGRAMA
Análisis
Codificación
Características de lenguaje maquina:
La codificación en lenguaje máquina implica una laboriosidad y unas grandes posibilidades de error.
Otra de sus características es la portabilidad: un programa de estas características es absolutamente
máquina−dependiente. Debido a esta dependencia, es necesario tener un conocimiento profundo de la
arquitectura para poder programar.
Por último tiene una nula capacidad de abstracción, el salto que hay que dar entre la concepción abstracta del
programa a resolver, y la expresión de su solución, utilizando esta nomenclatura, es inmenso.
El lenguaje ensamblador: es un lenguaje de etiquetas, donde se sustituye cada instrucción máquina por una
etiqueta más fácil de recordar que un conjunto de 1s y 0s precisa que otro programa traduzca las etiquetas a
lenguaje máquina menos engorroso que el lenguaje máquina depende del hardware.
El lenguaje aporta una minima capacidad de abstracción:
Los códigos de operación tienen nombres nemotécnicos.
Las direcciones de memoria donde se encuentran los operandos se pueden representar mediante nombres
simbólicos (identificador).
El ensamblador es un programa que tiene como entrada el programa escrito en lenguaje Ensamblador
(programa fuente) y como salida el mismo programa traducido a código máquina. Las tareas fundamentales
del programa Ensamblador son dos:
2
Traducir a código binario los códigos simbólicos de operación: existe una equivalencia uno a uno entre
Ensamblador y código maquina.
Traducir a direcciones de memoria reales las direcciones simbólicas del programa fuente:
El programa fuente debe suministrar al Ensamblador la lista de nombres simbólicos que el programa manipula
y algunas características de las necesidades de almacenamiento de la información a almacenar. Las
direcciones reales asignadas por el programa ensamblador, no suelen ser absolutas sino relativas. Será un
segundo programa: el cargador, quien se encargue de transformar dichas direcciones en absolutas.
2.LOS LENGUAJES DE ALTO NIVEL.
Los llamados Lenguajes de Alto Nivel son los más utilizados hoy en día como lenguajes de programación y
fueron desarrollados entre los años 50 y 60. Pertenecen a esta categoría la tercera y la cuarta generación. Una
de las características de estos lenguajes es que permiten que los algoritmos se expresen en un nivel y estilo de
escritura fácilmente legible y comprensible por otros programadores (capacidad de abstracción), otra de sus
características es la Transportabilidad, es decir, están implementadas sobre varias máquinas de forma que un
programa puede ser fácilmente Transportado (Transferido) de una máquina a otra sin una revisión sustancial.
En este sentido son Independientes de la máquina.
Algunos ejemplos de estos lenguajes de alto nivel son: PASCAL, APL y FORTRAN = FORmula
TRANslation (para aplicaciones científicas), COBOL = Common Business Oriented Languaje (para
aplicaciones de procesamiento de datos), SNOBOL (para aplicaciones de procesamiento de textos), LISP =
LISt Procesing y PROLOG (para aplicaciones de inteligencia artificial), C y ADA (para aplicaciones de
programación de sistemas) y PL/I (para aplicaciones de propósitos generales).
COMPARACIÓN
Un ejemplo para comprender la diferencia entre los lenguajes de alto nivel y los lenguajes de más bajo nivel
es: un lenguaje de bajo nivel está más cerca de las características de un lenguaje tipo máquina en particular, y
más alejado de poder ser comprendido por un humano. Cuanto más alto es el nivel del lenguaje, más sencillo
es comprenderlo y utilizarlo.
Existe también una estrecha relación entre las sentencias en lenguaje de alto nivel y sus formas en lenguaje
máquina codificada (lenguaje de bajo nivel). La principal diferencia aquí es que en los lenguajes de alto nivel
se utilizan símbolos como: `X', `Y', `Z', `A', etc para sumar, `M' para multiplicar, etc; mientras que en un
lenguaje ensamblador o máquina se requieren códigos numéricos del estilo: OC1A4, AV7J9, etc, para que sea
comprensible por la máquina.
La programación en un lenguaje de alto nivel requiere, por tanto, algún tipo de interfaz con el lenguaje
máquina para que el programa pueda ejecutarse. Las interfaces más comunes son: un compilador, y un
intérprete. El compilador traduce el programa a otro equivalente en el lenguaje `X' de la máquina residente
como un paso separado antes de la ejecución del programa, en cambio, el intérprete ejecuta directamente las
instrucciones en un lenguaje `Y' de alto nivel, sin un paso de procesamiento previo.
La compilación es, en general, un proceso más eficiente que la interpretación en la mayoría de los tipos de
máquina, esto se debe principalmente a que las sentencias dentro de un bucle deben ser reinterpretadas cada
vez que se ejecutan por un intérprete, con un compilador, cada sentencia es interpretada y luego traducida a
lenguaje máquina solo una vez.
Algunos lenguajes interpretados son: APL, PROLOG y LISP. El resto de los lenguajes: Pascal, FORTRAN,
COBOL, PL/1, SNOBOL, C, Ada y Modula−2 son normalmente lenguajes compilados.
3
En algunos casos, un compilador será utilizable alternativamente para un lenguaje interpretado (como LISP) y
un intérprete podrá funcionar con un lenguaje compilado (como el interprete SNOBOL4 de los laboratorios
Bell).
Normalmente la interpretación es preferible a la compilación en un entorno de programación experimental o
de educación, donde cada nueva ejecución del programa implica un cambio en el propio texto del programa.
La calidad de diagnóstico y depuración que soportan los lenguajes interpretados es generalmente mejor que la
de los lenguajes compilados, puesto que los mensajes de error se refieren directamente a sentencias del texto
del programa original. Además, la ventaja de la eficiencia que se adjudica tradicionalmente a los lenguajes
compilados frente a los interpretados puede ser pronto eliminado, debido a la evolución de las máquinas cuyos
lenguajes son ellos mismos lenguajes de alto nivel, como por ejemplo: las nuevas maquinas LISP, las cuales
han sido diseñadas recientemente por Symbolics y Xerox Corporations.
HISTORIA
El programador, diseñador e implementador de un lenguaje de programación debe comprender la evolución
histórica de los lenguajes para poder apreciar por qué presentan características diferentes. Por ejemplo, los
lenguajes más jóvenes desaconsejan (o prohíben) el uso de las sentencias GOTO, y esto es correcto en el
contexto de las filosofías actuales de ingeniería del software y programación estructurada. Pero hubo un
tiempo en que la sentencia GOTO, combinada con la IF, era la única estructura de control disponible, ya que
el programador no disponía de la construcción WHILE o de un IF−THEN−ELSE . Por tanto, cuando se ve un
lenguaje como FORTRAN, el cual tiene sus raíces en los comienzos de la historia de los lenguajes de
programación, uno no debe sorprenderse de ver la antigua sentencia GOTO dentro de su repertorio.
Lo más importante es que la historia nos permite ver la evolución de familias de lenguajes de programación,
ver la influencia que ejercen las arquitecturas y aplicaciones de las computadoras sobre el diseño de los
lenguajes y evitar futuros defectos de diseño. Los que son estudiados hoy en día se han elegido debido a su
mayor influencia y amplio uso entre los programadores, así como por sus distintas características de diseño e
implementación. Colectivamente cubren los aspectos más importantes con los que ha de enfrentarse el
diseñador de lenguajes y la mayoría de las aplicaciones con las que se enfrenta el programador.
Vemos que FORTRAN I es un ascendente directo de FORTRAN II, mientras que FORTRAN, COBOL,
ALGOL 60, LISP, SNOBOL y los lenguajes ensambladores, influyeron en el diseño de PL/1.
También hay varios lenguajes que están prefijados por las letras ANSI. Esto significa que el American
National Standards Institute ha adoptado esa versión del lenguaje como el estándar nacional, reforzando así la
transportabilidad de los programas de una máquina a otra.
Finalmente, la notación algebraica ordinaria, por ejemplo, influyó fuertemente en el diseño de FORTRAN y
ALGOL. Por otra parte, el inglés influyó en el desarrollo de COBOL. El lambda cálculo de Church dio los
fundamentos de la notación funcional de LISP, mientras que el algoritmo de Markov motivó el estilo de
reconocimiento de formas de SNOBOL. La arquitectura de computadoras de Von Neumann, la cual fue una
evolución de la máquina de Turing, es el modelo básico de la mayoría de los diseños de computadoras de las
ultimas tres décadas. Esta maquina no solo influyó en los primeros lenguajes de programación sino que
también suministraron el esqueleto operacional sobre el que evolucionó la mayoría de la programación de
sistemas.
COMPILADORES E INTERPRETES
Compilador: Programa que lee las líneas escritas en un lenguaje de alto nivel, también llamado código fuente,
y las traduce a otro que pueda ejecutar la computadora, también llamado código objeto.
4
Intérprete: Es un traductor que realiza la operación de compilación paso a paso. Para cada sentencia que
compone el texto de entrada, se realiza una traducción, ejecuta dicha sentencia y vuelve a iniciar el proceso
con la sentencia siguiente.
Diferencias: La principal ventaja del proceso de compilación frente al de interpretación es que los programas
se ejecutan mucho más rápidamente una vez compilados, debido a que han sido completamente traducidos a
lenguaje máquina; por el contrario, es más cómodo desarrollar un programa mediante un intérprete que
mediante un compilador puesto que en el intérprete las fases de edición y ejecución están más integradas. La
depuración de los programas suele ser más fácil en los intérpretes que en los compiladores puesto que el
código fuente está presente durante la ejecución. Estas ventajas pueden incorporarse al compilador mediante
la utilización de entornos de desarrollo y depuradores simbólicos en tiempo de ejecución.
PARTES DE UN COMPILADOR
Pueden distinguirse dos fases principales: una fase de análisis, en la cuál se lee el programa fuente y se
estudia la estructura y el significado del mismo; y otra fase de síntesis, en la que se genera el programa objeto.
Además, en un compilador pueden distinguirse algunas estructuras de datos comunes: la más importante de
ellas es el gestor de tabla, junto con el manipulador de errores.
El esquema general de un compilador podría ser el siguiente:
Analizador Léxico: Módulo que transforma el programa fuente en Tokens (unidades de información que es
capaz de manejar el analizador sintáctico). Identifica los símbolos y avisa de posibles errores sobre la forma
en la que está escrita el programa.
Analizador Sintáctico: Módulo que analiza los Tokens. Comprueba que las sentencias que componen el
programa fuente son correctas en el lenguaje que está escrito.
Analizador Semántico: Módulo que se ocupa de analizar si la sentencia tiene algún significado, ya que se
pueden encontrar sentencias que son sintácticamente correctas pero que no se pueden ejecutar porque carecen
de sentido.
Generador de Código Intermedio: Superada la fase de análisis, se genera un Código Intermedio (generalmente
lenguaje ensamblador) para luego crear el código máquina.
Optimizador de Código: A partir del Código Intermedio se crea un nuevo código más compacto y eficiente,
eliminando sentencias que no se ejecutan nunca, simplificando expresiones aritméticas, etc...
Generador de Código: Es la fase final del compilador. Genera el código objeto, es decir, el ejecutable.
3.EL SISTEMA OPERATIVO.
El Sistema Operativo es el soporte lógico que controla el funcionamiento del equipo físico. Es un conjunto de
programas y funciones que ocultan los detalles del hardware, ofreciendo al usuario una via sencilla y flexible
de acceso al mismo.
Es un programa básico que corre en un sistema, maneja los componentes del sistema, posee una interfaz
común a las otras aplicaciones, y es el encargado de ejecutar dichas aplicaciones, recibe los comandos de los
usuarios.
En resumen, Sistema Operativo es el conjunto de Programas que ordenadamente relacionados entre sí
5
permiten a los computadores realizar sus tareas, que son principalmente facilitar la tarea del usuario y
gestionar de forma eficiente los recursos.
La parte central del sistema operativo, está ejecutándose continuamente, por lo que existen dos tipos de núcleo
o kernel:
−Kernel monolítico: contiene gran parte de la funcionalidad del sistema operativo.
−Microkernel: es un proceso pequeño y el resto de la funcionalidad la dan otros procesos.
Existen diferentes tipos de sistemas operativos:
−Sistemas multitarea: puede realizar varios procesos a la vez; los recursos del sistema de cada proceso están
protegidos, por lo que existe un mecanismo de control de procesos.
−Sistema multiusuario: permiten que varios usuarios usen el sistema de forma simultánea, es un sistema de
pertenencias y permisos sobre archivos y procesos.
La interfaz gráfica de usuario hace las capacidades gráficas del sistema, puede evitar aprender lenguajes de
comandos y simplificar el uso de algunas aplicaciones; generalmente esta basada en un dispositivo puntero,
como puede ser por ejemplo del ratón. La interfaz grafica fue inventada en los años 70 por Xerox, pero se hizo
popular en los años 80 con Apple. Actualmente casi todos los sistemas modernos poseen interfaz grafica.
4.LOS PROGRAMAS DE APLICACIONES.
Programas de Aplicaciones Son los que resuelven un problema concreto de los usuarios y que no son
suministrados con el sistema operativo. Son programas diseñados y codificados por analistas y programadores
de aplicaciones conjuntamente con los usuarios.
Los programas de aplicación pueden ser por ejemplo: procesadores de texto, hojas de cálculo, bases de datos,
aplicaciones gráficas, Internet, etc.
Procesadores de Texto:
Son utilizados para escribir cartas, memorándums y otros documentos, El usuario teclea una serie de letras o
párrafos, y son mostradas en la pantalla. El usuario puede fácilmente adherir, borrar y cambiar el texto hasta
que el documento quede exactamente como se desea.
Algunas características avanzadas que encontramos en la actualidad en los procesadores de texto son:
corrector de ortografía, diccionario de sinónimos, presentación preliminar del texto antes de imprimir.
Ejemplos de procesadores de texto: Word, AmiPro, Wordperfect.
Hojas de Cálculo
Una Hoja de Cálculo es una herramienta para calcular y evaluar números. También ofrece capacidades para
crear informes y presentaciones para comunicar lo que revelan los análisis; el usuario teclea los datos y las
fórmulas que serán usadas para obtener los resultados; después el programa aplica las fórmulas a los datos y
así obtiene los resultados; una de sus características mas importantes es la habilidad de preguntar
(Condicionales)"what IF" "QUE PASARÍA SI?", cambiando los datos and rápidamente re− calculando los
nuevos resultados.
La mayoría de las Hojas de Cálculo cuentan también con la posibilidad de graficar estos resultados en
6
diferentes estilos de gráficas (Barras, Líneas, Pastel, etc).
Ejemplos de Hojas de Cálculo: Excel, Lotus 123, Quatro.
Bases de Datos:
La DBMS (Data Base Management System) es la herramienta que las computadoras utilizan para realizar el
procesamiento y almacenamiento ordenado de los datos.
Una base de datos es un recipiente para colecciones relacionadas de datos.
Por ejemplo, un a agenda puede ser una base de datos donde se almacenan los nombres, direcciones y
números telefónicos de amigos y contactos de negocios. La Base de Datos de una Compañía puede contener
información acerca de los consumidores, vendedores, empleados, venta s en inventario.
Ejemplos de Bases de Datos: Access, FoxPro, Approach.
Paquetes de Presentación.
Software que permite al usuario diseñar presentaciones para desplegarlas a través de la misma computadora o
imprimir diapositivas y acetatos. Contienen opciones avanzadas para integrar efectos en cada cambio de
diapositiva.
Ejemplos: Presentation, Power Point.
5.EJEMPLOS DE SISTEMAS OPERATIVOS.
Los ejemplos más famosos de sistemas operativos, don Windows, MS−DOS y Unix.
−Windows: interfaz gráfica de fácil manejo por lo cual, es el mas utilizado actualmente.
−MS−DOS: sistema operativo no gráfico que esta en desuso.
−Unix: Aparece a finales de los 70, Unix ofreció capacidades desconocidas hasta el momento, como puede ser
la multitare, multiusuario y portable. Por lo que establece las características básicas de los sistemas operativos
actuales. La filosofia de Unix es tener aplicaciones sencillas que se combinana entre si, Unix fue el sistema
operativo en el que se baso el desarrollo de Internet.
Los sistemas operativos actuales:
−Linux: Linux es un clon de UNIX basado en el modelo de software libre, este solo provee el kernel del
sistema.
Existen varios grupos y empresas que hacen distribuciones de GNU/Linux, la que contiene un sistema de
instalacion y de paquetes de software. Entre estas destacan, Debian, Redhat, Mandrake, Suse etc.
−Microsoft windows: Sistema operativo multitarea basado en un ambiente gráfico, ampliamente usado en
sistemas de escritorio Intel, inicialmente basado en DOS, las últimas versiones están basadas en un
microkernel (NT). Ej. XP, 2000
6.BIBLIOGRAFIA:
7
Algunas de las paginas que hemos utilizado para obtener la información necesaria para la realización del
trabajo.
http://www.monografias.com/trabajos/tendprog/tendprog.shtml
http://www.geocities.com/Athens/Temple/2269/001.htm
http://www.dlsi.ua.es/~marco/tema3/sld086.htm
http://www.deguate.com/infocentros/tecnologia/softwareII/info2.htm
http://www.tectimes.com/cda/glosario.asp?texto=C&codpalabra=64
http://www.tectimes.com/cda/glosario.asp?texto=I&codpalabra=152
http://www.lcc.uma.es/docencia/ETSIInf/pl/apuntes/pl1/lecc11.html
http://www.iespana.es/canalhanoi/informatica/software.htm
http://www.lafacu.com/apuntes/informatica/Sistemas_Operativos_en_Red_y_Distribuidos/ default.htm
Programa Fuente
F
A
S
E
D
E
A
N
Á
L
I
S
I
S
Analizador Léxico
8
Analizador Sintáctico
Analizador Semántico
MANIPULADOR DE
ERRORES
GESTOR DE TABLA
F
A
S
E
D
E
S
Í
N
T
E
S
I
S
Generador de Código Intermedio
Optimizador de Código
Generador de Código
Programa Objeto
9
Documentos relacionados
Descargar