Parte I: Elementos del lenguaje Ada
|
|
- Esther Robles Ayala
- hace 7 años
- Vistas:
Transcripción
1 Parte I: Elementos del lenguaje Ada 1. Introducción a los computadores y su programación 2. Elementos básicos del lenguaje 3. Modularidad y programación orientada a objetos 4. Estructuras de datos dinámicas 5. Tratamiento de errores 6. Abstracción de tipos mediante unidades genéricas 7. Entrada/salida con ficheros 8. Herencia y polimorfismo 9. Programación concurrente y de tiempo real GRUPO DE COMPUTADORES Y TIEMPO REAL J. Javier Gutiérrez, Michael González Harbour 1 4
2 9.1. Concurrencia Muchos problemas se expresan de forma natural mediante varias actividades concurrentes: sistemas de control atendiendo a múltiples subsistemas y eventos sistemas multicomputadores o distribuidos para el uso concurrente de múltiples recursos La concurrencia implica prever la sincronización: para la utilización de recursos y datos compartidos y para el intercambio de eventos e información GRUPO DE COMPUTADORES Y TIEMPO REAL J. Javier Gutiérrez, Michael González Harbour 2
3 Notas: Tradicionalmente, existen tres entornos de aplicación en los que se utilizan programas concurrentes: En aplicaciones que controlan entornos físicos o interaccionan con ellos, en los que múltiples eventos y subsistemas deben ser controlados a la vez. En estos sistemas una solución concurrente lleva a un mayor grado de modularidad y a un diseño más claro. En sistemas multicomputadores o distribuidos, donde el paralelismo físico se puede aprovechar al máximo ejecutando diferentes tareas en diferentes procesadores. En sistemas de cálculo convencional, si se desea utilizar múltiples recursos a la vez. Por ejemplo, en un sistema de ventanas, puede ser útil asociar tareas a determinadas clases de ventanas, de forma que puedan ejecutar diferentes actividades concurrentemente. Los programas concurrentes representan el modelo más natural para resolver muchos problemas del mundo real que son de naturaleza concurrente. También se pueden usar (a veces) aproximaciones no concurrentes para la programación de problemas de naturaleza concurrente, pero el problema es más difícil de abordar y, sobre todo, más difícil de modificar y extender, tal como se muestra en el ejemplo de control del automóvil que aparece a continuación. GRUPO DE COMPUTADORES Y TIEMPO REAL J. Javier Gutiérrez, Michael González Harbour 3
4 Ejemplo: Control de un Automóvil Actividades a controlar: Medida de Velocidad C=4 ms. Control de C=10 ms. T=20 ms. Frenos ABS T=40 ms. D=5 ms. D=40 ms. Control de Inyección C=40 ms. T=80 ms. D=80 ms. C = Tiempo de ejecución T = Periodo D = Plazo máximo de finalización GRUPO DE COMPUTADORES Y TIEMPO REAL J. Javier Gutiérrez, Michael González Harbour 4
5 Solución no concurrente: cíclica Una solución cíclica implica partir la actividad más larga en varias partes: VELOC FUEL FUEL-4 12 ABS VELOC VELOC otras tareas sin requisitos temporales 16 FUEL-2 ABS 14 FUEL-1 6 VELOC GRUPO DE COMPUTADORES Y TIEMPO REAL J. Javier Gutiérrez, Michael González Harbour 5
6 Solución no concurrente: cíclica (cont.) procedure Control_del_Automóvil is Tiempo : Integer:=0; begin loop Acciones de Medida_de_Velocidad; if Tiempo=0 or Tiempo=40 then Acciones de Control de Frenos ABS; end if; if Tiempo=0 then Primera parte de control de inyección; --(<6 ms) elsif Tiempo=20 then Segunda parte de control de inyección; --(<16 ms) elsif Tiempo=40 then Tercera parte de control de inyección; --(<6 ms) else Cuarta parte de control de inyección; --(<16 ms) end if; Espera hasta el próximo periodo; --mediante el reloj GRUPO DE COMPUTADORES Y TIEMPO REAL J. Javier Gutiérrez, Michael González Harbour 6
7 Solución no concurrente: cíclica (cont.) Tiempo:=Tiempo+20; if Tiempo=80 then Tiempo=0; end if; end loop; end Control_del_Automovil; El programa generado depende del plan cíclico diseñado: para un plan diferente habría que trocear el código de otra manera además de modificar el propio programa que ejecuta el plan GRUPO DE COMPUTADORES Y TIEMPO REAL J. Javier Gutiérrez, Michael González Harbour 7
8 Concurrencia en Ada El lenguaje Ada soporta la programación de procesos concurrentes mediante las tareas (tasks). Las tareas constan de especificación y cuerpo: la especificación de una tarea declara sus puntos de entrada (entries), si los hay el cuerpo define una actividad que se ejecuta independientemente; tiene declaraciones e instrucciones Las tareas van en la parte de declaraciones de un módulo: se arrancan nada más ser visibles el módulo que las declara no termina si no han terminado todas sus tareas GRUPO DE COMPUTADORES Y TIEMPO REAL J. Javier Gutiérrez, Michael González Harbour 8
9 Solución concurrente procedure Control_del_Automóvil is task Medida_Velocidad; -- Tareas sin entries task Control_ABS; task Control_Inyeccion; task body Medida_Velocidad is begin loop Acciones de Medida_de_Velocidad; Esperar al próximo periodo (20 ms); end loop; end Medida_Velocidad; GRUPO DE COMPUTADORES Y TIEMPO REAL J. Javier Gutiérrez, Michael González Harbour 9
10 Solución concurrente (cont.) task body Control_ABS is begin loop Acciones de Medida_de_Velocidad; Esperar al próximo periodo (40 ms); end loop; end Control_ABS; task body Control_Inyección is begin loop Acciones de Control de Inyección; Esperar al próximo periodo (80 ms); end loop; end Control_Inyección; begin null; -- el programa principal es otra tarea end Control_del_Automovil; GRUPO DE COMPUTADORES Y TIEMPO REAL J. Javier Gutiérrez, Michael González Harbour 10
11 9.2. Sincronización de espera La sincronización de espera entre tareas en Ada se realiza mediante el mecanismo del rendezvous, o punto de entrada, o punto de encuentro entre dos tareas (entry): Hay una tarea que llama, y otra que acepta el encuentro En la llamada se pueden pasar parámetros, como en un procedimiento La tarea que llama se queda esperando hasta que la tarea que acepta la llamada termine de ejecutarla Los puntos de entrada se declaran en la especificación En el ejemplo que se muestra a continuación una tarea (consumidora) debe esperar a un dato que le suministra la otra tarea (productora) GRUPO DE COMPUTADORES Y TIEMPO REAL J. Javier Gutiérrez, Michael González Harbour 11
12 Ejemplo de sincronización de espera -- Especificación de la tarea Consumidor task Consumidor; -- Especificación de la tarea Productor con un punto de entrada -- que tiene un parámetro task Productor is entry Espera_Dato(El_dato : out Dato); end Productor; -- Cuerpo de la tarea Consumidor: llama al punto de entrada de la -- tarea Productor como si fuera un procedimiento task body Consumidor is Copia_del_dato : Dato; begin -- hace cosas Productor.Espera_Dato(Copia_Del_Dato); -- hace más cosas end Consumidor; GRUPO DE COMPUTADORES Y TIEMPO REAL J. Javier Gutiérrez, Michael González Harbour 12
13 Ejemplo de sincronización de espera -- Cuerpo de la tarea Productor: el punto de entrada tiene su -- punto de aceptación en el cuerpo task body Productor is Dato_Producido : Dato; begin -- calcula valor de Dato_Producido accept Espera_Dato (El_Dato : out Dato) do El_Dato:=Dato_Producido; end Espera_Dato; -- hace más cosas end Productor; GRUPO DE COMPUTADORES Y TIEMPO REAL J. Javier Gutiérrez, Michael González Harbour 13
14 Notas: Las tareas que declaran un punto de entrada en la especificación deben tener su correspondiente punto de aceptación accept en el cuerpo. La tarea que llama a un punto de entrada de otra tarea se queda esperando hasta que el código asociado al accept finaliza (este código es opcional). Esta es la base de la sincronización de tareas en Ada, pero esta sincronización es mucho más rica existiendo las siguientes posibilidades: Si una tarea declara varios puntos de entrada puede quedarse esperando a cualquiera de ellos con la sentencia select. Además, esta sentencia permite diferentes versiones temporizadas y con la opción de abortar la espera selectiva. Una tarea que acepta la sincronización con otra puede transferir esta sincronización a un punto de entrada de una tercera tarea con requeue. GRUPO DE COMPUTADORES Y TIEMPO REAL J. Javier Gutiérrez, Michael González Harbour 14
15 9.3. Sincronización de datos La sincronización de datos, para compartir información de manera mutuamente exclusiva, se realiza mediante objetos protegidos El objeto protegido tiene una especificación con: parte visible: tiene funciones, procedimientos y puntos de entrada parte privada: contiene los datos protegidos Con las funciones y procedimientos se garantiza un acceso mutuamente exclusivo a la información protegida: las operaciones de un objeto protegido se ejecutan en exclusión mutua respecto a sí mismas y a las demás operaciones protegidas GRUPO DE COMPUTADORES Y TIEMPO REAL J. Javier Gutiérrez, Michael González Harbour 15
16 Ejemplo de sincronización de datos type Coordenadas is record X,Y,Z : Float; end record; protected Datos_Avion is function Posicion return Coordenadas; procedure Cambia_Posicion (La_Posicion : Coordenadas); private Posicion_Avion : Coordenadas; end Datos_Avion; GRUPO DE COMPUTADORES Y TIEMPO REAL J. Javier Gutiérrez, Michael González Harbour 16
17 Ejemplo de sincronización de datos protected body Datos_Avion is function Posicion return Coordenadas is begin return Posicion_Avion; end Posicion; procedure Cambia_Posicion (La_Posicion : Coordenadas) is begin Posicion_Avion:=La_Posicion; end Cambia_Posicion; end Datos_Avion; GRUPO DE COMPUTADORES Y TIEMPO REAL J. Javier Gutiérrez, Michael González Harbour 17
18 Notas: En el ejemplo anterior se ha definido el objeto protegido Datos_Avion. También se podría haber definido un tipo de objeto protegido para poder crear posteriormente nuevos objetos: protected type Tipo_Datos_Avion is function Posicion return Coordenadas; procedure Cambia_Posicion (La_Posicion : Coordenadas); private Posicion_Avion : Coordenadas; end Tipo_Datos_Avion; Datos_Avion: Tipo_Datos_Avion; GRUPO DE COMPUTADORES Y TIEMPO REAL J. Javier Gutiérrez, Michael González Harbour 18
19 Puntos de entrada en objetos protegidos Los puntos de entrada proporcionan la misma protección que los procedimientos protegidos, pero además: permiten a una tarea esperar, hasta que se cumpla una determinada condición la evaluación de esta condición también está protegida El ejemplo que se muestra a continuación implementa una cola con datos: utiliza el tipo abstracto de datos Cola (ver Tema 11) las operaciones de la cola (Insertar, Extraer, etc.) están protegidas la operación de Extraer hace que la tarea espere hasta que haya datos disponibles GRUPO DE COMPUTADORES Y TIEMPO REAL J. Javier Gutiérrez, Michael González Harbour 19
20 Notas: La sincronización de datos es necesaria para garantizar que la modificación o lectura de datos compuestos es consistente. Si por ejemplo una tarea está modificando un dato compuesto, y cuando sólo ha modificado una parte es interrumpida por otra tarea, esta segunda puede leer un dato inconsistente. La solución es la sincronización para acceso mutuamente exclusivo. En Ada esto se logra con los objetos protegidos. Los objetos protegidos proporcionan acceso mutuamente exclusivo mediante funciones, procedimientos o puntos de entrada protegidos. Los procedimientos protegidos funcionan de modo que no pueden ser interrumpidos por otro procedimiento o función protegido del mismo objeto. Los puntos de entrada, además de la protección equivalente a la de un procedimiento protegido, permiten que la tarea que los llama espere a que se cumpla una determinada condición. Esta condición se evalúa de forma protegida, es decir mutuamente exclusiva. Mientras la tarea espera, otras tareas pueden ejecutarse. GRUPO DE COMPUTADORES Y TIEMPO REAL J. Javier Gutiérrez, Michael González Harbour 20
21 Ejemplo con punto de entrada with Colas, Elementos; package Cola_Protegida is subtype Dato is Elementos.Elemento; protected Cola is procedure Inserta (El_Dato : Dato); entry Extrae (El_Dato : out Dato); -- si no hay datos, espera procedure Haz_Nula; private La_Cola : Colas.Cola; end Cola; end Cola_Protegida; GRUPO DE COMPUTADORES Y TIEMPO REAL J. Javier Gutiérrez, Michael González Harbour 21
22 Ejemplo con punto de entrada (cont.) package body Cola_Protegida is protected body Cola is procedure Inserta (El_Dato : Dato) is begin Colas.Inserta(El_Dato,La_Cola); end Inserta; entry Extrae (El_Dato:out Dato) when not Colas.Esta_Vacia(La_Cola) is begin Colas.Extrae(El_Dato,La_Cola); end Extrae; procedure Haz_Nula is begin Colas.Haz_Nula(La_Cola); end Haz_Nula; end Cola; end Cola_Protegida; GRUPO DE COMPUTADORES Y TIEMPO REAL J. Javier Gutiérrez, Michael González Harbour 22
23 9.4. Programación de Tiempo Real El Ada soporta la programación de sistemas empotrados y de sistemas de tiempo real, mediante los siguientes mecanismos: Representación del hardware Interrupciones Gestión del tiempo Prioridades Sincronización libre de inversión de prioridad Estos mecanismos están descritos en anexos opcionales: Anexo de programación de sistemas Anexo de sistemas de tiempo real GRUPO DE COMPUTADORES Y TIEMPO REAL J. Javier Gutiérrez, Michael González Harbour 23
24 Notas: Un computador empotrado es aquel que forma parte de un sistema más grande. Por ejemplo, el computador que controla un robot o un avión. Generalmente son computadores con un hardware restringido en algunos aspectos (por ejemplo sin disco duro) y ampliado en otros aspectos de relación con el entorno (convertidores A/D y D/A, entrada/salida digital, etc.). Las necesidades especiales de programación se derivan precisamente de la necesidad de acceder directamente al hardware y de responder a interrupciones externas. Los sistemas de tiempo real son aquellos en los que no sólo importa la realización de unos determinados cálculos, sino el instante en el que se produce la salida de los resultados de estos cálculos. Ello se debe a que el sistema de tiempo real interacciona con un entorno cambiante con el tiempo. Normalmente, un sistema de tiempo real debe realizar diversas actividades de forma concurrente, y cada una de estas actividades presenta unos requerimientos de tiempo de respuesta que es preciso cumplir. Ello implica la necesidad de disponer de facilidades de programación tales como gestión del tiempo, poder dar más prioridad a aquellas tareas más urgentes, etc. Muchas de las facilidades que presenta el lenguaje Ada para sistemas empotrados y de tiempo real son opcionales, ya que se hallan contenidas en Anexos del lenguaje. GRUPO DE COMPUTADORES Y TIEMPO REAL J. Javier Gutiérrez, Michael González Harbour 24
25 9.5. Representación del Hardware En muchos sistemas los programas deben interaccionar directamente con el hardware Muchas veces se utiliza para ello lenguaje ensamblador El Ada proporciona mecanismos para establecer la correspondencia entre estructuras lógicas y representaciones físicas del hardware. Por ejemplo: asociación entre campos de registros y posiciones de bits posicionamiento de datos en direcciones de memoria concretas control de optimización GRUPO DE COMPUTADORES Y TIEMPO REAL J. Javier Gutiérrez, Michael González Harbour 25
26 Notas: En general, si se programa en Ada no es necesario el uso del lenguaje ensamblador para acceder al hardware. El Ada permite: Expresar la correspondencia entre los campos de un registro y las posiciones de determinados bits en una palabra de la memoria. Está especialmente indicado para acceder a los registros de control y estado de dispositivos hardware. Es posible expresar la posición de memoria concreta en la que se pueden colocar una o más variables del programa. Esto permite acceder directamente a dispositivos hardware que están mapeados en memoria. Cuando los dispositivos hardware no están mapeados en memoria, el Ada permite expresar operaciones de entrada/salida de bajo nivel, para poder acceder a estos dispositivos a través del bus de entrada/salida. En Ada 95 se permite indicar al computador que determinadas variables corresponden a memoria física, bien porque son dispositivos hardware o bien porque son posiciones de memoria que van a ser compartidas en un multiprocesador. Esto permite al optimizador del programa saber que estas variables no se pueden optimizar. GRUPO DE COMPUTADORES Y TIEMPO REAL J. Javier Gutiérrez, Michael González Harbour 26
27 9.6 Interrupciones En los sistemas empotrados es preciso atender a las interrupciones provocadas por el hardware externo. En Ada 95 se permite especificar un procedimiento protegido como elemento de manejo de interrupciones. en este modelo, el hardware invoca directamente la ejecución del procedimiento protegido sólo funciona si el sistema operativo lo permite GRUPO DE COMPUTADORES Y TIEMPO REAL J. Javier Gutiérrez, Michael González Harbour 27
28 Notas: Un requisito imprescindible de la programación de sistemas empotrados es el poder atender a las interrupciones que llegan a un sistema, generadas por el hardware externo. El Ada 95 define como mecanismo para manejo de interrupciones un procedimiento protegido. En este caso, cuando el hardware provoca una interrupción, el sistema se encarga de llamar de forma automática al procedimiento protegido que se ha asignado a esa interrupción. Esto sólo funciona si el sistema operativo lo permite. En los sistemas operativos protegidos, como Linux o Windows, no se permite a la aplicación gestionar interrupciones. En los sistemas operativos específicos para sistemas empotrados, habitualmente sí. GRUPO DE COMPUTADORES Y TIEMPO REAL J. Javier Gutiérrez, Michael González Harbour 28
29 Ejemplo: Tarea que espera a una interrupción Interrupción hardware Objeto protegido Tarea de usuario rutina servicio interrupción entry Espera when barrera is... barrera: boolean; otros datos compartidos GRUPO DE COMPUTADORES Y TIEMPO REAL J. Javier Gutiérrez, Michael González Harbour 29
30 Notas: En el ejemplo de arriba hay un objeto protegido que tiene un procedimiento y un punto de entrada (entry): El procedimiento que hace las veces de rutina de servicio de interrupción se ha declarado para que atienda a una interrupción hardware, usando el pragma Attach_Handler. Cada vez que llega la interrupción se ejecuta este procedimiento. Lo que hace es poner la barrera a True; además puede hacer más cosas, como interaccionar con el hardware de interrupción y preparar datos para la tarea. La entry sólo se puede ejecutar cuando la barrera es True, es decir, cuando la interrupción ha llegado y ha sido procesada. Debe poner la barrera a False. Además, puede compartir datos del objeto protegido con la rutina de servicio de interrupción, y pasárselos a la tarea que llame a esta entry. Las tareas de usuario pueden llamar a la entry para esperar a que llegue la interrupción. Cuando llega, la entry se ejecuta (porque la barrera se pone a True). Por medio de los parámetros de la entry la tarea puede pasar datos al objeto protegido, y obtener datos de él. GRUPO DE COMPUTADORES Y TIEMPO REAL J. Javier Gutiérrez, Michael González Harbour 30
31 9.7 Gestión del Tiempo El Ada permite diversas formas de manejo del tiempo: Package Ada.Calendar, con funciones para saber la hora, fecha, etc. Package Ada.Real_Time para acceder a un reloj monótono, que se incrementa siempre Instrucciones delay until y delay, que permiten dormir a una tarea hasta que transcurra el instante o intervalo indicado - mientras una tarea está dormida, otras pueden ejecutar GRUPO DE COMPUTADORES Y TIEMPO REAL J. Javier Gutiérrez, Michael González Harbour 31
32 Notas: El package Ada.Calendar permite acceder a procedimientos y funciones para consultar o cambiar la fecha y hora. Presenta el inconveniente de que la fecha y la hora normalmente dependen de factores sociales tales como el horario invierno/verano, etc. Con objeto de que las aplicaciones de tiempo real puedan disponer de un reloj que se incrementa siempre, se define el package Ada.Real_Time que permite saber la hora (desde un instante arbitrario). De esta forma se dispone de un reloj fiable para las aplicaciones de tiempo real. Las instrucciones delay y delay until permiten a una tarea suspenderse hasta que transcurra un determinado intervalo de tiempo, o se alcance un determinado instante de tiempo, respectivamente. Esta facilidad es de gran importancia en programas de tiempo real. Mientras la tarea se halla suspendida, otras tareas que estén activas (es decir no suspendidas) pueden ejecutar. GRUPO DE COMPUTADORES Y TIEMPO REAL J. Javier Gutiérrez, Michael González Harbour 32
33 Paquete Ada.Calendar package Ada.Calendar is type Time is private; subtype Year_Number is Integer range ; subtype Month_Number is Integer range ; subtype Day_Number is Integer range ; subtype Day_Duration is Duration range _400.0; function Clock return Time; function Year (Date : Time) return Year_Number; function Month (Date : Time) return Month_Number; function Day (Date : Time) return Day_Number; function Seconds (Date : Time) return Day_Duration; function Time_Of (Year : Year_Number; Month : Month_Number; Day : Day_Number; Seconds : Day_Duration := 0.0) return Time; GRUPO DE COMPUTADORES Y TIEMPO REAL J. Javier Gutiérrez, Michael González Harbour 33
34 Paquete Ada.Calendar function "+" (Left : Time; Right : Duration) return Time; function "+" (Left : Duration; Right : Time) return Time; function "-" (Left : Time; Right : Duration) return Time; function "-" (Left : Time; Right : Time) return Duration;... end Ada.Calendar; GRUPO DE COMPUTADORES Y TIEMPO REAL J. Javier Gutiérrez, Michael González Harbour 34
35 Ejemplo -- Imprimir en pantalla el día, mes y año actuales, -- y luego las horas y minutos with Ada.Calendar, Ada.Text_Io; use Ada.Calendar; use Ada.Text_Io; procedure Muestra_Dia_Y_Hora is Instante : Time:=Clock; Hora : Integer := Integer(Seconds(Instante))/3600; Minuto : Integer := (Integer(Seconds(Instante))-Hora*3600)/60; begin Put_Line("Hoy es "&Integer'Image(Day(Instante))&" del "& Integer'Image(Month(Instante))&" de "& Integer'Image(Year(Instante))); Put_Line("La hora es : "&Integer'Image(Hora)& ":"&Integer'Image(Minuto)); end Muestra_Dia_Y_Hora; GRUPO DE COMPUTADORES Y TIEMPO REAL J. Javier Gutiérrez, Michael González Harbour 35
36 Notas: El paquete Ada.Calendar contiene el tipo Time, que representa un instante de tiempo. Se puede combinar en operaciones con el tipo predefinido Duration, que representa un intervalo relativo de tiempo. La función Clock permite obtener la fecha y hora actual, del tipo Time. Para obtener a partir de este dato el año, mes, día, o segundos dentro del día, (y al revés) existen también funciones en Ada.Calendar. GRUPO DE COMPUTADORES Y TIEMPO REAL J. Javier Gutiérrez, Michael González Harbour 36
37 Tareas periódicas Con la instrucción delay until es posible hacer tareas periódicas: task body Periodica is Periodo : constant Duration:=0.050; -- en segundos Proximo_Periodo : Time := Clock; begin loop -- hace cosas Proximo_Periodo:=Proximo_Periodo+Periodo; delay until Proximo_Periodo; end loop; end Periodica; GRUPO DE COMPUTADORES Y TIEMPO REAL J. Javier Gutiérrez, Michael González Harbour 37
38 Tareas periódicas También se puede hacer lo mismo (pero mal) con la orden delay: task body Periodica is Periodo : constant Duration:=0.050; -- en segundos Proximo_Periodo : Time := Clock; begin loop -- hace cosas Proximo_Periodo:=Proximo_Periodo+Periodo; delay Proximo_Periodo-Clock; end loop; end Periodica; En este caso la tarea puede ser interrumpida por otra entre la lectura del reloj (con Clock) y la ejecución del delay. Esto provocaría un retraso mayor que el deseado. GRUPO DE COMPUTADORES Y TIEMPO REAL J. Javier Gutiérrez, Michael González Harbour 38
39 9.8 Prioridades El Ada utiliza el sistema de tareas expulsoras (o desalojantes) por prioridad fija (mayor número mayor prioridad): cuando una tarea de alta prioridad se activa, desaloja a otra tarea de menor prioridad que se esté ejecutando A cada tarea se le puede asignar una prioridad con: pragma Priority(13); Esta prioridad se puede modificar, usando las operaciones del paquete Ada.Dynamic_Priorities Mediante la planificación de tareas por prioridades fijas, es posible garantizar la respuesta en tiempo real de las tareas. La teoría RMA permite realizar el análisis del sistema GRUPO DE COMPUTADORES Y TIEMPO REAL J. Javier Gutiérrez, Michael González Harbour 39
40 Notas: El sistema de planificación expulsora de tareas por prioridad fija es muy comúnmente utilizado en la mayoría de los sistemas de tiempo real construidos en la práctica. En este tipo de planificación, el planificador de tareas, que es la parte del software encargada de decidir qué tarea es la que se va a ejecutar, ejecuta la tarea de más alta prioridad de todas las que estén activas. La expulsión implica que si una tarea está siendo ejecutada y en ese momento otra tarea de prioridad más alta se activa para ejecutar, la tarea de prioridad más alta "expulsa" a la de prioridad baja de la CPU, y pasa a ser ejecutada. Para asignar una prioridad a una tarea se usa el pragma Priority en la especificación de la tarea. También se puede asignar prioridad al programa principal, con el mismo pragma. En el Ada 95 se permite que la prioridad de las tareas cambie. Para ello se cuenta con el paquete Ada.Dynamic_Priorities, que tiene las operaciones Set_Priority y Get_Priority. El rango de prioridades que utiliza un sistema para las tareas se encuentra entre Priority First y Priority Last (atributos aplicados sobre el subtipo Priority) La teoría RMA (Rate Monotonic Analysis) ayuda a hacer una buena asignación de prioridades, y muestra cómo es posible predecir matemáticamente si el sistema va a cumplir todos sus requerimientos temporales. (Ver "A Practitioner's Handbook for Real-Time Analysis", por M.Klein, T. Ralya, B. Pollak, R. Obenza, y M. González, Kluwer Academic Pub., 1993). GRUPO DE COMPUTADORES Y TIEMPO REAL J. Javier Gutiérrez, Michael González Harbour 40
41 Inversión de prioridad En la sincronización de datos puede aparecer la inversión de prioridad: una tarea de alta prioridad puede verse forzada a esperar a que una de menor prioridad termine esto provoca retrasos enormes, inaceptables en sistemas de tiempo real Para evitarla existe el protocolo de techo de prioridad, asociado a los objetos protegidos: a cada objeto protegido se le asigna un techo de prioridad con el pragma Priority debe ser igual o superior a las prioridades de las tareas que usan ese objeto protegido GRUPO DE COMPUTADORES Y TIEMPO REAL J. Javier Gutiérrez, Michael González Harbour 41
42 Notas: Cuando las tareas de un sistema de tiempo real se sincronizan pueden ocurrir inversiones de prioridad, que causan que una tarea de alta prioridad esté esperando a que otra tarea de baja prioridad termine. Esto puede provocar que el tiempo de respuesta sea muy alto, y por tanto es inaceptable en sistemas de tiempo real. Para evitar este problema, el Ada cuenta con un mecanismo especial, llamado el techo de prioridad, por el que las tareas modifican su prioridad al sincronizarse. Para que funcione correctamente este mecanismo, debemos asignar a cada objeto protegido un techo de prioridad, usando el pragma Priority. Este techo debe calcularse de manera que sea igual o superior (mejor igual) a las prioridades de las tareas que pueden usar ese objeto compartido. GRUPO DE COMPUTADORES Y TIEMPO REAL J. Javier Gutiérrez, Michael González Harbour 42
Seminario de Programación en Ada
Seminario de Programación en Ada Bloque II Programación de tiempo real GRUPO DE COMPUTADORES Y TIEMPO REAL Michael González, J. Javier Gutiérrez, Héctor Pérez 19 Programación de Tiempo Real El Ada soporta
Gestión del tiempo en Ada
dit UPM Gestión del tiempo en Ada Juan Antonio de la Puente DIT/UPM El tiempo en Ada La gestión del tiempo en Ada está integrada en el lenguaje y en el modelo de tareas relojes relojes de tiempo de ejecución
Parte I: Elementos del lenguaje Ada
Parte I: Elementos del lenguaje Ada 1. Introducción a los computadores y su programación 2. Elementos básicos del lenguaje 3. Modularidad y programación orientada a objetos 4. Estructuras de datos dinámicas
Programación concurrente
Programación concurrente Master de Computación I Conceptos y recursos para la programación concurrente: I.1 Motivación de la programación concurrente. J.M. Drake M. Aldea Motivación de la programación
Introducción a los Sistemas Operativos
Introducción a los Sistemas Operativos Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es 1 Índice General Conceptos sobre ordenadores Concepto
Manual de turbo pascal
Universidad Nacional Experimental De Los Llanos Occidentales Ezequiel Zamora UNELLEZ-Barinas Manual de turbo pascal Bachilleres: Martinez Ninibeth C.I:20.867.002 Mora Yaco C.I:17.205.073 Estructura de
FUNDAMENTOS DE INFORMÁTICA
FUNDAMENTOS DE INFORMÁTICA Tema 1 Introducción a la Programación en Visual Basic Departamento de Ingeniería de Sistemas y Automática Universidad de Vigo undamentos de Informática. Departamento de Ingeniería
TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO. Definición y objetivos de un S.O
TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO Definición y objetivos de un S.O Definición y objetivos del sistema operativo Estructura, componentes y servicios de un S.O Llamadas al sistema
Sistemas Operativos. Introducción. Tema 6
Sistemas Operativos Introducción Qué es un sistema operativo? Ubicación de un sistema operativo en un computador Descripción de un sistema operativo: Funcional Estructural Realización Funciones de los
Sistemas Operativos. Daniel Rúa Madrid
Sistemas Operativos Daniel Rúa Madrid Qué es? Es un programa que administra el hardware de una computadora. También proporciona las bases para los programas de aplicación y actúa como intermediario entre
Tema 3 - Modelado con HDL a nivel RTL
- Modelado con HDL a nivel RTL Eduardo Rodríguez Martínez Departamento de Electrónica División de Ciencias Básicas e Ingeniería Universidad Autónoma Metropolitana Unidad Azcapotzalco Email: erm@correo.azc.uam.mx
6. Entrada y Salida Explicación de la interfaz entre el computador y el mundo exterior.
6. Entrada y Salida Explicación de la interfaz entre el computador y el mundo exterior. 6.1. El subsistema de E/S Qué es E/S en un sistema computador? Aspectos en el diseño del subsistema de E/S: localización
Los Tipos Abstractos de Datos. Estructuras de Datos y Algoritmos 03/04
Los Tipos Abstractos de Datos Estructuras de Datos y Algoritmos 03/04 Qué son los TAD s? Metodología de programación con TAD s Especificación Algebraica de TAD s Qué son los TAD s? Con los lenguajes de
Parte II: Estructuras de datos y algoritmos
Parte II: Estructuras de datos y algoritmos Tema 11. Tipos abstractos de datos. Conceptos básicos. Listas. Pilas. Colas. Vectores. Conjuntos. Mapas. Árboles. Árboles binarios. GRUPO DE COMPUTADORES Y TIEMPO
SUBPROGRAMAS PL/SQL César Martínez C. Profesor Instructor de Base de Datos Sede Puente Alto DUOC
SUBPROGRAMAS PL/SQL César Martínez C. Profesor Instructor de Base de Datos Sede Puente Alto DUOC INTRODUCCIÓN Los subprogramas son otro tipo de bloques PL/SQL Se diferencian de los bloques anónimos porque
//Sección de manejo de excepciones. Las rutinas de manejo de errores //aparecen aqui
PL/SQL - Oracle PL/SQL (Procedural Language/SQL) es una extensión de SQL, que agrega ciertas construcciones propias de lenguajes procedimentales, obteniendose como resultado un lenguaje estructural mas
Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones
Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice
Programación MODULAR: Subalgoritmos - funciones y procedimientos
Programación MODULAR: Subalgoritmos - funciones y procedimientos Uno de los métodos fundamentales para resolver un problema es dividirlo en problemas más pequeños, llamados subproblemas. Estos problemas
Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria
1.2. Jerarquía de niveles de un computador Qué es un computador? Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria Es un sistema tan complejo
Concurrencia y paralelismo
Introducción a los Sistemas Operativos Concurrencia y paralelismo 1. Ejecución de programas. Procesos. 2. Multiprogramación Bibliografía Silberschatz and Galvin Sistemas Operativos. Conceptos fundamentales.
Estructuras en LabVIEW.
Estructuras en LabVIEW. Sumario: 1. Ejecución según el flujo de datos. 2. Estructuras básicas disponibles en LabVIEW. a) Estructura Sequence. b) Estructura Case. c) Estructura For Loop. d) Estructura While
Las optimizaciones pueden realizarse de diferentes formas. Las optimizaciones se realizan en base al alcance ofrecido por el compilador.
Unidad III: Optimización Las optimizaciones pueden realizarse de diferentes formas. Las optimizaciones se realizan en base al alcance ofrecido por el compilador. La optimización va a depender del lenguaje
Manipulación de procesos
Manipulación de procesos Las primeras computadoras solo podían manipular un programa a la vez. El programa tenía control absoluto sobre todo el sistema. Con el desarrollo vertiginoso del hardware ese panorama
M. C. Felipe Santiago Espinosa
M. C. Felipe Santiago Espinosa Junio de 2008 Un sistema empotrado es un procesador, con sus elementos externos que desarrolla una función especifica de manera autónoma. Un sistema empotrado es un sistema
Qué es un programa informático?
Qué es un programa informático? Un programa informático es una serie de comandos ejecutados por el equipo. Sin embargo, el equipo sólo es capaz de procesar elementos binarios, es decir, una serie de 0s
FUNDAMENTOS DE INFORMÁTICA. Principios Básicos de Sistemas Operativos. Definición de Sistema Operativo
UNIVERSIDADE DE VIGO ESCOLA TÉCNICA SUPERIOR DE ENXEÑEIROS INDUSTRIÁIS FUNDAMENTOS DE INFORMÁTICA Principios Básicos de Sistemas Operativos 1 Definición de Sistema Operativo Un sistema operativo es parte
de Gran Canaria Centro de Tecnología Médica Programación Concurrente
Universidad de Las Palmas de Gran Canaria Centro de Tecnología Médica http://www.ctm.ulpgc.es Tema 1: Introducción a la Escuela Técnica Superior de Ingenieros de Telecomunicación Conceptos Fundamentales
Cristian Blanco
UNIDAD DIDÁCTICA 8. ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS. DIAGRAMAS DE COMPORTAMIENTO En el siguiente enlace tienes una descripción y algunos ejemplos de todos los diagramas UML.: http://jms32.eresmas.net/tacticos/uml/umlindex.html
Guía práctica de estudio 05: Diagramas de flujo
Guía práctica de estudio 05: Diagramas de flujo Elaborado por: M.C. Edgar E. García Cano Ing. Jorge A. Solano Gálvez Revisado por: Ing. Laura Sandoval Montaño Guía práctica de estudio 05: Diagramas de
ARQUITECTURA BÁSICA DEL ORDENADOR: Hardware y Software. IES Miguel de Cervantes de Sevilla
ARQUITECTURA BÁSICA DEL ORDENADOR: Hardware y Software. IES Miguel de Cervantes de Sevilla Índice de contenido 1.- Qué es un ordenador?...3 2.-Hardware básico de un ordenador:...3 3.-Software...4 3.1.-Software
Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.
Tipos de Datos Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Entrada de datos Procesamientos de datos Salida de resultados Los
Computadora y Sistema Operativo
Computadora y Sistema Operativo Según la RAE (Real Academia de la lengua española), una computadora es una máquina electrónica, analógica o digital, dotada de una memoria de gran capacidad y de métodos
Sistemas Operativos. Dr. Luis Gerardo de la Fraga. Departamento de Computación Cinvestav
Sistemas Operativos Dr. Luis Gerardo de la Fraga E-mail: fraga@cs.cinvestav.mx http://cs.cinvestav.mx/~fraga Departamento de Computación Cinvestav 12 de junio de 2015 Dr. Luis Gerardo de la Fraga Cinvestav,
Introducción a la Operación de Computadoras Personales
Introducción a la Operación de Computadoras Personales Conceptos básicos de computadoras: Software Dr. Diego García Depto. de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur, Bahía
Gestión de Entrada-salida
Gestión de Entrada-salida E. Campo M. Knoblauch Ó. López J. Clemente Departamento de Automática Universidad de Alcalá Sistemas Operativos Avanzados Gestión de Entrada-salida 1 / 18 Índice Introducción
Herramientas Informáticas I Software: Sistemas Operativos
Herramientas Informáticas I Software: Sistemas Operativos Facultad de Ciencias Económicas y Jurídicas Universidad Nacional de La Pampa Sistemas Operativos. Es el software base que permite trabajar como
Tema 4.- Pilas y Colas
Apuntes elaborados por: Eduardo Quevedo, Raquel López y Aaron Asencio Revisado por: Javier Miranda el???? Tema 4.- Pilas y Colas Las pilas y colas son estructuras de datos que se utilizan generalmente
Sistemas Operativos. Curso 2014 Estructura de los sistemas operativos
Sistemas Operativos Curso 2014 Estructura de los sistemas operativos Agenda Componentes de un sistema operativo. Servicios del sistema operativo (system services). Llamados a sistema (system calls). Estructura
INDICE Parte 1. Visual Basic Capitulo 1. Qué es Visual Basic? Capitulo 22. Mi Primera Aplicación Capitulo 3. Elementos del lenguaje
INDICE Prólogo XV Parte 1. Visual Basic 1 Capitulo 1. Qué es Visual Basic? 3 Introducción 3 Como crear una aplicación 5 Otras facilidades de Visual Basic 6 Un lenguaje de alto nivel 9 Menús 10 Colores
Tema 6: Periféricos y entrada-salida
Enunciados de problemas Tema 6: Periféricos y entrada-salida Estructura de Computadores I. T. Informática de Gestión / Sistemas Curso 2008-2009 Tema 6: Hoja: 2 / 8 Tema 6: Hoja: 3 / 8 Base teórica Al diseñar
Funcionamiento de la computadora
Funcionamiento de la computadora La computadora es una maquina destinada a procesar datos. Este procesamiento involucra dos flujos de información: el de datos y el de instrucciones. Se parte del flujo
SISTEMAS OPERATIVOS Arquitectura de computadores
SISTEMAS OPERATIVOS Arquitectura de computadores Erwin Meza Vega emezav@unicauca.edu.co Esta presentación tiene por objetivo mostrar los conceptos generales de la arquitectura de los computadores, necesarios
Tecnología de software para sistemas de tiempo real
1 dit UPM Tecnología de software para sistemas de tiempo real Juan Antonio de la Puente DIT/UPM Motivación Las herramientas y la tecnología de software que se usan para construir otros tipos de sistemas
Introducción a la arquitectura de computadores
Introducción a la arquitectura de computadores Departamento de Arquitectura de Computadores Arquitectura de computadores Se refiere a los atributos visibles por el programador que trabaja en lenguaje máquina
Tema 3. Aplicaciones de Tipo Consola
Tema 3. Aplicaciones de Tipo Consola Una aplicación de consola es aquella que se ejecuta dentro de una ventana de línea de comandos. Este tipo de ventana recibe diferentes denominaciones: Símbolo del sistema,
TEMA 1. INTRODUCCIÓN A LOS STR.
TEMA 1. INTRODUCCIÓN A LOS STR. 1.1. Definición de un sistema de tiempo real. 1.2. Características de los sistemas de tiempo real. 1.3. Tiempo compartido y tiempo real. 1.4. Planificación. 1.5. Sistemas
FUNDAMENTOS DE INFORMÁTICA
FUNDAMENTOS DE INFORMÁTICA Tema 2 Expresiones, operadores y estructuras de control Departamento de Ingeniería de Sistemas y Automática Universidad de Vigo Fundamentos de Informática. Departamento de Ingeniería
Memoria. Organización de memorias estáticas.
Memoria 1 Memoria Organización de memorias estáticas. 2 Memoria En memoria físicas con bus de datos sea bidireccional. 3 Memoria Decodificación en dos niveles. 4 Necesidad de cantidades ilimitadas de memoria
FUNCIONES PHP: DECLARACIÓN Y LLAMADAS. PARÁMETROS, RETURN. EJERCICIOS EJEMPLOS RESUELTOS. (CU00827B)
APRENDERAPROGRAMARCOM FUNCIONES PHP: DECLARACIÓN Y LLAMADAS PARÁMETROS, RETURN EJERCICIOS EJEMPLOS RESUELTOS (CU00827B) Sección: Cursos Categoría: Tutorial básico del programador web: PHP desde cero Fecha
TEMA 2 Introducción a C# ANÁLISIS Y DESARROLLO DE APLICACIONES INFORMÁTICAS Curso 2010/2011
TEMA 2 Introducción a C# ANÁLISIS Y DESARROLLO DE APLICACIONES INFORMÁTICAS Curso Origen Nuevo lenguaje de propósito general de Microsoft para la plataforma.net Es el único que ha sido diseñado específicamente.net
UNIDAD 1. COMPONENTES DEL COMPUTADOR
UNIDAD 1. COMPONENTES DEL COMPUTADOR OBJETIVO Nº 1.1: DEFINICIÓN DE COMPUTADOR: Es un dispositivo electrónico compuesto básicamente de un procesador, una memoria y los dispositivos de entrada/salida (E/S).
Usuario. Programas de Aplicación. Sistema Operativo. Hardware. Figura 1. Sistema de cómputo estructurado por capas.
Generalidades acerca de los sistemas operativos Hoy en día muchas personas, usan las computadoras de una forma muy fácil, muchos incluso creen que la máquina tiene incorporada todas las potencialidades
Tema V Generación de Código
Tema V Generación de Código Una vez que se ha realizado la partición HW/SW y conocemos las operaciones que se van a implementar por hardware y software, debemos abordar el proceso de estas implementaciones.
Programación de Sistemas Depuradores (Debugger) MIS. Lizbeth Hdz. Glz.
Programación de Sistemas Depuradores (Debugger) MIS. Lizbeth Hdz. Glz. TIPOS DE ERRORES Sintácticos. Los errores de sintaxis, o sintácticos, ocurren cuando el programador escribe código que no va de acuerdo
CICLOS DEL PROCESADOR
UNIDAD DE CONTROL CICLOS DEL PROCESADOR Qué es un ciclo de búsqueda? Para qué sirve estudiar los ciclos de instrucción de una CPU? Para comprender el funcionamiento de la ejecución de instrucciones del
Parte I:Teoría. Tema 3:Introducción a los Sistemas operativos. Instalación
Tema 3:Introducción a los Sistemas operativos. Instalación Parte I:Teoría Introducción a los SO Componentes Llamadas al sistema Estructura del Kernel Drivers Esta obra está bajo una licencia Reconocimiento-No
Repasar las herramientas básicas para crear y animar una presentación de PowerPoint. Utilizar y crear plantillas automatizando tareas repetitivas.
OBJETIVOS Repasar los conceptos y herramientas básicas de las aplicaciones del paquete office: Word, Excel, Access y PowerPoint. Repasar las herramientas básicas de Word: partes de la ventana de Word,
APUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable.
APUNTADORES Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. No hay que confundir una dirección de memoria con el contenido
1-Componentes Físicos y Lógicos de un Ordenador.
1-Componentes Físicos y Lógicos de un Ordenador. En este capítulo trataremos de explicar el conjunto de elementos por lo que está compuesto un ordenador. A grandes rasgos un Ordenador Personal o PC ( Personal
Inicio del programa. Entrada de datos. Proceso de datos. Salida de datos. Fin del programa
PROGRAMACIÓN 10. Prof. Dolores Cuiñas H. Recuerde que estos son apuntes muy simplificados que deberá completar con la bibliografía recomendada APUNTES Nº 4 ESTRUCTURA SECUENCIAL GENERAL La estructura secuencial
Objetos de aprendizaje: Computadora
MOMENTO I. BLOQUE 1. Opera las funciones básicas del sistema operativo y garantiza la seguridad de la información Objetos de aprendizaje: Computadora Lectura 1: La Computadora La computadora es una máquina
Principios de Computadoras II
Departamento de Ingeniería Electrónica y Computadoras Ing. Ricardo Coppo Qué es una computadora? Una computadora es una máquina digital y sincrónica con capacidad de cálculo numérico y lógico controlada
PHP: Lenguaje de programación
Francisco J. Martín Mateos Carmen Graciani Diaz Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Tipos de datos Enteros Con base decimal: 45, -43 Con base octal: 043, -054
Enteros. Son los números que no contienen componentes fraccionarios y, por tanto, no contienen punto decimal.
LENGUAJE DE PROGRAMACIÓN TURBO PASCAL El lenguaje de programación de alto nivel Pascal fue diseñado el 1968 por Niklaus Wirth con una finalidad eminentemente pedagógica El 1983, el Pascal fue estandarizado
Unidad I: Organización del Computador. Ing. Marglorie Colina
Unidad I: Organización del Computador Ing. Marglorie Colina Arquitectura del Computador Atributos de un sistema que son visibles a un programador (Conjunto de Instrucciones, Cantidad de bits para representar
Elementos de un programa en C
Elementos de un programa en C Un programa en C consta de uno o más archivos. Un archivo es traducido en diferentes fases. La primera fase es el preprocesado, que realiza la inclusión de archivos y la sustitución
Comunicación mediante mensajes
dit UPM Comunicación mediante mensajes Juan Antonio de la Puente DIT/UPM Objetivos Comprender los problemas relacionados con la comunicación entre procesos basada en el interambio de mensajes Estudiar
Requerimientos de Software
Requerimientos de Software Ingeniería de Requerimientos Se define como el proceso de establecer los servicios que el consumidor requiere de un sistema y las restricciones sobre las cuales de funcionar
Introducción a la Computación. Herramientas Informáticas. Omar Ernesto Cabrera Rosero Universidad de Nariño
Introducción a la Computación Omar Ernesto Cabrera Rosero Universidad de Nariño 6 de Julio 2010 Esquema Terminología Informática 1 Terminología Informática Computación e Informática Dato e Información
Índice general. Capítulo 1 Conceptos básicos. Capítulo 2 Controles básicos I. Pág. N. 1
Pág. N. 1 Índice general Capítulo 1 Conceptos básicos Qué es Visual Basic? La programación basada en objetos Propiedades Métodos Eventos Funcionamiento de las propiedades, métodos y eventos Ingreso al
Tarjetas multimedia externas
Tarjetas multimedia externas Referencia: 393506-071 Octubre de 2005 En esta guía se explica cómo utilizar tarjetas multimedia externas. Contenido 1 Tarjetas para ranuras de soportes digitales Inserción
Parte 4: Estructuras de Control
Parte 4: Estructuras de Control Las estructuras de control le permiten controlar el flujo de ejecución del programa. Tenemos dos tipos de estructuras de control: Estructuras de decisión Estructuras de
Derechos de Acceso: COMPOSICION
CLASES Una clase es un tipo definido por el usuario que describe los atributos y los métodos de los objetos que se crearan a partir de la misma. class nombre_clase cuerpo de la clase Derechos de Acceso:
ESCUELA DE INFORMÁTICA
TÉCNICO EN SISTEMAS LABORAL SUBMODULO TEMA 1 (Visual Basic for Application) Microsoft VBA (Visual Basic for Applications) es el lenguaje de macros de Microsoft Visual Basic que se utiliza para programar
Oracle PL/SQL. Programa de Estudio.
Oracle PL/SQL Programa de Estudio Oracle PL/SQL El alumno egresara del mismo con los conocimientos y destrezas necesarias para desempeñarse como desarrollador Oracle PL/SQL además de contar con los conocimientos
La última versión disponible cuando se redactó este manual era la 5 Beta (versión ), y sobre ella versa este manual.
Manual de Dev-C++ 4.9.9.2 Página 1 de 11 Introducción Dev-C++ es un IDE (entorno de desarrollo integrado) que facilita herramientas para la creación y depuración de programas en C y en C++. Además, la
SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos
TEMA 2 Diseño de Algoritmos 7 2. DISEÑO DE ALGORITMOS 2.1. Concepto de Algoritmo En matemáticas, ciencias de la computación y disciplinas relacionadas, un algoritmo (del griego y latín, dixit algorithmus
Organización lógica Identificación de bloque
Cómo se encuentra un bloque si está en el nivel superior? La dirección se descompone en varios campos: Etiqueta (tag): se utiliza para comparar la dirección requerida por la CPU con aquellos bloques que
Definición de Sistema Operativo
Definición de Sistema Operativo El sistema operativo es el programa (o software) más importante de un ordenador. Para que funcionen los otros programas, cada ordenador de uso general debe tener un sistema
Diseño arquitectónico 1ª edición (2002)
Unidades temáticas de Ingeniería del Software Diseño arquitectónico 1ª edición (2002) Facultad de Informática objetivo Los sistemas grandes se descomponen en subsistemas que suministran un conjunto relacionado
GLOSARIO DE MICROSOFT VISUAL BASIC (HAZ CLIC EN LA OPCION DEL MENU Y ACCEDERAS RAPIDAMENTE)
GLOSARIO DE MICROSOFT VISUAL BASIC (HAZ CLIC EN LA OPCION DEL MENU Y ACCEDERAS RAPIDAMENTE) Menú 1. Operadores Matemáticos 2. Operadores relacionales 3. Funciones de Visual Basic 4. Tipos de variables
HP - UX. Qué es HP UX?
HP - UX Integrantes: Cisneros Pedraza Christian. Jiménez Nieves José Manuel. Villanueva Armenta Fernando. Qué es HP UX? Hp UX es una variante de Unix creada por los desarrolladores de software de HP. Provee
TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL
1 TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL TECNOLOGÍA DE LA COMPUTADORA FACILITADOR: PARTICIPANTE: DAVID, CHIRIQUÍ 2015 2 Qué es un programa? Un programa informático es un conjunto
ANÁLISIS DE LAS PRINCIPALES VULNERABILIDADES DE UN SISTEMA INFORMÁTICO
ANÁLISIS DE LAS PRINCIPALES VULNERABILIDADES DE UN SISTEMA INFORMÁTICO Luis Villalta Márquez INTRODUCCIÓN Existen diferentes vulnerabilidades que, dependiendo de sus características, las podemos clasificar
SILABO DE SISTEMAS OPERATIVOS
UNIVERSIDAD PRIVADA DEL NORTE Facultad de Ingeniería I. DATOS GENERALES SILABO DE SISTEMAS OPERATIVOS 1.1. Facultad : Ingeniería. 1.2. Carrera Profesional : Ingeniería de Sistemas. 1.3. Tipo de Curso :
Arrays unidimensionales. Dim.Option Base. Erase. Ejemplos en Visual Basic (CU00311A)
aprenderaprogramar.com Arrays unidimensionales. Dim.Option Base. Erase. Ejemplos en Visual Basic (CU00311A) Sección: Cursos Categoría: Curso Visual Basic Nivel I Fecha revisión: 2029 Autor: Mario R. Rancel
PROTOCOLO IP. Vicente Sánchez Patón. I.E.S Gregorio Prieto. Tema 1 SRI
PROTOCOLO IP Tema 1 SRI Vicente Sánchez Patón I.E.S Gregorio Prieto Cada dispositivo de una red debe definirse en forma exclusiva. En la capa de red, es necesario identificar los paquetes de la transmisión
El modelo de Procesos
Administración n de procesos El modelo de Procesos Concepto central dentro de cualquier sistema operativo. Proceso vs. Programa: Programa: Es un archivo o conjunto de archivos que contienen código ejecutable.
Un. VI. Generador de código intermedio.
Un. VI. Generador de código intermedio. La administración de la memoria se da en esta etapa. Se debe considerar tanto la memoria estática como dinámica, y en esta se utilizan generalmente pilas. Los lenguajes
Tiempo real. Juan Antonio de la Puente DIT/UPM. Tiempo real. Comprender el papel del tiempo en el diseño y realización de sistemas de tiempo real
dit UPM Tiempo real Juan Antonio de la Puente DIT/UPM Tiempo real Objetivo Comprender el papel del tiempo en el diseño y realización de sistemas de tiempo real Contenido: Sistemas de referencia de tiempo
LABORATORIO DE CIRCUITOS DIGITALES (2005-II) QUINTA CLASE DE VHDL
LABORATORIO DE CIRCUITOS DIGITALES (2005-II) QUINTA CLASE DE VHDL MÁQUINAS DE ESTADO FINITAS (FSMs) Máquinas de Moore Máquinas de Mealy MÁQUINAS DE ESTADOS FINITAS (FSMs) Tipos: Máquina de Moore: Las salidas
Informática Electrónica Manejadores de Dispositivos (Device Drivers)
Informática Electrónica Manejadores de Dispositivos (Device Drivers) DSI-EIE-FCEIA 2015 Que es un DD? Es una pieza de software que interactúa con (entre) el sistema operativo y con uno o mas dispositivos
Estructura de Datos: Archivos
Estructura de Datos: Archivos Registros (record) Un registro es una estructura que consiste de un número fijo de componentes llamados campos. Los campos pueden ser de diferentes tipos y deben tener un
Manejo de Entrada-Salida. Arquitectura de Computadoras
Manejo de Entrada-Salida Arquitectura de Computadoras Agenda 1.2.3.1Módulos de entrada/salida. 1.2.3.2Entrada/salida programada. 1.2.3.3Entrada/salida mediante interrupciones. 1.2.3.4Acceso directo a memoria.
DESCRIPCIÓN ESPECÍFICA NÚCLEO: COMERCIO Y SERVICIOS SUBSECTOR: INFORMÁTICA
DESCRIPCIÓN ESPECÍFICA NÚCLEO: COMERCIO Y SERVICIOS SUBSECTOR: INFORMÁTICA Nombre del Módulo: PROGRAMACIÓN EN JAVASCRIPT Código: CSTI0087 total: 51 Horas Objetivo General: Crear contenido web basado en
Aplicaciones Concurrentes
PROGRAMACIÓN CONCURRENTE TEMA 6 Aplicaciones Concurrentes ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN PROGRAMACIÓN CONCURRENTE Aplicaciones Concurrentes
UPM Gestión del tiempo real
UPM Gestión del tiempo real Juan Antonio de la Puente DIT/UPM Tiempo real Objetivo Comprender el papel del tiempo en el diseño y realización de sistemas de tiempo real Contenido: Sistemas de referencia
Introducción a los Sistemas Operativos
Introducción a los Sistemas Operativos (primera parte) USB Agosto 2012 Introduccion Un ordenador moderno consiste de uno o más procesadores, alguna memoria principal, discos, impresoras, un teclado, una
Usando el Sistema Operativo
Sistemas Operativos Pontificia Universidad Javeriana Enero de 2010 Los sistemas operativos Los sistemas operativos Perspectivas del Computador Concepto general El sistema operativo es parte del software
Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo
TEMA 2: CONCEPTOS BÁSICOS DE ALGORÍTMICA 1. Definición de Algoritmo 1.1. Propiedades de los Algoritmos 2. Qué es un Programa? 2.1. Cómo se construye un Programa 3. Definición y uso de herramientas para