UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN FACULTAD DE INGENIERIA E.A.P. INGENIARIA EN INFORAMTICA Y SISTEMAS MONITORES: "PROBLEMA DE SANTA CLAUS

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

Download "UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN FACULTAD DE INGENIERIA E.A.P. INGENIARIA EN INFORAMTICA Y SISTEMAS MONITORES: "PROBLEMA DE SANTA CLAUS"

Transcripción

1 UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN FACULTAD DE INGENIERIA E.A.P. INGENIARIA EN INFORAMTICA Y SISTEMAS MONITORES: "PROBLEMA DE SANTA CLAUS PRESENTADO POR: Uriel Jonatan Villaca Paco CODIGO DIRIGIDO A DOCENTE/ CURSO: Ing. Ana Cori Moron Algoritmos paralelos TACNA- PERU

2 INTRODUCCIÓN Cuando estamos enfrente de algún caso de concurrencia entre procesos es necesario conocer las diversas soluciones y alternativas para controlar la exclusión mutua y sincronización entre dos o más procesos. Entre las cuales están dos herramientas para controlar el acceso a la sección crítica: semáforos y monitores. Los semáforos nos ofrecen un control del acceso a la sección crítica interna de los procesos, mientras que los monitores controlan el acceso mediante procesos externos. Para aprender mejor el uso de semáforos y monitores es necesario conocer también los problemas clásicos de concurrencia. Los problemas clásicos de concurrencia son solucionados de diversas maneras y nos dan idea de como aplicar los monitores y semáforos correctamente y cuáles pueden ser nuestros errores al encontrarnos con problemas similares. El Problema de Santa Claus es un problema clásico de concurrencia, donde se tiene como objetivo obtener la sincronización y exclusión mutua entre procesos. Este problema nos da una idea de cómo analizar en busca de una solución cuando se tiene problemas de este tipo, además si tuviéramos un caso similar en la vida real (posiblemente en un caso laboral) podríamos aplicar una solución adecuada. 2

3 EL PROBLEMA DE SANTA CLAUS 1. DEFINICIÓN: 1.1. Definición de Semáforos La idea de un semáforo para el control del tráfico de coches se puede emplear sin grandes modificaciones para el control de acceso a datos. Un semáforo es una estructura particular que contiene un valor mayor o igual a cera y que maneja una cola de procesos esperando por unas condiciones particulares en el propio semáforo. Aunque parezcan sencillos, los semáforos son muy potentes, lo que incrementa consecuentemente las complicaciones. Empecemos (como siempre) dejando fuera el control de errores: lo meteremos en nuestro código cuando encaremos un programa más complejo. Los semáforos pueden utilizarse para controlar el acceso a recursos: el valor del semáforo representa el número de procesos que pueden acceder al recurso; cada vez que un proceso accede al recurso el valor del semáforo debe ser decrementado e incrementado de nuevo cuando el recurso sea liberado. Si el recurso es exclusivo (sólo un proceso puede acceder) el valor inicial del semáforo será 1. 3

4 OperaciónWait (P): Si el valor del semáforo no es nulo, esta operación decrementa en uno el valor del semáforo. En el caso de que su valor sea nulo, la operación suspende el proceso que lo ejecuta y lo ubica en la lista del semáforo a la espera de que deje de ser nulo el valor. Operación Signal (V): Incrementa el valor del semáforo, y en caso de que haya procesos en la lista de espera del semáforo, se activa uno de ellos para que concluya su operación Wait Definición de monitores En la programación paralela, los monitores son objetos destinados a ser usados sin peligro por más de un hilo de ejecución. La característica que principalmente los define es que sus métodos son ejecutados con exclusión mutua. Lo que significa, que en cada momento en el tiempo, un hilo como máximo puede estar ejecutando cualquiera de sus métodos. Esta exclusión mutua simplifica el razonamiento de implementar monitores en lugar de código a ser ejecutado en paralelo. 4

5 En el estudio y uso de los semáforos se puede ver que las llamadas a las funciones necesarias para utilizarlos quedan repartidas en el código del programa, haciendo difícil corregir errores y asegurar el buen funcionamiento de los algoritmos. Para evitar estos inconvenientes se desarrollaron los monitores. El concepto de monitor fue definido por primera vez por Charles Antony Richard Hoare en un artículo del año La estructura de los monitores se ha implementado en varios lenguajes de programación. Un monitor tiene 4 componentes: -Un conjunto de variables locales que podemos denominar permanentes. Dichas variables se utilizan para almacenar el estado interno del recurso. -Un código de inicialización que se ejecuta antes de la primera instrucción ejecutable del programa, inicia las variables. -Un conjunto de procedimientos internos que manipulan las variables permanentes. -Una declaración de los procedimientos que son exportados y por lo tanto pueden ser accedidos por los procesos activos que accedan al monitor. 5

6 1.3. El problema de Santa Claus Santa Claus pasa su tiempo de descanso, durmiendo, en su casa del Polo Norte. Para poder despertarlo, se ha de cumplir una de las dos condiciones siguientes: 1. Que todos los renos de los que dispone, siete en total, hayan vuelto de vacaciones. 2. Que algunos de sus duendes necesiten su ayuda para fabricar un juguete. Para permitir que Santa Claus pueda descansar, los duendes han acordado despertarle si tres de ellos tienen problemas a la hora de fabricar un juguete (figura 1). En el caso de que un grupo de tres duendes están siendo ayudados por Santa, el resto de los duendes con problemas tendrán que esperar a que Santa termine de ayudar al primer grupo. En caso de que haya duendes esperando y todos los renos hayan vuelto de vacaciones, entonces Santa Claus decidirá preparar el trineo y repartir los 6

7 regalos (figura2), ya que su entrega es más importante que la fabricación de otros juguetes que podría esperar al año siguiente. El último reno en llegar ha de despertar a Santa mientras el resto de renos esperan antes de ser enganchados al trineo. Figura 1: Duendes despiertan a Santa para que los ayude. Figura 2: Santa se va a repartir regalos Solución con Semáforos Para solucionar este problema, se pueden distinguir tres procesos básicos: i) Santa Claus, ii) duende y iii) reno. Respecto a los recursos compartidos, es necesario controlar el número de duendes que, en un determinado momento, necesitan la ayuda de Santa y el número de renos que, en un determinado momento, están disponibles. 7

8 Evidentemente, el acceso concurrente a estas variables ha de estar controlado por un semáforo binario. Respecto a los eventos de sincronización, será necesario disponer de mecanismos para despertar a Santa Claus, notificar a los renos que se han de enganchar al trineo y controlar la espera por parte de los duendes cuando otro grupo de duendes esté siendo ayudado por Santa Claus. En resumen, se utilizarán las siguientes estructuras para plantear la solución del problema: Duendes: Variable compartida que contiene el número de duendes que necesitan la ayuda de Santa en un determinado instante de tiempo. Renos: Variable compartida que contiene el número de renos que han vuelto de vacaciones y están disponibles para viajar. Mutex: Semáforo binario que controla el acceso a Duendes y Renos. 8

9 SantaSem: Semáforo binario utilizado para despertar a Santa Claus. RenosSem: Semáforo contador utilizado para notificar a los renos que van a emprender el viaje en trineo. DuendesSem: Semáforo contador utilizado para notificar a los duendes que Santa los va a ayudar. Proceso Santa Claus: Santa está durmiendo a la espera de que lo despierten. Si lo despiertan, será porque los duendes necesitan su ayuda o porque todos los renos han vuelto de vacaciones. Por lo tanto, Santa tendrá que comprobar cuál de las dos condiciones se ha cumplido. Si todos los renos están disponibles, entonces Santa preparara el trineo y notificará a todos los renos. Si hay suficientes duendes para que sean ayudados, entonces Santa los ayudará, notificando esa ayuda de manera explícita mediante el semáforo DuendesSem. Proceso Reno: 9

