La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Informática Aplicada al Trabajo Social Capítulos 6 y 7. Lenguajes de Programación y Sistemas Operativos Conceptos generales de lenguajes de programación.

Presentaciones similares


Presentación del tema: "Informática Aplicada al Trabajo Social Capítulos 6 y 7. Lenguajes de Programación y Sistemas Operativos Conceptos generales de lenguajes de programación."— Transcripción de la presentación:

1 Informática Aplicada al Trabajo Social Capítulos 6 y 7. Lenguajes de Programación y Sistemas Operativos Conceptos generales de lenguajes de programación. Metodologías de programación Tipos de lenguajes de programación Evolución histórica de los sistemas operativos Clasificación de los sistemas operativos Sistemas operativos más usuales 11/01/2005 Rafael Menéndez-Barzanallana Asensio

2 Lenguajes de programación y sistemas operativos 6.1 Conceptos generales de lenguajes de programación Un ordenador consta de dos partes, una la parte física, conocida como "Hardware" y otra, la parte lógica denominada "Software". Ambas son imprescindibles para tener un equipo operativo. El software puede considerarse dividido en dos grandes grupos, uno es el conocido como sistema operativo o de explotación y otro son los denominados lenguajes de programación. Aparte existen infinidad de aplicaciones de "Software" pero ya para casos concretos, como por ejemplo los programas de gestión empresarial, las ofimáticas o los programas científicos.

3 Lenguajes de programación y sistemas operativos Existen otras metodologías más depuradas como por ejemplo la conocida como "Descomposición Funcional". A diferencia de la anterior en cada etapa se especifican las propiedades esenciales de las estructuras de datos, y cada algoritmo se expresa como una función matemática que transforma esta estructura de datos. Una vez desarrollado un programa se ha de comprobar su buen funcionamiento. Actualmente en la mayoría de los casos se prueban con cualquier tipo de datos que pueden presentarse en la realidad. Sin embargo este proceso nunca puede establecer si un programa es o no correcto, sin importar cuantos conjuntos de datos de usen.

4 Lenguajes de programación y sistemas operativos Si un programa es de importancia crítica, como ocurre con algunas aplicaciones comerciales, industriales o militares, es necesario tomar todas las precauciones posibles para asegurar que están libres de errores. Se están empezando a utilizar técnicas para asegurar que los módulos (y los algoritmos) son correctos, que los consideran como teoremas matemáticos y entonces se emplean los mismos métodos que se utilizan para demostrar los teoremas. Esta tarea es muy compleja y no siempre aplicable.

5 Lenguajes de programación y sistemas operativos Lenguajes de programación hay en gran cantidad, algunos han evolucionado a lo largo del tiempo y siguen vigentes en el transcurso de muchos años, mientras que otros han sido operativos durante un período más o menos largo y actualmente no se usan. Un lenguaje es un método conveniente y sencillo de describir las estructuras de información y las secuencias de acciones necesarias para ejecutar una tarea concreta. Una clasificación muy importante de los lenguajes es la de hacer dos grupos en base a su funcionamiento, esto es considerarlos como intérpretes y compiladores.

6 Lenguajes de programación y sistemas operativos Un lenguaje se dice que es un intérprete, por ejemplo el GWBASIC, cuando para ejecutar un programa el lenguaje ha de leer y traducir al lenguaje de la máquina las instrucciones una por una. El proceso se ralentiza, por ejemplo si una operación está dentro de la estructura conocida como ciclo y este se repite 1000 veces, el lenguaje tiene que traducirlo 1000 veces al código de la máquina. No todo son desventajas, pues la parte buena de este tipo de lenguajes es que los errores se pueden corregir al momento y seguir fácilmente la ejecución del programa, por lo cual son idóneos para aprender a programar, proceso en el que no importa la lentitud.

7 Lenguajes de programación y sistemas operativos Por contra un lenguaje se dice que es compilado, cuando el programa entero se traduce mediante el compilador de dicho lenguaje al código de la máquina correspondiente y el resultado se almacena de forma permanente en un archivo. De esta forma el programa se ejecutará de forma mucho más rápida que con un intérprete, sobre todo si hay estructuras que se repiten, caso de los ciclos. La principal desventaja es cuando se produce un error, que se detecta en el momento de la ejecución del programa, y la corrección no se puede hacer de inmediato, sino que hay que realizar todo el proceso desde el principio. Un ejemplo típico de lenguaje de este tipo el C, ampliamente usado en el desarrollo de programas.

