UNIVERSIDAD SAN PABLO CEU Facultad de CC. Experimentales y Técnicas Departamento de Informática TEMA 2 CONCEPTOS DE SOFTWARE 1 SISTEMAS OPERATIVOS. 2 PROGRAMAS DE APLICACION. 3 LENGUAJES DE PROGRAMACION. La otra parte fundamental de un sistema informático es el SOFTWARE, es decir, conjunto de programas que controlan la operativa y funcionamiento del ordenador. Aunque se considera como software cualquier tipo de programas, estos son de muy diversas clases. Se pueden dividir en tres grandes grupos : • • • Sistemas Operativos. Programas de Aplicación. Lenguajes de Programación. 1 SISTEMAS OPERATIVOS. Un ordenador no puede funcionar debidamente sin un gestor que controle el tráfico de datos y coordine toda la información obtenida del teclado, las unidades de disco y demás elementos hardware. Se conoce por sistema operativo al “programa o conjunto de programas de control que tiene por objeto facilitar el uso del computador y conseguir que este se utilice eficientemente”. Existen diferentes tipos de sistemas operativos ( D.O.S., OS/2, Windows 95, UNIX,....) y cada uno de ellos tiene unas características determinadas. Así un sistema operativo puede ser : mono/multitarea y mono/multipuesto. Un sistema operativo es monotarea cuando este provoca que el microprocesador no puede empezar a ejecutar otro programa (tarea) hasta no finalizar la primera, solo permite, por tanto, la ejecución de un proceso a la vez sin posibilidad de que coexistan varios procesos en la memoria central. 1 UNIVERSIDAD SAN PABLO CEU Facultad de CC. Experimentales y Técnicas Departamento de Informática Un sistema operativo es multitarea cuando permite que varios procesos diferentes coexistan en la memoria central y compartan la C.P.U. por turnos. Al contar con una única C.P.U. solo se puede ejecutar un proceso en un momento dado, aunque el sistema operativo puede interrumpir temporalmente su ejecución para dar paso a otro. Es lo que se denomina “cesión de tiempos “. El sistema operativo aprovecha los tiempos muertos de la C.P.U., los tiempos muertos en periféricos, y los espacios de memoria principal no ocupados por el proceso; se cargan en la memoria varios procesos y se les va asignando la C.P.U. sucesivamente, de forma que se aprovecha al maximo la unidad central de proceso. Las tareas van avanzando en su ejecución sin necesidad de que finalice una para iniciar otra. La multitarea se controla por el sistema operativo que carga los programas y los maneja hasta que terminen. El número de procesos o programas que pueden ser efectivamente ejecutados dependen de la memoria disponible, la velocidad del microprocesador (C.P.U.), la capacidad y velocidad de los recursos periféricos, así como de la eficiencia del sistema operativo. Por ejemplo mientras un programa espera una entrada se puede ejecutar una instrucción de otro. Además un sistema operativo decimos que es monopuesto o monousuario cuando estamos ante un modo de ejecución que solo admite un usuario en el ordenador, o lo que es lo mismo un usuario por cada sistema operativo instalado. Un sistema operativo es multipuesto o multiusuario cuando permite la conexión de varios puestos de trabajo desde los que operar concurrentemente, utilizando una única C.P.U. y un único sistema operativo. Por ejemplo: D.O.S. (monotarea, monopuesto), OS/2 (multitarea, monopuesto), WINDOWS 95 y UNIX (multitarea, multipuesto), En una red con 6 ordenadores los sistemas operativos D.O.S., OS/2, y Windows 95 necesitarían 6 sistemas operativos mientras que UNIX solo necesitaría un solo sistema operativo instalado en el servidor. Por tanto : Un sistema operativo es un programa que actúa directamente sobre el hardware, gestionando los recursos de un ordenador de acuerdo a ciertos objetivos. Los dos objetivos principales de un sistema operativo son la utilización eficiente de los recursos disponibles y eliminar las dificultades que supone tratar directamente con el hardware. Sus funciones principales incluyen : asignación de tiempos de la C.P.U., control de los recursos, control de la entrada/salida, control y protección contra los errores, interface con el operador y los usuarios. Y son características deseables la eficiencia, fiabilidad, facilidad de mantenimiento y un pequeño tamaño. 2 UNIVERSIDAD SAN PABLO CEU Facultad de CC. Experimentales y Técnicas Departamento de Informática 2 PROGRAMA DE APLICACIÓN. Un programa de aplicación es un conjunto de instrucciones capaz de realizar una tarea concreta para los usuario. Podemos dividirlos en dos tipos principalmente : Tipo vertical o “software a medida” : Se trata de aplicaciones que tienen muy definida la tarea que permiten realizar, siendo preparadas “a medida” según las necesidades del usuario. Tipo horizontal o de propósito general también llamado “standard software” : Son programas creados para tareas generales, ajustándose a las necesidades de una pluralidad de usuarios como por ejemplo procesadores de texto, bases de datos, hojas de calculo, etc.. Veamos algunos de los programas incluidos en este software standard : • Procesadores de texto Sustituyen a la máquina de escribir, pero con más ventajas como poder visualizar el formato del texto antes de la impresión, realizar copias el documento, almacenar el texto y recuperarlo cuando queramos, verificar la ortografía. Aquí podemos destacar Word, Wordperfect, etc. • Gestores de bases de datos Organizan y manipulan gran cantidad de información útil, de forma específica, permitiendo la búsqueda, selección, actualización y extracción de datos. La información en una base de datos se encuentra en registros (descripción completa de un elemento de la base de datos) y en campos (cada una de los datos de un registro). Podemos destacar Access, Dbase, etc.. • Hojas de cálculo Permiten realizar cálculos u operaciones matemáticas, estadísticas, financieras, etc. Permiten a su vez realizar gráficos con las variables tratadas. Aquí tenemos Excel, Lotus 1-2-3, etc. • Paquetes integrados Son un conjunto de programas agrupados bajo el mismo nombre. Generalmente están formados por una hoja de cálculo, un gestor de bases de datos, un programa generador de gráficos, un procesador de textos, y en algunos casos un programa de comunicaciones. Esto nos va a facilitar el paso de uno a otro e incluso trabajar con ellos simultáneamente. Tenemos poe ejemplo Open Access, Woks, etc.. 3 UNIVERSIDAD SAN PABLO CEU Facultad de CC. Experimentales y Técnicas Departamento de Informática Actualmente han perdido utilidad al aparecer paquetes de aplicaciones que incluyen varios programas completos a la vez, como MS-OFFICE que no es un paquete integrado. • Paquetes de Diseño Gráfico Facilitan las presentaciones gráficas con la posibilidad de encadenar gráficos, diagramas y dibujos en una secuencia sobre la pantalla. Tenemos Harvard Graphics, PowerPoint, etc.. • Diseño asistido Enfocado a diseño industrial, permite realizar dibujos técnicos por lo que son especialmente útiles para determinados profesionales como aparejadores, arquitectos, ingenieros. Aquí tenemos AutoCad, etc.. 3 LENGUAJES DE PROGRAMACION. Un lenguaje de programación es una notación para escribir instrucciones con las que será posible comunicarse con el hardware, dando las ordenes necesarias para la realización de un determinado proceso. Se denomina “lenguaje fuente” a las ordenes que escribe el programador, las cuales son traducidas al lenguaje máquina de las computadoras. Cada lenguaje de programación tiene su propia gramática o “lenguaje”. Existen distintos niveles de programación, así tenemos : • Bajo nivel : Es aquel por el que se accede directamente al hardware. Es el caso del lenguaje máquina, que fue el primero en utilizarse, es el único que entiende la computadora directamente, al usar el alfabeto binario (0 y 1) por lo que son los menos “amigables “ para el usuario ante el cúmulo de errores que se pueden cometer. También se incluye aquí, aunque en un paso por encima de estos, los lenguajes ensambladores, que son un intento de sustituir al lenguaje máquina por otro más fácil de aprender y utilizar. En éste cada instrucción equivale a una instrucción en lenguaje máquina, la diferencia es que para su escritura utiliza palabras mnemotécnicas (es decir grupos de letras que equivalen a una operación en la máquina) y no cadenas de bits. 4 UNIVERSIDAD SAN PABLO CEU Facultad de CC. Experimentales y Técnicas Departamento de Informática Por lo demás presenta todos los inconvenientes del lenguaje máquina, por ejemplo que cada ordenador tiene un lenguaje ensamblador propio, por lo que un programa solo se puede usar en el ordenador para el que se pensó, lo que obliga a conocer la arquitectura de la máquina. Estos lenguajes son los que más se aproximan al lenguaje máquina, por lo que se pueden cometer errores fácilmente, aunque van a ser más rápidos que los que veremos a continuación, pues la traducción menos pasos. Por esto último es por lo que necesitamos un traductor o programa en lenguaje máquina que tome como datos las sentencias mnemotécnicas y de cómo resultado un programa objeto a lenguaje máquina. Programa Fuente • Traductor Programa objeto Alto nivel o lenguajes evolucionados: Persiguen en primer lugar lograr independencia de la máquina, de forma que un mismo programa se pueda utilizar en diferentes ordenadores, si bien, debe disponerse de un programa traductor ( que puede ser un interprete o un compilador) para obtener el programa ejecutable en lenguaje binario de la máquina. Así no se requiere conocer el hardware específico del equipo. En segundo lugar se puede escribir y leer de una forma más sencilla, eliminando en gran medida las posibilidades de cometer errores, ya que se usan palabras en ingles y no cadenas de bits. Ejemplos de lenguajes de programación típicos son FORTRAN, COBOL, BASIC, PASCAL, C, ETC.. Veamos ahora las diferencias entre los traductores : Los interpretes son traductores de lenguajes de programación de alto nivel que traducen y ejecutan el programa al mismo tiempo, es decir, traducen una sentencia de programa a lenguaje máquina y el microprocesador a continuación la ejecuta, y cuando termina pasa a traducir la siguiente. Un lenguaje de este tipo es el BASIC. Los compiladores traducen lenguajes de programación de alto nivel (COBOL, C) en lenguaje máquina. Un compilador primero genera lengueje ensamblador y después lo traduce a lenguaje máquina. El programa se traduce primero completamente, es decir, se “compila” y tras comprobar que no existen errores se ejecuta. El resultado es que los programas compilados se ejecutan más rápidamente que los interpretados. Por ejemplo supongamos que queremos crear un programa que sume los números 1 y 3 y saque el resultado por pantalla. En alto nivel sería A=1 B=3 5 UNIVERSIDAD SAN PABLO CEU Facultad de CC. Experimentales y Técnicas Departamento de Informática C=A+B Print C Si lo quisiéramos hacer en lenguaje ensamblador, deberemos tener en cuenta como se representan los números en binario, las instrucciones permitidas en el lenguaje ensamblador ( guardar, mostrar, sumar, etc.), la longitud de palabra con que trabaja el ordenador, las direcciones de memoria a las que puede acceder el microprocesador. Así tendremos : 00000001 00000011 00111001 00111010 guardar guardar sumar mostrar 00111001 00111011 00111011 guardar 00111010 En código máquina aún sería más difícil pues tendríamos que pasar cada una de las instrucciones a su correspondiente codificación en 0 y 1. 6