Prácticas de Sistemas operativos

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

Download "Prácticas de Sistemas operativos"

Transcripción

1 Prácticas de Sistemas operativos David Arroyo Guardeño Escuela Politécnica Superior de la Universidad Autónoma de Madrid Séptima semana: semáforos

2 1 Cronograma semanal 2 Introducción 3 Ejemplo 1 4 Ejemplo 2 5 Ejemplo 3 6 Referencias

3 Tercera práctica 1 Memoria compartida: ejercicio 2 2 Semáforos: ejercicios 4 y 5 3 Ejercicio final: ejercicios 6 y 7 (opcional) Jueves 9 de abril

4 Semáforos Mecanismo para implementar sincronización Número entero: si se intenta hacer menor que cero, el proceso queda en espera Biblioteca sem.h man semget semop semctl

5 #include <stdio. h> #include <sys / types. h> #include <sys / i p c. h> #include <sys /sem. h> #include <errno. h> #include <sys /shm. h> #include <s t d l i b. h> #define SEMKEY #define N SEMAFOROS 2 main ( ) { i n t sem id, i ; struct sembuf sem oper ; union semun{ i n t val ; struct semid ds semstat ; unsigned short array ; arg ; sem id = semget (SEMKEY,N SEMAFOROS, IPC CREAT IPC EXCL SHM R SHM W) ; i f ( sem id== 1){ p e r r o r ( semget. ) ; e x i t ( errno ) ; i f (N SEMAFOROS<2){ f p r i n t f ( s t d e r r, El numero de semaforos ha ser mayor que dos\n ) ; e x i t ( 0 ) ; arg. array = ( unsigned short ) malloc ( sizeof ( short ) N SEMAFOROS) ; for ( i =0; i<n SEMAFOROS; i ++) arg. array [ i ] = 1; semctl ( sem id,n SEMAFOROS,SETALL, arg ) ; sem oper. sem num = 0; sem oper. sem op = 1;

6 sem oper. sem flg = SEM UNDO; semop ( sem id,& sem oper, 1 ) ; sem oper. sem num = 1; sem oper. sem op = 1; semop ( sem id,& sem oper, 1 ) ; semctl ( sem id,n SEMAFOROS,GETALL, arg ) ; p r i n t f ( Los valores de l o s semaforos son [%d, arg. array [ 0 ] ) ; for ( i =1; i<n SEMAFOROS; i ++) p r i n t f (,%d, arg. array [ i ] ) ; p r i n t f ( ]\n ) ; semctl ( sem id,n SEMAFOROS, IPC RMID, 0 ) ; f r e e ( arg. array ) ;

7 Ejemplo 2: productor I #define SEMKEY union semun { i n t val ; struct semid ds buf ; ushort array ; struct seminfo buf ; ; main ( ) { k e y t key = SEMKEY; i n t sem id ; union semun arg ; enum {NS,EO; s t a t i c struct sembuf sig = {0,1,SEM UNDO, wait={0, 1,SEM UNDO; s t a t i c ushort s t a r t v a l u e [ 2 ] = {0,0; i n t clock =3; i f ( ( sem id = semget ( key, 2, IPC CREAT 0666) ) == 1){ p e r r o r ( c o n t r o l : semget. ) ; e x i t ( 1 ) ; arg. array = start value ; i f ( semctl ( sem id, 0,SETALL, arg ) == 1){ p e r r o r ( c o n t r o l : semctl i n i c i a l i z a c i o n. ) ; e x i t ( 2 ) ; p r i n t f ( c o n t r o l : Estoy l i s t o.\n ) ; while ( clock ){ s i g. sem num = NS;