8 Lenguajes de programación y sistemas operativos Un ejemplo en la vida real que ayuda a comprender la diferencia entre un intérprete y un compilador es el siguiente: supongamos que un libro escrito en una lengua distinta al castellano, hay dos procesos de acceder a su contenido cuando se necesite, una es traducir en el momento de su empleo la parte del libro que se precise, pero sin transcribirla a papel, sino simplemente mediante lectura traduciendo, esto sería el proceso de interpretado, mientras que la otra opción sería traducir el libro entero al castellano y dejar dicha versión escrita sobre papel, esto sería equivalente al compilado. El proceso de compilado no es tan inmediato como parece, se describe a continuación de forma muy esquematizada:

9 Lenguajes de programación y sistemas operativos 1)Se escribe el programa (conocido como programa fuente) mediante un editor de textos y se almacena en un fichero. 2)Este programa es invocado por la primera etapa del compilador, que efectúa un análisis léxico, se puede considerar como una interpretación del programa preparándolo para un tratamiento posterior en detalle. Consta de tres procesos: Adaptar el código fuente a un formato independiente de la forma en que se haya introducido en el sistema Eliminación de información redundante como espacios y comentarios Tratar las palabras clave y los símbolos para su paso a símbolos clave, conocido como "tokens"

10 Lenguajes de programación y sistemas operativos 1)Análisis sintáctico es el paso siguiente, el compilador determina la estructura, y de alguna forma el significado del programa fuente. El conjunto del programa se analiza en bloques, que se descomponen en instrucciones y se procede a identificar los elementos individuales. Como la sintaxis está expresada mediante un conjunto de reglas, cada una indica como se construye una estructura del programa a partir de otras estructuras de menor entidad. El proceso mediante el cual el compilador aplica estas reglas es conocido como "parsing". Durante la compilación se genera gran cantidad de información, que se almacena en una estructura de datos conocida como diccionario o tabla de símbolos, en algún momento del proceso se necesitará la información guardada previamente.

11 Lenguajes de programación y sistemas operativos 4) El paso siguiente es la generación de código, conocido como objeto. Para ello se recorre el código intermedio generado y se busca cada uno de los "tokens" en el diccionario, lo que permite insertar las direcciones en el código máquina en generación. 5) El proceso siguiente es la optimización de código objeto obtenido, con lo que se consigue un programa más eficiente. Generalmente donde se consiguen los mejores resultados es en los bucles, cuyo objetivo es reducir al máximo el número de operaciones que se ejecutan en él.

12 Lenguajes de programación y sistemas operativos 1)Normalmente hay una etapa posterior conocida como "linkado" o edición de ligaduras, en la que el o los módulos objetos generados previamente se unen entre sí y/o con otros módulos disponibles en librerías, para formar un fichero que contiene un programa ejecutable directamente desde el sistema operativo, sin necesidad de disponer del compilador correspondiente. Incluso se pueden unir programas escritos en lenguajes distintos si los módulos objeto creado se han estructurado de forma adecuada.

13 Lenguajes de programación y sistemas operativos 6.2. Metodologías de Programación Actualmente se están produciendo cambios de gran alcance en la forma en que se desarrolla el "software. Entre las causas de estos cambios se incluyen las siguientes: El coste creciente de los desarrollos La insatisfacción de los usuarios con la adecuación y calidad La complejidad y tamaño creciente de los programas La creciente dependencia de muchas organizaciones de sus sistemas informáticos, sin posibilidad de abandonarlos El avance hacia los ordenadores de quinta generación con características "software" muy diferentes de los actuales.

14 Lenguajes de programación y sistemas operativos Estas y otras presiones están provocando una reorganización de los métodos empleados en el desarrollo de los programas. Lo que se necesita son técnicas para la elaboración de productos software muy largos y complejos, que satisfagan estándares muy estrictos de calidad y prestaciones, de acuerdo con una planificación, control y presupuestos adecuados. Los métodos de trabajo que se han desarrollado para responder a estas necesidades constituyen lo que se ha dado en llamar "Ingeniería del Software". La Ingeniería del Software es una tarea de equipo., que se ocupa del ciclo de vida completo de un producto software, diseño, desarrollo, uso y mantenimiento.

