Análisis y Verificación Formal de Planificadores para Sistemas Operativos de Tiempo Real. Dr. Apolinar González Potes

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Análisis y Verificación Formal de Planificadores para Sistemas Operativos de Tiempo Real. Dr. Apolinar González Potes"

Transcripción

1 Análisis y Verificación Formal de Planificadores para Sistemas Operativos de Tiempo Real Dr. Apolinar González Potes

2 Dr. Apolinar González Potes Profesor Investigador Universidad de Colima, Colima - México Doctor en Computación Universidad Politécnica de Valencia, España Maestría en Electrónica, Eléctrica y Automática Opción: Informática Industrial Universidad Claude Bernard Lyon I, Francia Ingeniería en Electrónica, Eléctrica y Automática Opción: Informática Industrial INSA - Universidad Claude Bernard, Lyon I, Francia Sistema Nacional de Investigación: Nivel 1

3 Agenda 1 Introducción 2 Planificadores Cíclicos 3 Planificadores Estáticos y Dinámicos 4 Modelo de Diseño Formal Análisis y Verificación Formal

4 Introducción Breve Descripción del Grupo de Investigación Sistemas Inteligentes CA 46 clave SEP AREAS: Sistemas Operativos de Tiempo Real Sistemas Distribuidos de Tiempo Real Diseño de Sistemas de Tiempo Real Diseño de Sistemas Empotrados Personal: 4 Investigadores de Tiempo Completo 2 Candidatos a doctorado 12 Estudiantes de Maestría Localización: Posgrado de la Facultad de Ingeniería Mecánica y Eléctrica Cooperación: UPV, UAO, UCBL, CICESE, UdG, UFRGS, etc. InnovatiSS, FeintiSS, MNIS, Siteldi solutions, MECOPTIM, MIND, etc.

5 Introducción Proyectos Redes de Sensores para el Rendimiento de Cultivos INNOVAPIME 2012 México Centroamérica Arquitectura segura - CONACYT UWEP Francia - México

6 Introducción Proyectos Open and cost-effective virtualization techniques and supporting separation kernel for the embedded systems industry

7 Introducción Proyectos DISEÑO DE REDES DE SENSORES EN ENTORNOS CAMBIANTES (CONCAYT COLCIENCIAS) DISEÑO y DESARROLLO DE APLICACIONES BASADAS EN REDES DE SENSORES D2ARS (CYTED) Sistema Distribuido Abierto y Seguro para la Optimización de Costos Energéticos y Mejora del Confort en Casas y Edificios (DomOptim) OSEO (Francia) CONAYT (México) Algunos Productos: 1.uDDS (Subconjunto del Middleware DDS versión para Linux, PaRTikle) 2.Subconjunto del WirelessHART 3.Versión alpha XtratuM para ARM 9 4.PaRTiKle RTOS 5.ERTL (Embedded Real Time Linux) 6.etc Constructora Integral de Colima

8 Introducción Definiciones Un sistema de tiempo real es un sistema informático en el que es significativo el tiempo en el que se producen sus acciones. No es suficiente que las acciones del sistema sean correctas lógicamente, sino que, además, deben producirse dentro de un intervalo de tiempo determinado Esto es debido a que el sistema está conectado a un proceso externo del que recibe estímulos a los que debe responder con suficiente rapidez para evitar que evolucione a un estado indeseable. Los estímulos externos aparecen en instantes de tiempo no predecibles. Tiene que resolver distintas cosas a la vez (concurrentemente)

9 Introducción Tamaño y complejidad Fiabilidad y seguridad Concurrencia Afecta Afectaalalsoftware software La complejidad La complejidadno nosólo sólodepende dependedel deltamaño tamaño Posibilidad de realizar modificaciones Posibilidad de realizar modificaciones Descomposición Descomposiciónen ensubsistemas subsistemaspequeños pequeños yysencillos sencillos Un Unfallo fallopuede puedetener tenerrepercusiones repercusionesmuy muy importantes: perdidas humanas, económicas, importantes: perdidas humanas, económicas,etc. etc. Es necesario que si el sistema falla se le conduzca Es necesario que si el sistema falla se le conduzca aaestados estadosseguros segurosque quesean seanprevisibles, previsibles,yyse se tengan los medios para solucionarlo. tengan los medios para solucionarlo. Programación Programaciónconcurrente concurrente Distintas tareas Distintas tareasaccediendo accediendoaarecursos recursoscomunes comunes Restricciones temporales Restricciones temporales Planificación Planificaciónde detareas tareasatendiendo atendiendoaalas las restricciones temporales restricciones temporales

10 Introducción Tamaño y complejidad Fiabilidad y seguridad Concurrencia Afecta Afectaalalsoftware software La complejidad La complejidadno nosólo sólodepende dependedel deltamaño tamaño Posibilidad de realizar modificaciones Posibilidad de realizar modificaciones Descomposición Descomposiciónen ensubsistemas subsistemaspequeños pequeños yysencillos sencillos Un Unfallo fallopuede puedetener tenerrepercusiones repercusionesmuy muy importantes: perdidas humanas, económicas, importantes: perdidas humanas, económicas,etc. etc. Es necesario que si el sistema falla se le conduzca Es necesario que si el sistema falla se le conduzca aaestados estadosseguros segurosque quesean seanprevisibles, previsibles,yyse se tengan los medios para solucionarlo. tengan los medios para solucionarlo. Programación Programaciónconcurrente concurrente Distintas tareas Distintas tareasaccediendo accediendoaarecursos recursoscomunes comunes Restricciones temporales Restricciones temporales Planificación Planificaciónde detareas tareasatendiendo atendiendoaalas las restricciones temporales restricciones temporales

11 Introducción

12 Introducción

13 Introducción Ejemplo: Asignación de prioridades T1 = {20,100,100,0) T2 = {50,150,150,0) T3 = {100,300,300,0)

14 Introducción Ejemplo: Asignación de prioridades T1 = {20,100,100,0) T2 = {50,150,150,0) T3 = {100,300,300,0)

15 Introducción Ejemplo: Asignación de prioridades T1 = {20,100,100,0) T2 = {50,150,150,0) T3 = {100,300,300,0)

16 Introducción Ejemplo: Asignación de prioridades T1 = {20,100,100,0) T2 = {40,150,150,0) T3 = {100,300,300,0)

17 Introducción

18 Introducción

19 Introducción

20 Introducción

21 Introducción

22 Introducción

23 Introducción

24 Introducción

25 Introducción

26 Introducción Hilos de ejecución (Threads) Utilización de hilos de ejecución Los hilos de ejecución pueden ser creados y manejados: Utilizando un lenguaje de programación convencional y llamadas al sistema. Ejemplo: C y threads en POSIX Utilizando construcciones lingüísticas (o clases) de un lenguaje de programación que admita concurrencia Ejemplo: Tareas en Ada95, threads en Java

27 Introducción Threads en POSIX (i): Llamadas básicas Llamada pthread_create(thread_id, attr, func, args) pthread_exit (status) Descripción Crea un nuevo hilo de ejecución. El hilo de ejecución empieza en func y se le pasan los parámetros args. El hilo que la invoca finaliza su ejecución. pthread_join (thread_id) Suspende la ejecución del hilo que invoca esta llamada, hasta que el thread_id acabe. pthread_t pthread_self() Devuelve el identificador del thread que la invoca.

28 Introducción Threads en POSIX (ii): Un ejemplo

29 Introducción #include <stdio.h> #include <pthread.h> #include <sched.h> #include <time.h> #define FIFOPOLICY SCHED_FIFO void *task2(void *args) { int i,j; struct timespec delay1 = {0, }; while(1){ printf("\n contando..."); for (i=1;i<=630000;i++) for (j=1;j<=500000;j++); printf("\n termina de contar "); printf ( \n ****** Soy t2 ******** ); nanosleep(&delay1, NULL); } } void *task1(void *args) { struct timespec delay2 = {0, }; while(1){ printf ( \n ***** Soy t1 ************ ); nanosleep(&delay2, NULL); } } int main (int argc, char **argv) { //variables Thread 1 pthread_t thread1; pthread_attr_t attr1; int policy = FIFOPOLICY; struct sched_param param1; int priority1; //parametros thread1 pthread_attr_init(&attr1); pthread_attr_setschedpolicy(&attr1, policy); priority1 = 20; param1.sched_priority = priority1; pthread_attr_setschedparam(&attr1, &param1); pthread_create(&thread1, &attr1, task1, NULL);

