Informtica Aplicada al Trabajo Social - PowerPoint PPT Presentation

1 / 38
About This Presentation
Title:

Informtica Aplicada al Trabajo Social

Description:

... la parte f sica, conocida como 'Hardware' y otra, la parte l gica ... Hardware. Sistema operativo o de explotaci n. Programas de aplicaci n. Usuarios ... – PowerPoint PPT presentation

Number of Views:110
Avg rating:3.0/5.0
Slides: 39
Provided by: UM4
Category:

less

Transcript and Presenter's Notes

Title: Informtica Aplicada al Trabajo Social


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

Rafael Menéndez-Barzanallana Asensio
11/01/2005
Informática Aplicada al Trabajo Social
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
  • Se escribe el programa (conocido como programa
    fuente) mediante un editor de textos y se
    almacena en un fichero.
  • 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
  • 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
  • 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
  • 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).
  • La selección del SO y sus opciones es una
    decisión importante en la mayoría de las
    instalaciones de computación.
  • El usuario debe interactuar con el SO para lograr
    su tarea, ya que su primer contacto con el
    ordenador
  • 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
Write a Comment
User Comments (0)
About PowerShow.com