Introducción a la Informática El Software o Soporte Lógico Definición de SOFTWARE Conjunto de programas necesarios para realizar con el ordenador el tratamiento de la información. SW = Sistema Operativo + Programas de aplicación 1
Estructura del SW El SO hace de puente entre el HW y los programas de aplicación. Programas de Aplicación Sistema Operativo Objetivos de un S.O. 1. Coordinar las tareas ( programas ) que debe ejecutar el ordenador. 2. Optimizar el rendimiento de los recursos del ordenador. 3. Hacer el HW accesible para el usuario y los programas de aplicación. 2
Tareas de un S.O. Inicia el sistema. Carga/descarga datos de memoria secundaria a memoria principal. Decide que tareas (programas) se ejecutan en cada momento. Decide la asignación de recursos. Tareas de un S.O. ( II ) Coordina el intercambio de datos entre memoria y periféricos de E/S. Organiza la información en los discos (ficheros+directorios). Protege el sistema y los datos de usuarios no autorizados. Ofrece un interfaz hombre-máquina. 3
Estructura de un S.O. Progs. de Control : Progs. de proceso : Gestión de HW Gestión de programas. Gestión de datos. Traductores, compiladores e intérpretes. Utilidades del SO. Tipos de S.O. Monousuario y monotarea (MS-DOS). Monousuario y multitarea (primeras versiones de Windows). Multiusuario y monotarea (obsoletos). Multiusuario y multitarea (UNIX, Linux, Windows NT, XP, 2000). 4
Lenguaje de programación definición Notación formal para describir algoritmos o funciones que serán ejecutados por un ordenador Instrucción = orden expresada en un lenguaje de programación Programa = secuencia ordenada de instrucciones Lenguajes según su grado de independencia de la máquina Lenguaje máquina. Lenguaje ensamblador. Lenguajes de medio nivel ( C ). Lenguajes de alto nivel ( Pascal ). Lenguajes orientados a objeto ( C++ ). Lenguajes orientados a problemas concretos ( SQL ). 5
Lenguajes por generaciones 1ª Generación: máquina y ensamblador 2ª Generación: asignación estática de memoria ( FORTRAN, COBOL,... ). 3ª Generación: asignación dinámica de memoria, recursividad ( Pascal, C,...). Lenguajes por generaciones 4ª Generación: mucho más específicos ( SQL, NATURAL,... ). 5ª Generación: ligados a la Inteligencia artificial ( LISP, PROLOG,... ). 6ª Generación: lenguajes para Internet? (Java, C#,...) 6
Lenguajes según la forma de sus instrucciones y tipos de datos Lenguajes imperativos o procedimentales ( Pascal, C, Ada ). Lenguajes declarativos: funcionales (Lisp, Haskell) lógicos (PROLOG). Traductores Programas que procesan un texto fuente generando un texto objeto equivalente. lenguaje fuente Traductor lenguaje objeto El traductor puede estar escrito en un lenguaje distinto al fuente y al objeto. 7
Tipos de Traductores lenguaje ensamblador Ensamblador lenguaje máquina lenguaje de alto nivel Compilador Tiempo de Compilación lenguaje máquina o ensamblador Ejecución de un programa lenguaje máquina + Datos Ejecución Resultados Tiempo de Ejecución Antes de la ejecución tanto el programa como los datos deben ser cargados en memoria por un programa cargador ( loader ) 8
Intérpretes Traducción simultánea a la Ejecución lenguaje de alto nivel + Datos Intérprete Resultados Intérpretes ( II ) Compilación Ejecución Interpretación El tiempo empleado en la interpretación es mucho mayor que el tiempo de ejecución del mismo programa compilado 9
Montaje En ocasiones los programas se construyen en trozos que se compilan independientemente. Para conseguir un único módulo ejecutable, los distintos subprogramas resultantes de la compilación son unidos por un programa llamado montador de enlaces ( linker ) Proceso completo: compilación + montaje + ejecución módulo en lenguaje fuente traductor módulo en lenguaje ensamblador ensamblador módulo en código máquina módulo de carga programa ejecutable en memoria otros módulos cargador (loader) montador de enlaces (linker) compilación montaje ejecución 10
Traductores: Compiladores/Intérpretes Compilador tradicional: traduce a código máquina módulos de sentencias escritos en lenguaje de alto nivel. Enlazando el resultado de múltiples compilaciones previas (que han dado origen a librerías) se genera un programa ejecutable. Traductores: Compiladores/Intérpretes Intérprete tradicional: va leyendo cada instrucción del programa fuente, se analiza, se parte en trozos y se ejecuta. Se repite este proceso con la siguiente instrucción hasta que se terminan las instrucciones o hay alguna que contiene la orden de detener la ejecución. Inconveniente: ejecución más lenta 11
Traductores: Compiladores/Intérpretes Intérprete de ByteCodes: La Máquina Virtual Java trabaja sobre instrucciones ya traducidas a código intermedio (bytecode). Inconveniente: ejecución lenta Ventaja: independiente de la plataforma (procesador + S.O.). Programas de Aplicación Tienen utilidad directa para el usuario. Tipos: Software a medida (hecho para un usuario) ó vertical Software comercial (hecho para venta al público) u horizontal 12
Ejemplos de Software comercial Editores (Bloc de Notas de Windows) Procesadores de texto (Word, Wordperfect) Hojas de calculo (Excel, Lotus 1-2-3) Sistemas de Gestión de Bases de Datos (Access, Oracle) Diseño gráfico (Autocad, Corel Draw) Entornos de programación Antivirus y Cortafuegos Etc., etc., etc. Ejercicio para entregar: Lista con programas típicos que se utilicen en la Topografía. 13
14