10 El proceso reno es bastante sencillo, ya que simplemente ha de despertar a Santa cuando todos los renos están disponibles y, a continuación, esperar la notificación de Santa. Una vez más, el acceso a la variable compartida renos se controla mediante el semáforo binario mutex. Proceso Duende: Finalmente, en el proceso duende se ha de controlar la formación de grupos de duendes de tres componentes antes de despertar a Santa. Si se ha alcanzado el número mínimo para poder despertar a Santa, entonces se le despierta mediante signal sobre el semáforo SantaSem. Si no es así, es decir, si otro duende necesita ayuda pero no se ha llegado al número mínimo de duendes para despertar a Santa, entonces el semáforo DuendesMutex se libera. El duende invocará a obtener Ayuda y esperará a que Santa notifique dicha ayuda mediante DuendesSem. Note cómo después de solicitar ayuda, el duende queda a la espera de la notificación de Santa. 10

11 2. OBJETIVOS Solucionar la exclusión mutua y condición de sincronización en el problema de Santa Claus con semáforos y monitores. Aprender más acerca de los monitores. 3. ALGORITMO DE SANTA CLAUS APLICANDO SEMÁFOROS 3.1. El presente algoritmo da solución al problema de Santa Claus. 1. INICIO 2. Declarar constante TotalRenos=7 3. Declarar constante NumDuendesGrupo=3 4. Declarar variables renos y duendes como entero 5. Declarar variables SantaSem, DuendesSem, RenosSem y mutex como semáforos 6. Crear proceso SantaClaus 6.1. Inicio proceso Repetir Esperar(SantaSem) Esperar(mutex) Si renos es igual a TotalRenos entonces Inicio de condición si Señal(RenosSem) Mostrar Santa salio a repartir regalos Señal(mutex) Fin de condición si Caso contrario hacer 11

12 Inicio de caso contrario Si Duendes es igual a NumDuendesGrupo entonces Inicio de condición si Mostrar Santa ayuda a los Duendes señal(duendessem) Señal(mutex) Fin de condición si Fin de caso contrario Por siempre 6.2. Fin de proceso 7. Crear proceso Reno 7.1. Inicio proceso Repetir Esperar(mutex) Si renos es igual a TotalRenos-1 entonces Inicio de condición si Aumentar el valor de renos en señal(santasem); Mostrar reno 7 llegó de vacaciones y despertó a Santa Señal(mutex) esperar(renossem) asignar a renos el valor de Fin de condición si Caso contrario hacer Inicio de caso contrario Aumentar el valor de renos en Mostrar mensaje: Reno llego de vacaciones Señal(mutex) Fin de caso contrario Por siempre 12

13 7.2. Fin de proceso 8. Crear proceso Duende 8.1. Inicio proceso Repetir Esperar(mutex) Si duendes es igual a NumDuendesGrupo- 1 entonces Inicio de condición si Aumentar el valor de duendes en Mostrar el mensaje: tres duendes despiertan a santa solo a pedir ayuda Señal (SantaSem) Señal(mutex) Esperar(DuendesSem) asignar a duendes el valor de Fin de condición si Caso contrario hacer Inicio de caso contrario Aumentar el valor de duendes en Señal(mutex) Fin de caso contrario Por siempre 9. Fin de proceso 10. INICIO DE PROGRAMA PRINCIPAL 10.1.Asignar a duendes el valor de Asignar a renos el valor de Inicializar semáforo mutex en Inicializar semáforo SantaSem en Inicializar semáforo RenosSem en Inicializar semáforo DuendesSem en INICIO DE PROCESOS CONCURRENTES Inicializar proceso SantaClaus Inicializar proceso Reno Inicializar proceso Duende 13

14 10.8.FIN DE PROCESOS CONCURRENTES 11. FIN PROGRAMA PRINCIPAL 12. FIN. 14

15 DIAGRAMA DE FLUJO 3.2. Para un mejor entendimiento y seguimiento al problema de Santa Claus se desarrolló un diagrama de Flujo. Figura 3. Diagrama de flujo del programa principal. 15

16 Figura 4. Diagrama de flujo del proceso SantaClaus. 16

17 Figura 5. Diagrama de flujo del proceso Reno. 17

18 Figura 6. Diagrama de flujo del proceso Duende. 18

19 4. SEUDOCÓDIGO DEL PROBLEMA DE SANTA CLAUS APLICANDO SEMAFOROS 4.1. Especificacion de los procesos del problema de Santa Claus en pseudocódigo: Proceso SantaClaus repetir 1. wait(santasem) 2. wait(mutex) 3. si (renos=totalrenos) entonces signal(renossem) santa salio a repartir regalos signal(mutex) end 4. Caso Contrario si duendes = NumDuendesGrupo) entonces Santa ayuda a los Duendes signal(duendessem) signal(mutex) end end Por siempre end 19

20 Proceso Reno; repetir 1. wait(mutex) 2. si (renos=totalrenos-1) entonces renos:=renos+1 signal(santasem) Último reno llegó de vacaciones y despertó a santa... signal(mutex) wait(renossem) renos:=0 end 3. else renos:=renos+1 un reno llegó de vacaciones signal(mutex) end por siempre Proceso Duende; repetir 1. wait(mutex) 2. si duendes = (NumDuendesGrupo-1) entonces duendes:=duendes+1 tres duendes despiertan a santa solo a pedir ayuda signal(santasem) signal(mutex) wait(duendessem) duendes:=0 end 20

21 3.caso contrario duendes:=duendes+1 signal(mutex) por siempre Las variables duendes y renos comienzan en 0. El semaforo mutex inicializa en uno. los semaforos SantaSem, DuendesSem y RenosSem inicializan en CÓDIGO FUENTE 5.1. Código Fuente con semáforos: program SantaClaussem; const TotalRenos=7;NumDuendesGrupo=3; var SantaSem,DuendesSem,RenosSem,mutex:semaphore; renos,duendes:integer; process SantaClaus; repeat wait(santasem); wait(mutex); if (renos=totalrenos) then signal(renossem); writeln('santa salio a repartir regalos'); writeln(' '); signal(mutex); end else 21

22 forever if (duendes = NumDuendesGrupo) then writeln(' Santa ayuda a los Duendes...'); signal(duendessem); signal(mutex); end process Reno; repeat wait(mutex); if (renos=totalrenos-1) then renos:=renos+1; signal(santasem); writeln('reno ',renos,' llegó de vacaciones y despertó a santa...'); signal(mutex); wait(renossem); renos:=0; end else renos:=renos+1; writeln('reno ',renos,' llegó de vacaciones'); signal(mutex); forever 22

23 process Duende; repeat wait(mutex); if ((duendes = NumDuendesGrupo-1)) then duendes:=duendes+1; writeln(' tres duendes despiertan a santa solo a pedir ayuda'); signal(santasem); signal(mutex); wait(duendessem); duendes:=0; end else duendes:=duendes+1; signal(mutex); forever duendes:=0; renos:=0; initial(mutex,1); initial(santasem,0); initial(renossem,0); initial(duendessem,0); co SantaClaus; Reno; Duende; co end. 23