15 Lenguajes de programación y sistemas operativos Por lo que respecta a las técnicas de diseño de programas, el método más simple y uno de los más populares es "Refinamiento Progresivo". Usa algoritmos que se escriben en un lenguaje intermedio entre el castellano y un lenguaje de programación como el Pascal, este lenguaje se denomina pseudocódigo. El proceso se puede describir de la siguiente forma: Establecer los pasos del programa en un algoritmo breve de alto nivel Repetir Expandir cada sentencia del algoritmo en detalle, especificando los pasos necesarios Hasta que las tareas hayan sido especificadas con el detalle suficiente como para que pueda generarse el código del programa

16 Lenguajes de programación y sistemas operativos Existen otras metodologías más depuradas como por ejemplo la conocida como "Descomposición Funcional". A diferencia de la anterior en cada etapa se especifican las propiedades esenciales de las estructuras de datos, y cada algoritmo se expresa como una función matemática que transforma esta estructura de datos. Una vez desarrollado un programa se ha de comprobar su funcionamiento. Actualmente en la mayoría de los casos se prueban con cualquier tipo de datos que pueden presentarse en la realidad. Sin embargo este proceso nunca puede establecer si un programa es o no correcto, sin importar cuantos conjuntos de datos de usen.

17 Lenguajes de programación y sistemas operativos Si un programa es de importancia crítica, como ocurre con muchas aplicaciones comerciales, industriales o militares, es necesario tomar todas las precauciones posibles para asegurar que están libres de errores. Se están empezando a utilizar técnicas para asegurar que los módulos (y los algoritmos) son correctos, que los consideran como teoremas matemáticos y entonces se emplean los mismos métodos que se utilizan para demostrar los teoremas. Esta tarea es muy compleja y no siempre aplicable.

18 Lenguajes de programación y sistemas operativos 6.3 Tipos de Lenguajes de Programación Los lenguajes de programación se clasifican de manera general en dos grandes grupos, lenguajes de alto nivel y lenguajes de bajo nivel. El grupo de los de bajo nivel, como su nombre indica incluye los relacionados íntimamente con la arquitectura de la máquina, por lo que generalmente son específicos de una CPU y no son válidos para otra diferente. Dentro de los de estos grupos está el lenguaje máquina, que es programar en el ámbito de la CPU, por lo tanto usando ceros y unos solamente, lenguaje muy difícil y propenso a errores.

19 Lenguajes de programación y sistemas operativos A diferencia de los del grupo anterior, un lenguaje de alto nivel es independiente del microprocesador del ordenador que lo soporta, así por ejemplo un programa escrito en lenguaje C, se puede compilar sin modificar para cualquier máquina, y en principio funcionará sin ningún problema. Esto implica dos ventajas principales, una es que la persona que desarrolla los programas no ha de saber nada acerca del ordenador en que se ejecutará el programa, la otra es que los programas son portables, es decir el mismo programa (en teoría) ha de funcionar sobre distintos tipos de ordenadores.

20 Lenguajes de programación y sistemas operativos El desarrollo de los lenguajes de alto nivel comenzó a mediados de los años cincuenta del siglo pasado, en esta época se crearon los lenguajes COBOL, FORTRAN Y ALGOL60. Posteriormente se han ido elaborando muchos otros, de hecho varios miles, aunque prácticamente sobreviven muy pocos. Otra forma de clasificar los lenguajes es en dos grandes grupos, declarativos e imperativos. Los imperativos establecen cómo debe ejecutarse una tarea partiéndola en procedimientos que especifican cada una de las tareas. Por el contrario los declarativos establecen estructuras de datos y las relaciones entre ellos que son significativas para ejecutar una tarea determinada, al tiempo que indican cual es el objetivo de dicha tarea. Un lenguaje típico de este grupo es el Prolog.

21 Lenguajes de programación y sistemas operativos 6.4 Evolución Histórica de los Sistemas Operativos Introducción Aquí se describe aquella parte del "software" de un ordenador que transforma el "hardware" en algo útil, el sistema operativo. Es importante considerar un ordenador como un conjunto de recursos. Estos pueden ser de tipo físico, lógico o una mezcla de ambos. Tomados como un todo estos recursos proporcionan facilidades para el tratamiento y la entrada/salida de datos, así como para otros aspectos del funcionamiento de un sistema informático. Seguidamente se citan algunas razones que justifican el estudio de los sistemas operativos:

