Unidad 2: Gestión de Procesos
|
|
|
- Enrique Barbero Santos
- hace 8 años
- Vistas:
Transcripción
1 Unidad 2: Gestión de Procesos Tema 6, Concurrencia: Exclusión mutua y sincronización. 6.1 Principios generales de concurrencia. 6.2 EM: Soluciones software (Algoritmos de Dekker y Peterson). 6.3 EM: Soluciones hardware. 6.4 Semáforos (Problema del Productor / Consumidor). Informática (Segovia) 1
2 6.1 Principios generales de concurrencia. Conceptos generales: Concurrencia: Existencia simultánea de varios procesos en ejecución. IMPORTANTE: EXISTENCIA SIMULTÁNEA NO IMPLICA EJECUCIÓN SIMULTÁNEA. Paralelismo: Caso particular de concurrencia. Necesidad de sincronización y comunicación. Comunicación: Necesidad de transmisión de información entre procesos concurrentes. Sincronización: Necesidad de que las ejecuciones de los procesos concurrentes se produzcan según una secuenciación temporal, conocida y establecida entre los propios procesos. Informática (Segovia) 2
3 6.1 Principios generales de concurrencia. Cooperación entre procesos: Dos técnicas de operación: Sistemas multiprogramados con un solo procesador: los procesos se intercalan en el tiempo para dar la apariencia de ejecución simultánea. Sistemas multiprocesador: además de intercalarse los procesos se superponen. Estas técnicas son ejemplos de procesamiento concurrente y plantean varios problemas: 1. Compartir recursos globales conlleva riesgos. Debemos de ser muy cuidadosos en el orden en que dos procesos modifican independientemente el valor de una variable global que ambos usan. 2. Gestionar la asignación óptima de recursos. Debemos de impedir que se produzcan situaciones de interbloqueo. 3. Localizar errores de programación. Informática (Segovia) 3
4 6.1 Principios generales de concurrencia. Cooperación entre procesos: Veamos un ejemplo sencillo de un procedimiento compartido por varios procesos del mismo usuario: void echo(){ ent = getchar(); sal = ent; putchar(sal); } Implementa la función de entrada de un carácter desde teclado. Cada carácter de entrada se almacena en la variable ent, después se transfiere a la variable sal y se envía a la pantalla. Este procedimiento se comparte por varios procesos del mismo usuario de un sistema monoprocesador, para leer caracteres de teclado y visualizarlos por pantalla. Informática (Segovia) 4
5 6.1 Principios generales de concurrencia. Cooperación entre procesos: Esta compartición de código permite la interacción entre procesos pero puede dar lugar a problemas, tales como aparecen en la secuencia: /*Proceso P1*/ /*Proceso P2*/ ent = getchar(); ent = getchar (); sal = ent; sal = ent; putchar(sal); putchar(sal); Informática (Segovia) 5
6 6.1 Principios generales de concurrencia. Cooperación entre procesos: P1 llama a echo() y es interrumpido inmediatamente después de leer la entrada. P2 se activa y llama a echo() y lo ejecuta hasta el final mostrando el carácter leído en la pantalla. P1 se reanuda donde lo dejó, sin embargo ent contiene un valor diferente al tecleado originalmente, que se transfiere a la variable sal y se visualiza. Resultado: Se pierde el primer carácter y el segundo se visualiza dos veces. Informática (Segovia) 6
7 6.1 Principios generales de concurrencia. Cooperación entre procesos: El problema es que a las variables ent y sal tienen acceso todos los procesos que llaman al procedimiento echo(). Impongamos la restricción de que aunque echo sea un procedimiento global sólo puede estar ejecutándolo un proceso cada vez. La secuencia anterior queda ahora: P1 llama a echo() y es interrumpido inmediatamente después de leer la entrada. P2 se activa y llama a echo(). Como P1 estaba usando echo(), P2 se bloquea al entrar al procedimiento y se le suspende mientras espera que quede libre echo(). P1 se reanuda y completa la ejecución de echo(). Se visualiza el carácter correcto. Cuando P1 abandona echo() se retira el bloqueo sobre P2. Cuando más tarde se reanude P2 la llamada a echo() se ejecutará con éxito. Informática (Segovia) 7
8 6.1 Principios generales de concurrencia. Labores del sistema operativo: 1. Seguir la pista de los distintos procesos activos. 2. Asignar y retirar los recursos: Tiempo de procesador. Memoria. Archivos. Dispositivos de E/S. 3. Proteger los datos y los recursos físicos. 4. Resultados de un proceso independientes de la velocidad relativa a la que se realiza la ejecución de procesos concurrentes. Informática (Segovia) 8
9 6.1 Principios generales de concurrencia. Interacción entre procesos: La interacción entre procesos se clasifica de acuerdo al nivel de conocimiento que cada proceso tiene de los demás: Los procesos no tienen conocimiento de la existencia de los demás: Independientes, no van a operar juntos, entre ellos se establece una competencia por los recursos (disco, archivos, impresora,...). Los procesos tienen un conocimiento indirecto de los otros: No se conocen específicamente unos a otros pero comparten el acceso a algunos objetos como el buffer de E/S. Relación de cooperación para compartir. Los procesos tienen un conocimiento directo de los otros: Diseñados para cooperar trabajando en conjunto en alguna actividad y comunicándose entre ellos. Informática (Segovia) 9
10 6.1 Principios generales de concurrencia. Competencia entre procesos por los recursos: Exclusión mutua: Para que el acceso a ciertos recursos sea exclusivo de un proceso cada vez. A la parte del programa que los utiliza se le llama sección crítica. Sección crítica: Cada proceso tiene un segmento de código llamado sección crítica. No está permitido que más de un proceso estén simultáneamente en su sección crítica. Un protocolo rige la forma de entrar y salir de la sección crítica. Informática (Segovia) 10
11 6.1 Principios generales de concurrencia. Interbloqueo e inanición: Hacer que se cumpla la exclusión mutua puede dar lugar a dos problemas adicionales: Interbloqueo: Considera dos procesos y dos recursos. Supón que cada proceso necesita acceder a ambos recursos para llevar a cabo una parte de su función. Puede suceder que el sistema operativo asigne R1 a P1 y R2 a P2. Cada proceso está esperando uno de los dos recursos. Ninguno liberará el recurso que posee hasta que adquiera el otro y realice su tarea. Inanición: Supón tres procesos que acceden periódicamente a un recurso. Considera que P1 posee el recurso y que P2 y P3 están esperando. Cuando P1 haya ejecutado su sección crítica tanto P2 como P3 podrán solicitar el recurso. Supón que le le concede el acceso a P3 y que, antes de que termine su sección crítica, P1 solicita acceso de nuevo y así sucesivamente, se puede llegar a una situación en la que P2 nunca accede al recurso. Informática (Segovia) 11
12 6.1 Principios generales de concurrencia. El problema de la sección crítica: Cualquier solución al problema de la sección crítica debe satisfacer los tres requisitos: Exclusión Mutua: Sólo un proceso ejecuta simultáneamente su sección crítica. Progreso: Cuando ningún proceso ejecuta su sección crítica, algún proceso que lo solicite podrá entrar utilizando un protocolo, que impida la entrada simultánea de varios. La decisión de quién entra no se puede posponer indefinidamente. Espera limitada: Ningún proceso debe esperar ilimitadamente la entrada en la sección crítica. Informática (Segovia) 12
13 6.1 Principios generales de concurrencia. Requisitos para la Exclusión Mutua: Cualquier solución que de soporte a la EM debe de cumplir los requisitos: 1. Sólo un proceso debe tener permiso para entrar en la sección crítica por un recurso en un instante dado. 2. Un proceso que se interrumpe en una sección no crítica debe hacerlo sin interferir con los otros procesos. 3. No pueden permitirse el interbloqueo o la inanición. 4. Cuando ningún proceso está en su sección crítica, cualquier proceso que solicite entrar en la suya debe poder hacerlo sin dilación. 5. No hacer suposiciones sobre la velocidad relativa de los procesos o el número de procesadores. 6. Un proceso permanece en su sección crítica sólo por un tiempo finito. Informática (Segovia) 13
14 6.1 Principios generales de concurrencia. Requisitos para la Exclusión Mutua: Hay tres categorías de soluciones para implementar la Exclusión Mutua: Soluciones por software en los procesos. Soluciones por hardware. Soluciones por software en el sistema operativo. La estructura general de cualquier mecanismo para implementar la sección crítica es la siguiente: entrada de la sección crítica; código (programa) de la sección crítica; salida de la sección crítica; Informática (Segovia) 14
15 6.2 Exclusión Mutua: Soluciones software. Algoritmo de Dekker (alternancia estricta): Idea de partida: No se puede acceder simultáneamente (desde varios procesadores) a ninguna localidad de memoria. Espera activa: Se utiliza una variable global turno para controlar la entrada en la sección crítica. Cualquier proceso que desee entrar en su sección crítica comprobará primero el valor de la variable turno : Mientras sea distinto al de su identificador de proceso debe esperar. Cuando coincida entrará en la sección crítica. Cuando un proceso sale de la sección crítica, actualiza turno con el código de otro proceso en espera. Informática (Segovia) 15
16 6.2 Exclusión Mutua: Soluciones software. Algoritmo de Dekker (1 er intento): Proceso 0 Proceso /*esperar*/ /*esperar*/ while (turno!=0); while (turno!=1); /*sección crítica*/ /*sección crítica*/ turno=1; turno=0; Diseñados para poder pasar el control de ejecución entre ellos, no es una técnica apropiada para dar soporte al procesamiento concurrente. Cuando hay diferencias grandes de velocidad es el proceso más lento el que marca el ritmo. Informática (Segovia) 16
17 6.2 Exclusión Mutua: Soluciones software. Algoritmo de Dekker (2º intento): Verifico la sección crítica del otro proceso y coloco una señal al entrar y salir en su sección crítica: Proceso 0 Proceso /*esperar*/ /*esperar*/ while (señal[1]); while (señal[0]); señal[0] = cierto; señal[1]=cierto; /*sección crítica*/ /*sección crítica*/ señal[0] = falso; señal[1] = falso; Informática (Segovia) 17
18 6.2 Exclusión Mutua: Soluciones software. Algoritmo de Dekker (2º intento): Se solucionan los problemas anteriores, sin embargo, ahora surgen otros nuevos: Si uno de los procesos falla dentro de su sección crítica el otro quedará bloqueado permanentemente. No se garantiza la Exclusión Mutua como vemos en la secuencia: 1. P0 ejecuta el while y encuentra señal[1] a falso. 2. P1 ejecuta el while y encuentra señal[0] a falso. 3. P0 pone señal[0] a cierto y entra en su sección crítica. 4. P1 pone señal[1] a cierto y entra en su sección crítica. Ambos procesos están en su sección crítica, esto se debe a que esta solución no es independiente de la velocidad de ejecución relativa de los procesos. Informática (Segovia) 18
19 6.2 Exclusión Mutua: Soluciones software. Algoritmo de Dekker (3 er intento): Proceso 0 Proceso señal[0] = cierto; señal[1]=cierto; /*esperar*/ /*esperar*/ while (señal[1]); while (señal[0]); /*sección crítica*/ /*sección crítica*/ señal[0] = falso; señal[1] = falso; Una vez que un proceso ha puesto su señal en cierto, el otro no puede entrar a su sección crítica hasta que el primero salga de ella. Se garantiza la EM, sin embargo, se generará interbloqueo si ambos procesos ponen su señal a cierto antes de ambos hayan ejecutado el while. Además, si un proceso falla en su sección crítica, el otro queda bloqueado permanentemente. Informática (Segovia) 19
20 6.2 Exclusión Mutua: Soluciones software. Algoritmo de Dekker (4º intento): El interbloqueo se había originado porque cada proceso establecía su señal sin conocer el estado del otro proceso. Para solucionarlo haremos que los procesos activen y desactiven su señal: Proceso 0 Proceso señal[0] = cierto; señal[1]=cierto; /*esperar*/ /*esperar*/ while (señal[1]){ while (señal[0]){ señal[0]=falso; señal[1]=falso; /*retardo*/ /*retardo*/ señal[0]=cierto; señal[1]=cierto; } } /*sección crítica*/ /*sección crítica*/ señal[0] = falso; señal[1] = falso; Informática (Segovia) 20
21 6.2 Exclusión Mutua: Soluciones software. Algoritmo de Dekker (4º intento): Esta solución garantiza la EM y practicamente evita el IB, aunque podría darse la secuencia: P0 pone señal[0] a cierto. P1 pone señal[1] a cierto. P0 comprueba señal[1]. P1 comprueba señal[0]. P0 pone señal[0] a falso. P1 pone señal[1] a falso. P0 pone señal[0] a cierto. P1 pone señal[1] a cierto. Esta situación de bloqueo puede prolongarse mucho tiempo. Informática (Segovia) 21
22 6.2 Exclusión Mutua: Soluciones software. Algoritmo de Dekker (solución final): Combinación entre: Primer intento, donde se usa la variable turno (ahora usamos turno para indicar quien tiene prioridad para entrar a su sección crítica). Cuarto intento. Funcionamiento: Cuando P0 quiere entrar en su sección crítica pone señal[0]=cierto; y comprueba la señal de P1. Si está a falso, entra inmediatamente. Si está a cierto, consulta turno: Si turno==0; sigue verficando la señal de P1. Si turno==1; desactiva su señal y espera hasta que turno==0; Informática (Segovia) 22
23 6.2 Exclusión Mutua: Soluciones software. Algoritmo de Dekker (Solución Final): Proceso 0 Proceso señal[0] = cierto; señal[1]=cierto; while (señal[1]) while (señal[0]) if (turno==1){ if (turno==0){ señal[0]=falso; señal[1]=falso; while (turno==1); while (turno==0); /*esperar*/ /*esperar*/ señal[0]=cierto; señal[1]=cierto; } } /*sección crítica*/ /*sección crítica*/ turno=1; turno=0; señal[0] = falso; señal[1] = falso; Informática (Segovia) 23
24 6.2 Exclusión Mutua: Soluciones software. Algoritmo de Peterson: Más simple que el de Dekker, garantiza la exclusión mutua: Cada proceso tiene un turno para entrar en la sección crítica. Si un proceso desea entrar en la sección crítica, debe activar su señal y puede que tenga que esperar a que llegue su turno. Impide el interbloqueo ya que si un proceso se encuentra esperando en el while, entonces la señal y el turno del otro proceso están activadas. El proceso que está esperando entrará en su sección crítica cuando la señal o el turno del otro se desactiven. Informática (Segovia) 24
25 6.2 Exclusión Mutua: Soluciones software. Algoritmo de Peterson: Proceso 0 Proceso while(cierto){ while(cierto){ señal[0] = cierto; señal[1]=cierto; turno=1; turno=0; while (señal[1]&&turno==1); while (señal[0]&&turno==0); /*esperar*/ /*esperar*/ /*sección crítica*/ /*sección crítica*/ señal[0]=falso; señal[1]=falso; } } Informática (Segovia) 25
26 6.3 Exclusión Mutua: Soluciones hardware. Inhabilitación de interrupciones: Un servicio continuará ejecutándose hasta que solicite un servicio del SO o hasta que sea interrumpido. Para garantizar la EM es suficiente con impedir que un proceso sea interrumpido. Se limita la capacidad del procesador para intercalar programas. Multiprocesador: Inhabilitar las interrupciones de un procesador no garantiza la Exclusión Mutua. Informática (Segovia) 26
27 6.3 Exclusión Mutua: Soluciones hardware. Instrucciones especiales de máquina: Se realizan en un único ciclo de instrucción. No están sujetas a injerencias por parte de otras instrucciones. Ejemplos: Instrucción Comparar y Fijar: Instrucción Intercambiar: booleano TS (int i){ void intercambiar(int registro, int memoria){ if(i==0){ int temp; i=1; temp=memoria; return cierto; memoria=registro; } registro=temp; else{ } return falso; } } Informática (Segovia) 27
28 6.3 Exclusión Mutua: Soluciones hardware. Instrucciones de máquina y exclusión mutua: Ventajas: Es aplicable a cualquier nº de procesos en sistemas con memoria compartida, tanto de monoprocesador como de multiprocesador. Es simple y fácil de verificar. Puede usarse para disponer de varias secciones críticas. Desventajas: La espera activa consume tiempo del procesador. Puede producirse inanición cuando un proceso abandona la sección crítica y hay más de un proceso esperando. Interbloqueo: de procesos de baja prioridad frente a otros de prioridad mayor. Informática (Segovia) 28
29 6.4 Semáforos. Introducción: Mecanismo frente a problemas de concurrencia. Funcionamiento basado en la cooperación entre procesos. Uso de señales, podemos obligar a un proceso a detenerse hasta que reciba una señal. Para esta señalización se usan unas variables especiales llamadas semáforos: Para transmitir una señal por el semáforo s, los procesos ejecutan la primitiva signal(s). Para recibir una señal del semáforo s, los procesos ejecutan la primitiva wait(s). Si la señal aún no se ha emitido, el proceso es suspendido hasta que se emite la señal. Informática (Segovia) 29
30 6.4 Semáforos. Introducción: Los semáforos se pueden considerar variables enteras sobre las que se definen las siguientes operaciones: Un semáforo puede iniciarse con un valor no negativo. La operación wait() reduce el valor del semáforo. Si el valor se hace negativo, el proceso que la ejecuta se bloquea. La operación signal() incrementa el valor del semáforo. Si el valor no es positivo, se desbloquea un proceso. Informática (Segovia) 30
31 6.4 Semáforos. Semáforos: Semáforos binarios: struct semaforo{ struct semaforob{ int contador; enum(cero,uno)valor; tipocola cola; tipocola cola; } } void wait(semaforo s){ void wait(semaforob s){ s.contador--; if(s.valor==1) if(s.contador<0){ s.valor=0; poner el proceso en s.cola; else{ bloquear este proceso; poner este proceso en s.cola; } bloquear este proceso; } } } void signal(semaforo s){ void signalb(semaforob s){ s.contador++; if(s.cola.esvacia()) if(s.contador<=0){ s.valor=1; quitar el proceso de s.cola; else{ pasar el proceso a la cola listos; quitar el proceso de s.cola; } pasar el proceso de s.cola a la cola de listos; } } Escuela } Universitaria de Informática (Segovia) 31
32 6.4 Semáforos. En ambos tipos de semáforos existe una cola que mantiene a los procesos esperando. El orden en que se retiran los procesos de la cola define dos categorías de semáforos: a) Semáforos robustos: funcionan como una cola FIFO, el que ha estado bloqueado más tiempo es el que sale de la cola. b) Semáforos débiles: no se especifica el orden en el que se retiran los semáforos. Informática (Segovia) 32
33 6.4 Semáforos. Informática (Segovia) 33
34 6.4 Semáforos. Funcionamiento de un semáforo robusto: En la figura se muestra el funcionamiento de un semáforo robusto en una situación en la que los procesos A,B y C dependen de un resultado provisto por el proceso D: 1. A ejecuta, efectúa un wait(), termina y pasa a listos. 2. Entra B a ejecutar, ejecuta un wait() y se suspende. 3. Entra D a ejecutar y efectúa un signal(). 4. Debido al signal(), B pasa a listos y s vale cero. 5. D termina y entra C a ejecutar en s=0. 6. C, A y B ejecutan wait() y pasan a suspendidos. 7. D ejecuta, efectúa un signal() y pasa C a listos. Informática (Segovia) 34
35 6.4 Semáforos. Exclusión mutua mediante semáforos: /*Programa Exclusión Mutua*/ const int n = /*numero de procesos*/ semaforo s=1; void P(int i){ while(cierto){ /*entrada a la sección crítica*/ wait(s); /*sección crítica*/... /*salida de la sección crítica*/ signal(s); /*resto del código*/ } } void main(){ parbegin(p(1), P(2),..., P(n)); } Informática (Segovia) 35
36 6.4 Semáforos. Exclusión mutua mediante semáforos: En la siguiente figura se ilustra el funcionamiento de la exclusión mutua mediante un semáforo con tres procesos que intentan acceder a un recurso compartido. Informática (Segovia) 36
37 6.4 Semáforos: Problema del Productor/Consumidor. Problemas clásicos de sincronización: Problema del productor consumidor. Problema de los lectores escritores. Problema de los filósofos comensales. Problema del productor/consumidor: Planteamiento: Uno o más productores generan datos y los sitúan en un buffer. Un único consumidor saca elementos del buffer de uno en uno. Sólo un productor o consumidor puede acceder al buffer en un instante dado. Informática (Segovia) 37
38 6.4 Semáforos: Problema del Productor/Consumidor. Problema del productor consumidor (buffer ilimitado): Analizaremos varias soluciones para ilustrar tanto la potencia como los riesgos de los semáforos. Supongamos primero que el buffer es ilimitado y que consiste en un vector lineal de elementos. Se pueden definir las funciones productor y consumidor según: /*Productor*/ /*Consumidor*/ while(cierto){ while(cierto){ /*producir elemento v*/ while(ent<=sal); b[ent]=v; w=b[sal]; ent++; sal++; } /*consumir el elemento*/ } Informática (Segovia) 38
39 6.4 Semáforos: Problema del Productor/Consumidor. Problema del productor consumidor (buffer ilimitado): El consumidor los puede utilizar sólo cuando están disponibles; es por ello que se comprueba primero que ent>sal antes de continuar. Se debe garantizar que no accedan al buffer dos agentes simultáneamente, sobre todo si son productores, pues podrían sobreescribir un dato en el mismo sitio. Esta situación podría producirse si, por ejemplo, un producto es interrumpido después de ejecutar b[ent]=v y otro productor entra a ejecutar. Se puede proponer una solución por medio de semáforos binarios. En este caso, se usa un contador n de elementos en el buffer que reemplaza a ent y sal (n=ent-sal). El semáforo s se usa para hacer cumplir la exclusión mutua. El semáforo retraso se usa para obligar al consumidor a esperar si el buffer está vacío. Informática (Segovia) 39
40 6.4 Semáforos: Problema del Productor/Consumidor. Problema del productor consumidor (buffer ilimitado): Una solución incorrecta por medio de semáforos binarios. int n; void consumidor(){ semaforob s=1; /*para exclusion*/ waitb(retraso); /*esperar dato*/ semaforob retraso=0; /*para cons*/ while(cierto){ void productor(){ waitb(s); /*si s=0 ponerlo a 1*/ while(cierto){ coger(); /*coger el dato*/ producir(); /*el dato a consumir*/ n--; /*decrementar datos a coger*/ waitb(s); /*verificar la EM*/ signalb(s); /*si cola vacia s=1*/ añadir(); consumir(); /*consumir el dato cogido*/ n++; /*incrementar cont de dato*/ if(n==0) if(n==1) waitb(retraso); /*cotejar n*/ signalb(retraso); /*desbloq*/ } signalb(s); /*desbloq prod o cons*/ } } void main(){ } n=0; parbegin(productor, consumidor); } Informática (Segovia) 40
41 6.4 Semáforos: Problema del Productor/Consumidor. Problema del productor consumidor (buffer ilimitado): El primer waitb ejecutado por el consumidor sirve para evitar que se entre a consumir cuando aún no hay dato. El código if(n==0) waitb(retraso) en el consumidor suspende al proceso cuando se ha vaciado el buffer. El código if(n==1) signalb(retraso) en el productor sirve para desbloquear al consumidor al poner un elemento. Nota: Esta solución no es correcta ya que puede ocurrir que cuando un productor genera un nuevo dato mientras el consumidor ha terminado su sección crítica y está ejecutando consumir(), es decir, antes de ejecutar la comprobación sobre n el consumidor se ejecuta dos veces para un solo dato generado (puesto que no hubo correspondencia entre los signalb(retraso) ejecutados por el productor y los waitb(retraso) ejecutados por el consumidor) n es negativo, lo que indicaría que se consume un dato que aún no se ha generado. Informática (Segovia) 41
42 6.4 Semáforos: Problema del Productor/Consumidor. Problema del productor consumidor (buffer ilimitado): Informática (Segovia) 42
43 6.4 Semáforos: Problema del Productor/Consumidor. Problema del productor consumidor (buffer ilimitado): Solución: Introducir una nueva variable auxiliar que guarde el valor de n en la sección crítica, para luego compararla fuera de ella. int n; /*datos sin consumir*/ semaforob s=1; /*para exclusion*/ semaforob retraso=0; /*para cons*/ void consumidor(){ int m; /*variable auxiliar local*/ waitb(retraso); /*esperar dato*/ while(cierto){ void productor(){ waitb(s); /*si s=0 ponerlo a 1*/ while(cierto){ coger(); /*coger el dato*/ producir(); n--; /*decrementar datos a coger*/ /*producir el dato a consumir*/ m=n; waitb(s); /*verificar la EM*/ signalb(s); /*si cola vacia s=1*/ añadir(); consumir(); /*consumir el dato cogido*/ n++; /*incrementar cont de dato*/ if(m==0) if(n==1) waitb(retraso); /*cotejar m*/ signalb(retraso); /*desbloq*/ } signalb(s); /*desbloq prod o cons*/ } } void main(){ } n=0; parbegin(productor, consumidor); } Informática (Segovia) 43
44 6.4 Semáforos: Problema del Productor/Consumidor. Problema del productor consumidor (buffer ilimitado): Una solución más simple y elegante usando semáforos generales. La variable n es un semáforo y su valor sigue siendo igual al del número de elementos del buffer. semaforo n=0; semaforo s=1; void productor(){ while(cierto){ producir(); /*el dato a consumir*/ wait(s); /*verificar la EM*/ void consumidor(){ while(cierto){ wait(n); /*si no hay dato bloquearse*/ wait(s); /*entrar en EM*/ coger(); /*tomar el dato*/ signal(s); /*salir de zona de exclusion*/ consumir(); /*consumir el dato cogido*/ añadir(); } signal(s); /*desbloq proceso*/ } signal(n); /*desbloq consum*/ void main(){ } parbegin(productor, consumidor); } } Informática (Segovia) 44
45 6.4 Semáforos: Problema del Productor/Consumidor. Problema del productor consumidor (buffer limitado): Planteamiento: Si un productor intenta insertar cuando el buffer está lleno, hay que bloquearlo. Si un consumidor intenta leer cuando el buffer está vacío, hay que bloquearlo. Si un productor está bloqueado, hay que desbloquearlo cuando se consuma un elemento. Si el consumidor está bloqueado, hay que desbloquear al agregar un nuevo elemento. Informática (Segovia) 45
46 6.4 Semáforos: Problema del Productor/Consumidor. Problema del productor consumidor (buffer limitado): int tamanyo_de_buffer= /*tamanyo del buffer*/; semaforo n=0; /*para el cons*/ void consumidor(){ semaforo s=1; /*para la EM*/ while(cierto){ semaforo e = tamanyo_de_buffer; wait(n); /*si no hay dato bloquearse*/ void productor(){ wait(s); /*bloq si hay otro P_C*/ while(cierto){ coger(); /*tomar el dato*/ producir(); /*el dato a consumir*/ signal(s); /*salir de zona de exclusion*/ wait(e); /*bloq si no hay huecos*/ signal(e); /*indicar hueco en el buffer*/ wait(s); /*bloq si hay otro P_C*/ consumir(); /*consumir el dato cogido*/ añadir(); } signal(s); /*salir de la SC*/ } signal(n); /*desbloq consum*/ void main(){ } parbegin(productor, consumidor); } } Informática (Segovia) 46
Sistemas Operativos. Características de la Multiprogramación. Interacción entre Procesos. Características de la Multiprogramación
Universidad Simón Bolívar Departamento de Electrónica y Circuitos EC3731 Arquitectura del Computador II Prof. Osberth De Castro Prof. Juan C. Regidor Sistemas Operativos Concurrencia y Sincronización de
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
Concurrencia: deberes. Concurrencia: Exclusión Mutua y Sincronización. Concurrencia. Dificultades con la Concurrencia
Concurrencia: deberes Concurrencia: Exclusión Mutua y Sincronización Capítulo 5 Comunicación entre procesos Compartir recursos Sincronización de múltiples procesos Asignación del tiempo de procesador Concurrencia
Concurrencia: Exclusión mutua y Sincronización
Concurrencia: Exclusión mutua y Sincronización Prof. Carlos Figueira Basado en materiales de Yudith Cardinale (USB) Williams Stallings, Eugene Styer Concurrencia Múltiples aplicaciones Aplicaciones estructuradas
Concurrencia entre Procesos.
Concurrencia entre Procesos. Sistemas Operativos Tema 3. 1 Procesamiento concurrente. Procesamiento concurrente: base de los sistemas operativos modernos (multiprogramados): Un conjunto de procesos que
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 [email protected] 1 Índice General Conceptos sobre ordenadores Concepto
Mensajes. Interbloqueo
CONCURRENCIA DE PROCESOS Preparado por: Angel Chata Tintaya ([email protected]) Resumen Los procesos comparten variables globales, comparten y compiten por recursos, se ejecutan simultáneamente intercalándose
Estructuras en LabVIEW.
Estructuras en LabVIEW. Sumario: 1. Ejecución según el flujo de datos. 2. Estructuras básicas disponibles en LabVIEW. a) Estructura Sequence. b) Estructura Case. c) Estructura For Loop. d) Estructura While
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
Manipulación de procesos
Manipulación de procesos Las primeras computadoras solo podían manipular un programa a la vez. El programa tenía control absoluto sobre todo el sistema. Con el desarrollo vertiginoso del hardware ese panorama
SISTEMAS OPERATIVOS Arquitectura de computadores
SISTEMAS OPERATIVOS Arquitectura de computadores Erwin Meza Vega [email protected] Esta presentación tiene por objetivo mostrar los conceptos generales de la arquitectura de los computadores, necesarios
SIMM: TEORÍA DE LOS S.O. I.E.S. JUAN DE LA CIERVA CURSO 2007/2008
SIMM: TEORÍA DE LOS S.O. I.E.S. JUAN DE LA CIERVA CURSO 2007/2008 1.- INTRODUCCIÓN A LOS PROCESOS 1.1.- Concepto 1.2.- Composición y estructura 1.3.- Estados y transiciones 2.- COMUNICACIÓN ENTRE PROCESOS
CAPITULO 6. Control de Concurrencia y Recuperación
CAPITULO 6 Control de Concurrencia y Recuperación 6.1 Protocolos de Bloqueo Un protocolo de bloqueo nace de la necesidad creada cuando una transacción solicita un bloqueo de un modo particular sobre un
CICLOS DEL PROCESADOR
UNIDAD DE CONTROL CICLOS DEL PROCESADOR Qué es un ciclo de búsqueda? Para qué sirve estudiar los ciclos de instrucción de una CPU? Para comprender el funcionamiento de la ejecución de instrucciones del
Definición de Sistema Operativo
Definición de Sistema Operativo El sistema operativo es el programa (o software) más importante de un ordenador. Para que funcionen los otros programas, cada ordenador de uso general debe tener un sistema
Funcionamiento de la computadora
Funcionamiento de la computadora La computadora es una maquina destinada a procesar datos. Este procesamiento involucra dos flujos de información: el de datos y el de instrucciones. Se parte del flujo
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
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
Tema 14: Sistemas Secuenciales
Tema 14: Sistemas Secuenciales Objetivos: (CONTADORES) Introducción. Características de los contadores. Contadores Asíncronos. Contadores Síncronos. 1 INTRODUCCIÓN Los contadores son sistemas secuenciales
Sistemas Operativos Practica 1: procesos y concurrencia.
Sistemas Operativos Practica 1: procesos y concurrencia. Objetivos: Introducir al alumno a los conceptos de programa, concurrencia, paralelismo y proceso o tarea. Manejo del concepto de concurrencia haciendo
TEMA 7: Ficheros. TEMA 7: Ficheros. 7.1.-Concepto de fichero
TEMA 7: Ficheros 7.1.-Concepto de fichero Todas las estructuras de datos que hemos visto hasta ahora utilizan memoria principal. Esto tiene dos limitaciones importantes: 1. Los datos desaparecen cuando
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
Desarrollar un programa en SIMATIC S7 con codificación AWL que simule un sistema en el que una entrada digital active una salida digital.
Ejercicio 1 Desarrollar un programa en SIMATIC S7 con codificación AWL que simule un sistema en el que una entrada digital active una salida digital. Es recomendable que en este programa ya se comience
Sistemas Operativos: Programación de Sistemas. Curso Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J.
Tema 5 : Comunicación entre Procesos mediante Tuberías Sistemas Operativos: Programación de Sistemas Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Santana Pérez Curso 2006-07 Introducción Algunas
No hay un acuerdo universal sobre una definición de proceso, pero sí algunas definiciones aceptadas:
1 TEMA 2 ADMINISTRACIÓN DE PROCESOS El modelo de procesos Implantación de los procesos Comunicación entre procesos Problemas clásicos de la comunicación entre procesos Planificación de procesos INTRODUCCIÓN
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
El modelo de Procesos
Administración n de procesos El modelo de Procesos Concepto central dentro de cualquier sistema operativo. Proceso vs. Programa: Programa: Es un archivo o conjunto de archivos que contienen código ejecutable.
RESPUESTAS A LAS CUESTIONES DE REPASO DEL FINAL DE CADA CAPITULO DEL LIBRO SISTEMAS OPERATIVOS DE STALLINGS (4 ED)
RESPUESTAS A LAS CUESTIONES DE REPASO DEL FINAL DE CADA CAPITULO DEL LIBRO SISTEMAS OPERATIVOS DE STALLINGS (4 ED) Nota: El capítulo 1 (Introducción a los sistemas informáticos) y el capítulo 2 (Introducción
TEMA II: ALMACENAMIENTO DE LA INFORMACIÓN
CUESTIONES A TRATAR: Existe un tipo único tipo de memoria en un determinado computador? Todas las memorias de un computador tienen la misma función?. Qué es la memoria interna de un computador? Por qué
Sistemas Operativos. Dr. Luis Gerardo de la Fraga. Departamento de Computación Cinvestav
Sistemas Operativos Dr. Luis Gerardo de la Fraga E-mail: [email protected] http://cs.cinvestav.mx/~fraga Departamento de Computación Cinvestav 12 de junio de 2015 Dr. Luis Gerardo de la Fraga Cinvestav,
Tarea #1 Comunicación y Sincronización entre Procesos
Comunicación y Sincronizacion 1 Tarea #1 Comunicación y Sincronización entre Procesos 1. Enumere cuatro elementos de diseño para los cuales es necesario el concepto de concurrencia. La concurrencia comprende
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
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
Estatutos de Control C# Estatutos de Decisión (Selección)
SELECCIÓN Estatutos de Control C# Estatutos de Decisión (Selección) IF Condición THEN Estatuto1 ELSE Estatuto2 Estatuto1 Statement Condición... Antes de ver esta presentación: Lee el Capítulo correspondiente
Tema 3: Concurrencia de procesos
Tema 3: Concurrencia de procesos Yolanda Blanco Fernández [email protected] Concurrencia, Tiempo Real y Paralelismo Concurrencia: Convivencia de un conjunto de procesos en un mismo ordenador. Sistemas
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é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
- 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
Redes (IS20) Ingeniería Técnica en Informática de Sistemas. CAPÍTULO 5: Subcapa de acceso al medio
Redes (IS20) Ingeniería Técnica en Informática de Sistemas http://www.icc.uji.es CAPÍTULO 5: Subcapa de acceso al medio ÍNDICE Curso 2002-2003 - Redes (IS20) -Capítulo 5 1 Tipos de redes: de difusión y
Sistemas Operativos. Clase 2: Administración de procesos.
Sistemas Operativos Clase 2: Administración de procesos. Administración de procesos Un concepto muy importante en el ambiente de diseño de todo sistema operativo, es el de proceso o tarea. De manera general,
Seguridad. Mecanismos de protección Canales encubiertos Seguridad multinivel
Seguridad Mecanismos de protección Canales encubiertos Seguridad multinivel Mecanismos de protección Un dominio de protección es un conjunto de pares (objetos, permisos) que especifica para cada objeto
ESCUELA POLITÉCNICA SUPERIOR PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF
ESCUELA POLITÉCNICA SUPERIOR GRADO EN DISEÑO IND. INFORMÁTICA CURSO 2012-13 PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF HASTA AHORA... En prácticas anteriores se ha aprendido: La estructura principal de un
Funciones básicas del depurador
Funciones básicas del depurador Con frecuencia, los alumnos piensan que cuando su programa no tiene errores de compilación (está correctamente escrito) entonces ya es correcto. Muchas veces esto no es
Ciclos. Recordando Estructuras de Control Básicas: SELECCIÓN (condición) SECUENCIAL
Ciclos Fundamentos de Programación Recordando Estructuras de Control Básicas: Una secuencia es una serie de estatutos que se ejecutan uno después de otro. Selección (condición) ejecuta diferentes estatutos
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
Diseño de sistemas concurrentes
Diseño de sistemas concurrentes Manuel Carro Universidad Politécnica de Madrid Necesidad de diseño Hasta ahora, problemas ya cerrados: Número de procesos, recursos Código de procesos Especificación de
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
SISTEMAS OPERATIVOS AVANZADOS
SISTEMAS OPERATIVOS AVANZADOS TEMA 3 CLAVE: MIS 204 PROFESOR: M.C. ALEJA DRO GUTIÉRREZ DÍAZ 3. PROCESOS CONCURRENTES 3.1 Conceptos de programación concurrente 3.2 El problema de la sección crítica 3.3
CPU MEMORIAS CACHE. Memorias caché. Memoria caché = memoria de tamaño pequeño y acceso rápido situada entre la CPU y la memoria principal.
MEMORIAS CACHE Memoria caché = memoria de tamaño pequeño y acceso rápido situada entre la CPU y la memoria principal. Tiempo ciclo memoria > tiempo de ciclo del procesador la CPU debe esperar a la memoria
SOLUCIONES A ALGUNOS DE LOS EJERCICIOS DE SINCRONIZACION Y COMUNICACION ENTRE PROCESOS
SOLUCIONES A ALGUNOS DE LOS EJERCICIOS DE SINCRONIZACION Y COMUNICACION ENTRE PROCESOS 1. Con las tres llamadas create, suspend, y resume, la estructura del programa sería la siguiente: process recoger;
Computación II. Introducción a Visual Basic
Computación II Introducción a Visual Basic Introducción a Visual Basic Microsoft Visual Basic es un conjunto de herramientas que posibilitan el desarrollo de aplicaciones para Windows de una manera rápida
Práctica 2: Análisis de sensibilidad e Interpretación Gráfica
Práctica 2: Análisis de sensibilidad e Interpretación Gráfica a) Ejercicios Resueltos Modelización y resolución del Ejercicio 5: (Del Conjunto de Problemas 4.5B del libro Investigación de Operaciones,
4.1 Dispositivos y manejadores de dispositivos: device drivers
Unidad IV: Administración de entrada/salida 4.1 Dispositivos y manejadores de dispositivos: device drivers Se pueden clasificar en dos grandes categorías: 1. Dispositivos de bloque 2. Dispositivos de carácter
Estructura del Computador
Estructura del Computador 1 definiciones preliminares Estructura: es la forma en que los componentes están interrelacionados Función: la operación de cada componente individual como parte de la estructura.
Diagrama temporal de un programa simple. Multi-Programación con dos programas
Diagrama temporal de un programa simple Multi-Programación con dos programas Multi-Programación con tres programas Gestión de la Memoria Mono-programación La memoria se divide en dos partes: Una para el
TEMA 2: Sistemas Operativos
TEMA 2: Sistemas Operativos 2.1. QUÉ ES UN SISTEMA OPERATIVO? Un sistema operativo es un conjunto de programas encargados de gestionar los recursos del ordenador y que permiten la comunicación del usuario
Operadores de comparación
Operadores de comparación Los operadores de comparación en C son: Igual (==) Distinto (!=) Mayor (>) y Mayor o igual (>=) Menor (
HP - UX. Qué es HP UX?
HP - UX Integrantes: Cisneros Pedraza Christian. Jiménez Nieves José Manuel. Villanueva Armenta Fernando. Qué es HP UX? Hp UX es una variante de Unix creada por los desarrolladores de software de HP. Provee
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
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
Estructura y partes del teclado
Estructura y partes del teclado El teclado esta dividido en 4 partes fundamentales: el teclado alfanumérico, el teclado numérico, las teclas de función, las teclas de control. 1. El teclado alfanumérico
Oliverio J. Santana Jaria. Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso Los objetivos de este tema son:
3. Circuitos aritméticos ticos Oliverio J. Santana Jaria Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso 2006 2007 Introducción La realización de operaciones aritméticas y lógicas
Práctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros
Práctica 3. Paso de parámetros entre subrutinas 1. Objetivo de la práctica El objetivo de esta práctica es que el estudiante se familiarice con la programación en ensamblador y el convenio de paso de parámetros
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
UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE CIENCIAS PRACTICA DE PROCESOS HERRAMIENTAS
UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE CIENCIAS PRACTICA DE PROCESOS HERRAMIENTAS Caso 1: 1.- Necesitamos un cd o Dvd para grabar alguna de las versiones de livecd de Linux. 2.- Liga de una
Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.
LENGUAJE C CARACTERISTICAS DEL LENGUAJE 'C' El lenguaje 'C' se conoce como un lenguaje compilado. Existen dos tipos de lenguaje: interpretados y compilados. Los interpretados son aquellos que necesitan
Tema 3. Electrónica Digital
Tema 3. Electrónica Digital 1.1. Definiciones Electrónica Digital La Electrónica Digital es la parte de la Electrónica que estudia los sistemas en los que en cada parte del circuito sólo puede haber dos
Estructuras Repetitivas
Estructuras Repetitivas Se solicita al operador que ingrese tres números enteros cualesquiera. En base a estos números, mostrar por pantalla cual es el mayor de todos. Diag. De Flujos Pseudocódigo Matlab
Equipamiento ADSL» Inalámbrico. Adaptador USB PAUTAS PARA LA VERIFICACION TCP/IP
Equipamiento ADSL» Inalámbrico Adaptador USB PAUTAS PARA LA VERIFICACION TCP/IP PAUTAS PARA LA VERIFICACIÓN TCP/IP Este documento describe cómo preparar su PC para su conexión a una red inalámbrica después
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
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
Sincronización. Arquitectura de Computadores
Sincronización Arquitectura de Computadores J. Daniel García Sánchez (coordinador) David Expósito Singh Javier García Blas Óscar Pérez Alonso J. Manuel Pérez Lobato Grupo ARCOS Departamento de Informática
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
PROCEDIMIENTO GENERAL. Gestión de Incidencias y Acciones Correctivas RAZÓN SOCIAL DE LA EMPRESA. Código PG-12 Edición 0. Índice:
Índice: 1. TABLA RESUMEN... 2 2. OBJETO... 2 3. ALCANCE... 2 4. RESPONSABILIDADES... 3 5. ENTRADAS... 4 6. SALIDAS... 4 7. PROCESOS RELACIONADOS... 4 8. DIAGRAMA DE FLUJO... 5 9. DESARROLLO... 6 9.1. DETECCIÓN
PROGRAMACIÓN. UNIDAD II. ALGORITMO PROFA : HAU MOY
PROGRAMACIÓN. UNIDAD II. ALGORITMO PROFA : HAU MOY ALGORITMO DEFINICIÓN: CONSISTE EN LA DESCRIPCIÓN CLARA Y DETALLADA DEL PROCEDIMIENTO A SEGUIR PARA ALCANZAR LA SOLUCIÓN A UN PROBLEMA EN DONDE SE ESTABLECE
Unidad 2: Gestión de Procesos
Unidad 2: Gestión de Procesos Tema 4, Procesos: 4.1 El concepto de proceso. 4.2 Planificación de procesos. 4.3 Procesos cooperativos. 4.4 Hilos (threads). Informática (Segovia) 1 4.1 El concepto de proceso.
BLOQUEOS. Por aprendebaloncesto.
BLOQUEOS. Por aprendebaloncesto. A continuación vuelco unos apuntes que cogí durante el Curso de Entrenador de Segundo Nivel en Madrid, en las clases de un magnífico profesor entrenador, del que aprendí
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
Registros de desplazamiento
Registros de desplazamiento Definición de registro de desplazamiento básico Tipos de registro de desplazamiento Configuraciones específicas Aplicaciones más típicas VHDL Ejercicio propuestos Definición
Sistemas Operativos Administración de la Memoria
UNIVERSIDAD INTERNACIONAL SAN ISIDRO LABARDOR Escuela de Ingeniería en Sistemas Sistemas Operativos Administración de la Memoria Cuatrimestre II-2006 Recopilado por Ing. Fernely Artavia Fallas INTRODUCCIÓN
Problema 1. Para un planeta general del interior, la probabilidad de visita se calculará a partir de la probabilidad de los planetas anteriores. .
Problema l comandante de la flota escarlata está muy interesado en saber cual es la probabilidad de encuentro con la flota azul, que si ocurre tal encuentro será en algún planeta de la diagonal central.
CONTROLES ELÉCTRICOS PRÁCTICA 6: PROGRAMACIÓN DE PLC UNIDAD 5 LIRA MARTÍNEZ MANUEL ALEJANDRO DOCENTE: PACHECO HIPÓLITO JAVIER
CONTROLES ELÉCTRICOS PRÁCTICA 6: PROGRAMACIÓN DE PLC UNIDAD 5 LIRA MARTÍNEZ MANUEL ALEJANDRO DOCENTE: PACHECO HIPÓLITO JAVIER ENTREGA: 26/11/2010 1 INTRODUCCIÓN La tecnología es cada vez más sencilla de
PROCESADORES. Existen 3 tipos de procesadores: DE GALLETA, DE PINES Y DE CONTACTO. DE GALLETA: se utilizaban en las board en los años 80 y 90.
PROCESADORES TIPOS DE PROCESADORES. Existen 3 tipos de procesadores: DE GALLETA, DE PINES Y DE CONTACTO DE GALLETA: se utilizaban en las board en los años 80 y 90. DE PINES: reemplazaron los procesadores
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
Instrucciones de control
Instrucciones de control Instrucciones de control de flujo C# ofrece un conjunto de sentencias similar al de C, C++ o Java. A continuación se estudian muy brevemente cada una de ellas. if if se utiliza
Se llama hardware a todos los dispositivos que forman la PC y que se puedan tocar, es decir, es todo el conjunto de accesorios que se le pueden
Se llama hardware a todos los dispositivos que forman la PC y que se puedan tocar, es decir, es todo el conjunto de accesorios que se le pueden agregar a una computadora. Ejemplo: Monitor, Teclado, CPU,
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
Introducción a los Sistemas Operativos
Introducción a los Sistemas Operativos (primera parte) USB Agosto 2012 Introduccion Un ordenador moderno consiste de uno o más procesadores, alguna memoria principal, discos, impresoras, un teclado, una
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
Fundamentos de Ordenadores. Depurar programas usando Nemiver
Fundamentos de Ordenadores Depurar programas usando Nemiver Departamento de Arquitectura de Computadores Autor: Mario Macias. Fecha de elaboración: 16/10/2015 1 Manual básico Nemiver Nemiver es un sencillo
ENIAC, Primer computador electrónico y su panel de conexiones
-1 La arquitectura de Von Neumann. Los primeros computadores se programaban en realidad recableándolos. Esto prácticamente equivalía a reconstruir todo el computador cuando se requería de un nuevo programa.
Introducción a la Operación de Computadoras Personales
Introducción a la Operación de Computadoras Personales Conceptos básicos de computadoras: Software Dr. Diego García Depto. de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur, Bahía
Sistemas Electrónicos Digitales
Sistemas Electrónicos Digitales Profesor: Carlos Herrera C. I. Unidad COMPUERTAS LOGICAS Las compuertas lógicas son dispositivos que operan con aquellos estados lógicos Binarios y que funcionan igual que
Soluciones a los problemas impares. Tema 5. Memorias. Estructura de Computadores. I. T. Informática de Gestión / Sistemas
Tema 5. Soluciones a los problemas impares Estructura de Computadores I. T. Informática de Gestión / Sistemas Curso 28-29 Tema 5 Hoja: 2 / 36 Tema 5 Hoja: 3 / 36 Base teórica La memoria es el lugar en
Tema 1: Arquitectura de ordenadores, hardware y software
Fundamentos de Informática Tema 1: Arquitectura de ordenadores, hardware y software 2010-11 Índice 1. Informática 2. Modelo de von Neumann 3. Sistemas operativos 2 1. Informática INFORMación automática
