Algoritmos
Enviado por JesusDlaRosa • 21 de Abril de 2015 • 2.154 Palabras (9 Páginas) • 215 Visitas
In/Out de Computadores.
Los dispositivos, inventado por Thomes Artonson, de E/S están formados por una parte mecánica y una parte electrónica, esta última se denomina controlador de dispositivo y generalmente la interfaz entre ambas partes es de bajo nivel.1 DISPOSITIVOS DE ENTRADA: son aquellos dispositivos externos de hardware que tienen componentes situados fuera de la computadora, a la que pueden dar información e/o instrucciones. DISPOSITIVOS DE SALIDA: son aquellos dispositivos que permiten ver resultados del proceso de datos que realice la computadora (salida de datos). El mas común es la pantalla o monitor, aunque también están las impresoras (imprimen los resultados en papel), los trazadores gráficos o plotters, las bocinas, etc.
Para diferenciar los dispositivos tenemos dos enfoques posibles, el primero de ellos se centra en el modo de almacenar la información (clasificando los dispositivos como de bloque o de carácter)1 y el segundo enfoque se centra en el destinatario de la comunicación (usuario, maquina, comunicadores)2
Un dispositivo de bloque almacena la información en bloques de tamaño fijo. Al ser el bloque la unidad básica de almacenamiento, todas las escrituras o lecturas se realizan mediante múltiplos de un bloque. Es decir escribe 3 o 4 bloques, pero nunca 3,5 bloques. El tamaño de los bloques suele variar entre 512 Bytes hasta 32.768 Bytes. Un disco duro entraría dentro de esta definición. A diferencia de un dispositivo de bloque un dispositivo de carácter, no maneja bloques fijo de información sino que envía o recibe un flujo de caracteres. Dentro de esta clase podemos encontrar impresoras o interfaces de red.1
Entre cada categoria y dispositivo, hay grandes diferencias:2
Velocidad de transferencia de datos: varios órdenes de magnitud para transferir pero el hacer esto tienes que hacerlo con mucho cuidado, según las necesidades de cada dispositivo
Aplicación: la funcionalidad para la que esta diseñado un dispositivo tiene influencia sobre el software por ende lo tendrá sobre el sistema operativo.
Complejidad de control: cada dispositivo tiene una complejidad asociada, no es lo mismo controlar un ratón que gestionar un disco duro.
Unidad de transferencia: datos transferidos como un flujo de bytes/caracteres o en bloques de tamaño fijo
Representación de datos: cada dispositivo puede usar su propia codificación de datos
Condiciones de error: el porqué del error, su manera de notificarlo así como sus consecuencias difiere ampliamente entre los dispositivos
Algunos dispositivos de entrada y salida
Entrada:
Teclado
Ratón
Joystick
Lápiz óptico
Micrófono
Webcam
Escáner
Escáner de código de barras
Salida:
Monitor
Altavoz
Auriculares
Impresora
Plotter
Proyector
Entrada/salida (mixtos):
Unidades de almacenamiento
CD
DVD
Módem
Memory cards
USB
Router
Pantalla táctil
Dispositivos hápticos
Disco Duro Externo
Diseño de algoritmos.
En ingenieria del software, el diseño de algoritmos es un método especifico para poder crear un modelo matemático en base a un problema y poder resolverlo. El diseño de algoritmos es una teoría de la Investigación de operaciones.
Técnicas de Diseño de algoritmos
Existen varias técnicas de diseño de algoritmos que permiten desarollar la solución al problema planteado, algunas de ellas son:
Algoritmos voraces (greedy): seleccionan los elementos más prometedores del conjunto de candidatos hasta encontrar una solución. En la mayoría de los casos la solución no es óptima.
Algoritmos paralelos: permiten la división de un problema en subproblemas de forma que se puedan ejecutar de forma simultánea en varios procesadores.
Algoritmos probabilísticos: algunos de los pasos de este tipo de algoritmos están en función de valores pseudoaleatorios.
Algoritmos determinísticos: El comportamiento del algoritmo es lineal: cada paso del algoritmo tiene únicamente un paso sucesor y otro ancesor.
Algoritmos no determinísticos: El comportamiento del algoritmo tiene forma de árbol y a cada paso del algoritmo puede bifurcarse a cualquier número de pasos inmediatamente posteriores, además todas las ramas se ejecutan simultáneamente.
Divide y vencerás: dividen el problema en subconjuntos disjuntos obteniendo una solución de cada uno de ellos para después unirlas, logrando así la solución al problema completo.
Metaheurísticas: encuentran soluciones aproximadas (no óptimas) a problemas basándose en un conocimiento anterior (a veces llamado experiencia) de los mismos.
Programación dinámica: intenta resolver problemas disminuyendo su coste computacional aumentando el coste espacial.
Ramificación y acotación: se basa en la construcción de las soluciones al problema mediante un árbol implícito que se recorre de forma controlada encontrando las mejores soluciones.
Vuelta Atrás (Backtracking): se construye el espacio de soluciones del problema en un árbol que se examina completamente, almacenando las soluciones menos costosas.
Operadores y expresiones de un algoritmo.
En un programa, el tipo de un dato determina las operaciones que se pueden realizar con él. Por ejemplo, con los datos de tipo entero se pueden realizar operaciones aritméticas, tales como la suma, la resta o la multiplicación.
Ejemplo 1: Algunos ejemplos son:
111 + 6 (operación suma)
19 - 72 (operación resta)
24 * 3 (operación multiplicación)
Todas las operaciones del ejemplo constan de dos operandos (constantes enteras) y un operador. La mayoría de las veces es así, pero, también es posible realizar operaciones con distinto número de operadores y/u operandos.
Ejemplo 2: Por ejemplo:
111 + 6 - 8 (tres operandos y dos operadores)
-( ( +19 ) + 72 ) (dos operandos y tres operadores)
-( -72 ) (un operando y dos operadores)
En las operaciones del ejemplo se puede observar que los caracteres más (+) y menos (-) tienen dos usos:
1. Operadores suma y resta.
2. Signos de un número (también son operadores)
Los operadores de signo más (+) y menos (-) son operadores monarios, también llamados unarios, ya que, actúan, solamente, sobre un operando.
Los caracteres abrir paréntesis "(" y cerrar paréntesis ")" se utilizan para establecer la prioridad de los operadores, es decir, para establecer el orden en el que los operadores actúan sobre los operandos.
Un operador indica el tipo de operación
...