Departamento de Matemtica y Ciencia de la Computacin.
Coordinacin de Computacin para la Facultad Tecnolgica.
1/09 1
INDICE DE CONTENIDOS
1. Definicin de Software 2 2. Conceptos Generales 3 3. Tipos de Softwares 4 4. Sistema Operativo 6 a. Funciones Bsicas del S.O. 7 b. Carga Inicial 7 5. Traductores, Compiladores e Interpretes 8 6. Lenguajes 10 a. Lenguajes de Programacin 10 b. Caractersticas de la programacin 10 c. Generaciones de lenguajes 12 7. Programas 14 a. Programacin estructurada 14 b. Pasos en el Desarrollo de Programas 15 c. Errores en la programacin 16 8. Multiprogramacin Multitarea 16 9. Multiprocesamiento. 17
Coordinacin Computacin 2009
Facultad de Ciencia Departamento de Matemtica y Ciencia de la Computacin. Coordinacin de Computacin para la Facultad Tecnolgica.
1/09 2
DEFINICIN DE SOFTWARE Es el conjunto de los programas de cmputo, procedimientos, reglas, documentacin y datos asociados que forman parte de las operaciones de un sistema de computacin. Bajo esta definicin, el concepto de software va ms all de los programas en sus distintos estados: cdigo fuente, archivo binario o cdigo ejecutable EL CDIGO FUENTE: es un conjunto de lneas de texto correspondiente a las instrucciones que debe seguir el computador para ejecutar dicho programa. Por tanto, en el cdigo fuente de un programa est descrito su funcionamiento. El cdigo fuente de un programa est escrito por un programador en algn lenguaje de programacin, pero en este primer estado no es ejecutable por la computadora, sino que debe ser traducido a lenguaje mquina o cdigo objeto que es la salida del proceso de compilacin y que s puede ser ejecutado por el hardware de la computadora. Todos los programas fuente deben compilarse o traducirse antes que el sistema los pueda ejecutar. Para esta traduccin se usan los llamados compiladores, ensambladores, intrpretes y otros sistemas de traduccin. UN ARCHIVO BINARIO: Es un archivo informtico que contiene informacin de cualquier tipo, codificada en forma binaria para el propsito de almacenamiento y procesamiento en computadores, por ejemplo los archivos informticos que almacenan texto formateado o fotografas, as como los archivos ejecutables que contienen programas. CDIGO EJECUTABLE: corresponde a las unidades de programas, donde el ordenador puede realizar las instrucciones mediante el compilador Generalmente se confunde con el cdigo objeto, ya que al leer su estructura se comprende como smbolos. Pero en realidad, este cdigo se encuentra empaquetado y listo para ser ejecutado en cualquier computador, vienen con la extensin EXE o COM El beneficio que esto trae es que al tener el cdigo ejecutable, podemos saber que la compilacin fue realizada correctamente y que el programa, si no tiene errores lgicos, arroja resultados correctos, ya que est libre de errores de variables o signos.
Facultad de Ciencia Departamento de Matemtica y Ciencia de la Computacin. Coordinacin de Computacin para la Facultad Tecnolgica.
1/09 3
CONCEPTOS GENERALES ALGORITMO: Conjunto de procedimientos paso a paso para realizar una tarea. La tarea del programador es convertir el algoritmo en un programa, aadiendo detalles, superando los puntos difciles, probando los procedimientos y corrigiendo los errores y eliminando la ambigedad, que es una de las principales fuentes de errores en los computadores.
PROGRAMAS: conjuntos de instrucciones de computador diseados para resolver problemas. Confieren a la computadora capacidad para llevar a cabo las funciones deseadas. Secuencia de instrucciones (enunciados) que se ejecutan una despus de otra. Estas instrucciones pueden ser de:
ENTRADA/SALIDA: dirigen a la computadora para interactuar con un perifrico.
PROCESO: permiten realizar las operaciones aritmticas.
CONTROL (DECISIN Y/O BIFURCACIN): pueden alterar la secuencia de la ejecucin del programa o terminar la ejecucin. Hay dos tipos de instrucciones de control:
de bifurcacin incondicional: interrumpen la secuencia normal de la ejecucin, originando una subrutina. de bifurcacin condicional: o enunciados SI (if); si se cumplen ciertas condiciones se crea una ramificacin en cierta parte del programa.
TRANSFERENCIA DE DATOS Y ASIGNACIN: permiten que se asigne a un sitio determinado de la RAM una constante de cadena o valor literal.
FORMATO: se usan junto con las instrucciones de entrada o salida y describen la manera en que se deben realizar la entrada y salida de datos de la RAM.
El software alimenta a la memoria de la mquina a travs de dispositivos de entrada; como el software se almacena en la memoria, el computador puede pasar de una tarea a otra y luego regresar a la primera sin que sea necesario modificar el hardware.
Facultad de Ciencia Departamento de Matemtica y Ciencia de la Computacin. Coordinacin de Computacin para la Facultad Tecnolgica.
1/09 4
TIPOS DE SOFTWARE 1. SOFTWARE DE TRADUCCIN: permiten escribir programas en lenguajes parecidos al ingls y traducirlos al lenguaje de mquina.
2. SOFTWARE DE USO GENERAL: Ofrece la estructura para un gran nmero de aplicaciones empresariales, cientficas y personales. La mayora del software de este tipo se vende como paquete, es decir, con software y documentacin orientada al usuario. La creacin de la aplicacin depende del usuario, del uso que le d.
3. SOFTWARE DE APLICACIN: Aquel que permite a los usuarios llevar a cabo una o varias tareas especficas, en cualquier campo de actividad susceptible de ser automatizado o asistido, con especial nfasis en los negocios.
El software de aplicacin puede ser: 1. A MEDIDA: Ofrece la oportunidad al usuario de personalizar el sistema de aplicacin segn sus necesidades; es decir que estn diseados considerando las particularidades que esa aplicacin tiene para el usuario. Tericamente, un sistema de este tipo debiera satisfacer plenamente las necesidades del usuario. La personalizacin tiene un lmite, dado por el hardware y el software del sistema que ser utilizado. 2. PREPLANEADO: Es concebido en forma estndar, sin tener en consideracin a usuarios en particular. Desde el punto de vista de los requerimientos de una aplicacin especfica de un usuario determinado, podran resultar menos flexibles que los desarrollados a medida, debido a que no tienen elementos que permitan personalizar la aplicacin. Pero desde el punto de vista de los requerimientos generales de aplicacin considerada en s misma, son sistemas mucho ms flexibles.
El elemento determinante en la eleccin ser, casi seguramente, el factor econmico. El sistema preplaneado es ms barato ya que el costo de desarrollo se amortiza entre todos los usuarios que adquieran el paquete. Pero para evaluar la magnitud del ahorro debe examinarse si, en relacin con los requerimientos del usuario, lo que ofrece el sistema preplaneado:
Facultad de Ciencia Departamento de Matemtica y Ciencia de la Computacin. Coordinacin de Computacin para la Facultad Tecnolgica.
1/09 5
Coincide plenamente: el ahorro econmico es real. Excede los requerimientos del usuario: la situacin resultara costosa, ya que se estara pagando por elementos y funciones que no se utilizarn (siempre y cuando el costo de los mismos fuera significativo frente a lo que resulta til del paquete). Satisface parcialmente o en forma diferente a lo que es la prctica usual en la organizacin: el ahorro es absorbido por el costo, implcito, de adaptar la organizacin a los requerimientos del sistema, en lugar de que el sistema satisfaga los requerimientos de la organizacin. Otra forma de clasificarlos en este mismo sentido, sera: 1. ELABORACIN PROPIA: Diseo y programa realizado por personal de la organizacin. Para determinar si esta estrategia es la mejor se deben evaluar los siguientes factores: Tiene la organizacin suficiente personal capacitado para desarrollar programas propios? Permite el programa de desarrollo terminar el proyecto en un plazo aceptable? Es el costo de esta alternativa una buena inversin comparada con otras alternativas? Se podra adquirir de otras maneras el programa necesario?
2. PAQUETES COMPRADOS: Programa o conjunto de programas ya escritos, diseados para ejecutar tareas ESPECFICAS. Las preguntas clave son: Tiene el paquete las caractersticas adecuadas a un costo razonable? Es aceptable el costo en relacin con el costo de desarrollo convencional o propio? Es suficiente el nmero de usuarios de ese programa para garantizar que quienes lo elaboran respaldaran el paquete despus de comprado?
3. ELABORACIN POR CONTRATO: Es una alternativa conveniente en las siguientes condiciones: La organizacin carece de personal tcnico para producir el programa deseado. No hay paquetes generalizados adecuados para el trabajo. El costo de esta alternativa no es prohibitivo.
Facultad de Ciencia Departamento de Matemtica y Ciencia de la Computacin. Coordinacin de Computacin para la Facultad Tecnolgica.
1/09 6
Se pueden hacer arreglos convenientes para el mantenimiento (cambios, correcciones y mejoras) del software despus de que haya sido entregado.
SOFTWARE DE SISTEMA: Su objetivo es desvincular al usuario y al programador de los detalles del computador aislndolo del procesamiento referido a las caractersticas internas de: memoria, discos, y dispositivos de comunicaciones, como impresoras, pantallas, teclados, etc. El software de sistema le entrega al usuario y al programador interfaces de alto nivel, herramientas y utilidades de apoyo que permiten su mantenimiento. Incluye entre otros: o Sistemas operativos o Controladores de dispositivo o Herramientas de diagnstico o Herramientas de Correccin y Optimizacin o Servidores o Utilidades
SISTEMA OPERATIVO El sistema operativo supervisa y controla todas las actividades de entrada/salida y procesamiento de un sistema de computacin. Todo el hardware y el software se controlan por medio del sistema operativo.
El sistema operativo distribuye y controla (es decir administra) recursos limitados del equipo de cmputo. Los programas que constituyen el sistema operativo son desarrollados generalmente por los fabricantes de computadoras y proporcionados a los compradores. Estn diseados para hacer el mejor uso de los componentes de cada sistema de computacin.
El conjunto de programas de control del sistema operativo trabaja en forma conjunta y est diseado para maximizar la eficacia total del sistema de cmputo. Este sistema supervisa todas las actividades, recabando programas especiales de sistema cuando sea necesario, asignando recursos del sistema y programando los trabajos de tareas para la operacin continua del sistema.
Los componentes del sistema operativos son de 2 tipos:
Facultad de Ciencia Departamento de Matemtica y Ciencia de la Computacin. Coordinacin de Computacin para la Facultad Tecnolgica.
1/09 7
Residentes: tambin llamados supervisores. Son componentes que residen permanentemente en la memoria central durante todo el procesamiento. Transientes: residen slo cuando se los necesita, estando almacenados en perifricos cuando no estn en la memoria central.
FUNCIONES BSICAS DEL SISTEMA OPERATIVO 1) Proveer servicios para la ejecucin y desarrollo de los programas de aplicacin: administrar los recursos en proceso, obtener automticamente la rutina apropiada y mantener la operacin del computador, sin necesidad de intervencin manual. 2) Actuar como entorno de la aplicacin en la cual el programa es ejecutado: Supervisar mediante un conjunto de rutinas las operaciones del computador, controlar el desarrollo de las operaciones internas de la CPU, dirigir el desenvolvimiento de las operaciones de entrada/salida. CARGA INICIAL DEL SISTEMA OPERATIVO La BIOS (Basic Input Output System) es la encargada de cargar el sistema operativo en memoria. Normalmente (para el caso de Windows) la carga del S.O. es totalmente automtica y transparente para el usuario, en otros casos (unix, Linux y otros), el usuario es responsable de definir ciertas variables del mismo. El S.O., al inicio no se carga completamente en memoria, solo programas residentes conocidos como SUPERVISOR.
Hay un primer programa especial (stand-alone), llamado IPL o BOOT, que forma parte del S.O., cuya nica misin es traer a memoria al segundo y principal programa, el residente. Este programa puede ser llamado pulsando una tecla; una vez que se encuentra en memoria, se comienza a ejecutar cumpliendo una serie de tareas que difieren de acuerdo al computador, entre ellas: permitir la ejecucin de programas stand-alone (todava no se ha cargado el supervisor); recibir la configuracin del equipo y la asignacin de memoria a las particiones; puede obtener estos datos: por parte del operador; o directamente de un archivo creado al efecto por un programa stand-alone (utilitario configurado).
Facultad de Ciencia Departamento de Matemtica y Ciencia de la Computacin. Coordinacin de Computacin para la Facultad Tecnolgica.
1/09 8
Finalmente, solicitar al operador el dispositivo donde deber buscar al residente para traerlo a memoria. Una vez cargado el residente en memoria, este programa desaparece. Por tanto el IPL o BOOT es un programa transiente del sistema operativo. SOFTWARE DE PROGRAMACIN: Es el conjunto de herramientas que permiten al programador desarrollar programas informticos, usando diferentes alternativas y lenguajes de programacin, de una manera prctica. Incluye entre otros: o Editores de texto o Compiladores o Intrpretes o Enlazadores o Depuradores o Entornos de Desarrollo Integrados (IDE): Agrupan las anteriores herramientas, usualmente en un entorno visual, de forma que el programador no necesite introducir mltiples comandos para compilar, interpretar, depurar, etc. TRADUCTORES, COMPILADORES E INTRPRETES Los traductores son programas elaborados que convierten los programas escritos en un lenguaje de programacin en lenguaje de mquina. Los programas de traduccin pueden ser:
1. Compiladores: El programa compilador traduce las instrucciones en un lenguaje de alto nivel a instrucciones que la computadora puede interpretar y ejecutar. Para cada lenguaje de programacin se requiere un compilador diferente. El compilador traduce todo el programa antes de ejecutarlo. Los compiladores son, programas de traduccin insertados en la memoria por el sistema operativo para convertir programas de cmputo en pulsaciones electrnicas ejecutables (lenguaje de mquina). Los compiladores pueden ser de: una sola pasada: examina el cdigo fuente una vez, generando el cdigo o programa objeto. pasadas mltiples: requieren pasos intermedios para producir un cdigo en otro lenguaje, y una pasada final para producir y optimizar el cdigo producido durante los pasos anteriores.
Facultad de Ciencia Departamento de Matemtica y Ciencia de la Computacin. Coordinacin de Computacin para la Facultad Tecnolgica.
1/09 9
Tambin hay compiladores incrementales que generan un cdigo objeto instruccin por instruccin (en vez de hacerlo para todo el programa) cuando el usuario teclea cada orden individual. El otro tipo de compiladores requiere que todos los enunciados o instrucciones se compilen conjuntamente. El proceso de compilacin puede requerir tiempo, sobre todo para los programas grandes, pero los programas compilados tienden a ejecutarse con mayor rapidez que los programas interpretados. La recompilacin slo es necesaria cuando se modifica el programa.
2. Intrpretes: Es un programa que desempea la misma funcin que un compilador, pero en forma diferente. En lugar de traducir todo el programa fuente en un solo paso, traduce y ejecuta cada instruccin del programa fuente antes de traducir y ejecutar la siguiente. La ventaja es que un error en la sintaxis salta inmediatamente a la vista del programador. La desventaja es que no produce un programa objeto, por lo que debe realizar el proceso de traduccin cada vez que se ejecuta el programa.
Software multiuso: Los paquetes de software integrado cuentan con varias aplicaciones diseadas para trabajar en conjunto; estos paquetes suelen incluir como mnimo, 5 tipos de aplicaciones: procesador de textos, base de datos, planilla de clculo, grficos y telecomunicaciones. Los paquetes integrados ofrecen varias ventajas: Su precio es menor que el costo total de la compra de los programas individuales. Dan una apariencia similar a todas sus aplicaciones, de modo que los usuarios no tienen que memorizar diferentes rdenes y tcnicas para efectuar tareas diferentes. Permiten transferir datos entre las aplicaciones con rapidez y facilidad. Software vertical: Aplicaciones diseadas especficamente para una empresa o industria particular. Son mucho ms costosas que las aplicaciones de mercado masivo.
Software a medida: Es el que se programa especficamente para determinados clientes.
Facultad de Ciencia Departamento de Matemtica y Ciencia de la Computacin. Coordinacin de Computacin para la Facultad Tecnolgica.
1/09 10
LENGUAJES Los lenguajes naturales son aquellos con los cuales hablamos y escribimos en nuestras actividades cotidianas. Los lenguajes de programacin ocupan una posicin intermedia entre los lenguajes naturales y los lenguajes de mquina.
Gracias a la progresiva complejidad de los lenguajes traductores que permiten convertir las instrucciones de un lenguaje de programacin al lenguaje de mquina, la programacin puede usar lenguajes de computacin que se parecen cada vez ms a los lenguajes naturales.
Tambin se habla de lenguajes naturales para referirse al software que permite que los sistemas de computacin acepten, interpreten y ejecuten instrucciones en el lenguaje materno o natural que habla el usuario final, por lo general el ingls. La mayor parte de los lenguajes naturales comerciales estn diseados para ofrecer a los usuarios un medio de comunicarse con una base de datos corporativa o con un sistema experto. LENGUAJES DE PROGRAMACIN Un lenguaje de programacin consiste en un conjunto de rdenes o comandos que describen el proceso deseado. Cada lenguaje tiene sus instrucciones y enunciados verbales propios, que se combinan para formar los programas de cmputo. Los lenguajes de programacin no son aplicaciones, sino herramientas que permiten construir y adecuar aplicaciones. CARACTERSTICAS DE LA PROGRAMACIN Un programa til tiene 5 atributos: 1) Exactitud y precisin: Un programa debe aceptar datos, procesarlos y generar resultados sin errores de sintaxis o de lgica; de ah la necesidad de exactitud y precisin.
2) Integridad o completitud: Un programa es completo slo si ejecuta todas las operaciones que el usuario espera al procesar un conjunto de datos.
3) Generalidad: La generalidad se entiende en dos sentidos:
Facultad de Ciencia Departamento de Matemtica y Ciencia de la Computacin. Coordinacin de Computacin para la Facultad Tecnolgica.
1/09 11
Un programa bien diseado se puede generalizar; es decir puede procesar conjuntos de datos que varan en el nmero de transacciones y en la naturaleza de los datos mismos. Las instrucciones se deben elaborar para que no se limiten a un nmero especfico de transacciones en el conjunto de datos. No debe suponerse que una parte especfica de datos siempre sea de igual tamao. El programa contiene diferentes opciones que pueden o no ser aplicadas durante una corrida. Los usuarios pueden seleccionar la opcin adecuada cada vez.
4) Eficiencia: Debe asegurarse que las instrucciones para procesar datos se seleccionen tan rpida y fcilmente como sea posible. La rapidez y la eficiencia del procesamiento de datos puede variar debido a: modo como se introducen los datos, orden en que se procesan los datos, instrucciones particulares que se empleen para controlar el proceso, etc.
5) Documentacin: Consiste en la inclusin de auxiliares que explican con claridad como ocurre el procesamiento de los datos en un programa. La documentacin incluida en un programa es de dos tipos: externa: No est incluida en el programa mismo sino que va por separado. Comprende: diagrama de flujo que muestre los pasos y los procedimientos y el orden en el cual tienen lugar; explicacin que describa en el lenguaje comn cmo es el procesamiento de los datos; descripcin de los datos que van a introducirse y procesarse, incluyendo su tipo y tamao.
interna: Consiste en comentarios y descripciones que se insertan entre los enunciados ejecutables de un programa. Explica la sucesin de los pasos del procesamiento y los objetivos de los diferentes grupo de enunciados del programa
Facultad de Ciencia Departamento de Matemtica y Ciencia de la Computacin. Coordinacin de Computacin para la Facultad Tecnolgica.
1/09 12
GENERACIONES DE LENGUAJES DE PROGRAMACIN Los lenguajes de programacin se dividen en 2 categoras fundamentales: BAJO NIVEL: Son dependientes de la mquina, estn diseados para ejecutarse en una determinada computadora. A esta categora pertenecen las 2 primeras generaciones. ALTO NIVEL: Son independientes de la mquina y se pueden utilizar en una variedad de computadoras. Pertenecen a esta categora la tercera y la cuarta generacin. Los lenguajes de ms alto nivel no ofrecen necesariamente mayores capacidades de programacin, pero si ofrecen una interaccin programador/computadora ms avanzada. Cuanto ms alto es el nivel del lenguaje, ms sencillo es comprenderlo y utilizarlo.
Cada generacin de lenguajes es ms fcil de usar y ms parecida a un lenguaje natural que su predecesores. Los lenguajes posteriores a la cuarta generacin se conocen como lenguajes de muy alto nivel. Son lenguajes de muy alto nivel los generadores de aplicaciones y los naturales.
En cada nuevo nivel se requieren menos instrucciones para indicar a la computadora que efecte una tarea particular. Pero los lenguajes de alto nivel son slo una ayuda para el programador. Un mayor nivel significa que son necesarios menos comandos, debido a que cada comando de alto nivel reemplaza muchas instrucciones de nivel inferior.
1) Primera - Lenguaje de mquina: Empieza en los aos 1940-1950. Consista en sucesiones de dgitos binarios. Todas las instrucciones y mandatos se escriban valindose de cadenas de estos dgitos. An en la actualidad, es el nico lenguaje interno que entiende la computadora; los programas se escriben en lenguajes de mayor nivel y se traducen a lenguaje de mquina.
2) Segunda Lenguajes ensambladores: Fines de los 50. Se diferencian de los lenguajes de mquina en que en lugar de usar cdigos binarios, las instrucciones se representan con smbolos fciles de reconocer, conocidos como mnemotcnicos. An se utilizan estos lenguajes cuando interesa un nivel mximo de eficiencia en la ejecucin o cuando se requieren manipulaciones intrincadas. Al igual que los lenguajes de la mquina, los
Facultad de Ciencia Departamento de Matemtica y Ciencia de la Computacin. Coordinacin de Computacin para la Facultad Tecnolgica.
1/09 13
lenguajes ensambladores son nicos para una computadora particular. Esta dependencia de la computadora los hace ser lenguajes de bajo nivel.
3) Tercera: aos 60. Los lenguajes de esta generacin se dividen en tres categoras, segn se orienten a: Procedimientos: Requieren que la codificacin de las instrucciones se haga en la secuencia en que se deben ejecutar para solucionar el problema. A su vez se clasifican en cientficos (p.ej.: FORTRAN), empresariales (v.g.: COBOL), y de uso general o mltiple (p.ej.: BASIC). Todos estos lenguajes permiten sealar cmo se debe efectuar una tarea a un nivel mayor que en los lenguajes ensambladores. Hacen nfasis los procedimientos o las matemticas implcitas, es decir en lo que se hace (la accin).
Problemas: Estn diseados para resolver un conjunto particular de problemas y no requieren el detalle de la programacin que los lenguajes orientados a procedimientos. Hacen hincapi en la entrada y la salida deseadas.
Objetos: El nfasis se hace en el objeto de la accin. Los beneficios que aportan estos lenguajes incluyen una mayor productividad del programador y claridad de la lgica, adems de ofrecer la flexibilidad necesaria para manejar problemas abstractos de programacin.
4) Cuarta: su caracterstica distintiva es el nfasis en especificar qu es lo que se debe hacer, en vez de cmo ejecutar una tarea. Las especificaciones de los programas se desarrollan a un ms alto nivel que en los lenguajes de la generacin anterior. La caracterstica distintiva es ajena a los procedimientos, el programador no tiene que especificar cada paso para terminar una tarea o procesamiento. Las caractersticas generales de los lenguajes de cuarta generacin son: Uso de frases y oraciones parecidas al ingls para emitir instrucciones; no operan por procedimientos, por lo que permiten a los usuarios centrarse en lo que hay que hacer no en cmo hacerlo; Al hacerse cargo de muchos de los detalles de cmo hacer las cosas, incrementan la productividad.
Facultad de Ciencia Departamento de Matemtica y Ciencia de la Computacin. Coordinacin de Computacin para la Facultad Tecnolgica.
1/09 14
Hay dos tipos de lenguajes de cuarta generacin, segn se orienten: A la produccin: Diseados sobre todo para profesionales en la computacin. Al usuario: Diseados para usuarios finales, que pueden escribir programas para hacer consultas en una base de datos y para crear sistemas de informacin. Tambin se llama lenguaje de consultas (SQL, Structured Query Language: lenguaje estructurado para consultas). PROGRAMAS Los programas de computacin son conjuntos o estructuras de instrucciones u rdenes codificados que hacen que la computadora efecte una serie de operaciones para alcanzar un propsito especfico.
Se llama programa a los conjuntos o series de instrucciones, lenguaje y mtodos que hacen posible que una persona utilice un computador. En sentido general el programa es un conjunto de rdenes o mandatos puestos para controlar la operacin de un sistema de cmputo (computador) para efectuar el clculo y el procesamiento de datos. El objetivo primario es controlar todas las actividades de procesamiento de datos y cerciorarse que los recursos y la capacidad de la computadora sean aprovechados de la manera ms eficaz. PROGRAMACIN ESTRUCTURADA En esta programacin se maneja en forma jerrquica la lgica del programa en mdulos lgicos. Al final se traduce la lgica de cada mdulo a una secuencia de instrucciones del programa que se pueden ejecutar de manera independiente. El planteamiento estructurado reduce la complejidad de la tarea de programacin.
La programacin estructurada es una tcnica para hacer ms simple y productiva la programacin. Un programa estructurado no depende de enunciados GoTo (enunciado utilizado para transferir el control a otras partes del programa) para controlar el flujo lgico, sino que se construye a partir de programas ms pequeos llamados mdulos o subprogramas, que a su vez se componen de mdulos ms pequeos. Lo que se hace es combinar los mdulos usando las 3 estructuras de control bsicas: secuencia, repeticin y seleccin.
Facultad de Ciencia Departamento de Matemtica y Ciencia de la Computacin. Coordinacin de Computacin para la Facultad Tecnolgica.
1/09 15
Un programa est bien estructurado si: est formado por mdulos lgicamente coherentes; los mdulos estn dispuestos en una jerarqua; y es directo y legible. PASOS EN EL DESARROLLO DE PROGRAMAS 1) Descripcin del problema: Identificacin precisa de las necesidades a satisfacer.
2) Anlisis del problema: Divisin del problema en sus componentes bsicos. Para la mayora de los programas estos componentes son: salida entrada procesamiento e interaccin de archivos
3) Diseo de la lgica general del programa: Un programa se disea jerrquicamente, yendo de los aspectos generales a los aspectos especficos. El diseo general se orienta a las principales actividades de procesamiento y a las relaciones entre stas. Al completar primero un diseo general se pueden investigar distintas alternativas de diseo; luego de elegida la mejor se avanza a un diseo ms detallado.
4) Diseo de la lgica detallada del programa: Se produce una representacin grfica de la lgica del programa que incluye todas las actividades de procesamiento y sus relaciones, clculos, manejos de datos, operaciones lgicas y todas las operaciones de entrada/salida.
5) Codificacin: Se traduce el diseo grfico y narrativo de los pasos anteriores a instrucciones o programas que la mquina puede leer.
6) Prueba y depuracin: Bsqueda y eliminacin de errores de sintaxis y de lgica. 7) Documentacin: Para responder a las necesidades a pesar los cambios los programas deben actualizarse peridicamente o mantenerse. El mantenimiento se dificulta si la documentacin no est completa y actualizada. La documentacin forma parte del proceso de programacin.
Facultad de Ciencia Departamento de Matemtica y Ciencia de la Computacin. Coordinacin de Computacin para la Facultad Tecnolgica.
1/09 16
No es algo que se lleve a cabo cuando el programa est escrito. Como mnimo la documentacin de cada programa debe incluir: descripcin del programa; grfica estructural; diagrama de flujo; listado del programa (con comentarios internos) una sesin interactiva (entrada/salida cuando se ejecuta el programa) ERRORES EN LA PROGRAMACIN de sintaxis: Violaciones de las reglas gramaticales del lenguaje de programacin para la escritura de instrucciones. Ejemplos: Inclusin de smbolos o caracteres que no estn permitidos. Omisin de la referencia de los datos por leer o escribir (se tiene que indicar a la CPU qu debe leer o escribir). Escritura errnea de una orden.
de lgica: Consisten en el uso inadecuado de instrucciones que son correctas en sintaxis; son errores en la estructura lgica que ocasionan diferencian entre lo que se quiere que haga el programa y lo que hace en realidad. MULTIPROGRAMACIN O MULTITAREA Es la ejecucin concurrente de ms de un programa a la vez. En realidad, una computadora slo puede ejecutar un programa a la vez, pero la velocidad de su procesamiento interno es tan rpida que se pueden distribuir por turno porciones del tiempo de la computadora entre varios programas. Esto hace que parezca que se ejecutan varios programas a la vez. Cuando un trabajo necesita un proceso de entrada/salida, otro puede iniciarse (o continuar) su realizacin; dos o ms programas independientes se ejecutan durante el mismo lapso al intercalar su ejecucin.
La ventaja es que se puede intensificar el rendimiento total del sistema. Es posible aprovechar la gran velocidad de la unidad central y evitar los retrasos al esperar las operaciones de entrada/salida.
Facultad de Ciencia Departamento de Matemtica y Ciencia de la Computacin. Coordinacin de Computacin para la Facultad Tecnolgica.
1/09 17
El control de la ejecucin de la intercalacin o empalme lo realiza el S.O. (si prev esta modalidad de trabajo). Es decir que por medio de la multiprogramacin se efecta la administracin en paralelo de dos o ms programas que residen simultneamente en la memoria del computador. Caractersticas de la multiprogramacin 1) Intercalacin: Ms de un programa se encuentra carga en el computador en condiciones de ejecutarse, ejecutndose o demorados. Pero todos ellos compartiendo tiempo de procesador y asignaciones de memoria.
2) Instantaneidad: Se simula trabajar como si existiera un solo programa cargado, de ejecucin instantnea.
3) Independencia: Se trata de distintos programas, con distintas asignaciones de memoria y de dispositivos de entrada/salida. MULTIPROCESAMIENTO Implica simultaneidad en vez de concurrencia. Dos o ms procesadores centrales del mismo tipo trabajan paralelamente; es decir que dos o ms programas pueden ejecutarse en el mismo momento porque existen dos o ms CPU que comparten una memoria central comn.
El nombre dado a un sistema de multiprocesamiento con diferentes procesadores es sistema de procesamiento multicomputarizado.
Un trabajo real en paralelo y una ejecucin simultnea obliga a aplicar ms de un procesador. El problema consiste en asignar una cantidad de procesadores n a una cantidad de programas m, donde generalmente n<m, pero sabiendo que n>1.
Cuando un programa termina o se detiene, uno de los procesadores asociados queda disponible y la lista de programas se podr rastrear para asignar procesador a otro programa. 2009.