22 Lenguajes de programación y sistemas operativos a)Para el uso de propósito especial, uno puede desarrollar uno propio o modificar alguno existente (esto es particularmente cierto con el SO LINUX, donde una de las razones de su éxito es que el 90% del mismo esta escrito en lenguaje de alto nivel). b)La selección del SO y sus opciones es una decisión importante en la mayoría de las instalaciones de computación. c)El usuario debe interactuar con el SO para lograr su tarea, ya que su primer contacto con el ordenador; d)Muchos conceptos y técnicas que se encuentran en los SO se pueden aplicar en forma general.

23 Lenguajes de programación y sistemas operativos Historia de S.O. Los primeros sistemas operativos: Inicialmente lo único que existía era el "hardware" del ordenador, eran máquinas muy grandes que ejecutaban su trabajo desde lo programado en una consola. El programador escribía el programa y lo ejecutaba directamente desde la consola del operador. Se debía de cargar manualmente en la memoria, bien fuera desde los conmutadores del panel frontal, desde cinta de papel o mediante tarjetas perforadas. Seguidamente se pulsaban los interruptores adecuados para cargar la dirección de inicio y para comenzar la ejecución del programa.

24 Lenguajes de programación y sistemas operativos A medida que se ejecutaba el programa, el programador seguía la ejecución por medio de los indicadores luminosos de la consola. Si aparecía algún error podía detener la ejecución, examinar el contenido de la memoria y de los registros y depurar el programa desde la consola. La salida generada se imprimía, o bien se almacenaba en cinta de papel o tarjetas perforadas para su posterior procesado. Con el tiempo se perfeccionaron los ordenadores: aparecieron los lectores de tarjeta, impresoras de línea y cintas magnéticas. Se diseñaron programas ensambladores, cargadores y enlazadores para facilitar la tarea de programación.

25 Lenguajes de programación y sistemas operativos Más tarde aparecieron compiladores de los lenguajes FORTRAN y COBOL, haciendo más sencillo el manejo del ordenador por parte del usuario, pero más compleja su forma de operar. Monitor simple: Durante el tiempo de montaje de las cintas o mientras se operaba en la consola, la CPU del ordenador permanecía inactiva. La solución fue doble, en primer lugar se contrataron operadores de ordenador profesionales, el programador entonces ya no tenía que tocar la máquina. El segundo ahorro de tiempo fue debido a la reducción del tiempo de preparación. Los trabajos con necesidades similares se incluyeron en lotes y se ejecutaban en le ordenador como un grupo.

26 Lenguajes de programación y sistemas operativos Pero aún había problemas, por ejemplo si un trabajo se detenía, los operadores tenían que darse cuenta observando la consola, determinar por qué se había parado la ejecución y obrar en consecuencia según el problema planteado. Durante este proceso la CPU volvía a estar inactiva. Para solventar este problema se introdujo el secuenciamiento automático de trabajos y con él se crearon los primeros y rudimentarios sistemas operativos Los sistemas así configurados son conocidos como batch o procesos por lotes.

27 Lenguajes de programación y sistemas operativos Prestaciones: Los ordenadores, en aquella época eran máquinas muy caras, por lo que es lógico obtener las máximas prestaciones posibles. Los procesos por lotes mejoraron las prestaciones, sin embargo había una parte del proceso que era muy lenta en comparación con la velocidad de la CPU, este problema era originado por los sistemas de entradas y salidas, siendo el caso más representativo el acceso a las cintas magnéticas, pues al ser dispositivos mecánicos la velocidad es muy baja comparada con los procesos electrónicos. Se desarrollaron dispositivos especializados con salida o entrada directa a cinta magnética. Se usaron pequeños ordenadores para realizar dichas funciones, que eran satélites del equipo principal.

28 Lenguajes de programación y sistemas operativos Otra solución a la lentitud de los procesos de entrada/salida fue el denominado "buffering" Multiprogramación: Las operaciones para procesos de E/S tienen sus limitaciones. Un usuario no puede mantener la CPU o los dispositivos de E/S ocupados todo el tiempo. La multiprogramación es un método para incrementar el empleo de CPU, disponiendo en todo momento de algo que la CPU pueda ejecutar. La idea es que el S. O. toma uno de los trabajos de un grupo y empieza a ejecutarlo, en algún momento la tarea tendrá que esperar, como por ejemplo para montar una cinta magnética, en un sistema sin multiprogramación la CPU quedaría inactiva.

29 Lenguajes de programación y sistemas operativos Los sistemas operativos multiprogramados son bastante sofisticados, siendo la multiprogramación el tema central de los sistemas operativos modernos.

