Informática y Programación Escuela de Ingenierías Industriales y Civiles Grado en Ingeniería en Ingeniería Química Curso 2010/2011 Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11 Módulo 1. Fundamentos de Computadores 1 • • • • Tema 1. Introducción y conceptos básicos Tema 2. Representación de la información Tema 3. Hardware Tema 4. Software. Paquetes software aplicados a ingeniería Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11 CONTENIDO 2 Software Conjunto de instrucciones que le indican al ordenador lo que tiene que hacer. Este conjunto de órdenes, integradas en un gran número de programas que interactúan unos con otros, constituyen la parte inmaterial del sistema y manejan todos los recursos para resolver un determinado problema. Sin el software, podríamos tener una máquina más o menos rápida, pero completamente inútil. Los ordenadores sólo tienen capacidad limitada para realizar operaciones matemáticas básicas y operaciones lógicas. Los programas combinan esas operaciones elementales para producir funciones complejas de más alto nivel y de mayor utilidad. Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11 Definiciones 3 Instrucción Pertenece a un repertorio que representan una orden de operación o tratamiento (generalmente de varios datos de entrada) para la computadora, generando unos datos de salida o resultados. Las instrucciones se pueden clasificar en función de la utilidad de las mismas: transferencia de datos, aritmética, lógica, control del flujo y otras. Programa Conjunto ordenado de instrucciones que se suministra a la computadora indicándole las operaciones o tareas que se desea que realice. Lenguaje de programación Describe todo lo relativo a los símbolos y reglas para construir o redactar programas. Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11 Definiciones 4 Por medio del lenguaje de programación indicamos al ordenador qué instrucciones ha de ejecutar y sobre que datos ha de operar. Lenguaje de bajo nivel Denominado lenguaje máquina, es muy reducido y laborioso de programar. Único que entiende la CPU de un ordenador. Se caracteriza por poseer instrucciones formadas por un conjunto de bits separado en código de instrucción y datos. Lenguaje de alto nivel Constituyen un paso intermedio entre el lenguaje máquina y el lenguaje natural, siendo más próximos al lenguaje humano. Deben ser traducidos al lenguaje máquina, para que la máquina pueda entender el programa. Son ejemplos representativos de estos lenguajes C, C++, Java, Pascal o lenguaje Matlab. Puede ser compilado o interpretado. Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11 Lenguajes de programación 5 No depende del ordenador Facilita la programación Depende del microprocesador Repertorio de instrucciones reducido Laborioso de programar Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11 Lenguajes de programación 6 Software del sistema Conjunto de programas imprescindibles para el funcionamiento del hardware, más un conjunto de utilidades cuya misión es la de facilitar el uso del sistema y optimizar sus recursos, sistemas operativos, software de utilidad, compiladores, seguridad, etc. Software de aplicaciones Conjunto de programas que manejará el usuario para realizar cualquier tarea con el sistema informático, aplicaciones ofimáticas, diseño gráfico, software a medida, programas usuario, etc. Esta clasificación permite distinguir entre los usuarios expertos en informática que actúan como administradores del sistema y como programadores del software del sistema y los usuarios no informáticos que utilizan el software de aplicaciones. Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11 Tipos de software 7 Todo software tiene un propietario, existiendo tres categorías fundamentales de licencia o propiedad del software: • Software propietario: Licencia de uso como decida la empresa que lo vende. Copyright -c All rights reserved. • Shareware: La distribución y la utilización se permite durante un tiempo de prueba de forma gratuita, pero el autor exige que superado ese tiempo de prueba, el usuario pague por su uso regular. • Software abierto (open source): Garantiza libertades de uso, redistribución y modificación. Poseen código fuente abierto pudiendo ser propietario o no. Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11 Tipos de software 8 Arranque BIOS Tareas que se realizan en el ordenador en el momento de encenderlo (chequeo, configuración de sistemas básicos, etc.). Cargador Carga en la memoria RAM el núcleo del sistema operativo que está contenido en el disco o en otro dispositivo de almacenamiento permanente. Sistema operativo Conjunto de programas que permiten a los usuarios interactuar de forma sencilla con el hardware específico del ordenador, de manera que oculta sus detalles como el tipo o la marca y modelo concretos. Una vez cargado realiza inicializaciones y se pone a la espera de recibir instrucciones por parte del usuario, presentando la interfaz gráfica de usuario o en modo carácter el símbolo del sistema (prompt). Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11 Software del sistema 9 Interfaz de usuario Es lo que el usuario ve en pantalla y hace posible la interacción con el hardware, permitiéndole dar órdenes o ejecutar programas. Distinguimos de caracteres y gráficas o GUI Programas de ayuda al sistema operativo Herramientas de apoyo al SO entre los que figuran programas de diagnóstico y programas de mantenimiento del sistema: añadir o modificar elementos hardware en el sistema, añadir y gestionar usuarios, etc. Utilidades generales Traductores de lenguajes de alto nivel (compiladores e intérpretes), depuradores, ensambladores y cargadores, editores de programas, etc. Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11 Software del sistema 10 Programas de aplicación Interfaz con el usuario Sistema operativo BIOS Hardware Utilidades Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11 Software de sistema 11 Pertenece al software del sistema, siendo un programa, o conjunto de programas, de control que sirve de intermediario entre los usuarios y el hardware, facilitando el uso de la computadora para que se emplee de forma eficiente. Objetivos básicos: • ejecutar las aplicaciones de los usuarios, • facilitar la interacción con el computador, • administrar eficientemente los recursos de la máquina, • controlar el funcionamiento del hardware • y ofrecer un modo sencillo de acceso al ordenador. Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11 Sistema operativo 12 • Gestión de procesos: Para poder ejecutarse, un proceso necesita adquirir recursos como tiempo de CPU, una porción de memoria, archivos, E/S, todo ello compartido con otros procesos. Es responsabilidad del SO actuar como árbitro encargándose de repartir la CPU entre los procesos activos, la creación y eliminación de procesos, conocer el estado de los recursos, planificar, sincronizar y comunicar procesos, asociar y desasociar recursos. • Gestión de memoria: El SO debe conocer qué zonas de memoria están libres y cuáles están ocupadas para decidir qué procesos hay que cargar cuando haya memoria libre, así como reservar y liberar zonas de memoria según se solicite. También se encarga de gestionar la memoria utilizando el almacenamiento secundario como una extensión de la memoria principal. • Gestión de la E/S: El SO incluye gestores o manejadores de dispositivos, drivers, que son rutinas de E/S encargadas de controlar los dispositivos y son los únicos que deben conocer las peculiaridades concretas de los mismos. Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11 Sistema operativo: Funcionalidades 13 • Sistema de archivos: Las funciones del SO en este ámbito son: la manipulación de archivos (crear, borrar, leer, escribir, estructurarlos en directorios), la manipulación de directorios, ubicación de archivos y directorios en los dispositivos de almacenamiento secundario y automatizar ciertos servicios como la copia de seguridad, versiones, etc. • Sistema de seguridad: La seguridad abarca los mecanismos destinados a controlar el acceso de los usuarios a los recursos de acuerdo con los privilegios que se definan. • Comunicación entre procesos y gestión de redes: El sistema operativo proporciona las primitivas de comunicación entre procesos (IPC), para que los procesos puedan comunicarse e intercambiarse información. • Interfaz de órdenes: Para que un usuario pueda dialogar directamente con el SO, se proporciona una interfaz de usuario básica para cargar y finalizar programas, introducir datos a los programas, trabajar con archivos y con redes. Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11 Sistema operativo 14 • Microsoft Windows: SO de propósito general creado para procesadores Intel y compatibles. Monousuario, multiproceso y dotado de mecanismos de seguridad e interfaz gráfica. • UNIX y Linux: Son sistemas operativos de propósito general, desarrollados para multitud de plataformas hardware. Es multiusuario, multiproceso e incorpora mecanismos de seguridad. Hay multitud de versiones y adaptaciones de este SO a máquinas de diferente propósito (ordenadores personales, servidores, teléfonos móviles, etc.) • Mac OS X: Son SO que solo funcionan en equipos Macintosh de Apple Computer, pionero en la utilización de un entorno operativo gráfico, incluyendo el uso de ventanas, menús desplegables y el ratón. Es multitarea y está basado en Unix. Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11 Sistema operativo: Comunes 15 Podemos encontrar aplicaciones de uso común (software estándar) que los fabricantes diseñan y distribuyen para un gran número de usuarios, y software a medida desarrollado por programadores para cubrir las necesidades de un cliente concreto. Entre los primeros: • Procesadores de textos • Hoja de cálculo • Gestor de bases de datos • Gestor de gráficos • Gestor de comunicaciones • Software para internet • Software de programación Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11 Software de aplicación 16 Los procesadores de texto son los programas más difundidos y usados. Se utilizan para crear, manejar e imprimir todo tipo de documentos como cartas, artículos, informes e incluso libros completos. La hoja de cálculo consiste en una distribución tabular en filas y columnas de un conjunto de celdas en las que se pueden colocar números, texto, operaciones matemáticas o funciones. Son de fácil manejo y tienen un gran campo de aplicación Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11 Software de aplicación 17 El gestor de base de datos es una aplicación que permite manejar un conjunto grande de datos organizados en archivos e interrelacionados entre sí. Un gestor de gráficos permite crear y manipular imágenes gráficas. Para ello, en primer lugar, es necesario que el equipo disponga de una tarjeta de gráficos, un monitor con suficiente resolución y un procesador lo suficientemente rápido para procesar las imágenes en forma eficaz. Un gestor de comunicaciones facilita la comunicación del equipo con otros equipos remotos. Con el crecimiento de internet, se está creando todo un software para internet que basa su desarrollo y aplicaciones en la red. Este software va desde los navegadores, buscadores de información, correo electrónico, mensajería instantánea, sistemas operativos en red, computación en la red, información en la red como Wikipedia, o YouTube, hasta las redes sociales. Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11 Software de aplicación 18 Software de programación Para poder realizar programas hace falta escribir el conjunto de instrucciones a ejecutar (código) en un archivo antes de traducir ese código a un lenguaje entendible por el computador. Generalmente los lenguajes de programación disponen de un entorno que incluye herramientas de edición, compilación, etc. Existen entornos de desarrollo integrados en los cuales se han empaquetado varios programas en una única aplicación que combina un editor de código, un compilador, un depurador y un constructor de interfaz gráfica. Estos entornos proveen de un marco de trabajo amigable para la mayoría de los lenguajes de programación tales como C++, Python, Java, Delphi, Visual Basic, etc. En algunos lenguajes, un software de programación puede funcionar como un sistema en tiempo de ejecución, en donde se permite utilizar el lenguaje de programación en forma interactiva, sin necesidad de trabajo orientado a archivos de texto. Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11 Software de aplicación 19 • Fundamentos de Informática y Programación para Ingeniería. Ejercicios Resueltos para C y Matlab. Modesto Castrillón et al, Paraninfo, 2011. • Introducción a la informática, A. Prieto Espinosa, A. Lloris Ruiz, J.C. Torres Cantero, McGraw-Hill, Madrid (1989) Grupo Docente IyP – Departamento de Informática y Sistemas - 2010/11 Bibliografía 20