jueves, 18 de junio de 2015

Programación Lineal

Teleprocesamiento 

Una forma de intercambio de información en el cual un sistema de computación utiliza facilidades de comunicación, para obtener un resultado, según una secuencia de tareas predeterminadas (programas), a partir de una cierta cantidad de materia prima(datos).

Se estructura la temática en el siguiente orden (cada uno de ellos poseer su respectivo enlace que lo liga al tema específico):
  • Disciplina de Comunicaciones (concepto relacionados con lo qué son las normas para poder lograr la comunicación).
  • Tipos de Procesamiento existente, y que son Sistemas de Línea y sistema de Tiempo Real (dependiendo de dónde se realizan ciertas funciones cuáles tipos de procesamiento existen y qué son sistemas en línea y sistema en tiempo real).
  • Tipos de transmisión existente (simplex, hald dúplex, full dúplex, transmisión analógica, transmisión digital, transmisión asincrónica y transmisión sincrónica, formas de conexión de terminales (punto a punto y multipunto).
  • Elementos de un sistema de Comunicación (adaptadores de comunicaciones, compresores de datos, módems, multicanalizadores, concentradores, controladores, procesadores de comunicaciones).
  • Medios de Transmisión (físicos: par de cables torneados, cable coaxial de banda angosta, cable coaxial de banda ancha, fibra óptica), no físicos (rayos infrarrojos o láser, microondas de radio, comunicación por satélite, estaciones terrenas).

Programación Lineal

Es un procedimiento o algoritmo matemático mediante el cual se resuelve un problema indeterminado, formulado a través de un sistema de inecuaciones lineales, optimizando la función objetivo, también lineal.

Consiste en optimizar )minimizar o maximizar= una función lineal, denominada función objetivo, de tal forma que las variables de dicha función estén sujetas a una serie de restricciones que expresamos mediante un sistema de inecuaciones lineales.

La programación lineal da respuesta a situaciones en las que se exige maximizar o minimizar funciones que se encuentran sujetas a determinadas limitaciones, que llamaremos restricciones.

Su empleo es frecuente en aplicaciones de la industria, la economía, la estrategia militar, etc.

Función objetivo:  en esencia la programación lineal consiste en optimizar (maximizar o minimizar) una funciòn objetivo, que es una función lineal de varias variables:

f(x,y) = ax + by


Monolítica 

Son aquellos en los que su centro es un grupo de estructuras fijas, las cuales funcionan entre sí. En los Sistemas Operativos Monolíticos, existen módulos grandes en el núcleo, los cuales interactúan entre sí, para poder tener esta estructura, las diferentes partes del kernel son compiladas por capas.

Los sistemas monolíticos se describen en 3 procesos principales:

  1. Un Programa principal que invoca el procedimiento de servicio solicitado.
  2. Un Conjunto de procedimientos de servicio que llevan a cabo las llamadas del sistema.
  3. Un Conjunto de procedimientos de utilería que ayudan a los procedimientos del servicio.
En teoría un procedimiento dado puede invocar a ciertos servicios los cuales a su vez se verán ayudados por programas de utilerías los cuales extraerán información importante para este.

Las aplicaciones monolíticas son aquellas en las que el software se estructura en grupos funcionales muy acoplados (si los hay), involucrados los aspectos referidos a la presentación, procedimiento y almacenamiento de la información. Son implementadas dentro de un solo componente de  software.

Una aplicación monolítica se elabora bajo el supuesto de que será ejecutada en un único equipo de cómputo. Pero este tipo de aplicación también puede ser implementada en un computador central o mainframe. Desde una terminal de servicio se puede monitorear y recibir los resultados que la aplicación monolítica devuelva.



Modular

La programación modular es un paradigma de programación que consiste en dividir un programa en módulos o subprogramas con el fin de hacerlo más legible y manejable.

Al aplicar la programación modular, un problema complejo debe ser dividido en varios subproblemas más simples, y estos a su vez en otros subproblemas más simples. Esto debe hacerse hasta obtener subproblemas lo suficientemente simples como para poder ser resueltos fácilmente con algún lenguaje de programación. Ésta técnica se llama refinamiento sucesivo, divide y vencerás o análisis descendentes (Top-Down).

Un "modulo" es cada una de las partes de un programa que resuelve uno de los subproblemas en que se divide complejo original. Cada uno de estos módulos tiene una tarea bien definida y algunos necesitan de otros para poder operar. En caso de que un módulo necesite de otro, puede comunicarse con éste mediante una interfaz de comunicación que también debe estar bien definida.


Diferencias

Monolítico 
Modular
Cerrada, es decir, inmodificable a los programadores ajenos a la compañia propietaria del código fuente.
Abierta, es decir, que todos los componentes del sistema del computador sean compatibles en cualquier ambiente sin importar la compañia que haya producido.
Absolutamente dependiente.
Noexiste dependencia.
No existe escalabilidad.
Las funciones nuevas requiere un reinicio de la unidad, son instaladas como un nuevo SO.
Es muy vulnerable a los ataques.
Existe una vulnerabilidad controlada.
Ejecución de Scripts limitada, difícil realizar ejecuciones de instrucciones externas, ya que el sistema carga al inicio las funciones a realizar.
control total de ejecución de comandos externos (Scripts).
No es posible extender las capacidades del SO sin crear un nuevo código.
Es posible extender sus capacidades hacia operaciones con agentes externos mediante API´s en un modelo cliente-servidor.
Niveles de disponibilidad son muy bajos, ya que si se produce un error local, puede ocasionar un sistema inestable, detenido o un error en todo el sistema.
Los Niveles de disponibilidad son altos. Al existir un error de programación, este sucede localmente en un componente del sistema, el cual puede ser fácilmente reparado, sin afectar al resto. 
Este tipo de sistema no es adecuado para realizar funciones en líneas, como por ejemplo sincronización de voz, datos y video.
Óptimo soporte, a causa de su alta disponibilidad. Soporte para Redes Convergentes.
Cambios dinámicos en el software al estar todo integrado conjuntamente, no es posible. 
Posible, ya que cada módulo independientemente puede ser dado de alta o baja de manera independiente.

Características

Modular
  • Fácil comprensión a causa de la modularidad.
  • Reutilización de módulos.
  • Disminuye la complejidad de algoritmo.
  • Disminuye el tamaño total del programa.
  • Facilidad de localizar los errores en el algoritmo.
  • No hay inconveniente de modificación de algún módulo ya que no afecta a los demás.
  • De la mejor comprensión del problema y reduce el código.
  • Debe tener claras las dependencias del lenguaje (esto permite cambiar el lenguaje en medio del diseño sin ningún trauma).
Monolítico
  • Administración de tareas.
  • Administración de usuarios.
  • Manejo de recursos.

No hay comentarios:

Publicar un comentario