30 Lenguajes de programación y sistemas operativos Los aspectos fundamentales a considerar son: Gestión de la memoria Planificación de la CPU Control de concurrencia. Protección Abrazo mortal Tiempo compartido: Los sistemas por lotes se definían por la agrupación de trabajos similares y se basaban en sistemas de tarjetas y cintas, que sólo permitían el acceso secuencial a la información. Al disponerse de discos, se hizo posible el acceso inmediato a todas las aplicaciones.

31 Lenguajes de programación y sistemas operativos Un sistema por lotes tiene algunos inconvenientes para el usuario, el principal es que no pueden interactuar con sus trabajos mientras se están ejecutando, lo cual crea problemas caso de necesitar depurar un programa. Como consecuencia posteriormente a estos sistemas aparecieron los conocidos como interactivos o "hands-on", en los que el usuario da y recibe las instrucciones de forma inmediata. En consecuencia se puede experimentar fácilmente con cualquier programa. Un sistema operativo de tiempo compartido utiliza la planificación de la CPU y la multiprogramación para dotar a cada usuario de una pequeña parte del ordenador compartido.

32 Lenguajes de programación y sistemas operativos Tiempo real: Se utilizan frecuentemente como dispositivos de control en aplicaciones especializadas. Por ejemplo unos sensores proporcionan datos al ordenador, que los analiza y en consecuencia ajusta unos controles para modificar las entradas al sensor. Ejemplos de uso de este tipo se da en aplicaciones científicas, médicas e industriales.

33 Lenguajes de programación y sistemas operativos 6.5 Clasificación de los Sistemas Operativos Un sistema operativo es una parte fundamental de cualquier sistema informático. A grandes rasgos un sistema informático se puede dividir en: Hardware Sistema operativo o de explotación Programas de aplicación Usuarios

34 Lenguajes de programación y sistemas operativos Un sistema operativo es similar a un gobierno. El sistema operativo facilita los medios para el uso adecuado de los recursos durante la operación del sistema informático. Al igual que un gobierno, el sistema operativo no realiza por sí mismo una función útil, simplemente crea el entorno en el que otros programas puedan hacer un trabajo adecuado. También se puede considerar un sistema operativo como un asignador de recursos. El S.O. actúa como gestor asignando los recursos a programas y usuarios específicos, para que realicen sus tareas. Otra concepción, un sistema operativo es un programa de control.

35 Lenguajes de programación y sistemas operativos En general no hay una definición adecuada de un sistema operativo. Existen por que son una vía razonable para resolver el problema de crear un sistema informático manejable. En general es más fácil definir los sistemas operativos por lo que hacen y no por lo que son. Los sistemas operativos se pueden clasificar en cuatro grupos: Por lotes (batch) Son los primitivos, de la época de tarjetas perforadas. Interactivos monousuarios Permiten que un solo usuario pueda interaccionar en cualquier momento con el proceso que esté ejecutando.

36 Lenguajes de programación y sistemas operativos Tiempo compartido Permiten el acceso al ordenador de un número variable de usuarios de forma concurrente, y dada la gran velocidad del ordenador, es como si estuviera trabajando simultáneamente para todos ellos. Tiempo real Se utilizan ampliamente en aplicaciones industriales y de control. El sistema responde de forma inmediata a entradas del exterior.

37 Lenguajes de programación y sistemas operativos 6.6 Sistemas operativos más usuales Hasta hace pocos años cada fabricante de ordenadores tenía sus propios S.O. que no eran compatibles con los de otros, incluso dentro de un mismo fabricante podían coexistir varios, caso típico de IBM. Estos se conocen como sistemas propietarios. La tendencia actual es hacia los llamados sistemas abiertos, lo cual indica que estos sistemas operativos trabajan sobre una gran variedad de máquinas con independencia del fabricante del equipo. La gran ventaja es el ahorro a todos los niveles, pues por ejemplo una empresa con ordenadores de distintos fabricantes puede tener totalmente uniformado todo su software.

38 Lenguajes de programación y sistemas operativos Sistemas operativos ampliamente difundidos: MS-DOS Windows UNIX LINUX


Descargar ppt "Informática Aplicada al Trabajo Social Capítulos 6 y 7. Lenguajes de Programación y Sistemas Operativos Conceptos generales de lenguajes de programación."

Presentaciones similares


Anuncios Google