30 Introducción //variables Thread 2 pthread_t thread2; pthread_attr_t attr2; struct sched_param param2; int priority2; //parametros thread2 pthread_attr_init(&attr2); pthread_attr_setschedpolicy(&attr2, policy); priority2 = 100; param2.sched_priority = priority2; pthread_attr_setschedparam(&attr2, &param2); //creacion de los hilos printf("prioridad hilo 1: %d\n", priority1); printf("prioridad hilo 2: %d\n", priority2); pthread_create(&thread2, &attr2, task2, NULL); pthread_create(&thread1, &attr1, task1, NULL); pthread_join (task1, NULL); printf(" SE ACABO "); return 0; }

31 Introducción Premisas: 1. En los sistemas de tiempo real no es suficiente que la lógica sea correcta 2. Los programas deben satisfacer además los requisitos temporales Preguntas: 1. Como construir un sistema para que satisfaga los requerimientos temporales? 2. Como verificar que los cumple?. Constructora Integral de Colima

32 Introducción Existen dos caminos para abordar este tema: 1. Métodos de análisis de planificabilidad Estudio de la factibilidad de planificar la carga de trabajo requerida sobre los recursos disponibles, de modo que se cumplan los requisitos temporales 2. Técnicas de descripción formal Uso de notaciones y marcos de razonamiento formales para representar y analizar los requisitos temporales

33 Planificadores Cíclicos Vamos a estudiar como planificar un sistema de tiempo real con el objeto de garantizar las restricciones temporales Lo normal es realizar el estudio situándonos en el peor caso (WCET) Análisis sistemas secuenciales Análisis sistemas concurrentes

34 Planificadores Cíclicos Ejemplo Control por computador de temperatura, nivel y ph de un depósito Actuador es Interfaz Sensore s

35 Planificadores Cíclicos Ejemplo Control por computador de temperatura, nivel y ph de un depósito Control_Temp Actuadores Control_Nivel I nterfaz Sensores Control_pH Visualizacion Tarea: Control de temperatura (Control_Temp) Cada 5 segundos Leer_Sensor_Temp(Val_Temp) Calcular_Acción(Ref,Val_Temp,Acc_Temp, ) Aplicar_Acción(Acc_Temp) Antes de 2 segundos Memori a E/S

36 Planificadores Cíclicos Ejemplo Control por computador de temperatura, nivel y ph de un depósito --Variables globales RegNivel, RegTemp, RegpH : Regulador; Nivel, Temp, ph : Float; Val_Salida, Val_Comp_Temp, Val_Comp_pH : Float; procedure Control_Nivel is begin Nivel := Leer_Sensor(Sensor); Calcular(Regniv, Nivel, Val_Salida); Enviar_Accion(Actuador, Val_Salida); end Control_Nivel; Tarea: Control de temperatura (Control_Temp) Cada 5 segundos Leer_Sensor_Temp(Val_Temp) Calcular_Acción(Ref,Val_Temp,Acc_Temp, ) Aplicar_Acción(Acc_Temp) Antes de 2 segundos

37 Planificadores Cíclicos procedure Controlar is begin -- inicialización variables, reguladores, dispositivos T := clock; loop Control_Nivel; Control_Temp ; Control_pH; T:= T + Period ; t delay until T; end loop; end Controlar; Temp_Control ph_control Level_Control

38 Planificadores Cíclicos Ciclo principal = 10 ms; secundario = 5 ms loop Control_Temp ; if ((Cnt mod 2) = 0) then Control_Nivel; Control_pH; end if ; Cnt := Cnt + 1 ; T := T + Period ; delay until T ; end loop; Temp_Control t ph_control Level_Control 45

39 Planificadores Cíclicos Caracterización Un actividad de tiempo real se caracteriza por una serie de parámetros temporales que determinan sus restricciones temporales de ejecución Pi = (Ci, Ti, Di, Ii) Ci Tarea i t Di Ii Ti

40 Planificadores Planificación de Sistemas de Tiempo Real Un planificador proporciona un algoritmo o política de gestión de procesos. Un conjunto de procesos es factible de ejecutar si existe un planificador que cumpla las restricciones o precondiciones. En sistemas de tiempo real crítico, la precondición son los plazos límites Un planificador es óptimo si es capaz de producir una planificación factible para todos los procesos. Es óptimo si puede planificar todos los conjuntos de procesos que cualquier otro puede. Se utilizan de algoritmos ad-hoc, estáticos y dinámicos.

41 Planificadores Cada Actividad ti puede verse como una tupla (Ci,Ti,Di,Ii) Ci es su tiempo de cómputo de peor caso Ti es el periodo de la tarea Di es su plazo máximo de ejecución Ii es el defase inicial Si todas las tareas t1..tn son periódicas, se puede confeccionar un plan de ejecución fijo que se repite cada ciclo principal TM La duración del ciclo principal es la del hiperperiodo H=mcm(Ti), i=1..n El ciclo principal se divide en ciclos secundarios, cada uno de duración TS tal que TM = kts En cada ciclo secundario se ejecutan las actividades correspondientes a determinadas tareas

42 Planificadores Ejemplo 1 t1: C1 = 4 ms; T1 = 20 ms; D1 = 20 ms t2: C2 = 5 ms; T2 = 40 ms; D2 = 40 ms Elegimos TM = mcm(20,40) = 40 ms TS = 20 ms TM TS TM TS TS TS t1 t

43 Planificadores Cíclicos Diseño del plan cíclico El diseño del plan consiste en determinar sus parámetros: Duración del ciclo principal Tp Duración del ciclo secundario Ts Ordenación de las tareas Debe tener en cuenta las restricciones temporales impuestas por el conjunto de tareas La duración del ciclo principal es igual al hiperperiodo Hay que elegir un ciclo secundario adecuado Por ejemplo, TS no puede ser menor que el tiempo de cómputo de ninguna tarea

44 Planificadores Cíclicos 3.- Debe haber un TS completo entre el instante de activación y el plazo de cualquier tarea Ti Di = Ti Ts Ts Ts Ti 1 Ts Ts

45 Planificadores Cíclicos No hay concurrencia en la ejecución Los procedimiento pueden compartir datos sin temor a posibles errores, ya que la exclusión mutua esta garantizada por la construcción Los periodos deben ser armónicos, esto puede implicar utilizar periodos más cortos de lo necesario No hace falta análisis del comportamiento temporal Problemas: Tareas esporádicas Construir el plan cíclico Poco flexible y difícil de mantener

46 Clasificación de Planificadores Sist. TR Cíclicos Cíclicos Prioridades Estáticas Rate Monotonic RM Deadline Monotonic DM Dinámicas Earliest Deadline First EDF Least Laxity First LLF

47 Planificadores Planificadores Estáticos La planificación estática requiere una asignación a priori de la importancia (prioridad) de las tareas. Existe un planificador (basado en prioridades) que se encarga de ejecutar en cada instante de tiempo aquella tarea con la mayor importancia (prioridad) Las tareas pueden ser expulsadas cuando una tarea de mayor prioridad pasa a un estado de preparada

48 Planificadores Planificadores Estáticos Preparado Nuevo T1 Ejecución Terminado 5 Espera Di Ci T T T T T1 T2 T3 T

49 Planificadores Planificadores Dinámicos La planificación dinámica no requiere una asignación a priori de la importancia de las tareas. El criterio de selección de la tarea es dinámico. Por ejemplo: aquella tarea con plazo más corto (earliest deadline first EDF-) Existe un planificador que se encarga de ejecutar en cada instante de tiempo aquella tarea que cumpla mejor el criterio (urgencia) Las tareas pueden ser expulsadas cuando una tarea de mayor urgencia pasa a un estado de preparada

50 Planificadores Planificadores Dinámicos Preparado Ejecución Nuevo T1 Terminado Espera Di Ci T T T T T1 T2 T3 T

