Estados de un proceso
|
|
|
- Javier Ruiz Roldán
- hace 8 años
- Vistas:
Transcripción
1 Semáforos
2 Estados de un proceso Inactivo Listo Ejecutando Completo Escribimos p.state := ready p. state := running Bloqueado Para indicar que un proceso cambia de estado
3 Semáforo Es un tipo de dato abstracto Operaciones wait (originalemente P) and signal (org. V)
4 Semáforo Es un tipo de dato abstracto Representación: int V; conjunto<procesos> L;
5 Semáforo wait(semáforo S) if S.V > 0 then S.V := S.V -1 else S.L := S.L {p} p.state := bloqueado
6 Semáforo wait(semáforo S) if S.V > 0 then S.V := S.V -1 else S.L := S.L {p} p.state := bloqueado p denota el proceso que invoca a la operación wait
7 Semáforo signal(semáforo S) if S.L = then S.V := S.V + 1 else let p S.L S.L := S.L {p} p.state := ready
8 Semáforo binario (o mutex) Es un semáforo donde V puede tomar valores 0 o 1 (true, false) signal(semáforo S) if S.V = 1 then //indefinido if S.L = then S.V := S.V + 1 else let p S.L S.L := S.L {p} p.state := ready
9 Invariantes de semáforo Teorema: a. S.V 0 b. S.V = k + #signal(s) - # wait(s) Se considera que un proceso bloqueado en un wait no realizó la operación wait
10 Exclusión mutua con mutex Usar un semáforo binario S inicializado en V= 1 L= ThreadId = 0 ThreadId = 1 while(true) Sección no crítica wait(s) Sección crítica signal(s) while(true) Sección no crítica wait(s) Sección crítica signal(s)
11 La exclusión mutua basada en semáforos es correcta a. #CS = #wait(s) - #signal(s) b. #CS + S.V = 1 Son invariantes Prueba) a. Por inducción estructural en el programa. b. Usando invariante semáforos S.V = k + #signal(s) - # wait(s) valor inicial = 1 S.V = 1 + #signal(s) - # wait(s) por a. S.V = 1 - #CS luego #CS + S.V = 1
12 La exclusión mutua basada en semáforos es correcta a. #CS = #wait(s) - #signal(s) b. #CS + S.V = 1 Son invariantes Prueba) a. Por inducción estructural en el programa. b. Usando invariante semáforos S.V = k + #signal(s) - # wait(s) valor inicial = 1 S.V = 1 + #signal(s) - # wait(s) por a. S.V = 1 - #CS luego #CS + S.V = 1 Cantidad de procesos ejecutando su región crítica
13 La exclusión mutua basada en semáforos es correcta a. #CS = #wait(s) - #signal(s) b. #CS + S.V = 1 Son invariantes Prueba) a. Por inducción estructural en el programa. b. Usando invariante semáforos S.V = k + #signal(s) - # wait(s) valor inicial = 1 S.V = 1 + #signal(s) - # wait(s) por a. S.V = 1 - #CS luego #CS + S.V = 1
14 La exclusión mutua basada en semáforos es correcta Notar que #CS + S.V = 1 a) garantiza la exclusión mutua (#CS 1) a) garantiza que no hay deadlock dado que deadlock sería dos procesos bloqueados en wait, esto implica S.V = 0 y #CS = 0. a) garantiza que no hay starvation dado que un proceso debería estar siempre en el conjunto de bloqueados. Para esto el otro debe estar en su sección crítica, pero cuando completa la sección critica ejecuta signal. Como hay dos procesos, el otro debe pasar a listo y entrar en la sección crítica.
15 Sección crítica para N procesos Qué sucede cuando tenemos varios procesos?
16 Sección crítica para N procesos Qué sucede cuando tenemos varios procesos? Hay posibilidad de starvation Notar que la operación signal puede desbloquear un proceso cualquiera del conjunto. Esto puede solucionarse cambiando el conjunto por una cola
17 Semáforos fuertes La definición de semáforos que vimos es débil (los procesos bloqueados están en un conjunto) En los semáforos fuertes el conjunto de procesos bloqueados se remplaza por una cola (FIFO)
18 Filósofos comensales (dinning philosophers) Hay un grupo de filósofos que pasa su tiempo pensando y comiendo Hay tantos tenedores como filósofos Un filósofo puede comer sólo cuando tiene dos tenedores Un filósofo puede tomar sólo los tenedores a su izquierda y a su derecha
19 Filósofos comensales El comportamiento de cada filósofo podría describirse como Filosofo_N While(true){ pensar tomar tenedores comer liberar tenedores }
20 Filósofos comensales Un problema de concurrencia clásico Mutex: en un momento dado sólo un filósofo puede tener un tenedor dado Sincronización condicional: un filósofo puede comer sólo cuando tiene dos tenedores Deadlock Livelock Starvation
21 Filósofos comensales Usando N semáforos Filosofo(i) izq = i; der = (i+1)%n; While(true){ pensar wait(tenedores[izq]) wait(tenedores[der]) comer signal(tenedores[izq]) signal(tenedores[der]) }
22 Filósofos comensales Si dos filósofos toman el tenedor izquierdo al mismo tiempo se produce deadlock En general, el deadlock ocurre porque se crea una espera circular
23 Solución 1- Romper la simetría
24 Solución 1- Romper la simetría Uno de los filósofos se debe comportar distinto Tomar primero el tenedor a su derecha y luego el que está a su izquierda Filosofo(i) if (i == 0) {izq = 1; der = 0} else {izq = i; der = (i+1)%n} While(true){ pensar wait(tenedores[izq]) wait(tenedores[der]) comer signal(tenedores[izq]) signal(tenedores[der]) }
25 Solución 2- Reducir la concurrencia No permitir a todos los filósofos tomar tenedores Usar un semáforo sillas con N-1 permisos Filosofo(i) izq = i; der = (i+1)%n While(true){ pensar wait(sillas) wait(tenedores[izq]) wait(tenedores[der]) comer signal(tenedores[izq]) signal(tenedores[der]) signal(sillas) }
26 Solución 2- Reducir la concurrencia
27 Solución 2- Reducir la concurrencia No permitir a todos los filósofos tomar tenedores
28 Solución 2- Reducir la concurrencia No permitir a todos los filósofos tomar tenedores Usar un semáforo sillas con N-1 permisos Filosofo(i) izq = i; der = (i+1)%n While(true){ pensar wait(sillas) wait(tenedores[izq]) wait(tenedores[der]) comer signal(tenedores[izq]) signal(tenedores[der]) signal(sillas) }
29 Productor/Consumidor Es un patrón de interacción frecuente El problema es cómo manejamos las diferentes velocidades entre la producción y la consumición
30 Buffer no acotado Productor puede trabajar libremente Consumidor debe esperar al productor
31 Buffer acotado El productor tiene que esperar cuando el buffer está lleno Consumidor tiene que esperar cuando el buffer está vacío
32 Buffers usando semáforos Capacidad 1 Varios productores Varios consumidores Semáforos
33 Semáforos binarios split Dos semáforos 1 semáforo para indicar cuándo hay espacio libre en el buffer (vacío) 1 semáforo para indicar cuándo hay un elemento en el buffer (lleno) Inicialización Vacio = 1; Lleno = 0; Invariante Vacio + lleno 1
34 Exclusión mutua con mutex Usar dos semáforos binarios aparte del buffer compartido vacio= 1 lleno= 0 Productor While(true) { producir dato wait(vacio) buffer = dato signal(lleno) } Consumidor While(true) { wait(lleno) dato = buffer signal(vacio) Consumir dato }
35 Buffer de tamaño N Los productores agregan al frente Los consumidores toman de atrás
36 Semáforos generales Los semáforos cuentan la cantidad de espacios en el buffer Inicialización Hay N espacios vacios Hay 0 espacio lleno Invariante Vacío+lleno N
37 Semáforos generales Variables compartidas Semaforo vacio = N; Semáforo lleno = 0; Dato buffer[n] int Inicio = 0; int Fin = 0;
38 Único Productor Productor While(true) { producir dato wait(vacio) buffer[inicio] = dato inicio = (inicio + 1) % N; signal(lleno) }
39 Múltiples Productores Usar un semáforo para sincronizar los productores mutexp = 1 Productor While(true) { producir dato wait(vacio) wait(mutexp) buffer[inicio] = dato inicio = (inicio + 1) % N; signal(mutexp) signal(lleno) }
40 Múltiples Consumidores Usar un semáforo para sincronizar los consumidores mutexc = 1 Productor While(true) { producir dato wait(lleno) wait(mutexc) dato = buffer[fin] fin = (fin + 1) % N; signal(mutexc) signal(vacio) }
41 Lectores/Escritores
42 Lectores/Escritores (Prioridad Lectores) Lector! Semáforo escribir = 1, mutex = 1! Variable compartida #lect = 0 Escritor While(true) { wait(mutex) #lect ++ if (#lect = 1) then wait(escribir) signal(mutex) // leer wait(mutex) #lect -- if (#lect = 0) then signal(escribir) signal(mutex) While(true) { wait(escribir) // escribir signal(escribir) }
43 Lectores/Escritores (Prioridad escritores) Escritores)! Semáforo escribir = 1, leer = 1, mutexl = 1, mutexe = 1, mutex= 1.! Variable compartida #lect = 0, #esc = 0 Lector While(true) { wait(mutex) wait(leer) wait(mutexl) #lect ++ if (#lect = 1) then wait(escribir) signal(mutexl) signal(leer) signal(mutex) // leer wait(mutexl) #lect -- if (#lect = 0) then signal(escribir) signal(mutexl) } Escritor While(true) { wait(mutexe) #esc ++ if (#esc = 1) then wait(leer) signal(mutexe) wait(escribir) // escribir signal(escribir) wait(mutexe) #esc -- if (#esc = 0) then signal(leer) signal(mutexe) }
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
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
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
El problema de los Filósofos
El problema de los Filósofos Problemas de Programación Concurrente Solución con Semáforos Para evitar una situación de interbloqueo se limita el número de filósofos en disposición de comer a 4. PROGRAM
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
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.
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
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
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
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
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
Monitores. Implementación de un Buffer con monitores
Monitores Los monitores corresponden a la segunda herramienta de sincronización que veremos en el curso. Se usan para garantizar la exclusión mutua en secciones críticas y para esperar la ocurrencia de
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;
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
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
Receta general para resolver problemas de sincronización con semáforos
Receta general para resolver problemas de sincronización con semáforos La primera vez que te enfrentas a la tarea de implementar una solución a un problema de sincronización entre procesos, es normal que
Programación Concurrente y Paralela. P(S) ; sección crítica P(S);
2.5.2 Monitores Los semáforos, a pesar de su sencillez de uso, son el equivalente a las instrucciones goto y el manejo de apuntadores en los lenguajes de programación imperativos: son muy susceptibles
ESCUELA SUPERIOR DE INFORMATICA SISTEMAS OPERATIVOS PROBLEMAS DE SINCRONIZACION Y COMUNICACION ENTRE PROCESOS
ESCUELA SUPERIOR DE INFORMATICA SISTEMAS OPERATIVOS PROBLEMAS DE SINCRONIZACION Y COMUNICACION ENTRE PROCESOS 1. En lugar de utilizar señales, resolver el problema de la sincronización entre procesos que
dit UPM Tema 3: Concurrencia /ejercicios Análisis y diseño de software José A. Mañas 3.4.2014 http://jungla.dit.upm.es/~pepe/doc/adsw/index.
Análisis y diseño de software dit UPM Tema 3: Concurrencia /ejercicios José A. Mañas http://jungla.dit.upm.es/~pepe/doc/adsw/index.html 3.4.2014 ejercicio 1.1 programar una cuenta bancaria compartida 1.
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
Programación Concurrente Recopilación de teoría referente a la materia
UNIVERSIDAD AMERICANA Programación Concurrente Recopilación de teoría referente a la materia Ing. Luis Müller 2011 Esta es una recopilación de la teoría referente a la asignatura Programación Concurrente,
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
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
Exclusión mutua. Gustavo Romero. 14 de febrero de 2014. Arquitectura y Tecnología de Computadores
Exclusión mutua Gustavo Romero Arquitectura y Tecnología de Computadores 14 de febrero de 2014 Gustavo Romero Exclusión mutua (1/109) Índice 1 Introducción 2 Usuario 3 Hardware Cerrojos Gestión de interrupciones
Mensajes. (versión preliminar)
Mensajes (versión preliminar) Ejemplo: productor/consumidor con buffer de tamaño 0 void produce(item *p_it); void consume(item *p_it); int nmain() { ntask cons= nemittask(consproc); ntask prod= nemittask(prodproc,
CAPÍTULO 8. Comunicación y sincronización basada en variables compartidas
CAPÍTULO 8. Comunicación y sincronización basada en variables compartidas 8 Comunicación y sincronización basada en variables compartidas...2 8.1 Exclusión mutua y condición de sincronización....2 8.2
Comunicación y Sincronización con Monitores Resumen del Tema
Notas de clase de Programación Concurrente Comunicación y Sincronización con Monitores Resumen del Tema Dpto de Lenguajes y Ciencias de la Computación Universidad de Málaga María del Mar Gallardo Melgarejo
Capítulo 3: Procesos. n Concepto de Proceso. n Despacho (calendarización) de Procesos. n Operaciones en Procesos. n Procesos en cooperación
3.- Procesos Capítulo 3: Procesos Concepto de Proceso Despacho (calendarización) de Procesos Operaciones en Procesos Procesos en cooperación Compunicación Interprocesos Communicación en sistemas Cliente-Servidor
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
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
2 Control de procesos y sincronización
2 Control de procesos y sincronización En los sistemas multiprogramados se define el proceso como entidad representante de la ejecución de un programa en un determinado contexto. Aunque hoy en día se ha
324 MR Versión 1 Prueba Integral 1/3 Semana 10 Lapso 2015-2
324 MR Versión 1 Prueba Integral 1/3 UNIVERSIDAD NACIONAL ABIERTA VICERRECTORADO ACADÉMICO ÁREA INGENIERÍA MODELO DE RESPUESTA ASIGNATURA: Computación II CÓDIGO: 324 MOMENTO: Prueba Integral FECHA DE APLICACIÓN:
PROGRAMACIÓN EN JAVA
SISTEMAS INFORMÁTICOS INDUSTRIALES curso 2007-2008 PROGRAMACIÓN EN JAVA PRÁCTICA 3: Comunicación entre tareas. Modelo productor / consumidor. Objetivos Implementar una aplicación en Java en la que existan
Benemérita Universidad Autónoma del Estado de Puebla
Benemérita Universidad Autónoma del Estado de Puebla Facultad de Cs. De la Computación Programación Concurrente y Paralela Práctica de Laboratorio No. 4 Profr: María del Carmen Cerón Garnica Alumno: Roberto
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
El lenguaje C. 1. Identificadores, constantes y variables
Principios de Programación El lenguaje C 1. Identificadores, constantes y variables 1.1. Conceptos de memoria Los nombres de variable como x, y, suma corresponden a localizaciones o posiciones en la memoria
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
Práctica de constantes, expresiones y operadores. Programación en C 1
Práctica de constantes, expresiones y operadores Programación en C 1 Definición de variables (II) Las variables (automáticas) no inicializadas tienen cualquier valor. Una variable (automática) se inicializa
- 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
Solución Examen Febrero 2006
Solución Examen Febrero 2006 Lea detenidamente las siguientes instrucciones. No cumplir los requerimientos puede implicar la pérdida del examen. Formato Indique su nombre completo y número de cédula en
Sistemas Operativos Práctica 4
Sistemas Operativos Práctica 4 Ing. Andrés Bustamante [email protected] Ingeniería de Sistemas Facultad de Ingeniería Universidad de la Amazonia 2009 1. Objetivo El objetivo de la práctica es que
Threads. La plataforma JAVA soporta programas multhreading a través del lenguaje, de librerías y del sistema de ejecución. Dos.
Threads Un thread es un flujo de control secuencial dentro de un programa. A los threads también se los conoce como procesos livianos ó contextos de ejecución. Un thread es similar a un programa secuencial:
MONITORES EN JAVA. Antonio Tomeu Control de la Concurrencia en Java: API Estándar
MONITORES EN JAVA Un monitor es un objeto que implementa acceso bajo e.m. a todos sus métodos, y provee sincronización En Java, son objetos de una clase cuyos métodos públicos son todos synchronized Un
1. Equivalencia de herramientas. Implemente las primitivas de las regiones críticas condicionales con semáforos. (2pt).
1. Equivalencia de herramientas. Implemente las primitivas de las regiones críticas condicionales con semáforos. (2pt). La respuesta a esta pregunta se encuentra en el texto base de la asignatura em las
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
MODELADO Y SIMULACIÓN. Febrero de Primera semana
Febrero de 2016 - Primera semana PREGUNTA 1 (3 puntos) Se pretende estudiar mediante simulación el funcionamiento de una lavandería industrial dedicada a la limpieza y planchado de manteles y servilletas.
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
Java: Programación Multithread
Qué es un thread? Java: Programación Multithread Hasta el momento hemos desarrollado programas secuenciales con un único thread: en cualquier instante durante la ejecución de un programa hay un único punto
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
Federico Peinado www.federicopeinado.es
Federico Peinado www.federicopeinado.es Depto. de Ingeniería del Software e Inteligencia Artificial disia.fdi.ucm.es Facultad de Informática www.fdi.ucm.es Universidad Complutense de Madrid www.ucm.es
07 << Acceso en exclusiva al recurso compartido >>
Sistemas Operativos 4º Semestre. Grados II y MI Cuarto Parcial. Sistema de Ficheros. 2 de Junio de 2014. Dispone de 50 minutos. Publicación de notas el Jueves 5 de Junio 2014. Revisión el Viernes 6 de
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
Unidad 29: Formato condicional
Unidad 29: Formato condicional 29.0 Introducción El formato condicional es un formato que depende del valor de una celda o de su contenido. Por ejemplo, en una base de datos de salarios del personal, usted
Sorting++ Herman Schinca. Clase 21. 10 de Junio de 2011
Sorting++ Herman Schinca Clase 21 10 de Junio de 2011 Recordando Ya vimos 3 algoritmos de ordenamiento basados en la comparación entre elementos: Selection, Insertion y Bubble. Los 3 en peor caso (cuando
Programación de Computadores 4 Iteraciones y Decisiones. Prof. Javier Cañas. Universidad Técnica Federico Santa María Departamento de Informática
Programación de Computadores 4 Iteraciones y Decisiones Prof. Javier Cañas Universidad Técnica Federico Santa María Departamento de Informática Contenido 1 Introducción 2 Operadores Relacionales y Lógicos
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
Programación Concurrente en Java
Hebras y monitores Departamento de Sistemas Informáticos y Programación Universidad Complutense de Madrid 21 de marzo de 2006 Threads Extendiendo la clase java.lang.thread. public class PrThread extends
Conceptos de Arquitectura de Computadoras Curso 2015
PRACTICA 1 Assembly, Instrucciones, Programas, Subrutinas y Simulador MSX88 Objetivos: que el alumno Domine las instrucciones básicas del lenguaje assembly del MSX88. Utilice los diferentes modos de direccionamiento.
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
TEMA 2.-INTRODUCCIÓN A LOS CONCEPTOS DE OFERTA Y DEMANDA: EL EQUILIBRIO DEL MERCADO
TEMA 2.-INTRODUCCIÓN A LOS CONCEPTOS DE OFERTA Y DEMANDA: EL EQUILIBRIO DEL MERCADO 2.0.- INTRODUCCIÓN 2.1.- FUNCIÓN DE DEMANDA Y MOVIMIENTOS 2.2.- FUNCIÓN DE OFERTA Y MOVIMIENTOS 2.3.- EL EQUILIBRIO DE
Algoritmos y programas. Algoritmos y Estructuras de Datos I
Algoritmos y programas Algoritmos y Estructuras de Datos I Primer cuatrimestre de 2012 Departamento de Computación - FCEyN - UBA Programación funcional - clase 1 Funciones Simples - Recursión - Tipos de
Sistemas Distribuidos
Sistemas Distribuidos Exclusion Mutua: Memoria Compartida. Ramiro De Santiago Lopez. 28/01/2014 Exclusion Mutua (ME) Un proceso excluye temporalmente a todos los demás para usar un recurso compartido.
Tema 2. El lenguaje JAVA
Tema 2. El lenguaje JAVA Nomenclatura habitual Variables Tipos de variables Tipos primitivos Referencias Arrays Operadores Operadores de Java Precedencia de operadores Sentencias de control Sentencias
EXÁMENES RESUELTOS SISTEMAS OPERATIVOS INFORMÁTICA SISTEMAS Y GESTIÓN
EXÁMENES RESUELTOS SISTEMAS OPERATIVOS INFORMÁTICA SISTEMAS Y GESTIÓN DELEGACIÓN DE ALUMNOS CENTRO ASOCIADO DE BALEARES EXÁMENES SISTEMAS OPERATIVOS SISTEMAS OPERATIVOS I Mayo 2000 INFORMÁTICA DE SISTEMAS
2.2 Nombres, Ligado y Ámbito
2.2 Nombres, Ligado y Ámbito Ligado estático y dinámico, reglas de ámbito y prueba de tipos. Conceptos Nombres e Identificadores Variables Tipos Ámbito Constantes Nombres Identificador que designa en el
Concurrencia y Distribución
Concurrencia y Distribución Dr. Arno Formella Universidad de Vigo Departamento de Informática Área de Lenguajes y Sistemas Informáticos E-32004 Ourense http://www.ei.uvigo.es/ formella Email: [email protected]
Nota 2. Luis Sierra. Marzo del 2010
Nota 2 Luis Sierra Marzo del 2010 Cada mecanismo de definición de conjuntos que hemos comentado sugiere mecanismos para definir funciones y probar propiedades. Recordemos brevemente qué son las funciones
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
<tipo> Tipo de dato de los elementos del vector
Vectores y matrices Declaración Vector (array unidimiensional): []; Tipo de dato de los elementos del vector Identificador de la variable.
Lo normal es que existan varios niveles de prioridad (en Windows CE 256). 0 es la máxima prioridad y 255 la mínima.
Lo normal es que existan varios niveles de prioridad (en Windows CE 256). 0 es la máxima prioridad y 255 la mínima. Cuando se crea un hilo, el sistema le asigna una prioridad por defecto ( en windows CE
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
DEFINICION. Ing. M.Sc. Fulbia Torres Asignatura: Estructuras de Datos Barquisimeto 2006
ARBOLES ESTRUCTURAS DE DATOS 2006 DEFINICION Un árbol (tree) es un conjunto finito de nodos. Es una estructura jerárquica aplicable sobre una colección de elementos u objetos llamados nodos; uno de los
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
Arquitecturas cliente/servidor
Arquitecturas cliente/servidor Servidores y Clientes Sincronizados Contenido Procesos Semáforos Sincronización Lectura y Escritura de Archivos Servidores Orientados a Conexión Servidores No Orientados
Operaciones lógicas principales: Negación, Conjunción y Disyunción
Operaciones lógicas principales: Negación, Conjunción y Disyunción Definiciones informales. A es verdadera A es falsa A B es verdadera A es verdadera y B es verdadera A B es verdadera A es verdadera o
Test : Conteste exclusivamente en una HOJA DE LECTURA ÓPTICA, no olvidando marcar que su tipo de examen es A.
SISTEMAS INFORMÁTICOS I Junio 2003 INGENIERÍA EN INFORMÁTICA - Código Carrera 55 - Código Asignatura 077 Tipo de Examen: A NO SE PERMITE EL USO DE NINGÚN MATERIAL Tiempo: 2 horas Apellidos: Nombre: DNI:
Organización del Computador 1 Memoria Cache
Organización del Computador 1 Memoria Cache Departamento de Computación Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires 2011 Memorias: Evolución Memoria cache Pioneros: Maurice Wilkes
Introducción a C++ y Code::Blocks
Introducción a C++ y Práctica Imperativo Clase 1 Luis Agustín Nieto Departamento de Computación, FCEyN,Universidad de Buenos Aires. 28 de mayo de 2010 Menu de esta Tarde Funcional Vs. Imperativo (Intérprete
Tema: USO DE MEMORIAS RAM Y ROM
Tema: USO DE MEMORIAS RAM Y ROM Facultad: Ingeniería Escuela: Electrónica Asignatura: Interfaces y Perifericos Lugar de Ejecución: Fundamentos Generales. Edificio 3 Objetivo general genespecífico Usar
Notación Asintótica 2
Notación Asintótica 2 mat-151 1 Éxamen Rápido (6 minutos) Cada operación fundamental usa c milisegundos, cuánto tiempo toma contar hasta 1,000,000? Cuál es el valor de N? Cuál es el órden de complejidad
Interbloqueos. Tema 5. Sistemas Operativos I. Tema 5: Interbloqueos. Equipo de Sistemas Operativos DISCA / DSIC UPV
Sistemas Operativos I Tema 5 Interbloqueos Equipo de Sistemas Operativos DISCA / DSIC UPV Tema 5: Interbloqueos Contenido 1.- Concepto de interbloqueo..- Caracterización formal. Modelo de sistema. Representación
EL PROCESO DE DISEÑO DEL SOFTWARE
UNIDAD VI EL PROCESO DE DISEÑO DEL SOFWARE Contenido: 6.1 El diseño en la Ingeniería de Software 6.2 El proceso de Diseño 6.3 Fundamentos de Diseño 6.4 Diseño de Datos 6.5 Diseño Arquitectónico 6.6 Diseño
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
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
TEMA 5. PROGRAMACIÓN CONCURRENTE.
TEMA 5. PROGRAMACIÓN CONCURRENTE. 5.1. Ejecución concurrente. 5.2. Representación de procesos. 5.3. Tareas en Ada. 5.4. Ejemplo. 5.5. Comunicación y sincronización con variables comunes. 5.6. Comunicación
Sistemas Operativos Control 2
Sistemas Operativos Control 2 2 horas Mayo de 2009 Pregunta 1 (memoria: conceptos) Parte I Un ingeniero opina que hoy en día, con tanta memoria disponible, ya no es buena idea paginar la memoria. Mejor
Sistemas Electrónicos Digitales Curso de adaptación al Grado
Práctica Práctica 2 Sistemas Electrónicos Digitales Curso de adaptación al Grado Sistemas combinacionales con VHDL Universidad de Alicante Ángel Grediaga 2 Índice INTRODUCCIÓN... 3 2 CIRCUITOS COMBINACIONALES...
Formatos para prácticas de laboratorio
Fecha de efectividad: CARRERA PLAN DE ESTUDIO CLAVE ASIGNATURA NOMBRE DE LA ASIGNATURA LSC 2003-1 5221 Lenguaje de Programación Estructurada PRÁCTICA No. 8 LABORATORIO DE NOMBRE DE LA PRÁCTICA Licenciado
Concurrencia en.net David Jesús Horat Flotats
Concurrencia en.net David Jesús Horat Flotats ÍNDICE 1. Introducción n a.net 2. Sincronización n en.net 2.1 Contextos sincronizados 2.2 Método M Synchronized 2.3 Regiones de código c sincronizado 2.4 Sincronización
Planificación, Sincronización y comunicación de Procesos. Universidad Tecnológica Nacional
Planificación. Sean los cinco procesos descritos en la tabla siguiente: Proceso Tiempo de creación Tiempo de PU D E 4 8 4 3 Si suponemos que tenemos un algoritmo de planificación que utiliza una política
LABORATORIO DE ARQUITECTURA DE COMPUTADORES. I. T. I. SISTEMAS / GESTIÓN GUÍA DEL ALUMNO
LABORATORIO DE ARQUITECTURA DE COMPUTADORES. I. T. I. SISTEMAS / GESTIÓN GUÍA DEL ALUMNO Práctica 3: Memorias Objetivos Comprender qué es y cómo funciona un banco de registros Comprender cómo se realiza
Árboles. Cursos Propedéuticos 2015. Dr. René Cumplido M. en C. Luis Rodríguez Flores
Árboles Cursos Propedéuticos 2015 Dr. René Cumplido M. en C. Luis Rodríguez Flores Contenido de la sección Introducción Árbol genérico Definición y representación Árboles binarios Definición, implementación,
un programa concurrente
Introducción un programa concurrente asumimos que tengamos un programa concurrente que quiere realizar acciones con recursos: si los recursos de los diferentes procesos son diferentes no hay problema,
NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS
1 NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS Árboles Binarios y Árboles Binarios Ordenados 2 Contenido Árboles binarios Iteradores Árboles binarios ordenados 3 Árboles binarios Algunas definiciones para
Ingeniería Superior de Informática. Curso 3º. Sistemas Operativos. Examen Final. TEORÍA. 31 de Enero de 2005
Ingeniería Superior de Informática. Curso º. Sistemas Operativos. Examen Final. TEORÍA. de Enero de 005 Nombre: DNI:. ( puntos). La TFA es la tabla que, en UNIX, guarda los punteros de posición de cada
1.3.- V A L O R A B S O L U T O
1.3.- V A L O R A B S O L U T O OBJETIVO.- Que el alumno conozca el concepto de Valor Absoluto y sepa emplearlo en la resolución de desigualdades. 1.3.1.- Definición de Valor Absoluto. El valor absoluto