24 5.2. RESULTADOS AL EJECUTAR EL CÓDIGO FUENTE. Figura 3. Resultados obtenidos al ejecutar el código del problema de Santa Claus con semáforos. El resultado muestra que a inicializar la ejecución santa se encuentra dormido y no realiza ninguna acción. Al mismo tiempo que santa duerme los renos van llegando de uno en uno 24

25 hasta que llega el séptimo reno y despierta a santa para que salga a repartir los regalos, también los duendes trabajan concurrentemente y cuando tres duendes se les presenta problemas, solo en ese caso despiertan a santa un instante para que los ayude a solucionar su problema y santa sigue durmiendo hasta que otro evento lo despierte. Esta iteraccion se repite muchas veces para ver que no hay interbloqueos entre procesos lo cual se comprueba en la ejecución del código fuente. 6. ALGORITMO DEL PROBLEMA DE SANTA CLAUS APLICANDO MONITORES 1. INICIO 2. Crear monitor santaclaus 2.1. Exportar procedimiento santaclaus, renos, duendes 2.2. Declarar constante TotalRenos igual a Declarar constante NumDuendesGrupo igual a Declarar variables numduende y numrenos como enteros 2.5. Declarar variables santa, renos y duendes como condición 2.6. Crear procedimiento santaclaus 2.7. Inicio procedimiento Si numrenos es igual a TotalRenos entonces Inicio de condición si Retrasar(santa) Santa Claus salió a repartir regalos Retardar(santa) Asignar a numduende el valor de Asignar a numrenos el valor de Reanudar(renos) Fin de condición si Caso contrario hacer Inicio de caso contrario 25

26 Si numduendes es igual a NumDuendesGrupo entonces Inicio de condición si Duendes despiertan a Santa para pedir ayuda Asignar a numduende el valor de Reanudar(duendes) Fin de condición si Fin de caso contrario Fin de condición 2.8. Fin de proceso 2.9. Crear procedimiento Reno 2.10.Inicio procedimiento Aumentar el valor de numrenos en Si numrenos dividido entre TotalRenos da un residuo 0 entonces Inicio de condición si Último reno llega de vacaciones y despierta a Santa Retardar(renos) Reanudar(santa) Fin de condición si Caso contrario hacer Inicio caso contrario Un reno llega de vacaciones Fin caso contrario 2.11.Fin de procedimiento 2.12.Crear procedimiento duende 2.13.Inicio procedimiento Aumentar el valor de numduende en Si numduende dividido entre NumDuendesGrupo da un residuo 0 entonces Inicio de condición si Reanudar(santa) Fin de condición si 2.14.Fin de procedimiento 2.15.INICIO DE VARIABLES DE MONITOR Asignar a numrenos el valor de 0 26

27 Asignar a numduendes el valor de FIN DE INICIALIZACION DE VARIABLES DE MONITOR 3. Crear proceso COsanta 4. Inicio de proceso 4.1. Repetir Invocar el procedimiento santaclaus del monitor santaclausm 4.2. Por siempre 5. Fin de proceso 6. Crear proceso COreno 7. Inicio de proceso 7.1. Repetir Invocar el procedimiento reno del monitor santaclausm 7.2. Por siempre 8. Fin de proceso 9. Crear proceso COduende 10. Inicio de proceso 10.1.Repetir Invocar el procedimiento duende del monitor santaclausm 10.2.Por siempre 11. INICIO DE PROGRAMA PRINCIPAL 11.1.INICIO DE PROCESOS CONCURRENTES Inicializar proceso COsanta Inicializar proceso COreno Inicializar proceso COduende 11.2.FIN DE PROCESOS CONCURRENTES 12. FIN DE PROGRAMA PRINCIPAL 13. FIN 27

28 7. SEUDOCÓDIGO DEL PROBLEMA DE SANTA CLAUS CON MONITORES Monitor santaclausm; const TotalRenos=7; const NumDuendesGrupo=3; var numduende,numrenos,i:integer; santa,renos,duendes:condition; export santaclaus,reno,duende; procedimiento santaclaus; si (numrenos=totalrenos) entonces delay(santa); Santa va a repartir regalos numduende:=0; numrenos:=0; resume(renos); end caso contrario si (numduende=numduendesgrupo) entonces Duendes despiertan a santa para que les ayude con los regalos numduende:=0; resume(duendes); end procedimiento reno; 28

29 numrenos:=numrenos+1; {todos los renos listos?} Si ((numrenos mod TotalRenos)=0) entonces llega el ultimo reno y despierta a Santa delay(renos); resume(santa); end caso contrario renos llegando de vacaciones procedimiento duende; numduende:=numduende+1; si ((numduende mod NumDuendesGrupo)=0) entonces resume(santa); numrenos:=0; numduende:=0; Para utilizar este monitor, los 3 procesos activos deberán invocar a los procedimientos exportados de la siguiente forma: santaclausm.santaclaus; santaclausm.reno; santaclausm.duende; 29

30 8. DIAGRAMA DE FLUJO DEL PROBLEMA DE SANTA CLAUS CON MONITORES 30

31 31

32 32

33 9. CÓDIGO FUENTE CON MONITORES: program santaclauss; monitor santaclausm; export santaclaus,reno,duende; const TotalRenos=7; const NumDuendesGrupo=3; var numduende,numrenos,i:integer; santa,renos,duendes:condition; procedure santaclaus; if (numrenos=totalrenos) then end else delay(santa); {notificar a los renos} writeln('santa salio a repartir regalos'); writeln(' '); {delay(santa);} numduende:=0; numrenos:=0; resume(renos); if (numduende=numduendesgrupo) then {notificar a los duendes} 33

34 ayuda...'); end writeln('duendes despiertan a Santa para pedir numduende:=0; resume(duendes); procedure reno; numrenos:=numrenos+1; {todos los renos listos?} if ((numrenos mod TotalRenos)=0) then writeln('reno ',numrenos,' llega de vacaciones y despierta a Santa Claus...'); {numrenos:=0;} delay(renos); resume(santa); end else writeln('reno ',numrenos,' llega de vacaciones...'); {esperar las notificaciones de Santa} procedure duende; numduende:=numduende+1; 34

35 {esta completo el grupo de duendes?} if ((numduende mod NumDuendesGrupo)=0) then {delay(duendes); numduende:=0;} resume(santa); numrenos:=0; numduende:=0; process COsanta; repeat santaclausm.santaclaus; forever process COreno; repeat santaclausm.reno; forever process COduende; repeat santaclausm.duende; forever 35

36 end. co COsanta; COreno; COduende; co 10. APLICACIÓN REAL En una fábrica de automotriz de gran escala, se produce autos y cada uno de ellos tiene que pasar por 7 procesos, una vez culminado el séptimo proceso el vehículo está listo para salir de la fábrica y ser exportador. Pero algunos de los proceso, los inspectores pueden encontrar algunos defectos que tienen que ser solucionados, como no se puede solucionar un defecto cada vez que aparece, la empresa toma una política de que en cada 3 defectos encontrados se realizaran las correcciones así no afectaran el tiempo de producción. Para encontrar solución a este problema se utilizara la solución aplicada al problema de Santa Claus con las siguientes consideraciones a tomar en cuenta. El procesos auto solo culminara si se han pasado por los siete procesos, las reparaciones en el proceso de producción se solucionaran en cualquier instancia del proceso en que se encuentre el auto. 36