51 Planificadores Estátic a T1 Di Ci T T T T T1 T2 T3 T Dinámic a T1 T2 T3 T

52 Planificadores Análisis de Planificabilidad Lyu & Layland Pi = (Ci, Ti, Di, Ii) K-1 K... La k-ésima activación de la tarea i se produce a partir del instante: Ii + (k-1)ti y tiene que finalizar antes de Ii + (k-1)ti + Di Ci Tarea i Di El peor caso se produce para t=0 con Ii=0. Se denomina Instante crítico. Ii Ti t

53 Planificadores Asignación de prioridades Pueden existir múltiples asignaciones de prioridades a tareas que permitan cumplir las restricciones de tiempo. Cuando el número de tareas es reducido el tiempo necesario para la determinación no será grande. En cualquier caso, se trata de un problema NP-Completo Existe una forma fácil (lógica) de asignar prioridades para la cual hay desarrollada una teoría que permite determinar analíticamente si el sistema será planificable o no. Teoría monotónico en frecuencia (RM) La prioridad se asigna en función del periodo A menor periodo -> mayor prioridad (mayor prioridad el más frecuente) Ui i Factor de utilización de la CPU de una Tarea Ci Ti

54 Planificadores Análisis de planificabilidad: Test de factores de utilización Test de planificabilidad basado en la utilización (Liu & Layland, 73): Un conjunto de n tareas es planificable si se cumple: 1 Para n tareas: Cn C1 C U ( n) = n (2 n 1) T1 T2 Tn Esta expresión establece un límite de utilización de la n CPU U(n) Es una condición suficiente pero no necesaria 1 1,00 2 0,82 1 0,9 0,8 3 0,77 0,7 0,6 4 0,75 0,5 0,4 5 0,74 0,3 0,2 0, ,69

55 Planificadores Análisis de planificabilidad: Test de factores de utilización Ejemplo 1 C1 = 2 C2 = 4 C3 =10 T1 = 10 U1 = 0.2 T2 = 15 U2 = T3 = 35 U3 = U1 + U2 + U3 = Uso total 75.3 % < U(3) = 77.9 % 24.7 % de la CPU se puede utilizar para cálculos sin req. temporales a más baja prioridad.

56 Planificadores Análisis de planificabilidad: Test de factores de utilización Ejemplo 2 C1 C2 C3 C4 =2 =4 =5 =6 U1 + T1 = 10 U1 = 0.2 T2 = 15 U2 = T3 = 25 U3 = 0.2 T4 = 35 U4 = 0.17 U2 + U3 + U4 = Uso total 83,7 % > U(4) = 75.6 % No cumple Pero el sistema es planificable

57 Planificadores Análisis de planificabilidad: Test de factores de utilización La prueba del test de finalización es condición suficiente, pero no necesaria No se puede generalizar a modelos de tareas más complejos No da una estimación de cuándo termina

58 Planificadores Análisis de planificabilidad: Test de Tiempo de Finalización Teorema: Un conjunto de n tareas será planificable bajo cualquier asignación, si y sólo si: Si una tarea cumple su primer plazo de ejecución en el peor caso. El tiempo de finalización de peor caso de cada tarea ocurre cuando todas las tareas de prioridad superior se inician a la vez que ésta.

59 Planificadores Análisis de planificabilidad: Test de Tiempo de Finalización Se trata de calcular en qué instante de tiempo termina la ejecución de una tarea ti. Este tiempo viene determinado por: 1. Su tiempo de ejecución Ci 2. Para cada tarea tj de mayor prioridad que la ti, la suma de todas las interferencias que se producen Función techo Wi I i = C j Tj 6 I 21 = 3 = 3 10 j T1 T2 6

60 Planificadores Análisis de planificabilidad: Test de Tiempo de Finalización Se trata de calcular en qué instante de tiempo termina la ejecución de una tarea ti. Este tiempo viene determinado por: 1. Su tiempo de ejecución Ci 2. Para cada tarea tj de mayor prioridad que la ti, la suma de todas las interferencias que se producen En general, el conjunto de tareas con mayor prioridad a una dada i, es hp(i). Por lo tanto la interferencia que sufrirá una tarea i vendrá determinada por: Wi Ii = C j j hp ( i ) T j

61 Planificadores Análisis de planificabilidad: Test de Tiempo de Finalización El tiempo de finalización de una tarea ti, será: Wi Wi = Ci + C j j hp ( i ) T j Esta ecuación se puede calcular de una forma iterativa. Wi 0 = Ci n W Wi n +1 = Ci + i C j j hp ( i ) T j Condición de terminación: Wi n +1 = Wi n n +1 Wi Condición de no cumplimiento: Ti

62 Planificadores Análisis de planificabilidad: Test de Tiempo de Finalización Un conjunto de n tareas será planificable si y sólo si: 1 i n, W =C W W = C + C T W W = C + C T 0 i 1 i 2 i W T i i 0 i i i j hp ( i ) j hp ( i ) j j 1 i j... k k +1 = Wi Wi Solución iterativa j i

63 Planificadores Wi Wi = Ci + C j j hp ( i ) T j Análisis de planificabilidad: Ci TestT1deDi Tiempo de 0 T = C1 = 3 W 1 Finalización T T T W = C + 0 = 3 T = 10 T1 T2 T3 T

64 Planificadores Análisis de planificabilidad: TestT1deDi Tiempo de Ci T Finalización T T3 18 T Wi Wi = Ci + C j j hp ( i ) T j W 0 2 =C2 =3 0 3 W 2 = + = 3 + W 2 C 2 j {1} 10 3 = 6 T j W 2 = + = = 6 W 2 C 2 10 j {1} T j 2 W =W 2 = 6 T 2 = 15 T1 T2 T3 T

65 Planificadores Análisis de planificabilidad: Ci TestT1deDi Tiempo de T Finalización T T T W =C 3 3 =2 Wi Wi = Ci + C j j hp ( i ) T j W 3 = + = 2 + W 3 C 3 j = 8 {1, 2} T j W 3 = = 8 W 3 = C 3 + j {1, 2} T j W =W = 8 T 3 = 18 T1 T2 T3 T

66 Planificadores Análisis de planificabilidad: Ci TestT1deDi Tiempo de W T Finalización T W T T T1 T2 T3 T Wi Wi = Ci + C j j hp ( i ) T j 0 4 =C 4 = W 4 = + = =13 C 4 j {1, 2, 3} T j W 4 = + = =16 W 4 C 4 j {1, 2, 3} T j W 4 = + = =19 W 4 C 4 j {1, 2,3} T j W 4 = = 21 W 4 = C 4 + j {1, 2, 3} T j W 4 = + = = 24 W 4 C 4 j {1, 2, 3} T j W = = 24 W 4 = C 4 + j {1, 2, 3} T j W =W 4 = 24 T 4 = 24

67 Planificadores Análisis de Planificabilidad Lyu & Layland Determinación off-line de si el sistema va a cumplir las restricciones temporales Supuestos iniciales 1. Tareas son periodicas, no se autosuspenden, plazos de entrega igual al periodo con plazos arbitrarios 2. Pueden ser expulsadas, cambio de contexto is despreciable 3. Tareas son independientes. El peor caso es conocido (WCET).

68 Planificadores Asignación de prioridades Cuando se tienen plazos arbitrarios (Di <=Ti) hay una forma óptima asignar prioridades: Monotónico con el plazo. Asigna prioridades inversamente proporcionales al plazo de finalización. Se puede emplear el test de los plazos de finalización para garantizar la planificabilidad. El RM se convierte en un caso especial del DM (en el que los plazos son iguales al periodo). El RM es óptimo entre los planificadores estáticos. Deadline Monotonic (DM) Si un conjunto de tareas con prioridades asignadas según el DM no es planificable, entonces ninguna otra forma de asignar prioridades lo hará planificable DM RM

69 Planificadores Análisis de Planificación Cuando existen plazos menores que el periodo. Asignación de prioridades por orden creciente de plazo. Prioridad más alta al menor plazo. Los tiempos de finalización se calculan de la misma forma, pero la condición de planificación considera el plazo en vez del periodo. Wi 0 = Ci n W Wi n +1 = Ci + i C j j hp ( i ) T j Condición de terminación: W n +1 = W n i i Condición de cumplimiento: Wi n +1 Di

