Fundamentos de Programación

Informática. Computación. Hardware. Periféricos. Procesamiento de datos. Sistema informático

  • Enviado por: Larbi Mohamed
  • Idioma: castellano
  • País: España España
  • 9 páginas
publicidad
publicidad

Tema 1: Conceptos básicos de programación

  • Periféricos

  • Conceptos y definiciones

  • ¿Qué es un sistema operativo?

  • Evolución y clasificación de lenguajes

  • Fases en la elaboración de un programa informático

  • Ensambladores, compiladores e interpretes

  • Periféricos

  • Un ordenador solo es capaz de ejecutar ordenes y de realizar operaciones tan básicas como sumar, restar, multiplicar y dividir valores numéricos, comparar valores numéricos o alfanuméricos, almacenar o recuperar la información.

    Por tanto, su potencia y capacidad de calculo dependerá básicamente de su eficacia, fiabilidad, rapidez y precisión, así como de la memoria disponible (tanto principal como auxiliar (la principal es la RAM y la auxiliar los soportes de almacenamiento permanente)). Con la combinación de operaciones basicaza, un ordenador puede llegar a realizar operaciones o cálculos verdaderamente complejos, pero siempre existirá una estrecha dependencia de la maquina con el hombre, y sin la cual el ordenador es una herramienta carente de utilidad, pues el hombre es quien marca las pautas para su correcto funcionamiento a través de la lógica y el razonamiento.

    En definitiva, un ordenador solo es capaz de aceptar datos de entrada, procesarlo y facilitar datos o resultados de salida.

    Los datos son introducidos o recuperados de un ordenador a través de los denominados periféricos o dispositivos externos de entrada / salida, que son los elementos destinados a auxiliar a la CPU (Unidad Central de Proceso) y establece una estrecha relación entre dicha unidad y el mundo exterior.

    Según la función que desempeñen los periféricos se pueden clasificar en:

    • Periféricos de entrada

    Son aquellos capaces de suministrar o introducir datos y ordenes a un sistema informático, entre los más usuales destacan el teclado, el ratón, lectores de código de barra, escáner óptico, etc.

    • Periféricos de salida

    Son los encargados de sacar al exterior los resultados de proceso u operaciones realizadas por la CPU. Entre las más usuales destacan la pantalla con todas sus variantes, la impresora, el plotter.

    • Periféricos de entrada / salida

    Son aquellos capaces de realizar cualquiera de las dos operaciones anteriores indistintamente, entre ellos destacan las unidades de disco duro, unidades de CD-ROM, de DVD, Streamer, disqueteras.

    • Periféricos de comunicación con otro sistema físico u ordenador.

    Son aquellos encargados de establecer y facilitar el trasiego o intercambio de información entre dos o más ordenadores y bien entre un ordenador y otro sistema físico.

    Un claro ejemplo de este tipo de periféricos seria el MODEM, encargado de convertir señales digitales en señales analógicas y viceversa.

    Por lo tanto, puede ser considerado como un conversor de señales gracias al cual podemos poner en comunicación dos ordenadores remotos poniendo como medio de transmisión la línea telefónica.

  • Conceptos y definiciones

    • Datos: Son todos aquellos elementos considerados como unidades de tratamiento dentro de un sistema de proceso de datos. Los datos pueden ser básicamente de dos tipos, denominados datos de entrada que son aquellos pendientes de proceso o elaborar y datos de salida que son aquellos obtenidos tras el proceso de los datos de entrada. Al conjunto de los datos se le denomina información.

    • Programas: Son conjuntos de ordenes diseñados y creados a través del razonamiento lógico y almacenados en ficheros de texto respetando la sintaxis de un determinado lenguaje de programación. Estos conjuntos de ordenes se trasmiten al ordenador para la realización y ejecución de tareas concretas-

    • Aplicación informática: Es un conjunto de programas enlazados o relacionados entre sí.

    • Sistema informático: Es un conjunto de elementos que permiten procesar información por medio de equipos informáticos y cuya finalidad es la de obtener nueva información a partir de la ya existente. Todo sistema informático queda dividido de forma global en cuatro capas o niveles que son:

      • Hardware

      • Sistema operativo

      • Programas de aplicación

      • Recursos humanos, que son aquellas personas encargadas del desarrollo, implantación, explotación y mantenimiento de un sistema informático.

    Otros dos elementos fundamentales son los datos y los protocolos y procedimientos para el correcto uso y explotación del sistema.

    SISTEMA INFORMATICO

    • Hardware: Se denomina así a la parte física de un sistema informático, por ejemplo, un disco duro, un monitor, una tarjeta gráfica, cables, etc.

    Los principales elementos que constituyen el hardware son:

      • Unidad central de proceso (UCP, CPU), es el verdadero cerebro de la maquina, y la encargada de controlar, coordinar y realizar todas las operaciones de un sistema informático.

    Los componentes básicos de una CPU son:

  • Unidad de control (UC): Es la parte capaz de detectar por medio de señales eléctricas el estado de cada uno de los elementos conectados al ordenador y gobernar las unidades de entrada, salida y entrada / salida, además de interpretar y ejecutar las instrucciones que constituyen los programas.

  • Unidad aritmético lógica (U.A.L): Es la parte del procesador encargada de realizar todas aquellas operaciones de tipo aritmético y tipo lógico.

  • Memoria: Se pueden diferenciar principalmente dos tipos de memoria, en primer lugar, memoria central o RAM. También se conoce comúnmente con el nombre de memoria principal, y es la parte del sistema donde se almacenan temporalmente los programas que se van a ejecutar junto con los datos que queremos procesar.

  • En segundo lugar, la memoria auxiliar, son dispositivos de almacenamiento masivo de información. Los datos y programas pueden quedar almacenados de forma permanente, dando opción al usuario a recuperarlos en próximas sesiones de trabajo.

    • Software: Es la parte lógica o funcional de un sistema informático. Es decir la parte que hace funcionar al conjunto de elementos electrónicos de un ordenador permitiendo y coordinando cada uno de los componentes físicos.

    El software se divide principalmente en dos elementos que son: el software básico, el sistema operativo y el software de aplicación que es constituido por una serie de programas y datos con un objetivo muy concreto, que es el de proporcionar al usuario la posibilidad de realizar una serie de tareas de forma fácil y sencilla con la ayuda del ordenador. Se consideran software los programas de aplicación ofimática, los programas de gestión y similares.

  • ¿Qué es un sistema operativo?

  • Un sistema operativo puede definirse como un conjunto de programas encargados de hacer posible el manejo del ordenador y la utilización de programas de aplicación, actuando como intermediario entre el usuario y el hardware.

    En definitiva, se puede decir que la función de un sistema operativo es la de controlar el flujo de información entre dispositivos al mismo tiempo que facilitar la interactividad del usuario con la maquina de manera cómoda, así como la asignación de tareas y coordinación del funcionamiento interno del ordenador de manera eficaz, eficiente y segura.

  • Tipos de sistema operativo

  • Atendiendo al número de usuarios que puedan ser atendidos simultáneamente, el número de tareas o programas que se pueden ejecutar al mismo tiempo, el número de procesadores soportados y el tiempo de respuesta, los sistemas operativos se pueden clasificar en:

    • Sistemas monoprogramados: Se caracterizan por permitir la ejecución de un solo programa cada vez, por lo que no permitirá la ejecución de otro hasta que no finalice el anterior.

    El programa que se desea ejecutar es cargado en memoria y permanece en ella hasta que finaliza, adueñándose de la totalidad de los recursos del sistema, y que en este tipo de sistemas operativos no se da opción a que un segundo proceso participe de los mismos.

    • Sistemas multiprogramados: También reciben el nombre de sistemas multitarea y se caracterizan básicamente por ser sistemas que aprovechan los tiempos de inactividad o los tiempos muertos de la CPU permitiendo la ejecución “simultanea” de varios programas, así como la utilización y el trabajo del procesador.

    El proceso es sencillo, se cargan en memoria varios programas y se divide el tiempo de proceso que la CPU dedicará a cada uno, lo que permite la ejecución alternativa de todos ellos, esto es lo que se denomina concurrencia de procesos.

    • Sistemas de multiproceso: Los sistemas operativos capaces de funcionar bajo ordenadores cuya arquitectura soporta 2 o más procesadores reciben el nombre de sistemas de multiproceso. A esta forma de trabajo se la suele llamar de proceso paralelo y asegura una mayor velocidad y seguridad.

    • Sistemas de tiempo compartido: Es lo que se conoce como multiprogramación interactiva.

    En este tipo de sistemas cada vez que los usuarios se conectan al ordenador, abren una sesión, que es el periodo de tiempo transcurrido desde que el usuario se conecta hasta que se despide. Este hecho crea un proceso capaz de atender a ese usuario facilitándole la comunicación con el sistema operativo.

    • Sistemas de tiempo real: el tiempo de respuesta es el periodo de tiempo transcurrido desde que se realiza una petición o solicitud al sistema hasta que este responde. Si ese periodo de tiempo es muy breve (entre 1 msg. y 1 sg.) hablamos de tiempo real.

    Estos sistemas también considerados multiprogramados e interactivos, caracterizados por su rápida reacción y por manejar información que debe ser continuamente actualizada según los cambios producidos en tiempo real, por lo que requieren grandes restricciones en el tiempo de respuesta. Son utilizados en grandes sistemas capaces de enlazar en tiempo real puntos muy distantes.

    • Sistemas monousuario: Son sistemas muy simples que solo permiten el acceso a un usuario cada vez, por lo que no se requieren ningún tipo de restricción o control en la gestión de los usuarios conectados. Este tipo de sistemas pueden basarse tanto en la monoprogramación como en la multiprogramación y suelen ser principalmente ordenadores personales.

    • Sistemas multiusuario: Son sistemas que se basan frecuentemente en sistemas multiprogramados permitiendo el acceso de varios usuarios a la vez. Estos tienen la posibilidad de ejecutar varios programas de forma concurrente, lo que permite rentabilizar al máximo el rendimiento del procesador.

  • Evolución y clasificación de los lenguajes de programación.

  • Un lenguaje de programación es una notación o conjunto de símbolos y caracteres combinados entre sí de acuerdo con una sintaxis ya definida para posibilitar la transmisión de instrucciones a la CPU. Dichos símbolos y caracteres son traducidos a un conjunto de señales eléctricas representadas en código binario. La razón de convertir esos símbolos y caracteres a ceros y unos se debe a que el microprocesador solamente entiende ese lenguaje, que es el lenguaje binario o código maquina.

  • Lenguajes de bajo nivel

  • Son aquellos que por su característica se encuentran más próximos a la arquitectura de la maquina, englobándose en este tipo el lenguaje maquina y el lenguaje ensamblador.

    • Lenguaje maquina, se caracteriza principalmente por:

  • Ser considerado el primer lenguaje de programación.

  • Ser el único lenguaje inteligible directamente por un ordenador.

  • Basarse en la combinación de dos únicos símbolos, el 0 y el 1, denominados bits.

  • Ser propio de un determinado procesador, es decir, que cada procesador tiene su propio y particular lenguaje maquina, que no podrá ser entendido por cualquier otro.

    • Lenguaje ensamblador: Surge como sustituto del lenguaje maquina y esta basado en el uso de nemotécnicos (palabras abreviadas procedentes del inglés formadas por letras y a veces números). La programación en lenguaje ensamblador precisa de un amplio conocimiento sobre la constitución, estructura, y funcionamiento interno de un ordenador, así como un hábil manejo de los códigos y sistemas de numeración, en especial el binario y el hexadecimal.

    Los programas desarrollados en ensamblador se caracterizan por:

  • Ejecutarse más rápidamente que si hubiesen sido desarrollados en un lenguaje de alto nivel

  • Ocupar menos espacio en memoria

  • Facilitar el trabajo a la hora de desarrollar programas que controlan periféricos, simulen movimientos, generen sonido, etc.

  • Generar programas más largos que los desarrollados en lenguaje de alto nivel.

  • Ser el lenguaje de programación más difícil de escribir y depurar, lo que dificulta la verificación, corrección y modificación de los programas.

  • Los programas escritos en ensamblador no son transportables, es decir, un programa escrito para un microprocesador concreto no funcionará para un microprocesador diferente.

  • Lenguajes de alto nivel

  • Son aquellos que por sus características se encuentran más próximos al usuario o programador y se consideran como tales lenguajes como por ejemplo Basic, Pascal, Cobol y C. Una de las características más importantes de estos lenguajes es que son independientes de la arquitectura del ordenador, lo que implica que los programas desarrollados en lenguajes de alto nivel pueden ser ejecutados sobre ordenadores con distinto procesador. Este hecho hace que el programador no necesite poseer amplios conocimientos sobre el funcionamiento interno del ordenador que esta programando. Por otro lado cabe destacar una mayor facilidad en el desarrollo, depuración y mantenimiento de los programas.

    Un “inconveniente” es la necesidad de traducir los programas escritos en lenguaje de alto nivel a un lenguaje de programación tan primitivo como el lenguaje maquina para que pueda ser interpretado y ejecutado por la UCP, lo que significa disponer necesariamente de un traductor (Ensamblador, compilador o interprete).

  • Fases en la elaboración de un programa informático

  • El desarrollo de una aplicación o conjunto de programas para obtener una solución informática a un determinado problema se basa en un concepto denominado ciclo de vida, que establece una serie de etapas o fases que hay que seguir secuencialmente y de forma ordenada cuando se desea desarrollar un determinado producto de software. Estas fases son las siguientes: análisis, diseño, codificación o construcción, explotación y mantenimiento.

    • Análisis: En esta fase se establece cual es el producto que se va a desarrollar, siendo necesario especificar los procesos y estructuras de datos que se van a emplear para satisfacer la necesidad del usuario, por lo que debe existir una gran comunicación entre el usuario y el analista para conocer todas las necesidades y restricciones en el desarrollo de la aplicación.

    • Diseño: En esta fase se alcanza una solución optima, detallada y con la mayor precisión posible para el desarrollo de la aplicación, teniendo en cuenta los recursos físicos del sistema (tipo de ordenador, periféricos, comunicaciones, etc.). y los recursos lógicos (sistema operativo, programas de utilidad, compiladores, bases de datos, etc.).

    Para la representación de los algoritmos diseñados, se pueden emplear ordinogramas o diagramas de flujo, notación seudocodificada, tablas de decisión.

    Con la finalización de esta etapa se obtiene como documentación el llamado cuaderno de carga.

    • Codificación: Consiste en la traducción de la solución obtenida a un determinado lenguaje de programación, basándonos en las especificaciones de diseño expresadas en el cuaderno de carga.

    • Explotación: En esta fase se realiza la implementación de la aplicación en el entorno operativo o sistema físico donde va a funcionar habitualmente y su puesto en marcha para obtener un funcionamiento normal de todo el sistema.

    Algunas de las actividades que se realizan son: instalación de los programas, pruebas globales del sistema, traspaso de la información del sistema anterior al nuevo y por ultimo, eliminación del sistema anterior.

    Esta fase se complementará con la información del usuario con respecto al sistema y el uso de la aplicación.

    • Mantenimiento: Esta fase completa el ciclo de vida y en ella se realizan las correcciones necesarias para resolver errores y deficiencias del producto desarrollado, existiendo la posibilidad de que ciertas acciones de esta fase puedan reiniciar el ciclo de vida.

  • Ensambladores, compiladores e interpretes.

  • Cuando programamos en un lenguaje distinto al lenguaje maquina, los programas diseñados deben ser traducidos a código binario, para que así las instrucciones que componen dicho programa puedan ser entendidas y ejecutadas por la UCP. Los programas encargados de llevar a cabo esta tarea reciben el nombre de traductores de lenguaje. Como tarea de guía al proceso de traducción, se comprueba que el programa fuente esta correctamente escrito de acuerdo con la sintaxis del lenguaje.

    1.6.1 Ensambladores

    Los ensambladores son los encargados de transformar o traducir los programas escritos en ensamblador a su equivalente en código maquina o binario para que pueda ser ejecutado por la UCP.

    1.6.2. Interpretes

    Un interprete es un programa encargado de procesar y traducir cada instrucción o sentencia de un programa escrito en un lenguaje de alto nivel a código maquina y después ejecutarla, es decir, que el procesador ejecuta la orden o instrucción una vez traducida y después de comprobar que no existe error alguno de sintaxis.

    Por tanto, un interprete lee, examina, traduce y ejecuta una a una todas las instrucciones del programa fuente.

    Los interpretes suelen proporcionar un editor a través del cual se puede escribir el correspondiente programa fuente, facilitando así la edición y su posterior interpretación y ejecución, lo cual permitirá la comprobación y corrección de los posibles errores producidos durante el desarrollo del programa.

    Uno de sus principales inconvenientes en su lentitud en sucesivas ejecuciones del programa, ya que debe traducir y ejecutar cada una de las instrucciones de código del programa desarrollado en alto nivel, repitiendo así todo el proceso de traducción y ejecución.

    1.6.3. Compiladores

    Un compilador es un programa traductor que a diferencia de los interpretes, lleva a cabo la fase de traducción de dos formas, primero traduce completamente el programa fuente a código maquina y seguidamente lo ejecuta. Un programa compilado no necesita traducciones del programa fuente en ejecuciones sucesivas, lo que hace mucho más rápido el tiempo de ejecución. Se puede decir por tanto que los compiladores presentan todo lo bueno de los ensambladores y los interpretes.

    Las etapas del proceso de compilación son:

  • Edición: Consiste en la escritura del programa utilizando un lenguaje de programación precisamente seleccionado y su posterior grabación en un soporte de almacenamiento permanente. La edición del programa debe realizarse mediante un editor de textos que puede formar parte o no del compilador. En esta fase se obtiene el denominado programa fuente.

  • Compilación: En esta fase se traduce el programa fuente a su equivalente en código maquina, obteniendo en caso de no producirse ningún error el denominado programa o modulo objeto. En caso de producirse errores, el compilador los mostrará utilizando los mensajes correspondientes, lo cual nos permitirá corregir el programa fuente y proceder de nuevo a su compilación.

  • Linkado: Esta fase también recibe el nombre de montaje y consiste en unir o enlazar el programa objeto con determinadas rutinas internas del lenguaje. Si el método de compilación es modular se enlazarán los distintos módulos para obtener así el programa ejecutable.

  • Ejecución: Esta fase consiste en la llamada del programa ejecutable a través del sistema operativo. Inicialmente se debe comprobar el buen funcionamiento del programa mediante el uso de unos juegos de pruebas que especifican los resultados que se desean obtener en función de unos determinados datos de entrada.

  • Los principales errores en la ejecución de un programa son:

      • Datos de entrada incorrectos que puedan producir una parada del sistema, por ejemplo, un dividendo con valor 0 en una operación dará como resultado infinito y producirá el error.

      • Bucles mal definidos que producen un funcionamiento continuo

      • Datos de salida o resultados incorrectos producidos por un mal desarrollo del programa o por la existencia de una cierta ambigüedad en las especificaciones del usuario.

    ENTRADA DE DATOS

    (Periférico de entrada)

    SALIDA DE DATOS

    (Periférico de salida)

    PROCESO DE DATOS

    (CPU)

    USER 1

    USER 2

    USER 3

    APLICACIONES INFORMÁTICAS

    SISTEMA OPERATIVO

    HARDWARE