37 El código fuente en Pascal FC es: program ProduccionAutos; monitor santaclausm; export santaclaus,reno,duende; const TotalRenos=7; const NumDuendesGrupo=3; var numduende,numrenos,i:integer; santa,renos,duendes:condition; procedure santaclaus; if (numrenos=totalrenos) then delay(santa); writeln('auto sale para ser exportado'); writeln(' '); numduende:=0; numrenos:=0; resume(renos); end else if (numduende=numduendesgrupo) then writeln('solucionar errores encontrados por inspectores...'); numduende:=0; resume(duendes); end procedure reno; 37

38 numrenos:=numrenos+1; if ((numrenos mod TotalRenos)=0) then writeln('termina proceso ',numrenos,' y esta listo para salir de fábrica...'); delay(renos); resume(santa); end else writeln('termina proceso ',numrenos ); procedure duende; numduende:=numduende+1; if ((numduende mod NumDuendesGrupo)=0) then resume(santa); numrenos:=0; numduende:=0; process COautomovil; repeat santaclausm.santaclaus; forever process COproceso; repeat santaclausm.reno; forever 38

39 process COinspector; repeat santaclausm.duende; forever co COautomovil; COproceso; COinspector; co end Análisis de resultados Captura de pantalla de resultados obtenidos. 39

40 Figura 5. Resultados obtenidos al ejecutar el código fuente. Como se muestra, el auto pasa necesariamente por 7 procesos antes de salir de la fábrica y ser exportado. Y también al momento de hacer las correcciones de los tres errores encontrados por los inspectores se da el cualquier proceso en que se encuentre el vehículo, estos resultados se deben gracias a la sincronización entre los procesos. También se comprueba que estos proceso se pueden ejecutar indeterminadas veces sin dar lugar a un problema de interbloqueo. 40

41 11. CONCLUSIONES Se solucionaron los problemas de exclusión mutua y condición de sincronización correctamente en el problema de Santa Claus con monitores y con semáforos. Un proceso sólo puede acceder a las variables del monitor usando los procedimientos exportados por el monitor. La exclusión mutua en el acceso a los procedimientos del monitor está garantizada por el hecho de que el monitor se construye de tal forma que la ejecución de los procedimientos del mismo monitor no se solapa. Los monitores nos permiten desarrollar de forma casi independiente los distintos procesos 12. BIBLIOGRAFÍA THOMSON; Programación Concurrente/José Tomas Palma Méndez/Mª del Carmen Garrido Carrera/Fernando Sánchez Figueroa/Alexis Quesada Arencibia/ 1ª edición. OPENLIBRA; Programación Concurrente/Josep Jorba Estebe & Roma Suppi Boldrito. 41

42 42

SISTEMAS OPERATIVOS I (Sistemas) / SISTEMAS OPERATIVOS (Gestión) septiembre 2009