70 Planificadores Resumen 1. Se parte de un conjunto de tareas periódicas en el que: las aperiódicas críticas => periódicas Las aperiódicas no críticas => agrupan en servidores aperiódicos 2. Se asignan prioridades a las tareas según distintos criterios Importancia semántica Monotónico con el plazo (periodo) 3. Se asignan prioridades a los recursos compartidos (techo de prioridad) 4. Se determina la planificabilidad del sistema 1. Mediante el test de utilización (sólo en el caso de plazos = periodos y asignación monotónica) Si el2. sistema no es se puede incrementar los periodos y Mediante elplanificable test de finalización que el periodo de una tarea está dentro de un rango.

71 Planificadores Análisis de Planificabilidad Lyu & Layland Determinación off-line de si el sistema va a cumplir las restricciones temporales Supuestos iniciales 1. Tareas son periodicas, no se autosuspenden, plazos de entrega igual al periodo con plazos arbitrarios 2. Pueden ser expulsadas, cambio de contexto is despreciable 3. Tareas son independientes. El peor caso es conocido (WCET).

72 Planificadores Análisis de Planificabilidad Lyu & Layland Determinación off-line de si el sistema va a cumplir las restricciones temporales Supuestos iniciales 1. Tareas son periodicas, no se autosuspenden, plazos de entrega igual al periodo con plazos arbitrarios 2. Pueden ser expulsadas, cambio de contexto is despreciable 3. Tareas son independientes. El peor caso es conocido (WCET).

73 Modelo de Diseño Formal Requerimientos del Sistema Especificación Diseño Técnica global Implementación

74 Modelo de Diseño Formal Requisitos del Sistema Especificación global Especificación Implementación Basado en componentes

75 Modelo de Diseño Formal

76 Modelo de Diseño Formal

77 Modelo de Diseño Formal Los componentes se definen como elementos con atributos, comportamientos y estados, a disposición del usuario para especificar y diseñar un sistema. En términos generales, representan lugares de cómputo. + -

78 Modelo de Diseño Formal Componentes Requisitos básicos: Describir el diseño empleando las técnicas de desarrollo para sistemas orientado a objetos. Representar aspectos de la solución del problema relacionado con la estructura y funcionalidad del diseño. Soportar los aspectos de reusabilidad del software. Permitir definir soluciones a los problemas de restricciones temporales y estar bien definidos en el dominio de los sistemas de control en tiempo real. Soportar un estilo arquitectónico para el diseño de aplicaciones

79 Modelo de Diseño Formal Componentes Nombre: NOMBRE DEL COMPONENTE Interfaz Ofrecida: Requerimientos: Servicios que ofrece Servicios requeridos Parámetros de configuración: Parámetros necesarios de configuración y/o atributos del componente Servicios ofrecidos: Lista de servicios o posibilidades ofrecidas por el componente Descripción NOMBRE Servicios Ofrecidos Servicios Requeridos Configuración

80 Caracterización de Componentes Actividades Periódica Barrera Mecanismos de coordinación Sincronización Comunicación Entrada/Salida Específicos Código Genéricos Señal Periódica con plazo de Almacén entrega limitado Cerrojo Interrupción frecuencia fija Pizarra Periódica con Pasivo simple Pulso Interrupción intervalo computación opcionaltemporal Selección temporizada Buzón Lector/Escritor Evento Convertidor muestreo Periódica con cambio de Selección múltiple Multiemisión Protegido genérico modo Cita Convertidor interrupción Secuencia Dato compartido Aperiódica Transportador Servidora

81 Modelo de Diseño Formal

82 HLTPN Definición: HLTPN es una tupla (P,T,pre, post), donde: P: Lugares T: Transiciones pre P T post T P Características:

83 Análisis y Verificación Formal Tareas periódicas

84 Análisis y Verificación Formal

85 Análisis y Verificación Formal Tareas periódicas con computación opcional

86 Análisis y Verificación Formal Planificador Expulsivo Basado en Prioridades (POSIX)

87 Análisis y Verificación Formal

88 Análisis y Verificación Formal

89 Análisis y Verificación Formal

90 Análisis y Verificación Formal

91 Análisis y Verificación Formal T 1_1 tr1 _ 1 T 1_2 T 1_4 T 11 tr1 _ 2 tr1 _ 3 T 1 _ 3 tr1 _ 4 T 1_5 e rw C 1 tr1 _ 5 T 1_6 R W C 1 tr1 _ 6 T 1_7 E x itr W C 1 T 1_8 e v a l1 _ T 1 tr1 _ 8 e v a l2 _ T 1 st1 _ 3 T I1 tr1 _ 9 T 1_10 S e n te n c e s1 tr1 _ 1 0 T 1_11 E x its e n t1 T F1 st1 _ 2 T A 1 rc 1 C R W 1 E xc 1 lc 1 T 1_9 st1 _ 1 SC 1 w C 1 tr1 _ 7 S_T 1 se n t1 tr1 _ 1 1 T 1_12 T 1_13 tr1 _ 1 2 T 12 T 2_1 tr2 _ 1 T 2_2 T 2 _ 4 tr2 _ 3 T 2 _ 3 T 21 tr2 _ 4 c a llf1 O P R W 1 E m p ty O PR W 1 FO PR W 1 2 tr2 _ 2 T 2_5 tr2 _ 5 SC H C sc h 1 nf O PR W 1 C tfo PR W 1 T 2_6 SC H A sc h 3 SC H O R D sc h 2 sc h 4 e v a l2 _ T 2 st2 _ 1 sc h 7 E P O P R W 1e _ P O P R W 1 T F2 st2 _ 2 n o n _ a ssig n tr2 _ 9 S e n te n c e s2 T 2_10 se n t2 tr2 _ 1 0 E x its e n t2 T 2_11 st2 _ 3 T I2 SC H B tr2 _ 1 1 T 2_12 T A 2 T 2_13 PR O C E x itpo PR W 1 e B 1 C te rb 1 W B 1 tr2 _ 1 2 fu llb 1 T 22 =0B 1 PA B 1 E x itb 1 C tb 1 e v a l1 _ T 3 lb 1 T 3_1 e v a l2 _ T 3 tr3 _ 1 T 3_2 T 3 _ 4 tr3 _ 3 T 31 tr3 _ 4 tr3 _ 2 T 3_3 T 3_5 tr3 _ 5 T 3_6 S_T 3 tr3 _ 6 T 3_7 tr3 _ 7 T 3_8 st3 _ 1 st3 _ 3 T I3 tr3 _ 8 T F3 st3 _ 2 T 3_9 tr3 _ 9 T 3_10 T A 3 tr3 _ 1 0 T 3_11 tr3 _ 1 1 T 3_12 T 3_13 T 32 tr3 _ 1 2 R eco PR W 1 W a ito PR W 1 tr2 _ 8 T 2_9 sc h 5 P80 B u f O P R W s1e l O P R W 1 T 2_8 S_T 2 sc h 6 SC H F E ndfo P1 E xecfo PR W 1 R eqo PR W 1 tr2 _ 7 SC H D SC H E E x itfo PR W 1 T 2_7 e v a l1_ T 2 c a llf 2 O PR W 1 E F O P R W 1e _ F O P R W 1 tr2 _ 6 S e n te n c e s3 T L 1 e L 1 T W L 1 E x itl 1 e v a ll 1 Sta te L 1 L L 1 a rriv a ll 1 Se n t3 E x itse n t3 C a llpo PR W 1 3 PO PR W 1 E xecpo PR W 1 endpo PR W 1

92 Análisis y Verificación Formal

93 Análisis y Verificación Formal

94

T5-multithreading. Indice

T5-multithreading. Indice T5-multithreading 1.1 Indice Proceso vs. Flujos Librerías de flujos Comunicación mediante memoria compartida Condición de carrera Sección Crítica Acceso en exclusión mutua Problemas Abrazos mortales 1.2

Más detalles

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

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

Más detalles

UPM Gestión del tiempo real

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

Más detalles

Sistemas Operativos Práctica 3