8 Ejemplo 2: productor II i f ( semop ( sem id,& sig, 1 ) == 1){ p e r r o r ( c o n t r o l : semop s i g n a l. ) ; e x i t ( 3 ) ; wait. sem num = EO; i f ( semop ( sem id,& wait, 1 ) == 1){ p e r r o r ( c o n t r o l : semop wait. ) ; e x i t ( 4 ) ; p r i n t f ( c o n t r o l : La c a r r e t e r a este oeste esta a b i e r t a.\n ) ; sleep ( 1 ) ; clock ; i f ( semctl ( sem id, 0, IPC RMID, 0 ) == 1){ perror ( control : semctl remove. ) ; e x i t ( 5 ) ; e x i t ( 0 ) ;

9 ... main ( ) { k e y t key = SEMKEY; i n t semid ; i n t car num =1; Ejemplo 2: consumidor s t a t i c struct sembuf sig ={0,1,SEM UNDO, wait={0, 1,SEM UNDO; enum {NS,EO; i f ( ( semid = semget ( key, 2, IPC CREAT 0666) ) == 1){ p e r r o r ( coche : semget. ) ; e x i t ( 1 ) ; while ( 1 ){ wait. sem num = NS; i f ( semop ( semid,& wait, 1 ) == 1){ p e r r o r ( coche : semop wait. ) ; e x i t ( 2 ) ; p r i n t f ( coche : La c a r r e t e r a norte sur esta a b i e r t a.\n ) ; sleep ( 1 ) ; p r i n t f ( coche : Coche %d paso.\n, car num ++) ; s i g. sem num = EO; i f ( semop ( semid,& sig, 1 ) == 1){ p e r r o r ( coche : semop s i g n a l. ) ; e x i t ( 3 ) ;

10 Ejemplo 3: productor I #define SHMKEY 6723 #define SEMKEY 7543 #define NUMPEDIDOS 10 union semun { i n t val ; struct semid ds buf ; ushort array ; struct seminfo buf ; ; main ( ) { k e y t key= SHMKEY; k e y t key2 = SEMKEY; i n t shmid ; i n t sopa = 0; i n t orden = NUMPEDIDOS; i n t sem id ; union semun arg ; enum {COOK, PICK; s t a t i c struct sembuf cook = {0,1,SEM UNDO, pick = {0, 1,SEM UNDO; s t a t i c ushort s t a r t v a l u e [ 2 ] = {0,0; i f ( ( sem id = semget ( key2, 2, IPC CREAT 0666) ) == 1){ p e r r o r ( cocina : semget. ) ; e x i t ( 1 ) ; arg. array = start value ;

11 Ejemplo 3: productor II i f ( semctl ( sem id, 0,SETALL, arg ) == 1){ p e r r o r ( cocina : semctl i n i c i a l i z a c i o n. ) ; e x i t ( 2 ) ; i f ( ( shmid = shmget ( key,50,0600 IPC CREAT ) ) == 1) { p e r r o r ( cocina : shmget ) ; e x i t ( 1 ) ; sopa = ( i n t )shmat ( shmid, ( char ) 0,0) ; i f ( sopa == ( i n t ) 1) { p e r r o r ( cocina : shmat ) ; e x i t ( 2 ) ; p r i n t f ( Cocinero : He empezado a hacer l a sopa.\n ) ; while ( orden ) { sleep ( 1 ) ; ( sopa ) ++; cook. sem num = COOK; i f ( semop ( sem id,& cook, 1 ) == 1){ p e r r o r ( cocina : semop cook. ) ; e x i t ( 3 ) ; pick. sem num = PICK ; i f ( semop ( sem id,& pick, 1 ) == 1){ p e r r o r ( c o n t r o l : semop wait. ) ; e x i t ( 4 ) ; p r i n t f ( Oido cocina... \ n ) ;

12 Ejemplo 3: productor III orden ; p r i n t f ( Cocinero : Se acabo el tiempo. He preparado %d platos de sopa. Quedan %d sin recoger.\n,numpedidos, sopa ) ; shmctl ( shmid, IPC RMID, ( struct shmid ds ) 0) ; i f ( semctl ( sem id, 0, IPC RMID, 0 ) == 1){ perror ( cocina : semctl remove. ) ; e x i t ( 5 ) ; e x i t ( 0 ) ;

13 void manejador ( ) { e x i t ( 0 ) ; main ( ) { void signal catcher ( ) ; k e y t key = SHMKEY; key t key sem = SEMKEY; i n t shmid ; i n t sopa ; Ejemplo 3: consumidor i n t sem id ; s t a t i c struct sembuf cook ={0,1,SEM UNDO, pick={0, 1,SEM UNDO; enum {COOK, PICK; i f ( ( sem id = semget ( key sem, 2, IPC CREAT 0666) ) == 1){ p e r r o r ( camarero : semget. ) ; e x i t ( 1 ) ; sigset (SIGALRM, manejador ) ; alarm ( 30) ; i f ( ( shmid = shmget ( key,50,ipc CREAT 0600) ) == 1) { p e r r o r ( shmget ) ; e x i t ( 1 ) ; i f ( ( sopa = ( i n t )shmat ( shmid, 0, 0 ) ) ==( i n t ) 1) { p e r r o r ( shmat ) ; e x i t ( 2 ) ; while ( 1 ){ pick. sem num = COOK; i f ( semop ( sem id,& pick, 1 ) == 1){ p e r r o r ( camarero : semop pick. ) ; e x i t ( 2 ) ; ( sopa ) ; p r i n t f ( Camarero : p l a t o recogido\n ) ; sleep ( rand ( ) %2+1) ; p r i n t f ( Camarero : un nuevo p l a t o de sopa, cocina!!! \ n ) ; cook. sem num = PICK ; i f ( semop ( sem id,& cook, 1 ) == 1){ p e r r o r ( camarero : semop cook. ) ; e x i t ( 3 ) ;

14 Referencias Francisco M. Márquez. Unix, Programación Avanzada. Editorial: Ra-Ma. 3 a Edición. ISBN:

Prácticas de Sistemas operativos

Prácticas de Sistemas operativos Prácticas de Sistemas operativos David Arroyo Guardeño Escuela Politécnica Superior de la Universidad Autónoma de Madrid Octava semana: semáforos 1 Cronograma semanal 2 Introducción 3 Ejemplo 1 4 Ejemplo

Más detalles

Prácticas de Sistemas operativos

Prácticas de Sistemas operativos Prácticas de Sistemas operativos David Arroyo Guardeño Escuela Politécnica Superior de la Universidad Autónoma de Madrid Quinta semana: señales 1 Cronograma semanal 2 Entregas 3 Introducción 4 Envío de

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

Prácticas de Sistemas Operativos

Prácticas de Sistemas Operativos Prácticas de Sistemas Operativos Toñi Reina, David Ruiz, Juan Antonio Álvarez, Antonio Tallón, Javier Gutiérrez, Pablo Neira, Paco Silveira, Francisco Javier Cuberos y Sergio Segura Boletín 6: Semáforos

Más detalles

Los semáforos en Unix

Los semáforos en Unix Los semáforos en Unix Semáforos multi-valuados, no binarios Se puede crear un arreglo de semáforos con una simple llamada Posibilidad de especificar una sola operación en un solo semáforo Posibilidad de

Más detalles

Prácticas de Sistemas Operativos

Prácticas de Sistemas Operativos Prácticas de Sistemas Operativos Juan Antonio Álvarez, Toñi Reina, David Ruiz, Antonio Tallón, Pablo Neira, José Ángel Bernal y Sergio Segura Boletín 6: Semáforos Curso 2006/07 Índice 1. Introducción 2

Más detalles

Prácticas de Sistemas operativos

Prácticas de Sistemas operativos Prácticas de Sistemas operativos David Arroyo Guardeño Escuela Politécnica Superior de la Universidad Autónoma de Madrid Segunda Semana: Procesos, Procesos Padre y Procesos Hijo, familia exec() 1 Entregas

Más detalles

Memoria compartida y semáforos r/w. La página del manual que podría servir para describir estas funciones es la siguiente:

Memoria compartida y semáforos r/w. La página del manual que podría servir para describir estas funciones es la siguiente: (3 ptos) Memoria Compartida y Semáforos R/W 1. Objetivo En esta práctica se pretende crear una librería que dé la funcionalidad de un semáforo para resolver problemas con múltiples lectores y escritores

Más detalles

Sistemas Operativos I. Enxeñería Informática. Curso 2007/08. Práctica 2: Concurrencia de procesos: Productores/Consumidores.

Sistemas Operativos I. Enxeñería Informática. Curso 2007/08. Práctica 2: Concurrencia de procesos: Productores/Consumidores. Sistemas Operativos I. Enxeñería Informática. Curso 2007/08. Práctica 2: Concurrencia de procesos: Productores/Consumidores. En esta práctica se tratará de resolver el problema de los productores/consumidores

Más detalles

Prácticas de Sistemas operativos

Prácticas de Sistemas operativos Prácticas de Sistemas operativos David Arroyo Guardeño Escuela Politécnica Superior de la Universidad Autónoma de Madrid Tercera Semana: Comunicación entre procesos con Tuberías 1 Entregas 2 Introducción

Más detalles

Práctica 2. Teoría. Memoria Compartida y Semáforos

Práctica 2. Teoría. Memoria Compartida y Semáforos Práctica 2 Grupos Realización Entrega/Evaluación Lunes 22 de Marzo, 12 y 19 de Abril 26 de Abril Martes 23 de Marzo, 13 y 20 de Abril 27 de Abril Miércoles 24 de Marzo, 14 y 21 de Abril 28 de Abril Viernes

Más detalles

Memoria Compartida. Llave de acceso. Segmento Compartido. estructura definida en A. estructura definida en B. Proceso B. Proceso A

Memoria Compartida. Llave de acceso. Segmento Compartido. estructura definida en A. estructura definida en B. Proceso B. Proceso A Memoria Compartida Llave de acceso 1234 Segmento Compartido apuntador estructura definida en A apuntador estructura definida en B Proceso A Proceso B Dr. Roberto Gómez Diapo No. 1 Librerías y estructuras

Más detalles

SISTEMAS OPERATIVOS I. CURSO 2010/11. PRÁCTICA 2: Problema de los Productores/Consumidores (concurrencia de procesos)

SISTEMAS OPERATIVOS I. CURSO 2010/11. PRÁCTICA 2: Problema de los Productores/Consumidores (concurrencia de procesos) SISTEMAS OPERATIVOS I. CURSO 2010/11 PRÁCTICA 2: Problema de los Productores/Consumidores (concurrencia de procesos) INTRODUCCIÓN: En esta práctica se tratará de resolver el problema de los productores/consumidores

Más detalles

Parte Práctica Adicional del Coloquio o Examen Final de Sistemas Operativos 2014.

Parte Práctica Adicional del Coloquio o Examen Final de Sistemas Operativos 2014. Parte Práctica Adicional del Coloquio o Examen Final de Sistemas Operativos 2014. Probar los códigos presentados en el trabajo de Semáforos que se encuentra a continuación, probarlos, corregirlo y establecer

Más detalles

Comunicación entre Procesos

Comunicación entre Procesos Sincronización y Comunicación de Procesos Sincronización y Comunicación de Procesos Sincronización Sincronización Comunicación Comunicación Condiciones de Condiciones de Carrera Carrera Memoria Memoria

Más detalles

PRÁCTICAS DE APLICACIONES DISTRIBUIDAS EN EQUIPO. Introducción: Cada práctica con lleva una previa investigación, la cual debe realizar cada equipo.

PRÁCTICAS DE APLICACIONES DISTRIBUIDAS EN EQUIPO. Introducción: Cada práctica con lleva una previa investigación, la cual debe realizar cada equipo. FECHA DE ENTREGA: Pendiente PRÁCTICAS DE APLICACIONES DISTRIBUIDAS EN EQUIPO Los equipos deberán están formados de la siguiente manera: - Tres equipos de 4 integrantes cada uno. Introducción: Cada práctica

Más detalles

Mecanismos IPC System V

Mecanismos IPC System V Mecanismos IPC System V Ampliación de Sistemas Operativos (prácticas) E.U. Informática en Segovia Universidad de Valladolid Mecanismos IPC System V: generalidades (1) Existen tres tipos de mecanismos IPC

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

Práctica 1 Programación de Aplicaciones Distribuidas: Sockets UDP. Laboratorio de Comunicación de Datos ITT Telemática Septiembre 2011

Práctica 1 Programación de Aplicaciones Distribuidas: Sockets UDP. Laboratorio de Comunicación de Datos ITT Telemática Septiembre 2011 Práctica 1 Programación de Aplicaciones Distribuidas: Sockets UDP Laboratorio de Comunicación de Datos ITT Telemática Septiembre 2011 Introducción Aplicaciones Distribuidas Su funcionalidad se distribuye

Más detalles

Sistemas Operativos. Eloy Anguiano Rey [email protected]. Rosa M. Carro [email protected]. Ana González [email protected]

Sistemas Operativos. Eloy Anguiano Rey eloy.anguiano@uam.es. Rosa M. Carro rosa.carro@uam.es. Ana González ana.marcos@uam.es Sistemas Operativos Monitores Mensajes Eloy Anguiano Rey [email protected] Rosa M. Carro [email protected] Ana González [email protected] Escuela Politécnica Superior Universidad Autónoma de Madrid

Más detalles

Estructuras de Datos Declaraciones Tipos de Datos

Estructuras de Datos Declaraciones Tipos de Datos Departamento de Informática Universidad Técnica Federico Santa María Estructuras de Datos Declaraciones Tipos de Datos Temas: 2-3-4 IWI-131, paralelo 01 Profesor: Teddy Alfaro O. Lenguaje de Programación

Más detalles

MC Hilda Castillo Zacatelco PROCESOS

MC Hilda Castillo Zacatelco PROCESOS MC Hilda Castillo Zacatelco [email protected] PROCESOS Definición y atributos Un proceso es la instancia de un programa en ejecución. Desde el punto de vista del SO, un proceso es la entidad más pequeña

Más detalles

Semáforos. Eloy García Martínez Lorena Ascensión Olivero

Semáforos. Eloy García Martínez Lorena Ascensión Olivero Semáforos Eloy García Martínez Lorena Ascensión Olivero 1 Introducción El concepto de semáforo nace de la necesidad de crear un sistema operativo en el que puedan trabajar procesos cooperantes -> Dijkstra(1965)

Más detalles

UNIVERSIDAD AUTONOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERIA MANUAL DE PRACTICAS DE APLICACIONES DISTRIBUIDAS

UNIVERSIDAD AUTONOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERIA MANUAL DE PRACTICAS DE APLICACIONES DISTRIBUIDAS UNIVERSIDAD AUTONOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERIA MANUAL DE PRACTICAS DE APLICACIONES DISTRIBUIDAS Introducción: Cada practica con lleva una previa investigación y un tema visto en clase.

Más detalles

PROGRAMACIÓN CON LLAMADAS AL SISTEMA POSIX (INTRODUCCIÓN A LA PROGRAMACIÓN CON UNIX/LINUX)

PROGRAMACIÓN CON LLAMADAS AL SISTEMA POSIX (INTRODUCCIÓN A LA PROGRAMACIÓN CON UNIX/LINUX) PROGRAMACIÓN CON LLAMADAS AL SISTEMA POSIX (INTRODUCCIÓN A LA PROGRAMACIÓN CON UNIX/LINUX) 1- LLAMADAS AL SISTEMA: 1.1- Interfaz del programador: La interfaz del sistema operativo con el programador es

Más detalles

LECCIÓN 23: SEMÁFOROS

LECCIÓN 23: SEMÁFOROS LECCIÓN 23: SEMÁFOROS LECCIÓN 23: SEMÁFOROS... 1 23.1 Conceptos... 1 23.2 Estructuras... 2 23.3 Llamadas al sistema... 5 23.4 Ejemplo de uso de semáforos... 11 23.5 Código fuente de semáforos... 13 sys_semget...

Más detalles

Programación Estructurada. Sesión 2:El lenguaje de programación C

Programación Estructurada. Sesión 2:El lenguaje de programación C Programación Estructurada Sesión 2:El lenguaje de programación C Contextualización Una parte importante del lenguaje C son las palabras reservadas, son identificadores con un significado predefinido. Estas

Más detalles

Se guardan en archivos con extencion c y los cabezales con extension h

Se guardan en archivos con extencion c y los cabezales con extension h Se guardan en archivos con extencion c y los cabezales con extension h Tipos de Variables: Tipo Tamaño(bytes) Limite inferior Limite superior char 1 -- -- unsigned char 1 0 255 short int 2-32768 +32767

Más detalles

Tema 4: Modelos Teóricos de Control de la Concurrencia

Tema 4: Modelos Teóricos de Control de la Concurrencia Tema 4: Modelos Teóricos de Control de la Concurrencia CONTENIDO: El Problema de la Exclusión Mutua Concepto de Sección Crítica Algoritmos de Espera Ocupada Semáforos. Protocolos de E. Mutua, Sincronización

Más detalles

Computación de Alta Performance Curso 2009 PROGRAMACIÓN PARALELA EN LENGUAJE C

Computación de Alta Performance Curso 2009 PROGRAMACIÓN PARALELA EN LENGUAJE C Computación de Alta Performance Curso 2009 MECANISMO DE PROGRAMACIÓN PARALELA EN LENGUAJE C AGENDA Mecanismos a estudiar. Fork. Pipes y FIFOs. System V IPC: Semáforos. Cola de mensajes. Memoria compartida.

Más detalles

Sistemas Operativos Práctica 4

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

Más detalles

Introducción a la Programación

Introducción a la Programación Introducción a la Programación Fundamentos de Programación Ingeniería Informática en Sistemas de Información Alicia Troncoso 1 Contenido l Introducción l Mi primer programa l Etapas a seguir en la programación

Más detalles

BENEMERITA UNIVERSIDAD AUTONOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACIÓN LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN

BENEMERITA UNIVERSIDAD AUTONOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACIÓN LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN BENEMERITA UNIVERSIDAD AUTONOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACIÓN LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN PROGRAMACIÓN CONCURRENTE Y PARALELA PRACTICA 8 MONITORES BASADOS EN SEMÁFOROS

Más detalles

Tema 4 : señales. Sistemas Operativos: Programación de Sistemas. Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Santana Pérez.

Tema 4 : señales. Sistemas Operativos: Programación de Sistemas. Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Santana Pérez. Tema 4 : señales Sistemas Operativos: Programación de Sistemas Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Santana Pérez Curso 2006-07 Señales Las señales son un mecanismo para comunicar eventos

Más detalles

Funciones POSIX III Funciones POSIX III. No Nombrados Nombrados. sem_open sem_open. sem_close sem_close. sem_unlink sem_unlink

Funciones POSIX III Funciones POSIX III. No Nombrados Nombrados. sem_open sem_open. sem_close sem_close. sem_unlink sem_unlink Funciones POSIX III Funciones POSIX III Sincronización Sincronización Procesos Procesos Semáforos Semáforos (sem_t) (sem_t) Sincronización Sincronización Threads Threads Mutex Mutex (pthread_mutex_t) (pthread_mutex_t)

Más detalles

RESUMEN DE LAS UNIDADES I-II-III Libro: Programacion.en.C.Metodologia.Algoritmos.y.Estructura.de.datos.Editorial.McGraw-Hill

RESUMEN DE LAS UNIDADES I-II-III Libro: Programacion.en.C.Metodologia.Algoritmos.y.Estructura.de.datos.Editorial.McGraw-Hill RESUMEN DE LAS UNIDADES I-II-III Libro: Programacion.en.C.Metodologia.Algoritmos.y.Estructura.de.datos.Editorial.McGraw-Hill Asignatura: Algoritmos, Estructuras y Programación I Docente: Ing. Yesika Medina

Más detalles

LENGUAJE. Tema 1 - Introducción

LENGUAJE. Tema 1 - Introducción LENGUAJE Tema 1 - Introducción HISTORIA DEL LENGUAJE C El lenguaje de programación C fue creado por Dennis Ritchie cuando trabajaba en Bell Laboratories de AT&T junto con Ken Thompson en el diseño del

Más detalles

Mensajes. (versión preliminar)

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,

Más detalles

SISTEMAS OPERATIVOS: COMUNICACIÓN Y SINCRONIZACIÓN ENTRE PROCESOS. Desarrollo de servidores concurrentes

SISTEMAS OPERATIVOS: COMUNICACIÓN Y SINCRONIZACIÓN ENTRE PROCESOS. Desarrollo de servidores concurrentes SISTEMAS OPERATIVOS: COMUNICACIÓN Y SINCRONIZACIÓN ENTRE PROCESOS Desarrollo de servidores concurrentes Contenido 2 Servidores de peticiones. Solución basada en procesos. Solución basada en hilos bajo

Más detalles

Introducción al lenguaje C

Introducción al lenguaje C Introducción al lenguaje C Ampliación de Informática Belarmino Pulido Junquera Índice 1. Presentación del lenguaje C 2. Estructura de un programa en C 3. Tipos de datos escalares 4. Operadores básicos

Más detalles

Punto muerto-interbloqueo

Punto muerto-interbloqueo Punto muerto-interbloqueo Que es interbloqueo? Un grupo de procesos permanentemente parados esperando cada uno por el otro. Ejemplo de interbloqueo Process P Process Q (1) Obtener A (5) Obtener B (2) Obtener

Más detalles

Gestión de procesos en UNIX

Gestión de procesos en UNIX PROCESOS UNIX Gestión de procesos en UNIX Cada proceso sólo puede tener un flujo: el concepto proceso engloba todo Dos llamadas implicadas en la creación de procesos crear proceso cargar programa La relación

Más detalles

Tema 05: Elementos de un programa en C

Tema 05: Elementos de un programa en C Tema 05: Elementos de un programa en C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1

Más detalles

Biblioteca de sistema

Biblioteca de sistema * Para la realización del presente examen se aconseja un tiempo de 2 horas. Teoría 1. Explique en detalle cómo se pasa una llamada al sistema operativo. El sistema operativo se activa cuando debe responder

Más detalles

Programación 1 Tema 2. Lenguaje de programación y ejecución de un programa

Programación 1 Tema 2. Lenguaje de programación y ejecución de un programa Programación 1 Tema 2 Lenguaje de programación y ejecución de un programa Índice Lenguaje de programación Símbolos Sintaxis Semántica Computador Ejecución de un programa Sistema operativo, entorno de programación

Más detalles

Test SITR Temas: Planificación, Sincronización, Comunicación entre Procesos, Relojes, Señales, Temporizadores (TestSITR_T4 T9)

Test SITR Temas: Planificación, Sincronización, Comunicación entre Procesos, Relojes, Señales, Temporizadores (TestSITR_T4 T9) Test SITR Temas: Planificación, Sincronización, Comunicación entre Procesos, Relojes, Señales, Temporizadores (TestSITR_T4 T9) Temas: Planificación Sincronización y Comunicación entre Procesos Funciones

Más detalles

Introducción general al Lenguaje C (2010/2011)

Introducción general al Lenguaje C (2010/2011) Luis Valencia Cabrera [email protected] (http://www.cs.us.es/~lvalencia) Ciencias de la Computacion e IA (http://www.cs.us.es/) Introducción general al Lenguaje C (2010/2011) Universidad de Sevilla Índice

Más detalles

Programación Concurrente

Programación Concurrente Master en Computación Programación Concurrente Bloque II: Programación concurrente en POSIX Tema 1. Introducción al estándar POSIX Tema 2. Sistema Operativo MaRTE OS Tema 3. Gestión de Threads Tema 5.

Más detalles

SOLUCIONES A ALGUNOS DE LOS EJERCICIOS DE SINCRONIZACION Y COMUNICACION ENTRE PROCESOS

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;

Más detalles

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs. Variables Una variable no es más que un nombre simbólico que identifica una dirección de memoria: Suma el contenido de la posición 3001 y la 3002 y lo almacenas en la posición 3003 vs. total = cantidad1

Más detalles

Aznar Bellver, Jerónimo. Valoración inmobiliaria: métodos y aplicaciones. : Editorial de la Universidad Politécnica de Valencia,.

Aznar Bellver, Jerónimo. Valoración inmobiliaria: métodos y aplicaciones. : Editorial de la Universidad Politécnica de Valencia,. : Editorial de la Universidad Politécnica de Valencia,. p 2 http://site.ebrary.com/id/10637906?ppg=2 : Editorial de la Universidad Politécnica de Valencia,. p 3 http://site.ebrary.com/id/10637906?ppg=3

Más detalles

Programación Estructurada

Programación Estructurada Programación Estructurada PROGRAMACIÓN ESTRUCTURADA 1 Sesión No. 2 Nombre: El lenguaje de programación C Contextualización Una constante en todos los lenguajes de programación (viejos y nuevos) es la implementación

Más detalles

Programación I Teoría I.

Programación I Teoría I. Programación I Teoría I http://proguno.unsl.edu.ar Horarios Teorías: Jueves 8:00 10:00; aula 58 (Bloque 2) Prácticas: Comisión 1: Licenciatura Martes de 10 a 13 en sala 7, bloque 2 jueves de 10 a 13 en

Más detalles

Un ejemplo: UNIX PROCESOS UNIX

Un ejemplo: UNIX PROCESOS UNIX PROCESOS UNIX Un ejemplo: UNIX Cada proceso sólo puede tener un flujo: el concepto proceso engloba todo Dos llamadas implicadas en la creación de procesos crear proceso cargar programa La relación de procesos

Más detalles

Sistemas Operativos Ingeniería de telecomunicaciones Sesión 2: Procesos e hilos (modificado 29/10)

Sistemas Operativos Ingeniería de telecomunicaciones Sesión 2: Procesos e hilos (modificado 29/10) Sistemas Operativos Ingeniería de telecomunicaciones Sesión 2: Procesos e hilos (modificado 29/10) Calendario Comienzo: Lunes 19 de octubre y miércoles 21 de octubre. Entrega: 2 de noviembre y 4 de noviembre,

Más detalles

! " # " # & ' '()*+ 0" #*

!  #  # & ' '()*+ 0 #* ! " # " # $% & ' '()*+ #* *' ++,-"./" [Ben90] Ben-Ari, M. Concurrent and Distributed Programming Prentice Hall, 1990. [Capítulos 3, 4, 5, 6 7 y 8 ] [Ray83] Raynal, M. Algorithms for Mutual Exclusion. MIT

Más detalles

Sistemas Operativos Práctica 3

Sistemas Operativos Práctica 3 Sistemas Operativos Práctica 3 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

Más detalles

Introducción a C++ Algoritmos y Estructuras de datos II Dra. Carmen Mezura Godoy. Febrero 2009

Introducción a C++ Algoritmos y Estructuras de datos II Dra. Carmen Mezura Godoy. Febrero 2009 Introducción a C++ Algoritmos y Estructuras de datos II Dra. Carmen Mezura Godoy Febrero 2009 Índice Elementos básicos Ejecución de un programa Estructuras de control Ciclos Ejercicios 2 Elementos Básicos

Más detalles

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

Más detalles

1. Presentación del lenguaje C Creado en 1972 por D. Ritchie Lenguaje de propósito general Portátil o transportable (generalmente) Inicialmente de niv

1. Presentación del lenguaje C Creado en 1972 por D. Ritchie Lenguaje de propósito general Portátil o transportable (generalmente) Inicialmente de niv Introducción al lenguaje C Informática Belarmino Pulido Junquera Índice 1. Presentación del lenguaje C 2. Estructura de un programa en C 3. Instrucciones del pre-procesador procesador 4. Tipos de datos

Más detalles

Lecturas: Ben-Ari, secciones 4.1, 4.2, 4.3, 4.6 Andrews, intro. cap. 4 y sección 4.1

Lecturas: Ben-Ari, secciones 4.1, 4.2, 4.3, 4.6 Andrews, intro. cap. 4 y sección 4.1 Semáforos Lecturas: Ben-Ari, secciones 4.1, 4.2, 4.3, 4.6 Andrews, intro. cap. 4 y sección 4.1 Manuel Carro Universidad Politécnica de Madrid Este texto se distribuye bajo los términos de la Creative Commons

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

Universidad de Pamplona Materia: Programación 1 Docente: Ing. Lusbin Raúl Vargas LENGUAJE C ESTRUCTURA DE UN PROGRAMA EN C

Universidad de Pamplona Materia: Programación 1 Docente: Ing. Lusbin Raúl Vargas LENGUAJE C ESTRUCTURA DE UN PROGRAMA EN C Universidad de Pamplona Materia: Programación 1 Docente: Ing. Lusbin Raúl Vargas LENGUAJE C ESTRUCTURA DE UN PROGRAMA EN C Directivas del procesador Main() { Declaraciones Definiciones proposiciones }

Más detalles

Tipos de Datos Estructurados

Tipos de Datos Estructurados - Unidad 3 Tipos de Datos Estructurados 1 Tipos de Datos Compuestos en C 2 Arreglos (1) Un arreglo (array) una colección homogénea de datos simples ó compuestos, que se referencian con un nombre comú,

Más detalles

Concurrencia Monitores. Guillermo Román Díez

Concurrencia Monitores. Guillermo Román Díez Concurrencia Monitores Guillermo Román Díez [email protected] Universidad Politécnica de Madrid Curso 2016-2017 Guillermo Román, UPM CC: Monitores 1/25 Recursos Compartidos Pregunta La especificación de

Más detalles

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

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

Más detalles

Curso LINUX. AREA 1: Intercomunicación

Curso LINUX. AREA 1: Intercomunicación Curso LINUX AREA 1: Intercomunicación Intercomunicación de procesos Introducción Memoria compartida (IPC) Pipes RPC CORBA RMI DCOM SOAP / Web Services Introducción En entornos multiproceso se hace necesario

Más detalles