El documento describe conceptos fundamentales de arquitectura y lógica de computadores como pipeline, flip-flops y longitud de palabra. Explica que un pipeline segmenta el procesamiento de instrucciones en etapas para mejorar el rendimiento. Describe los tipos básicos de flip-flops como SR, JK y T que se usan como memoria digital. Finalmente, define la longitud de palabra como el tamaño de grupo de bits usado como unidad de procesamiento.
Introducción a Tipos de Datos Abstractos (TDA)Fernando Solis
Las siguientes transparencias ofrecen una introducción esencial al fascinante mundo de los Tipos de Datos Abstractos (TDA). Los TDA son un concepto fundamental en la programación y la estructura de datos que permiten a los desarrolladores organizar y gestionar información de manera eficiente y coherente. Esta presentación proporcionará una visión general completa de los TDA, abordando los siguientes puntos clave:
Definición de Tipos de Datos Abstractos (TDA):
Explicación básica de qué son los TDA y su importancia en la programación.
Comparación entre datos abstractos y tipos de datos simples.
Características Fundamentales de TDA:
Encapsulación: Cómo los TDA ocultan los detalles internos de la implementación.
Abstracción: Cómo los TDA proporcionan una interfaz clara y definida para interactuar con los datos.
Operaciones y Comportamiento:
Exploración de las operaciones que se pueden realizar en TDA.
Ejemplos de implementación de TDA en lenguajes de programación comunes.
Ejemplos Prácticos:
Casos de uso reales que ilustran la utilidad de los TDA en la resolución de problemas.
Ejemplos de TDA comunes, como listas, pilas y colas.
Ventajas y Desventajas:
Análisis de las ventajas de utilizar TDA en el desarrollo de software.
Consideraciones sobre las limitaciones y desafíos potenciales.
Ejercicios y Aplicaciones:
Desafíos interactivos para que los participantes practiquen la creación y uso de TDA.
Aplicaciones prácticas en el mundo real, desde bases de datos hasta algoritmos avanzados.
Evolución de los TDA:
Una visión histórica de cómo han evolucionado los TDA y su relevancia en la actualidad.
Tendencias actuales y futuras en el campo de los TDA.
Recursos Adicionales:
Recomendaciones de lecturas y recursos en línea para aquellos que deseen profundizar en el tema.
1. Introducción a la administración de procesos.
* Diferencia entre un programa y un proceso.
* Jerarquía de procesos
* Estados de un proceso
* Implementación de procesos
*Comunicación entre procesos
*Condiciones de competencia
*Sección Crítica
2. Exclusión Mutua
* Desactivación de interrupciones
* Variables de cerradura
* Dormir y despertar
* Semáforos Transferencia de mensajes
3. Planificación de procesos
* Planificación ROUND ROBIN
* Planificación por PRIORIDAD
* Colas Múltiples Primero el TRABAJO MAS CORTO
* Planificación Garantizada Planificación en dos niveles
* Casos de estudio de Sistemas Operativos para el componente de procesos.
Introducción a Tipos de Datos Abstractos (TDA)Fernando Solis
Las siguientes transparencias ofrecen una introducción esencial al fascinante mundo de los Tipos de Datos Abstractos (TDA). Los TDA son un concepto fundamental en la programación y la estructura de datos que permiten a los desarrolladores organizar y gestionar información de manera eficiente y coherente. Esta presentación proporcionará una visión general completa de los TDA, abordando los siguientes puntos clave:
Definición de Tipos de Datos Abstractos (TDA):
Explicación básica de qué son los TDA y su importancia en la programación.
Comparación entre datos abstractos y tipos de datos simples.
Características Fundamentales de TDA:
Encapsulación: Cómo los TDA ocultan los detalles internos de la implementación.
Abstracción: Cómo los TDA proporcionan una interfaz clara y definida para interactuar con los datos.
Operaciones y Comportamiento:
Exploración de las operaciones que se pueden realizar en TDA.
Ejemplos de implementación de TDA en lenguajes de programación comunes.
Ejemplos Prácticos:
Casos de uso reales que ilustran la utilidad de los TDA en la resolución de problemas.
Ejemplos de TDA comunes, como listas, pilas y colas.
Ventajas y Desventajas:
Análisis de las ventajas de utilizar TDA en el desarrollo de software.
Consideraciones sobre las limitaciones y desafíos potenciales.
Ejercicios y Aplicaciones:
Desafíos interactivos para que los participantes practiquen la creación y uso de TDA.
Aplicaciones prácticas en el mundo real, desde bases de datos hasta algoritmos avanzados.
Evolución de los TDA:
Una visión histórica de cómo han evolucionado los TDA y su relevancia en la actualidad.
Tendencias actuales y futuras en el campo de los TDA.
Recursos Adicionales:
Recomendaciones de lecturas y recursos en línea para aquellos que deseen profundizar en el tema.
1. Introducción a la administración de procesos.
* Diferencia entre un programa y un proceso.
* Jerarquía de procesos
* Estados de un proceso
* Implementación de procesos
*Comunicación entre procesos
*Condiciones de competencia
*Sección Crítica
2. Exclusión Mutua
* Desactivación de interrupciones
* Variables de cerradura
* Dormir y despertar
* Semáforos Transferencia de mensajes
3. Planificación de procesos
* Planificación ROUND ROBIN
* Planificación por PRIORIDAD
* Colas Múltiples Primero el TRABAJO MAS CORTO
* Planificación Garantizada Planificación en dos niveles
* Casos de estudio de Sistemas Operativos para el componente de procesos.
trabajo de investigación con el tema "organización entrada/salida" de las computadoras para los diferentes tipos de periféricos. materia sistemas digitales II,
INTRODUCCIÓN A LAS FUNCIONES LÓGICAS BÁSICASAlan EG
Los tres elementos lógicos básicos AND, OR y NOT se pueden combinar para formar circuitos lógicos más complejos, que realicen muchas operaciónes útiles y que se empleen en la construcción de sistemas digitales complejos. Algunas funciones lógicas mas comunes son: Comparación, aritmética, conversión de códigos, codificación, decodificación, selección de datos, almacenamiento y recuento.
3. DEFINICION
– Pipeline es un término inglés que puede traducirse
como “tubería”.
– En informática, un pipeline o tubería es un conjunto
de elementos procesadores de datos conectados en
serie, en donde la salida de un elemento es la entrada
del siguiente.
4. Estas tuberías virtuales se crean
para segmentar los datos y, de este
modo, incrementar el rendimiento de
un sistema digital. Se trata de una
arquitectura basada en el
funcionamiento de los oleoductos, que
están segmentados en diversos ramales
y que cuentan con bombas para
impulsar, en cada trecho, el avance
del gas.
La arquitectura en pipeline consiste
en ir transformando un flujo de datos
en un proceso comprendido por varias
fases secuenciales, siendo la entrada
de cada una la salida de la anterior,
con almacenamiento temporal de datos
o buffering entre los procesos.
5. Consiste de
subsistemas.
Hardware
separados,
llamados
etapas
Para traer
una
instrucción
desde la
memoria
Decodificarla
traer los
operandos
desde la
memoria o
los registros
Ejecutar la
instrucción y
luego escribir
los resultados
nuevamente
en la
memoria.
ARQUITECTURA PIPELINE (SEGMENTADA)
Cada etapa está procesando
simultáneamente una instrucción diferente
de manera tal que el resultado completo se
da cuando se termina la ejecución de una
instrucción en cada ciclo de reloj.
6. Aplicaciones de pipelines
en informática
Pipelines gráficos
Se encuentran en la mayoría de
las tarjetas graficas y consiste en
múltiples unidades aritméticas o CPUs
completas que implementan variados
escenarios de operaciones típicas, por
ejemplo cálculos de luz y colores,
proyección de perspectiva entre otros.
Pipelines software o tuberías
Consiste en varios procesos ordenados
de tal forma que el flujo de salida de un
proceso alimenta la entrada del
siguiente proceso. Como por ejemplo,
los pipelines de Unix.
7. IMPLEMENTACION TIPO UNIX
En la mayoría de los sistemas tipo Unix, los procesos de este sistema se inician al
mismo tiempo, con sus corrientes conectados bien planeados, y gestionado por el
planificador junto con todos los demás procesos que se ejecutan en la máquina.
Un aspecto importante de este sistema, además de las implementaciones, es el
concepto de almacenamiento en búfer: por ejemplo, un programa que envía datos
puede producir 5.000 bytes por segundo, y un programa de recepción sólo puede
ser capaz de aceptar 100 bytes por segundo, pero los datos no se pierden.
Cuando el programa de recepción está listo para leer los datos, el sistema operativo
envía sus datos de la cola, a continuación, elimina los datos de la cola. Si el buffer
de la cola se llena, el programa de envío se suspende (se bloquea) hasta que el
programa de recepción ha tenido la oportunidad de leer algunos datos y hacer
espacio en el búfer. En Linux, el tamaño del búfer es de 65536 bytes.
8. CONSECUENCIAS
Positivas
• Permite comprender el comportamiento de
entrada /salida de un sistema como la
composición del comportamiento de los filtros
individuales.
• Facilita el mantenimiento y crecimiento.
• Permiten realizar análisis de ‘deadlock’ y
rendimiento.
• Soporte de ejecución concurrente.
• Facilita la reutilización de transformaciones.
• Es intuitivo Fácil agregar / quitar transformaciones
Relativamente sencillo de implementar, a nivel
concurrente o secuencial.
Negativas
• Frecuentemente tienden a una organización de
procesamiento batch.
• No son buenos para aplicaciones interactivas.
• Pueden complicarse al tener que mantener dos
flujos separados pero relacionados.
• Puede ser necesario agregar a los filtros
conversión de datos de entrada y salida.
•
Pérdida de performance e incremento de
complejidad delos filtros.
• Es difícil soportar interacciones basadas en
eventos.
10. DEFINICION
El "Flip-flop" es el nombre común que se le da a los
dispositivos de dos estados, que sirven como
memoria básica para las operaciones de lógica
secuencial. Los Flip-flops son ampliamente usados
para el almacenamiento y transferencia de datos
digitales y se usan normalmente en unidades
llamadas "registros", para el almacenamiento de
datos numéricos binarios.
11. Tiene tres entradas, S (de inicio), R (reinicio o borrado) y C
(para reloj).
Tiene una salida Q, y a veces también una salida
complementada, la que se indica con un circulo en la otra
terminal de salida.
Hay un pequeño triángulo en frente de la letra C, para
designar una entrada dinámica. El símbolo indicador dinámico
denota el echo de que el flip-flop responde a una transición
positiva ( de 0 a 1) de la señal de reloj.
12. La operación del flip-flop es como sigue:
Si no hay una señal en la entrada del reloj C, la salida del circuito no puede cambiar independientemente de
cuáles sean los valores de entrada de S y R.
Sólo cuando la señal de reloj cambia de 0 a 1 puede la salida afectarse de acuerdo con los valores de la entrada
S y R.
Si S = 1 y R = 0 cuando C cambia de 0 a 1, la salida Q se inicia en 1.
Si S = 0 y R = 1 cuando C cambia de 0 a 1 la salida Q se reinicia o borra en 0.
Si tanto S como R son 0 durante la transición de reloj, la salida no cambia.
Cuando tanto S como R son iguales a 1, la salida es impredecible y puede ser 0 o 1 dependiendo de los retrasos
internos de tiempo que ocurran dentro del circuito.
13. Un flip-flop JK es un refinamiento del flip-flop SR en el sentido que la
condición indeterminada del tipo SR se define en el tipo JK.
Las entradas J y K se comportan como las entradas S y R para
iniciar y reinicia el flip-flop, respectivamente.
Cuando las entradas J y K son ambas iguales a 1, una transición de
reloj alterna las salidas del flip-flop a su estado complementario.
14. El flip-flop T se obtiene del tipo JK cuando las entradas J y K
se conectan para proporcionar una entrada única designada
por T.
El flip-flop T, por lo tanto, tiene sólo dos condiciones.
Cuando T = 0 ( J = K = 0) una transición de reloj no cambia el
estado del flip-flop.
Cuando T = 1 (J = K = 1) una transición de reloj complementa
el estado del flip-flop.
15. El flip-flop D (datos) es una ligera modificación del flip-flop SR. Un flip-flop
SR se convierte a un flip-flop D insertando un inversor entre S y R y
asignando el símbolo D a la entrada única. La entrada D se muestra
durante la ocurrencia de uan transición de reloj de 0 a 1. Si D = 1, la
salida del flip-flop va al estado 1, pero si D = 0, la salida del flip-flop va a
el estado 0.
17. DEFINICIÓN
Palabra: En el contexto de la informática, una palabra es
una cadena finita de bits que son manejados como un
conjunto por la máquina. El tamaño o longitud de una
palabra hace referencia al número de bits contenidos en ella,
y constituyen la resolución de la memoria (mínima cantidad
de información direccionable).
Longitud de palabra: Tamaño de grupo de bits diseñado
para usarse como una unidad simple de palabra. Nos
referimos a la longitud de palabra de los microprocesadores
cuando nos referimos a que son 8 bit, 16 bit, 32 bit, 64 bit,
18. Microprocesador
Procesa Bits que obtiene de una memoria.
Cuentan con sus propios registros e incluso con memorias caché alojadas en su
interior.
En mercado actual los microprocesadores son de 32 o 64 bits.
19. Dependiendo de cómo se organiza un ordenador, las unidades de
tamaño de palabra se pueden utilizar para:
•Números enteros: Los contenedores de valores numéricos enteros pueden estar
disponibles en varios tamaños diferentes, pero uno de los tamaños disponibles casi
siempre será la palabra. Los otros tamaños, suelen ser múltiplos o fracciones del
tamaño de palabra. Los tamaños más pequeños normalmente se utilizan sólo por
eficiencia en la utilización de memoria, cuando se cargan en el procesador, sus
valores normalmente son mayores, contenedores de tamaño palabra.
•Números en coma flotante: Los contenedores para valores numéricos en coma
flotante son típicamente una palabra o un múltiplo de una palabra.
20. •Direcciones: Los contenedores para direcciones de
memoria tienen que ser capaces de expresar el rango
necesario de valores, pero no excesivamente grandes. A
menudo el tamaño utilizado es el de la palabra pero
puede ser un múltiplo o una fracción.
•Registros: Los registros son diseñados con un tamaño
apropiado para el tipo de dato que almacenan, p.ej.
enteros, números en coma flotante o direcciones. Muchas
arquitecturas de computadores utilizan registros de
"propósito general" que pueden albergar varios tipos de
datos, estos registros se dimensionan para permitir los
más grandes de estos tipos y el tamaño típico es el
tamaño de palabra de la arquitectura.
21. •Transferencia memoria-procesador: Cuando el procesador lee del
subsistema de memoria a un registro o escribe el valor de un registro en
memoria, la cantidad de datos transferidos es a menudo una palabra. En los
subsistemas de memoria simples, las palabras son transferidas sobre el bus de
datos de memoria, que típicamente tiene un ancho de una palabra o media
palabra. En los subsistemas de memoria que utilizan caché, la transferencia de
tamaño palabra se produce entre el procesador y la caché de nivel uno, en los
niveles más bajos de la jerarquía de memoria las grandes transferencias (con
múltiplos de la longitud de palabra) son normalmente utilizadas.
22. •Resolución de unidades de dirección: Es una arquitectura dada, los
sucesivos valores de direcciones designan sucesivas unidades de
memoria. En muchos ordenadores, la unidad puede ser un carácter o
una palabra (algunos han utilizado una resolución de bit). Si la unidad
es una palabra, entonces se puede acceder a una gran suma de
memoria utilizando una dirección de un tamaño dado. Por otra parte, si
la unidad es un byte, se pueden direccionar caracteres individuales
(p.ej. seleccionados durante la operación de memoria).
•Instrucciones: Las instrucciones máquina normalmente son fracciones
o múltiplos de la longitud de palabra de la arquitectura. Esta es una
elección natural ya que las instrucciones y los datos normalmente
comparten el mismo subsistema de memoria.