Sistemas Operativos Práctica 3 Sistemas Operativos Práctica 3 Ing. Andrés Bustamante afbustamanteg@unal.edu.co Ingeniería de Sistemas Facultad de Ingeniería Universidad de la Amazonia 2009 1. Objetivo El objetivo de la práctica es que

Más detalles

ANX-PR/CL/ GUÍA DE APRENDIZAJE. ASIGNATURA Concurrencia. CURSO ACADÉMICO - SEMESTRE Segundo semestre

ANX-PR/CL/ GUÍA DE APRENDIZAJE. ASIGNATURA Concurrencia. CURSO ACADÉMICO - SEMESTRE Segundo semestre ANX-PR/CL/001-02 GUÍA DE APRENDIZAJE ASIGNATURA Concurrencia CURSO ACADÉMICO - SEMESTRE 2015-16 - Segundo semestre GA_10II_105000018_2S_2015-16 Datos Descriptivos Nombre de la Asignatura Titulación Centro

Más detalles

Sistemas Operativos. Dr. Luis Gerardo de la Fraga. Departamento de Computación Cinvestav

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,

Más detalles

2.2 Nombres, Ligado y Ámbito

2.2 Nombres, Ligado y Ámbito 2.2 Nombres, Ligado y Ámbito Ligado estático y dinámico, reglas de ámbito y prueba de tipos. Conceptos Nombres e Identificadores Variables Tipos Ámbito Constantes Nombres Identificador que designa en el

Más detalles

Sistemas Operativos I. Tema 3. Procesos. Equipo de Sistemas Operativos DISCA / DSIC UPV

Sistemas Operativos I. Tema 3. Procesos. Equipo de Sistemas Operativos DISCA / DSIC UPV Sistemas Operativos I Tema 3 Procesos Equipo de Sistemas Operativos DISCA / DSIC UPV Introducción Existen varias razones para permitir la ejecución concurrente de procesos: Compartir recursos físicos Compartir

Más detalles

Programación concurrente

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

Más detalles

Procesos e Hilos en C

Procesos e Hilos en C Procesos e Hilos en C 6 de febrero de 2012 En esta sesión vamos a escribir programas en lenguaje C que utilicen hilos y procesos para comparar el rendimiento del sistema ante la gestión de unos y otros.

Más detalles

M. C. Felipe Santiago Espinosa

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

Más detalles

RELOJES DE TIEMPO REAL ÍNDICE

RELOJES DE TIEMPO REAL ÍNDICE de Real de Real Conceptos Conceptos Teóricos Teóricos del del Real Denso Real Denso Discreto Discreto en Pulsos en Pulsos Ideales Ideales Propiedades Propiedades Métricas Métricas de de Sistemas Sistemas

Más detalles

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1 Prologo Agradecimientos Nota de los autores Índice general I III V VII 1 Problemas, algoritmos y programas 1 1.1 Programas y la actividad de la programación.................... 4 1.2 Lenguajes y modelos

Más detalles

Tema 5: Introducción a los Sistemas en Tiempo Real

Tema 5: Introducción a los Sistemas en Tiempo Real Tema 5: Introducción a los Sistemas en Tiempo Real INDICE: Introducción al Tiempo Real: Conceptos Básicos Secuenciamiento de tareas Soporte para Sistemas en Tiempo Real 1 Introducción al Tiempo Real Definiciones:

Más detalles

Sistemas operativos. Hasta ahora hemos visto. Relación programa-sistema operativo Gestión de memoria

Sistemas operativos. Hasta ahora hemos visto. Relación programa-sistema operativo Gestión de memoria Sistemas operativos UPCO ICAI Departamento de Electrónica y Automática 1 Hasta ahora hemos visto Relación programa-sistema operativo Gestión de memoria Reserva para la ejecución Pilas, heap, memoria de

Más detalles

Tema 4 El paradigma cliente-servidor

Tema 4 El paradigma cliente-servidor Tema 4 El paradigma cliente-servidor F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García Sistemas Distribuidos Grado en Ingeniería Informática Universidad Carlos III de

Más detalles

UNIVERSIDAD NACIONAL FEDERICO VILLARREAL FACULTAD DE INGENIERÍA ELECTRÓNICA E INFORMÁTICA SÍLABO

UNIVERSIDAD NACIONAL FEDERICO VILLARREAL FACULTAD DE INGENIERÍA ELECTRÓNICA E INFORMÁTICA SÍLABO SÍLABO ASIGNATURA: SISTEMAS OPERATIVOS CODIGO: 8E0003 I. DATOS GENERALES: 1.1 Departamento Académico : Ingeniería Electrónica e Informática 1.2 Escuela Profesional : Ingeniería Informática 1.3 Ciclo de

Más detalles

Mercedes Granda Departamento de Electrónica y Computadores. Las propiedades de las redes de Petri nos permiten

Mercedes Granda Departamento de Electrónica y Computadores. Las propiedades de las redes de Petri nos permiten 22//22 REDES DE PETRI: PROPIEDADES Y MÉTODOS DE ANÁLISIS PROGRAMACIÓN CONCURRENTE MASTER EN COMPUTACIÓN DEPARTAMENTO DE ELECTRÓNICA Y COMPUTADORES UNIVERSIDAD DE CANTABRIA CURSO 22/3 REDES DE PETRI: PROPIEDADES

Más detalles

Universidad Centroccidental Lisandro Alvarado. Decanato de Ciencias y Tecnología Departamento de Sistemas

Universidad Centroccidental Lisandro Alvarado. Decanato de Ciencias y Tecnología Departamento de Sistemas Universidad Centroccidental Lisandro Alvarado Decanato de Ciencias y Tecnología Departamento de Sistemas PROGRAMA INSTRUCCIONAL PROGRAMA: ANALISIS DE SISTEMAS DEPARTAMENTO: SISTEMAS ASIGNATURA: INTRODUCCIÓN

Más detalles

Algoritmos y programas. Algoritmos y Estructuras de Datos I

Algoritmos y programas. Algoritmos y Estructuras de Datos I Algoritmos y programas Algoritmos y Estructuras de Datos I Primer cuatrimestre de 2012 Departamento de Computación - FCEyN - UBA Programación funcional - clase 1 Funciones Simples - Recursión - Tipos de

Más detalles

Sistemas Distribuidos. Soporte de Sistemas Operativos

Sistemas Distribuidos. Soporte de Sistemas Operativos Soporte de Sistemas Operativos Soporte de Sistemas Operativos Soporte de Sistemas Operativos Soporte de Sistemas Operativos Tareas principales de un SO: Administrar recursos Proveer abstracciones de los

Más detalles

Herramientas Informáticas I Software: Sistemas Operativos

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

Más detalles

Informática Electrónica Manejadores de Dispositivos (Device Drivers)

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

Más detalles

Breve introducción a la Investigación de Operaciones

Breve introducción a la Investigación de Operaciones Breve introducción a la Investigación de Operaciones Un poco de Historia Se inicia desde la revolución industrial, usualmente se dice que fue a partir de la segunda Guerra Mundial. La investigación de

Más detalles

Fundamentos de programación

Fundamentos de programación Fundamentos de programación Estructuras de Control Estructuras de control Estructuras de control Estructura secuencial Estructura alternativa Sentencias if, if else Sentencias if else anidadas El operador

Más detalles

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas 2 - Introducción al lenguaje Java, identificadores y comentarios. Carlos Montenegro Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas 1. Introducción: Java tiene como todos

Más detalles

Introducción a los Sistemas Operativos

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

Más detalles

Test : Conteste exclusivamente en una HOJA DE LECTURA ÓPTICA, no olvidando marcar que su tipo de examen es A.

Test : Conteste exclusivamente en una HOJA DE LECTURA ÓPTICA, no olvidando marcar que su tipo de examen es A. SISTEMAS INFORMÁTICOS I Junio 2003 INGENIERÍA EN INFORMÁTICA - Código Carrera 55 - Código Asignatura 077 Tipo de Examen: A NO SE PERMITE EL USO DE NINGÚN MATERIAL Tiempo: 2 horas Apellidos: Nombre: DNI:

Más detalles