SISTEMAS OPERATIVOS I (Sistemas) / SISTEMAS OPERATIVOS (Gestión) septiembre 2009 SISTEMAS OPERATIVOS I (Sistemas) / SISTEMAS OPERATIVOS (Gestión) septiembre 2009 4. (2 p) Dos procesos A y B se ejecutan concurrentemente en un determinado sistema. El proceso A ejecuta unas tareas ( Tareas

Más detalles

PROGRAMACION CONCURRENTE

PROGRAMACION CONCURRENTE PROGRAMACION CONCURRENTE II.3 Sincronización basada en memoria compartida: Semáforos J.M. Drake 1 Procesos concurrentes y memoria compartida. Si los diferentes procesos de un programa concurrente tienen

Más detalles

UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO

UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO LICENCIATURA EN PRODUCCIÓN INDUSTRIAL. UNIDAD DE APRENDIZAJE: PROGRAMACIÓN Créditos institucionales de la UA: 6 Material visual: Diapositivas Unidad de competencia

Más detalles

la solución a una ecuación cuadrática solicitando al usuario los términos de dicha ecuación.

la solución a una ecuación cuadrática solicitando al usuario los términos de dicha ecuación. ALGORITMOS SECUENCIALES: La estructura secuencial es aquella en la que una acción (instrucción) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente

Más detalles

Distinguir las diferentes estructuras de repetición utilizadas en problemas con bucles: mientras, repetir mientras, para.

Distinguir las diferentes estructuras de repetición utilizadas en problemas con bucles: mientras, repetir mientras, para. ESTRUCTURAS ITERATIVAS 1 ESTRUCTURAS ITERATIVAS OBJETIVOS Aprender a resolver problemas mediante la ejecución repetida de una secuencia de proposiciones llamados bucle o estructuras repetitivas o iterativas.

Más detalles

Estructuras de control

Estructuras de control Estructuras de control Introducción Los algoritmos vistos hasta el momento han consistido en simples secuencias de instrucciones; sin embargo, existen tareas más complejas que no pueden ser resueltas empleando

Más detalles

Sistemas Operativos Temas 4, 5 y 6. Jorge García Duque Despacho: B-202 Tutorías: Lunes 16:00-18:00 y Martes 16:00-20:00

Sistemas Operativos Temas 4, 5 y 6. Jorge García Duque Despacho: B-202 Tutorías: Lunes 16:00-18:00 y Martes 16:00-20:00 Sistemas Operativos Temas 4, 5 y 6 Jorge García Duque Despacho: B-202 Tutorías: Lunes 16:00-18:00 y Martes 16:00-20:00 Índice Tema 4: Herramientas de Sincronización de Alto Nivel. Regiones Críticas. Monitores.

Más detalles

Estructuras de Control

Estructuras de Control Algorítmica y Lenguajes de Programación Estructuras de Control Estructuras de Control. Introducción Hasta ahora algoritmos han consistido en simples secuencias de instrucciones Existen tareas más complejas

Más detalles

7. Programación Concurrente

7. Programación Concurrente 7. Programación Concurrente 1. Qué es la programación concurrente? Se conoce por programación concurrente a la rama de la informática que trata de las técnicas de programación que se usan para expresar

Más detalles

Escribir programas a partir de un diagrama de flujo

Escribir programas a partir de un diagrama de flujo Escribir programas a partir de un diagrama de flujo por Iván Cruz En esta lectura se revisará una estrategia específica para lograr implementar un programa computacional a partir de un diagrama de flujo,

Más detalles

CDI Exclusión mutua a nivel alto. conceptos

CDI Exclusión mutua a nivel alto. conceptos conceptos El concepto de usar estructuras de datos a nivel alto libera al programador de los detalles de su implementación. El programador puede asumir que las operaciones están implementadas correctamente

Más detalles

Tema 3: Concurrencia de procesos

Tema 3: Concurrencia de procesos Tema 3: Concurrencia de procesos Yolanda Blanco Fernández yolanda@det.uvigo.es Concurrencia, Tiempo Real y Paralelismo Concurrencia: Convivencia de un conjunto de procesos en un mismo ordenador. Sistemas

Más detalles

Implementación de monitores POSIX

Implementación de monitores POSIX Implementación de monitores POSIX Ampliación de Sistemas Operativos (prácticas) E.U. Informática en Segovia Universidad de Valladolid Programación concurrente: Problemática Presencia de condiciones de

Más detalles

NETBEANS 7.0 ESTRUCTURAS REPETITIVAS

NETBEANS 7.0 ESTRUCTURAS REPETITIVAS Universidad Nacional del Santa FACULTAD DE INGENIERIA EAP DE INGENIERIA DE SISTEMAS E INFORMATICA NETBEANS 70 ESTRUCTURAS REPETITIVAS Las estructuras repetitivas se dividen en 3 estructuras La forma de

Más detalles

Lección 10: Ejemplos de programación con semáforos

Lección 10: Ejemplos de programación con semáforos Lección 10: Ejemplos de programación con semáforos El problema de la cena de los filósofos El problema de los lectores y escritores Ejercicios Gestión de concurrencia mediante paso de testigo (implementación

Más detalles

PROGRAMACIÓN CONCURRENTE. Tema 5 Monitores

PROGRAMACIÓN CONCURRENTE. Tema 5 Monitores PROGRAMACIÓN CONCURRENTE Tema 5 Monitores 1 Indice Definición de los monitores Sincronización condicional usando monitores Algunos problemas con monitores 2 Problemas de las regiones críticas condicionales

Más detalles

Administración de procesos: Ejercicios de sincronización

Administración de procesos: Ejercicios de sincronización Administración de procesos: Ejercicios de sincronización Facultad de Ingeniería, UNAM Instituto de Investigaciones Económicas, UNAM Índice 1 2 3 4 5 6 7 8 En estas láminas presento varios ejercicios de

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

Palabras reservadas de C++ y C. Una palabra reservada no puede declararse como un identificador, esto haría un conflicto entre conectores y funciones.

Palabras reservadas de C++ y C. Una palabra reservada no puede declararse como un identificador, esto haría un conflicto entre conectores y funciones. Palabras reservadas de C++ y C Una palabra reservada no puede declararse como un identificador, esto haría un conflicto entre conectores y funciones. A continuación se muestra el link del listado de palabras

Más detalles

Universidad Autónoma del Estado de México Facultad de Medicina

Universidad Autónoma del Estado de México Facultad de Medicina Universidad Autónoma del Estado de México Facultad de Medicina Licenciatura en Bioingeniería Médica Unidad de Aprendizaje: Algoritmos y programación básica Unidad 3: Estructuras de control de flujo en

Más detalles

ESTRUCTURAS REPETITIVAS EN PHP

ESTRUCTURAS REPETITIVAS EN PHP ESTRUCTURAS REPETITIVAS EN PHP Los bucles nos permiten iterar conjuntos de instrucciones, es decir repetir la ejecución de un conjunto de instrucciones mientras se cumpla una condición. Sentencia while

Más detalles

PROGRAMACION CONCURRENTE Y DISTRIBUIDA. II.5 Sincronización basada en memoria compartida: Monitores

PROGRAMACION CONCURRENTE Y DISTRIBUIDA. II.5 Sincronización basada en memoria compartida: Monitores PROGRAMACION CONCURRENTE Y DISTRIBUIDA II.5 Sincronización basada en memoria compartida: Monitores J.M. Drake 1 Monitor Son módulos que encierran los recursos o variables compartidas como componentes internos

Más detalles

Versatilidad de la estructura de repetición for

Versatilidad de la estructura de repetición for Versatilidad de la estructura de repetición for por Iván Cruz La estructura de repetición for puede emplearse para una infinidad de tareas, una de ellas es poder utilizarla para el ingreso de datos consecutivamente

Más detalles

Concurrencia. Primitivas IPC con bloqueo

Concurrencia. Primitivas IPC con bloqueo Concurrencia Primitivas IPC con bloqueo Primitivas de IPC con bloqueo La solución de Peterson es correcta, pero tiene el defecto de requerir espera ocupada: Cuando un proceso quiere entrar en su región

Más detalles

Sistemas Operativos Tema 11. Interbloqueo José Miguel Santos C. Rubén García - Alexis Quesada

Sistemas Operativos Tema 11. Interbloqueo José Miguel Santos C. Rubén García - Alexis Quesada Sistemas Operativos Tema 11. Interbloqueo 1998-2008 José Miguel Santos C. Rubén García - Alexis Quesada 1 Contenidos Caracterización del interbloqueo Estrategias de tratamiento del interbloqueo Métodos

Más detalles

Participantes: Avila Aida Betancourt Sioly Briceño Susana Rojas Alejandro

Participantes: Avila Aida Betancourt Sioly Briceño Susana Rojas Alejandro Participantes: Avila Aida Betancourt Sioly Briceño Susana Rojas Alejandro Es una instancia de un programa en ejecución (corriendo). A los procesos frecuentemente se les refiere como tareas. El contexto

Más detalles

Control de Flujo. Estructuras de Control! Experiencia Educativa de Algorítmica CONTROL DE FLUJO

Control de Flujo. Estructuras de Control! Experiencia Educativa de Algorítmica CONTROL DE FLUJO Control de Flujo Estructuras de Control Experiencia Educativa de Algorítmica 1 Introducción El estilo de como escribimos y analizamos un algoritmo se convierte en una de las principales características

Más detalles

Toda copia en PAPEL es un "Documento No Controlado" a excepción del original.

Toda copia en PAPEL es un Documento No Controlado a excepción del original. Responsable del Proceso: Docente frente a grupo Fecha de Versión: 8 de Agosto 016 Apartado: 7.1 Copia No. Código: PD-ICA-1031 Versión No.: 03 Hoja : de 1 4.3. Competencias Instrumentales: Capacidad de

Más detalles

TEMA 4. ESTRUCTURAS DE CONTROL

TEMA 4. ESTRUCTURAS DE CONTROL M.P. Sesmero, P. de Toledo, F.J. Ordoñez, J. Gómez-Romero, J.A. Iglesias, J.L. Mira Programación TEMA 4. ESTRUCTURAS DE CONTROL Grado en Ingeniería en Tecnologías Industriales Programación CONTENIDOS 4.1.

Más detalles

FUNDAMENTOS DE INFORMÁTICA

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

Más detalles

Introducción a las sentencias de control

Introducción a las sentencias de control INSTRUCCIONES DE CONTROL CONTENIDOS 1. Introducción a las sentencias de control. 2. Instrucciones o sentencias condicionales: IF, IF-ELSE, SWITCH. 3. Instrucciones o sentencias repetitivas o iterativas:

Más detalles

Tema: Clases y Objetos en C#. Parte II.

Tema: Clases y Objetos en C#. Parte II. Programación II. Guía No. 5 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Clases y Objetos en C#. Parte II. Objetivos Implementar clases, objetos, propiedades, métodos y

Más detalles

INSTITUTO POLITECNICO NACIONAL CENTRO DE ESTUDIOS CIENTIFICOS Y TECNOLOGICOS " GONZALO VAZQUEZ VELA "

INSTITUTO POLITECNICO NACIONAL CENTRO DE ESTUDIOS CIENTIFICOS Y TECNOLOGICOS  GONZALO VAZQUEZ VELA INSTITUTO POLITECNICO NACIONAL CENTRO DE ESTUDIOS CIENTIFICOS Y TECNOLOGICOS " GONZALO VAZQUEZ VELA " GUIA DE ESTUDIOS DE ANALISIS Y DISEÑO DE ALGORITMOS. 1. Qué es un algoritmo? 2. Qué es un Pseudocódigo?

Más detalles

fundamentos de programación (unidad 4) programación estructurada en Java

fundamentos de programación (unidad 4) programación estructurada en Java fundamentos de programación (unidad 4) programación estructurada en Java Para ver una copia completa de la licencia, acudir a la dirección http://creativecommons.org/licenses/by-nc-sa/2.5/es/legalcode.es

Más detalles

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo

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

Más detalles

PROGRAMACIÓN CONCURRENTE

PROGRAMACIÓN CONCURRENTE PROGRAMACIÓN CONCURRENTE Lenguajes de Programación - Progr. Concurrente 1 Introducción El concepto fundamental de la programación concurrente es la noción de Proceso. Proceso: Cálculo secuencial con su

Más detalles

Tema 3. Monitores Programación Concurrente

Tema 3. Monitores Programación Concurrente Tema 3. Monitores Programación Concurrente Depto. de Lenguajes y Sistemas Informáticos Universidad de Granada Contenidos 1. Concepto de Monitor 1.1. Fundamento teórico de los monitores 1.2. Sintaxis de

Más detalles

Arrays unidimensionales. Dim.Option Base. Erase. Ejemplos en Visual Basic (CU00311A)

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

Más detalles

PROBLEMAS CLÁSICOS DE LA COMUNICACIÓN N ENTRE PROCESOS

PROBLEMAS CLÁSICOS DE LA COMUNICACIÓN N ENTRE PROCESOS PROBLEMAS CLÁSICOS DE LA COMUNICACIÓN N ENTRE PROCESOS SISTEMAS OPERATIVOS JOSÉ ALFREDO ESTRADA SOTO Para cada uno de los siguientes tres problemas se requiere escribir un programa que atienda las necesidades

Más detalles

Estructuras Administrativas

Estructuras Administrativas Estructuras Administrativas ESTRUCTURAS ADMINISTRATIVAS 1 Sesión No. 7 Nombre: Diagramas de Flujo Objetivo: El estudiante desarrollará la propuesta de un diagrama de flujo para la especificación de la

Más detalles

Concurrencia. Concurrencia

Concurrencia. Concurrencia Concurrencia Procesos y hebras Concurrencia Programación concurrente Por qué usar hebras y procesos? Ejecución de procesos Ejecución de hebras Hebras vs. Procesos Creación y ejecución de hebras La prioridad

Más detalles

Diseño Estructurado de Algoritmos

Diseño Estructurado de Algoritmos Diseño Estructurado de Algoritmos 1 Sesión No. 11 Nombre: Estructuras algorítmicas. Tercera parte. Objetivo de la sesión: Al concluir la sesión el estudiante aplicará las estructuras algorítmicas repetitivas

Más detalles

ESTRUCTURAS DE CONTROL

ESTRUCTURAS DE CONTROL ESTRUCTURAS DE CONTROL En lenguajes de programación, las estructuras de control permiten modificar el flujo de ejecución de las instrucciones de un programa. Con las estructuras de control se puede: De

Más detalles

2.3 DEFINICIÓN DE LENGUAJES ALGORÍTMICOS

2.3 DEFINICIÓN DE LENGUAJES ALGORÍTMICOS 2.3 DEFINICIÓN DE LENGUAJES ALGORÍTMICOS Características de los algoritmos Las características fundamentales que debe cumplir todo algoritmo son: Un algoritmo debe ser preciso e indicar el orden de realización

Más detalles

Programación Estructurada. Sesión 4:Estructuras de control

Programación Estructurada. Sesión 4:Estructuras de control Programación Estructurada Sesión 4:Estructuras de control Contextualización En la sesión anterior vimos las estructuras condicionales, mediante éstas somos capaces de elegir qué expresiones usaremos, pero

Más detalles

Enteros. Son los números que no contienen componentes fraccionarios y, por tanto, no contienen punto decimal.

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

Más detalles

Programcaión Básica. Secuencias de Control y Repetición. Arturo Vega González.

Programcaión Básica. Secuencias de Control y Repetición. Arturo Vega González. Programación Básica Arturo Vega González a.vega@ugto.mx Division de Ciencias e Ingenierías Universidad de Guanajuato Campus León Sesión 5 Universidad de Guanajuato, DCI, Campus León 1 / 31 Universidad

Más detalles

Es un conjunto de palabras y símbolos que permiten al usuario generar comandos e instrucciones para que la computadora los ejecute.

Es un conjunto de palabras y símbolos que permiten al usuario generar comandos e instrucciones para que la computadora los ejecute. Los problemas que se plantean en la vida diaria suelen ser resueltos mediante el uso de la capacidad intelectual y la habilidad manual del ser humano. La utilización de la computadora en la resolución

Más detalles

Guía práctica de estudio 03: Algoritmos

Guía práctica de estudio 03: Algoritmos Guía práctica de estudio 03: Algoritmos 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 03: Algoritmos Objetivo:

Más detalles

Sistemas Operativos Ingeniería de telecomunicaciones Sesión 3: Concurrencia

Sistemas Operativos Ingeniería de telecomunicaciones Sesión 3: Concurrencia Sistemas Operativos Ingeniería de telecomunicaciones Sesión 3: Concurrencia Calendario Comienzo: Lunes 2 de noviembre y miércoles 4 de noviembre. Entrega: 16 de noviembre y 18 de noviembre. 1. Requisitos

Más detalles

4. DIAGRAMAS DE INTERACCIÓN INTRODUCCIÓN DIAGRAMAS DE SECUENCIA Objetos Mensajes

4. DIAGRAMAS DE INTERACCIÓN INTRODUCCIÓN DIAGRAMAS DE SECUENCIA Objetos Mensajes 4. DIAGRAMAS DE INTERACCIÓN...37 4.1. INTRODUCCIÓN... 37 4.2. DIAGRAMAS DE SECUENCIA... 37 4.2.1. Objetos...37 4.2.2. Mensajes...38 4.2.3. Creación y destrucción de un objeto...39 4.3. DIAGRAMAS DE COLABORACIÓN...

Más detalles

Interbloqueos. Módulo 7. Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco

Interbloqueos. Módulo 7. Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco Interbloqueos Módulo 7 Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco Módulo 7: Interbloqueos Modelo de Sistema Caracterización de Interbloqueos

Más detalles

EJEMPLOS Y EJERCICIOS

EJEMPLOS Y EJERCICIOS EJEMPLOS Y EJERCICIOS Realice los ejercicios tal y como aparecen en el documento con las respectivas pruebas que dice el enunciado, debe pasarlo a un programa como VISIO que realiza diagramas de flujo

Más detalles

UTILICE ESTA MISMA PÁGINA COMO CARÁTULA DE SU TRABAJO

UTILICE ESTA MISMA PÁGINA COMO CARÁTULA DE SU TRABAJO . TP 323 Lapso 2014-2 1/7 UNIVERSIDAD NACIONAL ABIERTA ÁREA DE INGENIERÍA CARRERA INGENIERÍA DE SISTEMAS TRABAJO PRACTICO ASIGNATURA: COMPUTACIÓN I CÓDIGO: 323 FECHA DE ENTREGA AL ESTUDIANTE: Adjunto a

Más detalles

Ejercicios con Monitores

Ejercicios con Monitores Ejercicios con Monitores 57. Aunque un monitor garantiza la exclusión mutua, los procedimientos tienen que ser reentrantes. Explicar por qué. 58. Demostrar que incluso si la implementación del semáforo

Más detalles

Diseño Estructurado de Algoritmos

Diseño Estructurado de Algoritmos Diseño Estructurado de Algoritmos 1 Sesión No. 1 Nombre: Conceptos de algoritmos Objetivo de la sesión: Al concluir la sesión el estudiante identificará los conceptos básicos sobre la definición de algoritmos

Más detalles

Informática I. Software - Algoritmo. Alejandro Furfaro

Informática I. Software - Algoritmo. Alejandro Furfaro Informática I Marzo 2011 Temario 1 Introducción. 2 Algoritmo. 3 Estructuras de programación. 4 Programación estructurada 5 Conclusiones Primeros conceptos Protodefinición Cita Nº1 La solución a cualquier

Más detalles

Jesús Manuel Carrera Velueta José Juan Almeida García Fecha de elaboración: Mayo 6 de 2010 Fecha de última actualización:

Jesús Manuel Carrera Velueta José Juan Almeida García Fecha de elaboración: Mayo 6 de 2010 Fecha de última actualización: PROGRAMA DE ESTUDIO Programa Educativo: Área de Formación : Licenciatura en Ingeniería Ambiental Sustantiva profesional. Programa elaborado por: PROGRAMACIÓN APLICADA Horas teóricas: 1 Horas prácticas:

Más detalles

GENERALIDADES DEL LENGUAJE C

GENERALIDADES DEL LENGUAJE C GENERALIDADES DEL LENGUAJE C La cadena con formato debe ir encerrada entre comillas dobles, no simples. El carácter de retorno de carro (\n) es obligatorio si se desea finalizar la impresión con un salto

Más detalles

4.3.1 Ventana de arena

4.3.1 Ventana de arena A continuación se muestra lo que es posible hacer con Arena: Modelar los procesos para definir, documentar y comunicar los resultados y avances obtenidos. Simular el futuro del sistema para entender las

Más detalles

PROGRAMA DE ASIGNATURA DE PROGRAMACIÓN I

PROGRAMA DE ASIGNATURA DE PROGRAMACIÓN I PROGRAMA DE ASIGNATURA DE PROGRAMACIÓN I Contenido INFORMACIÓN GENERAL... 2 INTRODUCCIÓN... 2 OBJETIVOS GENERALES DE LA ASIGNATURA... 2 OBJETIVOS, TEMAS Y SUBTEMAS... 3 Tema1: Estructura de control....

Más detalles

Evolución del software y su situación actual

Evolución del software y su situación actual Evolución del software y su situación actual El software es el conjunto de programas que permite emplear la PC, es decir, es el medio de comunicación con la computadora, el control de sus funciones y su

Más detalles

Sistemas Operativos. Procesos

Sistemas Operativos. Procesos Sistemas Operativos Procesos Agenda Proceso. Definición de proceso. Contador de programa. Memoria de los procesos. Estados de los procesos. Transiciones entre los estados. Bloque descriptor de proceso

Más detalles

Ejercicios de Hilos. Índice

Ejercicios de Hilos. Índice Índice 1 Creación de hilos (0.5 puntos)...2 2 Prioridades (0.5 puntos)... 2 3 Productor/Consumidor (1 punto)...2 4 Pool de hilos (1 punto)... 3 1. Creación de hilos (0.5 puntos) En la clase Ej1 se crean

Más detalles

MANUAL DE PRÁCTICAS DEL TALLER DE PROGRAMACIÒN PRACTICA NO.6

MANUAL DE PRÁCTICAS DEL TALLER DE PROGRAMACIÒN PRACTICA NO.6 MANUAL DE PRÁCTICAS DEL TALLER DE PROGRAMACIÒN PRACTICA NO.6 NOMBRE DE LA PRÁCTICA. Estructuras secuénciales 6.1 OBJETIVO GENERAL El alumno desarrollará la habilidad para diseñar algoritmos secuenciales,

Más detalles

Método de. Análisis de Fallas. Introducción. Por qué? Qué hace? Cómo lo realizo?

Método de. Análisis de Fallas. Introducción. Por qué? Qué hace? Cómo lo realizo? Método de Análisis de Fallas Introducción Se presenta un método de análisis de fallas, que es muy sencillo de seguir, y que es funcional, para que se pueda adaoptar a su organización, desde problemas en

Más detalles

UNIVERSIDAD MAYOR DE SAN SIMON FACULTAD DE CIENCIAS Y TECNOLOGÍA PLAN GLOBAL COMPUTACION I

UNIVERSIDAD MAYOR DE SAN SIMON FACULTAD DE CIENCIAS Y TECNOLOGÍA PLAN GLOBAL COMPUTACION I UNIVERSIDAD MAYOR DE SAN SIMON FACULTAD DE CIENCIAS Y TECNOLOGÍA PLAN GLOBAL COMPUTACION I I. DATOS DE IDENTIFICACIÓN Nombre de la materia: Computación I Código: 2010008 Grupo: 2 Carga horaria: 4 Docencia

Más detalles

6. Vectores Fundamentos de Informática

6. Vectores Fundamentos de Informática 6. Vectores Fundamentos de Informática Dpto. Lenguajes y Sistemas Informáticos Curso 2012 / 2013 Índice Vectores 1. Introducción 2. Declaración 3. Acceso 4. Paso de parámetros 5. Recorrido completo 6.

Más detalles

LABORATORIO 4: CONCURRENCIA Juan Antonio de la Puente - 21/10/15

LABORATORIO 4: CONCURRENCIA Juan Antonio de la Puente - 21/10/15 LABORATORIO 4: CONCURRENCIA Juan Antonio de la Puente - 21/10/15 Esta obra está bajo licencia Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Unported. Objetivos Entender el comportamiento

Más detalles

Pontifica Universidad Católica de Chile Departamento de Ingeniería Eléctrica

Pontifica Universidad Católica de Chile Departamento de Ingeniería Eléctrica Pontifica Universidad Católica de Chile Departamento de Ingeniería Eléctrica IEE 2682 LABORATORIO DE CONTROL AUTOMÁTICO EXPERIENCIA CONTROLADORES LOGICOS PROGRAMABLES 1. OBJETIVOS Los Controladores Lógicos

Más detalles

Universidad de Valladolid. Departamento de informática. Campus de Segovia. Estructura de datos Tema 4: Ordenación. Prof. Montserrat Serrano Montero

Universidad de Valladolid. Departamento de informática. Campus de Segovia. Estructura de datos Tema 4: Ordenación. Prof. Montserrat Serrano Montero Universidad de Valladolid Departamento de informática Campus de Segovia Estructura de datos Tema 4: Ordenación Prof. Montserrat Serrano Montero ÍNDICE Conceptos básicos Elección de un método Métodos directos

Más detalles

FUNCIONES PHP: DECLARACIÓN Y LLAMADAS. PARÁMETROS, RETURN. EJERCICIOS EJEMPLOS RESUELTOS. (CU00827B)

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

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

ALGORÍTMICA. Dpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid.

ALGORÍTMICA. Dpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid. ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid. Indíce Algoritmo Elementos de un algoritmo: Variables, Constantes, Expresiones Datos: Definición y

Más detalles

Universidad Nacional del Santa FACULTAD DE INGENIERIA E.A.P de Ingeniería de Sistemas e Informática NETBEANS 7.0

Universidad Nacional del Santa FACULTAD DE INGENIERIA E.A.P de Ingeniería de Sistemas e Informática NETBEANS 7.0 Universidad Nacional del Santa FACULTAD DE INGENIERIA E.A.P de Ingeniería de Sistemas e Informática NETBEANS 7.0 PROYECTO DE ESTRUCTURA REPETITIVA FOR A continuación resolveremos el siguiente proyecto.

Más detalles

Sistemas Operativos. Daniel Rúa Madrid

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

Más detalles

CLASES QUE UTILIZAN OBJETOS. RELACIÓN DE USO ENTRE CLASES JAVA. CONCEPTO DE DIAGRAMA DE CLASES. (CU00641B)

CLASES QUE UTILIZAN OBJETOS. RELACIÓN DE USO ENTRE CLASES JAVA. CONCEPTO DE DIAGRAMA DE CLASES. (CU00641B) APRENDERAPROGRAMAR.COM CLASES QUE UTILIZAN OBJETOS. RELACIÓN DE USO ENTRE CLASES JAVA. CONCEPTO DE DIAGRAMA DE CLASES. (CU00641B) Sección: Cursos Categoría: Curso Aprender programación Java desde cero

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

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

UNIVERSIDAD DEL VALLE DE MÉXICO PROGRAMA DE ESTUDIO DE LICENCIATURA PRAXIS MES XXI

UNIVERSIDAD DEL VALLE DE MÉXICO PROGRAMA DE ESTUDIO DE LICENCIATURA PRAXIS MES XXI UNIVERSIDAD DEL VALLE DE MÉXICO PROGRAMA DE ESTUDIO DE LICENCIATURA PRAXIS MES XXI NOMBRE DE LA ASIGNATURA: PROGRAMACIÓN ESTRUCTURADA FECHA DE ELABORACIÓN: ENERO 2005 ÁREA DEL PLAN DE ESTUDIOS: AS ( )

Más detalles

FUNDAMENTOS DE INFORMÁTICA

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

Más detalles

Arquitecturas cliente/servidor

Arquitecturas cliente/servidor Arquitecturas cliente/servidor Creación de Sockets Cliente Servidor 1 Creación de Sockets Cliente/Servidor Sockets en TCP Concepto de Hilos Definición de DAEMON Sockets en UDP 2 THREADS 3 Qué es un thread?

Más detalles

Inicio del programa. Entrada de datos. Proceso de datos. Salida de datos. Fin del programa

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

Más detalles

La resolución de un problema

La resolución de un problema CAP. 2. ALGORITMOS Y PROGRAMAS 2.1. Solución de problemas por computadora La resolución de problemas por computadora, es importante para que las personas o usuarios aprendan a programar de manera general,

Más detalles

EJEMPLOS Y EJERCICIOS

EJEMPLOS Y EJERCICIOS EJEMPLOS Y EJERCICIOS ALGORITMIA DIAGRAMA DE FLUJO 1.- Area de un cuadrado L A= L*L A 2.- Area de un Circulo r A= pi*r*r A 3.- Conversión Fahrenheit a Celsius F C=(5/9)*(f-32) C 4.- Suma y Resta de dos

Más detalles

6. Vectores. 1. Introducción. 2. Declaración (I) Fundamentos de Informática Dpto. Lenguajes y Sistemas Informáticos.

6. Vectores. 1. Introducción. 2. Declaración (I) Fundamentos de Informática Dpto. Lenguajes y Sistemas Informáticos. 6. Fundamentos de Informática Dpto. Lenguajes y Sistemas Informáticos Curso 2012 / 2013 Índice 4. Paso de parámetros 5. Recorrido completo 6. Recorrido de búsqueda 7. Inicialización 2 Necesidad Agrupar

Más detalles

Algoritmos y Programas

Algoritmos y Programas Introducción a la Programación Pontificia Universidad Javeriana Generado con LAT E X Febrero de 2010 Recorderis Algoritmos Recorderis Estado Una configuración determinada del sistema en un tiempo-espacio

Más detalles

Estructura de un programa. Algoritmos - Universidad Francisco de Vitoria 2

Estructura de un programa. Algoritmos - Universidad Francisco de Vitoria 2 Algoritmos TEMA 2 Estructura de un programa Algoritmos - Universidad Francisco de Vitoria 2 Hola Mundo! #include main() { /* mi primer programa en C */ printf( "Hola Mundo!" ); } Algoritmos -

Más detalles

Programación Estructurada

Programación Estructurada Programación Estructurada PROGRAMACIÓN ESTRUCTURADA 1 Sesión No. 7 Nombre: Estructuras de datos Contextualización Cuando un programa suele ser muy extenso, un problema clásico de los programadores es la

Más detalles

TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL

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

Más detalles

dit Planificación de tareas de tiempo real Juan Antonio de la Puente DIT/UPM UPM Copyright 2007, Juan Antonio de la Puente

dit Planificación de tareas de tiempo real Juan Antonio de la Puente DIT/UPM UPM Copyright 2007, Juan Antonio de la Puente dit UPM Planificación de tareas de tiempo real Juan Antonio de la Puente DIT/UPM Copyright 2007, Juan Antonio de la Puente Objetivos Plantear los problemas básicos relacionados con el cumplimiento de los

Más detalles

Pseudocódigo. La forma en que se escribe un pseudocódigo es la siguiente:

Pseudocódigo. La forma en que se escribe un pseudocódigo es la siguiente: Pseudocódigo El pseudocódigo o pseudolenguaje, son una serie de instrucciones en nuestro lenguaje natural (español, ingles, etc.) y expresiones que representan cada uno de los pasos que resuelven un problema

Más detalles

Variables lógicas y sentencia IF

Variables lógicas y sentencia IF Variables lógicas y sentencia IF Seminario de Computación Verano de 2009 Variables lógicas: Solo pueden tomar 2 valores:.true. y.false. (verdadero o falso). Existen operadores que aplicados a variables

Más detalles

Construcción de tablas de análisis sintáctico LL(1)

Construcción de tablas de análisis sintáctico LL(1) Construcción de tablas de análisis sintáctico LL(1) Universidad de Costa Rica Escuela de Ciencias de la Computación e Informática Diego Centeno Gerardo Cortés Juan Diego Alfaro Resumen. A la medida en

Más detalles

DIAGRAMAS DE ACTIVIDAD SESION 9. Cap. 9 Kendall & Kendall Cap 5 Jacobson

DIAGRAMAS DE ACTIVIDAD SESION 9. Cap. 9 Kendall & Kendall Cap 5 Jacobson DIAGRAMAS DE ACTIVIDAD Cap. 9 Kendall & Kendall Cap 5 Jacobson SESION 9 Ana Mercedes Cáceres mercycaceres@gmail.com Instructora: Carmen Morales Año 2006. OBJETIVOS Representar gráficamente los problemas

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

KARELEANDO Jugando a programar Por: Fernando Guzmán

KARELEANDO Jugando a programar Por: Fernando Guzmán KARELEANDO Jugando a programar Por: Fernando Guzmán omijal@gmail.com El presente documento surge de la inquietud de ofrecer un manual de introducción básico donde el lector pueda de inmediato poder realizar

Más detalles

Grado en Ingeniería de Computadores Universidad de Alcalá 2015/2016 3º Curso 2º Cuatrimestre

Grado en Ingeniería de Computadores Universidad de Alcalá 2015/2016 3º Curso 2º Cuatrimestre Sistemas de Tiempo Real Grado en Ingeniería de Computadores Universidad de Alcalá 2015/2016 3º Curso 2º Cuatrimestre GUÍA DOCENTE Nombre de la asignatura: Código: 590008 Titulación en la que se imparte:

Más detalles

PROBLEMA 1. Considere el siguiente problema de programación lineal:

PROBLEMA 1. Considere el siguiente problema de programación lineal: PROBLEMA 1 Considere el siguiente problema de programación lineal: Sean h1 y h2 las variables de holgura correspondientes a la primera y segunda restricción, respectivamente, de manera que al aplicar el

Más detalles

Herramientas computacionales para la matemática MATLAB: Estructuras de control

Herramientas computacionales para la matemática MATLAB: Estructuras de control Herramientas computacionales para la matemática MATLAB: Estructuras de control Verónica Borja Macías Mayo 2012 1 Estructuras de control ESTRUCTURAS DE REPETICIÓN: BUCLES Los bucles permiten repetir las

Más detalles