SISTEMAS OPERATIVOS Arquitectura de computadores

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

Más detalles

Ingeniería de Software II. SETEPROS Plan de pruebas. Versión 1.0

Ingeniería de Software II. SETEPROS Plan de pruebas. Versión 1.0 Ingeniería de Software II SETEPROS Versión 1.0 Historial de revisiones Date Version Description Author 1.0 Primera versión Marcos Duque Oviedo Ingeniería de Software II, 2010 Página 2 de 11 Tabla de contenidos

Más detalles

Seminario de Programación en Ada

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

Más detalles

1. INTRODUCCIÓN 1.1. Qué es un sistema operativo? 1.1.1. El sistema operativo como máquina extendida 1.1.2. El sistema operativo como gestor de

1. INTRODUCCIÓN 1.1. Qué es un sistema operativo? 1.1.1. El sistema operativo como máquina extendida 1.1.2. El sistema operativo como gestor de 1. INTRODUCCIÓN 1.1. Qué es un sistema operativo? 1.1.1. El sistema operativo como máquina extendida 1.1.2. El sistema operativo como gestor de recursos 1.2. Historia de los sistemas operativos /* solo

Más detalles

Cristian Blanco

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

Más detalles

PR1: Programación I 6 Fb Sistemas Lógicos 6 Obligatoria IC: Introducción a los computadores 6 Fb Administración de

PR1: Programación I 6 Fb Sistemas Lógicos 6 Obligatoria IC: Introducción a los computadores 6 Fb Administración de CUADRO DE ADAPTACIÓN INGENIERÍA INFORMÁTICA - Campus Río Ebro Código Asignaturas aprobadas Créditos Carácter Asignaturas/Materias reconocida Créditos Carácter 12007 Cálculo 7,5 MAT1; Matemáticas I 12009

Más detalles

Análisis y Diseño de Sistemas en Tiempo Real

Análisis y Diseño de Sistemas en Tiempo Real Programa de la Asignatura: Análisis y Diseño de Sistemas en Tiempo Real Código: 766 Carrera: Ingeniería en Computación Plan: 2008 Carácter: Obligatoria Unidad Académica: Secretaría Académica Curso: Cuarto

Más detalles

Parte I: Elementos del lenguaje Ada

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

Más detalles

JAVA 7 Los fundamentos del lenguaje Java

JAVA 7 Los fundamentos del lenguaje Java Presentación 1. Historia 9 1.1 Por qué Java? 9 1.2 Objetivos del diseño de Java 10 1.3 Auge de Java 11 2. Características de Java 12 2.1 El lenguaje de programación Java 12 2.1.1 Sencillo 13 2.1.2 Orientado

Más detalles

Proceso Unificado (Iterativo e incremental)

Proceso Unificado (Iterativo e incremental) Proceso Unificado (Iterativo e incremental) Proceso Unificado de Desarrollo de Software, I. Jacobson, J. Rumbaugh y G. Booch, Addison-Wesley, 1999 Fases y Flujos de trabajo de los ciclos de vida. Disciplinas

Más detalles

Introducción al Lenguaje de Programación C

Introducción al Lenguaje de Programación C Introducción al Lenguaje de Programación C Andrés Arcia Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes Lenguaje de Programación C Fue diseñado

Más detalles

ALGORITMOS, ESTRUCTURAS Y PROGRAMACION

ALGORITMOS, ESTRUCTURAS Y PROGRAMACION VICERRECTORADO ACADÉMICO DIRECCIÓN DE GESTIÓN, DESARROLLO E INNOVACIÓN CURRICULAR FACULTAD: INGENIERIA ESCUELAS: COMPUTACION - SISTEMA UNIDAD CURRICULAR: ALGORITMOS, ESTRUCTURAS Y PROGRAMACION FECHA DE

Más detalles

Threads, SMP y Microkernels. Proceso

Threads, SMP y Microkernels. Proceso Threads, SMP y Microkernels Proceso Propiedad de los recursos a un proceso se le asigna un espacio de dirección virtual para guardar su imagen Calendarización/ejecución sigue una ruta de ejecución la cual

Más detalles

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 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

Más detalles

Principios de Computadoras II

Principios de Computadoras II Departamento de Ingeniería Electrónica y Computadoras Ing. Ricardo Coppo rcoppo@uns.edu.ar Qué es un Objeto? Un objeto es una instancia de una clase Las clases actuán como modelos que permiten la creación

Más detalles

PROGRAMACION CONCURRENTE Y DISTRIBUIDA

PROGRAMACION CONCURRENTE Y DISTRIBUIDA PROGRAMACION CONCURRENTE Y DISTRIBUIDA V.2 Redes de Petri: Análisis y validación. J.M. Drake 1 Capacidad de modelado y capacidad de análisis El éxito de un método de modelado es consecuencia de su capacidad

Más detalles

TIPOS DE DATOS BASICOS EN LENGUAJE C

TIPOS DE DATOS BASICOS EN LENGUAJE C TIPOS DE DATOS BASICOS EN LENGUAJE C TIPO char int float double void ANCHO EN BIT 64 0 TIPOS DE DATOS RANGO EN PC -12 a 127 3.4E-3 a 3.4E+3 1.7E-30 a 1.7E+30 sin valores TIPO ANCHO EN BIT RANGO EN PC char

Más detalles

Tema 2 Conceptos básicos de programación. Fundamentos de Informática

Tema 2 Conceptos básicos de programación. Fundamentos de Informática Tema 2 Conceptos básicos de programación Fundamentos de Informática Índice Metodología de la programación Programación estructurada 2 Pasos a seguir para el desarrollo de un programa (fases): Análisis

Más detalles

Nombre de la asignatura : Sistemas de Computación Código : Nivel (semestre de la carrera) : 7 : Ingeniería Civil Informática Nº de créditos : 4

Nombre de la asignatura : Sistemas de Computación Código : Nivel (semestre de la carrera) : 7 : Ingeniería Civil Informática Nº de créditos : 4 I IDENTIFICACION Nombre de la asignatura : Sistemas de Computación Código : 503429 Nivel (semestre de la carrera) : 7 Carrera : Ingeniería Civil Informática Nº de créditos : 4 Duración : Un semestre Pre-requisitos

Más detalles

Introducción al lenguaje C

Introducción al lenguaje C Programación 2 Profesorado de Informática CeRP del Suroeste, Uruguay 29 de marzo de 2016 Estructuras de control IV Iteración Sentencia for: for (inicio; condicion; paso) cuerpo for (int i = 0; i < 10;

Más detalles

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo Algoritmos En general, no hay una definición formal de algoritmo. Muchos autores los señalan como listas de instrucciones para resolver un problema abstracto, es decir, que un número finito de pasos convierten

Más detalles

Contenido. 1. El proceso 2. Los modelos 3. Los diagramas 4. Ejemplo

Contenido. 1. El proceso 2. Los modelos 3. Los diagramas 4. Ejemplo Tutorial Contenido 1. El proceso 2. Los modelos 3. Los diagramas 4. Ejemplo 1. El proceso Fases soportadas por UML Análisis de requisitos de usuario Análisis de requisitos de software Diseño de la plataforma

Más detalles

SO2 - Sistemas Operativos II

SO2 - Sistemas Operativos II Unidad responsable: 270 - FIB - Facultad de Informática de Barcelona Unidad que imparte: 701 - AC - Departamento de Arquitectura de Computadores Curso: Titulación: 2016 GRADO EN INGENIERÍA INFORMÁTICA

Más detalles

Maestría en Ingeniería Énfasis en Sistemas y Computación

Maestría en Ingeniería Énfasis en Sistemas y Computación Maestría en Ingeniería Énfasis en Sistemas y Computación Facultad de Ingeniería Pontificia Universidad Javeriana Cali Abril de 2008 Contenido 1 Objetivos 2 3 4 Objetivos (1) Formar investigadores con habilidades

Más detalles

Estimación para Proyectos Software

Estimación para Proyectos Software Nilda M. Pérez Otero Sistemas de Información II Cursada 2011 Facultad de Ingeniería - UNJu Fuentes: Ingeniería del Software. Un Enfoque Práctico 6ta. Ed. - Roger S. Pressmann - Capítulo 23 Visión general

Más detalles

PRÁCTICA DE LABORATORIO 4 Programación Orientada a Objetos

PRÁCTICA DE LABORATORIO 4 Programación Orientada a Objetos ESCUELA DE INGENIERÍA DE SISTEMAS DEPARTAMENTO DE COMPUTACIÓN PROGRAMACIÓN 2 PRÁCTICA DE LABORATORIO 4 Programación Orientada a Objetos Contenido Introducción...1 Objeto...2 Atributo...2 Métodos...2 Clase...3

Más detalles

Operadores de comparación

Operadores de comparación Operadores de comparación Los operadores de comparación en C son: Igual (==) Distinto (!=) Mayor (>) y Mayor o igual (>=) Menor (

Más detalles

Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera. Fundamentos de programación

Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera. Fundamentos de programación 1 Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera Fundamentos de programación Agenda Caracteres y Cadenas Conversión de Datos Introducción a las funciones y procedimientos

Más detalles

La eficiencia de los programas

La eficiencia de los programas La eficiencia de los programas Jordi Linares Pellicer EPSA-DSIC Índice General 1 Introducción... 2 2 El coste temporal y espacial de los programas... 2 2.1 El coste temporal medido en función de tiempos

Más detalles

SOLUCIONES. SISTEMAS OPERATIVOS Examen de la convocatoria extraordinaria de diciembre 2 de diciembre de 2010

SOLUCIONES. SISTEMAS OPERATIVOS Examen de la convocatoria extraordinaria de diciembre 2 de diciembre de 2010 Calificación SISTEMAS OPERATIVOS Examen de la convocatoria extraordinaria de diciembre 2 de diciembre de 2010 Nombre SOLUCIONES 1 2 3 4 5 Titulación Dispone de tres horas y quince minutos para realizar

Más detalles

Universidad Central Del Este U C E Facultad de Ciencias y Humanidades Escuela de Pedagogía Mención Informática.

Universidad Central Del Este U C E Facultad de Ciencias y Humanidades Escuela de Pedagogía Mención Informática. Universidad Central Del Este U C E Facultad de Ciencias y Humanidades Escuela de Pedagogía Mención Informática. Programa de la asignatura: SIS-305 SISTEMA OPERATIVO II Total de Créditos: 3 Teórico: 2 Práctico:

Más detalles

DISEÑO CURRICULAR ELECTRÓNICA DIGITAL

DISEÑO CURRICULAR ELECTRÓNICA DIGITAL DISEÑO CURRICULAR ELECTRÓNICA DIGITAL FACULTAD (ES) CARRERA (S) Ingeniería Computación y Sistemas. CÓDIGO HORAS TEÓRICAS HORAS PRÁCTICAS UNIDADES DE CRÉDITO SEMESTRE 116243 02 02 03 VI PRE-REQUISITO ELABORADO

Más detalles

Diseño arquitectónico 1ª edición (2002)

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

Más detalles

Apuntadores (Punteros)

Apuntadores (Punteros) Apuntadores (Punteros) x9ff10 X int 209 SESION 7 *ptr Definición Llamados también punteros. Un Apuntador es una variable que contiene una dirección de memoria, la cual corresponderá a un dato o a una variable

Más detalles

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C Algoritmo y Estructura de Datos Ing. M. Laura López 1 Estructura de un programa en C 2 Estructura de un programa en C #include Archivos de cabecera # define Definición de constantes Declaraciones Globales

Más detalles

INGENIERÍA DEL SOFTWARE I Práctica 5 Modelado de Diseño

INGENIERÍA DEL SOFTWARE I Práctica 5 Modelado de Diseño INGENIERÍA DEL SOFTWARE I Práctica 5 Modelado de Diseño Univ. Cantabria Fac. de Ciencias Patricia López Introducción al Diseño Modelamos la estructura software del sistema (incluida la arquitectura) para

Más detalles

Elementos de un programa en C

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

Más detalles

Guía rápida para gestionar el puerto paralelo del PC

Guía rápida para gestionar el puerto paralelo del PC Guía rápida para gestionar el puerto paralelo del PC Descarga desde: http://eii.unex.es/profesores/jisuarez/descargas/ip/guia_rapida_pp.pdf José Ignacio Suárez Marcelo Universidad de Extremadura Escuela

Más detalles

Usando el Sistema Operativo

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ás detalles

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

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

Más detalles

Guía práctica de estudio 05: Diagramas de flujo

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

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez Elementos de lenguaje: Identificadores Tipos de datos 2 Tipos de datos primitivos 3 Tipos de datos referenciados Clases Interfaces Arrays

Más detalles

OPERADORES Y EXPRESIONES

OPERADORES Y EXPRESIONES OPERADORES Y EXPRESIONES Una expresión es una combinación de variables, literales y operadores, que representan un valor Operadores aritméticos Operador Función + suma - resta * producto / división % operador

Más detalles

Tema 2. El lenguaje JAVA

Tema 2. El lenguaje JAVA Tema 2. El lenguaje JAVA Nomenclatura habitual Variables Tipos de variables Tipos primitivos Referencias Arrays Operadores Operadores de Java Precedencia de operadores Sentencias de control Sentencias

Más detalles

AUTOMATIZACIÓN INDUSTRIAL

AUTOMATIZACIÓN INDUSTRIAL Departamento de Ingenieria de Sistemas y Automática AUTOMATIZACIÓN INDUSTRIAL 1 AUTOMATIZACION INDUSTRIAL 2 AUTOMATIZACION INDUSTRIAL 3 AUTOMATAS PROGRAMABLES Surgen de la necesidad de controlar automáticamente

Más detalles

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

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

Más detalles

Unidad I Introducción a la programación de Sistemas. M.C. Juan Carlos Olivares Rojas

Unidad I Introducción a la programación de Sistemas. M.C. Juan Carlos Olivares Rojas Unidad I Introducción a la programación de Sistemas M.C. Juan Carlos Olivares Rojas Agenda 1.1 Qué es y que estudia la programación de sistemas? 1.2 Herramientas desarrolladas con la teoría de programación

Más detalles

El Proceso. Capítulo 2 Roger Pressman, 5 a Edición. El Proceso de Desarrollo de Software

El Proceso. Capítulo 2 Roger Pressman, 5 a Edición. El Proceso de Desarrollo de Software El Proceso Capítulo 2 Roger Pressman, 5 a Edición El Proceso de Desarrollo de Software Qué es? Marco de trabajo de tareas a realizar para desarrollar Software de alta calidad. Es sinónimo de Ingeniería

Más detalles

Examen escrito de Programación 1. Jueves 5 de febrero de Problema 1 o (3.5 puntos)

Examen escrito de Programación 1. Jueves 5 de febrero de Problema 1 o (3.5 puntos) Examen escrito de Programación 1. Jueves 5 de febrero de 2015 Se debe disponer de un documento de identificación con fotografía sobre la mesa. Se debe comenzar a resolver cada uno de los dos problemas

Más detalles

TÉCNICO SUPERIOR UNIVERSITARIO EN MECATRÓNICA ÁREA AUTOMATIZACIÓN EN COMPETENCIAS PROFESIONALES ASIGNATURA DE LENGUAJE DE PROGRAMACIÓN

TÉCNICO SUPERIOR UNIVERSITARIO EN MECATRÓNICA ÁREA AUTOMATIZACIÓN EN COMPETENCIAS PROFESIONALES ASIGNATURA DE LENGUAJE DE PROGRAMACIÓN TÉCNICO SUPERIOR UNIVERSITARIO EN MECATRÓNICA ÁREA AUTOMATIZACIÓN EN COMPETENCIAS PROFESIONALES ASIGNATURA DE LENGUAJE DE PROGRAMACIÓN 1. Competencias Implementar sistemas de medición y control bajo los

Más detalles

1. Computadores y programación

1. Computadores y programación 1. Computadores y programación Informática y computadora (RAE) Informática (Ciencia de la computación) Conjunto de conocimientos científicos y técnicos que hacen posible el tratamiento automático de la

Más detalles

GRADO EN INGENIERÍA INFORMÁTICA

GRADO EN INGENIERÍA INFORMÁTICA Facultad de Informática Universidad Complutense de Madrid GRADO EN INGENIERÍA INFORMÁTICA El Grado en Ingeniería Informática incluye dos itinerarios. Itinerario de computación Itinerario de tecnología

Más detalles

Laboratorio de Arquitectura de Redes. Punteros en lenguaje C

Laboratorio de Arquitectura de Redes. Punteros en lenguaje C Laboratorio de Arquitectura de Redes Punteros en lenguaje C Punteros en lenguaje C Definición Declaración e inicialización de punteros Operadores de punteros: «*» y «&» Operaciones con punteros Operaciones

Más detalles

PROGRAMA DE ESTUDIOS SIMULTÁNEOS DE GRADO EN MATEMÁTICAS Y GRADO EN INGENIERÍA INFORMÁTICA

PROGRAMA DE ESTUDIOS SIMULTÁNEOS DE GRADO EN MATEMÁTICAS Y GRADO EN INGENIERÍA INFORMÁTICA PROGRAMA DE ESTUDIOS SIMULTÁNEOS DE EN MATEMÁTICAS Y EN INGENIERÍA INFORMÁTICA EXPOSICION DE MOTIVOS En los últimos años, con la puesta en marcha de los títulos de Grado dentro del plan del Espacio Europeo

Más detalles

Complejidad de los Algoritmos

Complejidad de los Algoritmos Que es un Algoritmo? Complejidad de los Algoritmos Webster: cualquier método especial para resolver cierta clase de problemas. Horowitz: método preciso utilizable en una computadora para la solución de

Más detalles

- Bajo que condiciones el algoritmo de planifiación de procesos FIFO (FCFS) resultaría en el tiempo de respuesta promedio más pequeño?

- Bajo que condiciones el algoritmo de planifiación de procesos FIFO (FCFS) resultaría en el tiempo de respuesta promedio más pequeño? Sistemas Operativos. Grado Ingeniería Informática. TGR-2.1 Procesos. Noviembre 2014 Problemas para hacer en clase FIFO cpu C A 1. Dos procesos A y B tienen una ráfaga de CPU de 50 ms y un proceso C tiene

Más detalles

Ingeniería del Software Ingeniería del Software de Gestión. Tema 3 Metodologías de Desarrollo de Software

Ingeniería del Software Ingeniería del Software de Gestión. Tema 3 Metodologías de Desarrollo de Software Ingeniería del Software Ingeniería del Software de Gestión Tema 3 Metodologías de Desarrollo de Software Félix Óscar García Rubio Crescencio Bravo Santos Índice 1. Definiciones 2. Objetivos 3. Conceptos

Más detalles

Notas técnicas de JAVA Nro. 5 Tip en detalle

Notas técnicas de JAVA Nro. 5 Tip en detalle Tema: Notas técnicas de JAVA Nro. 5 Tip en detalle (Lo nuevo, lo escondido, o simplemente lo de siempre pero bien explicado) Organización de memoria en JAVA Vs. Modelo Tradicional Descripción: Nivel: Java,

Más detalles

1 (2 5 puntos) Responda con brevedad y precisión a las siguientes preguntas:

1 (2 5 puntos) Responda con brevedad y precisión a las siguientes preguntas: Universidad de Las Palmas de Gran Canaria Escuela Universitaria de Informática Facultad de Informática Sistemas Operativos Examen parcial, 11 de mayo de 2002 SOLUCIONES Calificación 1 2 3 4 5 1 (2 5 puntos)

Más detalles

TÉCNICO SUPERIOR UNIVERSITARIO EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS.

TÉCNICO SUPERIOR UNIVERSITARIO EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS. TÉCNICO SUPERIOR UNIVERSITARIO EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS. HOJA DE ASIGNATURA CON DESGLOSE DE UNIDADES TEMÁTICAS 1. Nombre de la asignatura Ingeniería de

Más detalles

Aprendizaje Automatizado

Aprendizaje Automatizado Aprendizaje Automatizado Aprendizaje Automatizado Programas que mejoran su comportamiento con la experiencia. Dos formas de adquirir experiencia: A partir de ejemplos suministrados por un usuario (un conjunto

Más detalles

Interfaces. Carrera: SCF Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos.

Interfaces. Carrera: SCF Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos. 1.- DATOS DE LA ASIGNATURA Nombre de la asignatura: Carrera: Clave de la asignatura: Horas teoría-horas práctica-créditos Interfaces Ingeniería en Sistemas Computacionales SCF - 0417 2-4-8 2.- HISTORIA

Más detalles

Requerimientos de Software

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

Más detalles

1. Asignar Responsabilidades a componentes de software es la habilidad más importante del AOO. Porque:

1. Asignar Responsabilidades a componentes de software es la habilidad más importante del AOO. Porque: Análisis y Diseño O.O. Preguntas del diseño : Cómo podrían asignarse responsabilidades a las clases de los objetos? Cómo podrían interactuar los objetos? Qué deberían hacer las clases? Patrones : Ciertas

Más detalles

Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso º Grado en Informática

Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso º Grado en Informática Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso 2013-2014. 1º Grado en Informática Práctica 1: Punteros Objetivos Se hará hincapié en la aritmética de punteros

Más detalles

SILABO DE SISTEMAS OPERATIVOS

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 :

Más detalles

Programación estructurada (Introducción a lenguaje C)

Programación estructurada (Introducción a lenguaje C) Programación estructurada (Introducción a lenguaje C) M. en C. Sergio Luis Pérez Pérez UAM CUAJIMALPA, MÉXICO, D. F. Trimestre 15-I Sergio Luis Pérez (UAM CUAJIMALPA) Curso de programación estructurada

Más detalles

Inteligencia en Redes de Comunicaciones - 08 Agentes

Inteligencia en Redes de Comunicaciones - 08 Agentes El objetivo del Tema 8 es presentar los conceptos de Agentes : definiciones, propiedades, aplicaciones y detalles de su arquitectura. 1 Índice de los contenidos del tema. 2 El concepto de agente es un

Más detalles

Tema 2 Introducción a la Programación en C.

Tema 2 Introducción a la Programación en C. Tema 2 Introducción a la Programación en C. Contenidos 1. Conceptos Básicos 1.1 Definiciones. 1.2 El Proceso de Desarrollo de Software. 2. Lenguajes de Programación. 2.1 Definición y Tipos de Lenguajes

Más detalles

ORGANISMO COORDINADOR DEL SISTEMA ELÉCTRICO NACIONAL INTERCONECTADO DE LA REPÚBLICA DOMINICANA

ORGANISMO COORDINADOR DEL SISTEMA ELÉCTRICO NACIONAL INTERCONECTADO DE LA REPÚBLICA DOMINICANA ORGANISMO COORDINADOR DEL SISTEMA ELÉCTRICO NACIONAL INTERCONECTADO DE LA REPÚBLICA DOMINICANA OC-GC-14-REQPATE-2016-V0 PARA: ORGANISMO COORDINADOR PREPARADO POR: GERENCIA COMERCIAL V0 PREPARADO POR REVISADO

Más detalles

2007/ PROGRAMACIÓN. Tipo: TRO Curso: 1 Semestre: AB CREDITOS Totales TA TS AT AP PA OBJETIVOS. 1.-Introducción.

2007/ PROGRAMACIÓN. Tipo: TRO Curso: 1 Semestre: AB CREDITOS Totales TA TS AT AP PA OBJETIVOS. 1.-Introducción. 2007/2008 Tipo: TRO Curso: 1 Semestre: AB CREDITOS Totales TA TS AT AP PA OBJETIVOS 1.-Introducción. -Comprender cómo funciona un lenguaje de programación 2. Características del lenguaje C -Entender las

Más detalles

Pontificia Universidad Católica del Ecuador

Pontificia Universidad Católica del Ecuador 1. DATOS INFORMATIVOS: FACULTAD DE INGENIERÍA ESCUELA DE SISTEMAS MATERIA O MÓDULO: Sistemas Operativos CÓDIGO: IS603.a CARRERA: INGENIERÍA DE SISTEMAS NIVEL: TERCERO No. CRÉDITOS: 4 CRÉDITOS TEORÍA: 4

Más detalles