Mecanismos de IPC's. Pipes

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

Download "Mecanismos de IPC's. Pipes"

Transcripción

1 Mecanismos de IPC's Para la comunicación entre procesos se disponen de varios mecanismos: Pipes Named Pipes (FIFOS) File Locking System V IPC's Message queues Semaphores Shared Memory Mem. Mapped Files Sockets De estos mecanismos se desarrollan en este documento todos con excepción de File locking, Mapped Files y Sockets; los dos primeros no se dictan en esta cátedra y el tercero se trata en otra clase. Pipes Básicamente la función pipe() retorna un par de descriptores de archivos. Uno de esos descriptores es para escribir y el otro es para leer el pipe. Lo que se escribe por el descriptor de escritura se lee en el otro. #include <unistd.h> int pipe(int descf[2]); Ejemplo #include <stdio.h> #include <stdlib.h> #include <errno.h> #include <unistd.h> int main(void) int pfds[2]; char buf[30]; if (pipe(pfds) == -1) perror("pipe"); printf("escribiendo al descriptor #%d\n", pfds[1]); write(pfds[1], "test\0", 5); printf("leyendo desde el descriptor #%d\n", pfds[0]);

2 read(pfds[0], buf, 5); printf("leí \"%s\"\n", buf); Este mecanismo tiene una dificultad importante, ambos descriptores son conocidos por el proceso que crea el pipe, no hay manera que otro proceso conozca estos valores a menos que sea un proceso creado por este utilizando fork() por ejemplo. Named Pipes (FIFOS) Son similares a los pipes con excepción que estos tienen nombre, con lo cual distintos procesos pueden accederlos para lectura o escritura como si fueran archivos. Hay dos formas de crear un FIFO. Mediante línea de comando mknod: mdoallo@guri:~$ mknod pepe p mdoallo@guri:~$ ls -l pepe prw-r--r-- 1 mdoallo mdoallo 0 sep 14 23:15 pepe O bien crearlo directamente en el código de un programa mediante la función mknod(). #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> int mknod(const char *pathname, mode_t mode, dev_t dev); mknod intenta crear en el sistema de ficheros un nodo-i de tipo tubería nombrada (o FIFO) llamado pathname, especificado por mode y dev. Un nodo-i (o i-node) referencia a un archivo en Linux, estos pueden ser archivos normales (archivo propiamente dicho, carpetas o enlaces), un archivo especial de caracteres (Device Char Driver) que permite comunicar al sistema operativo con dispositivos de tipo carácter, un archivo especial de bloques; o bien, una tubería nombrada. mode especifica tanto los permisos de uso del nodo-i a crear como su tipo. Debe ser una combinación (mediante un O-lógico) de uno de los tipos de ficheros enumerados a continuación y de los permisos para el nuevo nodo-i. El tipo de fichero debe ser uno de los siguientes: S_IFREG, para especificar un fichero normal (que será creado vacío); S_IFCHR, un fichero especial de caracteres; S_IFBLK, un fichero especial de bloques; S_IFIFO, FIFO (tubería con nombre), o cero, lo que creará un fichero normal. En este caso se usa S_IFIFO. Si el tipo de fichero es S_IFCHR o S_IFBLK entonces dev especifica los números mayor y menor del fichero especial de dispositivo creado; en caso contrario, es ignorado. Entonces ponemos 0.

3 Ejemplo de programa productor de información para un FIFO: #include <stdio.h> #include <stdlib.h> #include <errno.h> #include <string.h> #include <fcntl.h> #include <sys/stat.h> #include <unistd.h> #define FIFO_NAME "canio_canion" int main(void) char s[300]; int num, fd; mknod(fifo_name, S_IFIFO 0666, 0); printf("esperando por lectores...\n"); fd = open(fifo_name, O_WRONLY); printf("conseguí un lector tipea algo \n"); while (gets(s),!feof(stdin)) if ((num = write(fd, s, strlen(s))) == -1) perror("write"); else printf("se enviaron %d bytes.\n", num); Ahora para probar este programa hace falta alguien que lo lea, pues es suficiente con hacer: $ cat canio_canion Otro ejemplo de programa consumidor de información de un FIFO: #include <stdio.h> #include <stdlib.h> #include <errno.h> #include <string.h> #include <fcntl.h> #include <sys/stat.h> #include <unistd.h> #define FIFO_NAME "canio_canion" int main(void) char s[300]; int num, fd;

4 mknod(fifo_name, S_IFIFO 0666, 0); printf("esperando escritores...\n"); fd = open(fifo_name, O_RDONLY); printf("conseguí un escritor\n"); do if ((num = read(fd, s, 300)) == -1) perror("read"); else s[num] = '\0'; printf("se recibieron %d bytes: \"%s\"\n", num, s); while (num > 0); Nótese que en ambos la función open() en bloqueante, a menos que se utilice el flag O_NDELAY. Message queues Pipes y FIFO's permiten comunicación entre dos procesos, un emisor y otro receptor; no hay forma de alterar el orden en que la información se recibe (concepto FIFO), ni que intervengan múltiples procesos. Message queues es un sistema de comunicación entre procesos superior a lo visto hasta el momento. Permite crear estructuras de información, asignarles etiquetas, disponer de múltiples emisores y múltiples receptores de información; además, cada proceso receptor puede leer sólo las etiquetas que son de su interés. La forma de operar es la siguiente: Primero se crea la cola de mensajes (message queue), luego los procesos se conectan a la cola para escribir o leer mensajes de la misma; finalmente se borra la cola. El comando de consola ipcs permite ver el estado de una cola. El comando ipcrm permite borrar colas. Para crear la cola primero hay que general una clave por medio de la función ftok(). # include <sys/types.h> # include <sys/ipc.h> key_t ftok ( char *camino, int proy ) La función ftok utiliza la identidad del fichero que indica camino (que debe referirse a un fichero existente y accesible) y los 8 bits menos significativos de proy (que debe ser distinto de cero) para generar una clave IPC de System V de tipo key_t, adecuada para el uso con msgget(), semget(), o shmget(). El valor resultante es el mismo para todos los nombres de ruta que hacen referencia al mismo fichero, cuando se utiliza el mismo valor de proy. El valor devuelto debería ser diferente cuando los ficheros (que existen simultáneamente) o los identificadores de proyecto son distintos.

5 En caso de éxito se devuelve la clave key_t generada. En caso de fallo se devuelve -1, y la variable errno indica el error al igual que con la llamada al sistema stat(2). Luego de creada la clave se puede crear la cola con la función msgget() #include <sys/msg.h> int msgget(key_t key, int msgflg); La función devuelve el identificador de la cola de mensajes asociada a key. Se crea una nueva cola de mensajes si msgflg tiene el valor IPC_CREAT. En la creación, los 9 bits más bajos del argumento msgflg definen los permisos de acceso a la cola de mensajes. Estos bits para los permisos tienen la misma forma y semántica que los de los permisos de acceso en las llamadas al sistema open(2) o creat(2) (Los permisos de ejecución no son usados.) Qué se envía o recibe en una cola? Para enviar se utiliza la función msgsnd(). #include <sys/msg.h> int msgsnd(int msqid, struct msgbuf *msgp, size_t msgsz, int msgflg); ssize_t msgrcv(int msqid, struct msgbuf *msgp, size_t msgsz, long msgtyp, int msgflg); Para enviar o recibir un mensaje, el proceso invocador reserva una estructura de la siguiente manera genérica: struct msgbuf long mtype; /* tipo de msj., debe ser > 0 */ char mtext[1]; /* datos del mensaje */ ; El campo msgbuf es una estructura cuyo tamaño viene determinado por msgsz, un valor entero no negativo. Los mensajes de longitud cero (p.e., sin campo mtext) están permitidos. El campo mtype debe tener un valor entero estrictamente positivo que puede ser empleado por el proceso receptor para la selección de mensaje (vea la sección sobre msgrcv). El argumento msgsz especifica el tamaño máximo en bytes para el miembro mtext de la estructura apuntada por el argumento msgp. Si el texto del mensaje tiene una longitud mayor de msgsz, entonces si el argumento msgflg contiene MSG_NOERROR, el texto del mensaje se truncará (y la parte truncada se perderá), y si no, el mensaje no se borra de la cola y la llamada al sistema falla regresando y poniendo el valor E2BIG en errno.

6 Ejemplos de estructuras struct msgbuf long mtype; char mtext[1]; ; Otro: struct pirate_msgbuf long mtype; /* must be positive */ struct pirate_info char name[30]; char ship_type; int notoriety; int cruelty; int booty_value; info; ; Otro: struct cheese_msgbuf ; long mtype; char name[20]; int type; float yumminess; /* calculate the size of the data to send: */ int size = sizeof(struct cheese_msgbuf) - offsetof(struct cheese_msgbuf, name); Ejemplo de envío de mensajes #include <stdio.h> #include <stdlib.h> #include <errno.h> #include <string.h> #include <sys/msg.h> struct my_msgbuf long mtype; char mtext[200]; ; int main(void) struct my_msgbuf buf; int msqid;

7 key_t key; if ((key = ftok("msg_tx.c", 'B')) == -1) perror("ftok"); if ((msqid = msgget(key, 0644 IPC_CREAT)) == -1) perror("msgget"); printf("enter lines of text, ^D to quit:\n"); buf.mtype = 1; /* we don't really care in this case */ while(fgets(buf.mtext, sizeof buf.mtext, stdin)!= NULL) int len = strlen(buf.mtext); /* ditch newline at end, if it exists */ if (buf.mtext[len-1] == '\n') buf.mtext[len-1] = '\0'; if (msgsnd(msqid, &buf, len+1, 0) == -1) /* +1 for '\0' */ perror("msgsnd"); if (msgctl(msqid, IPC_RMID, NULL) == -1) perror("msgctl"); Ejemplo de recepción de mensajes #include <stdio.h> #include <stdlib.h> #include <errno.h> #include <string.h> #include <sys/msg.h> struct my_msgbuf long mtype; char mtext[200]; ; int main(void) struct my_msgbuf buf; int msqid; key_t key; if ((key = ftok("msg_tx.c", 'B')) == -1) /* same key as kirk.c */

8 perror("ftok"); if ((msqid = msgget(key, 0644)) == -1) /* connect to the queue */ perror("msgget"); printf("listo para recibir mensajes.\n"); for(;;) /* Nunca sale! */ if (msgrcv(msqid, &buf, sizeof(buf.mtext), 0, 0) == -1) perror("msgrcv"); printf("recibí: \"%s\"\n", buf.mtext); Semaphores Los semáforos permiten que procesos sincronicen su ejecución, no intercambian información, si no que permiten que un proceso espere hasta que otro proceso termine una determinada tarea. La forma de utilizarlos es similar a las colas de mensajes, por cuanto hay que generar una clave con ftok() y luego se crea el semáforo (o se vincula a un semáforo existente) por medio de la función semget(). Luego el semáforo es un contador que se opera con la función semctl(). #include <sys/sem.h> int semget(key_t key, int nsems, int semflg); Esta función devuelve el identificador del conjunto de semáforos asociado con el argumento key. Un nuevo conjunto de nsems semáforos se crea si msgflg tiene el valor IPC_CREAT. Con el ID de semáforo ahora se lo controla con semctl(). #include <sys/sem.h> int semctl(int semid, int semnum, int cmd,...); La función semctl realiza la operación de control especificada por cmd sobre el conjunto de semáforos identificado por semid, o en el semáforo semnum-th de dicho conjunto. (Los semáforos

9 son numerados comenzando por el 0.) Esta función tiene tres o cuatro argumentos. Cuando hay cuatro, la llamada es semctl(semid,semnum,cmd,arg); donde el cuarto argumento arg tiene como tipo union semun definido como sigue: union semun int val; /* valor para SETVAL */ struct semid_ds *buf; /* buffer para IPC_STAT, IPC_SET */ unsigned short int *array; /* array para GETALL, SETALL */ struct seminfo * buf; /* buffer para IPC_INFO */ ; Los comandos se pueden leer de manpages. Ejemplo de uso de semáforos #include #include #include #include #include <stdio.h> <stdlib.h> <unistd.h> <errno.h> <sys/types.h> #include <sys/sem.h> #define MAX_RETRIES 10 union semun int val; ; struct semid_ds *buf; ushort *array; /* ** initsem() -- more-than-inspired by W. Richard Stevens' UNIX Network ** Programming 2nd edition, volume 2, lockvsem.c, page 295. */ int initsem(key_t key, int nsems) /* key from ftok() */ int i; union semun arg; struct semid_ds buf; struct sembuf sb; int semid; semid = semget(key, nsems, IPC_CREAT IPC_EXCL 0666); if (semid >= 0) /* we got it first */ sb.sem_op = 1; sb.sem_flg = 0; arg.val = 1; printf("press return\n"); getchar(); for(sb.sem_num = 0; sb.sem_num < nsems; sb.sem_num++) /* do a semop() to "free" the semaphores. */

10 /* this sets the sem_otime field, as needed below. */ if (semop(semid, &sb, 1) == -1) int e = errno; semctl(semid, 0, IPC_RMID); /* clean up */ errno = e; return -1; /* error, check errno */ else if (errno == EEXIST) /* someone else got it first */ int ready = 0; semid = semget(key, nsems, 0); /* get the id */ if (semid < 0) return semid; /* error, check errno */ /* wait for other process to initialize the semaphore: */ arg.buf = &buf; for(i = 0; i < MAX_RETRIES &&!ready; i++) semctl(semid, nsems-1, IPC_STAT, arg); if (arg.buf->sem_otime!= 0) ready = 1; else sleep(1); if (!ready) errno = ETIME; return -1; else return semid; /* error, check errno */ return semid; int main(void) key_t key; int semid; struct sembuf sb; sb.sem_num = 0; sb.sem_op = -1; /* set to allocate resource */ sb.sem_flg = SEM_UNDO; if ((key = ftok("sem.c", 'J')) == -1) perror("ftok"); /* grab the semaphore set created by seminit.c: */

11 if ((semid = initsem(key, 1)) == -1) perror("initsem"); printf("press return to lock: "); getchar(); printf("trying to lock...\n"); if (semop(semid, &sb, 1) == -1) perror("semop"); printf("locked.\n"); printf("press return to unlock: "); getchar(); sb.sem_op = 1; /* free resource */ if (semop(semid, &sb, 1) == -1) perror("semop"); printf("unlocked\n"); Shared Memory Este mecanismo permite compartir información entre procesos. Trabaja con clave igual que los semáforos y las colas de mensajes, uso de la función ftok(). Luego la memoria compartida se crea y se vincula a cada proceso interesado. Para crear se utiliza la función shmget(). #include <sys/shm.h> int shmget(key_t key, int size, int shmflg); shmget() devuelve el identificador del segmento de memoria compartida asociado con el valor del argumento key. Se crea un nuevo segmento de memoria compartida, de tamaño igual al valor de size, si shmflg tiene el valor IPC_PRIVATE crea la memoria compartida. Luego para conectarnos a la memoria se utiliza shmat(). #include <sys/shm.h>

12 void *shmat(int shmid, const void *shmaddr, int shmflg); int shmdt(const void *shmaddr); La función shmat pega el segmento de memoria compartida identificada por shmid al espacio de direcciones del proceso que llama a la función. La dirección del pegado se especifica en shmaddr según uno de los criterios siguientes: Si shmaddr es NULL, el sistema escoge una dirección adecuada (sin utilizar) en donde pegar el segmento. El resto ver en manpages. La función shmdt despega el segmento de memoria compartida localizado en la dirección especificada por shmaddr del espacio de direcciones del proceso invocador. En caso de fallo ambas funciones devuelven -1 con errno indicando el error. En caso de éxito shmat devuelve la dirección del segmento de memoria compartido pegado, y shmdt devuelve 0. Ejemplo de uso de memoria compartida #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/shm.h> #define SHM_SIZE 1024 /* make it a 1K shared memory segment */ int main(int argc, char *argv[]) key_t key; int shmid; char *data; int mode; if (argc > 2) fprintf(stderr, "usage: shmdemo [data_to_write]\n"); /* make the key: */ if ((key = ftok("shmdemo.c", 'R')) == -1) perror("ftok"); /* connect to (and possibly create) the segment: */ if ((shmid = shmget(key, SHM_SIZE, 0644 IPC_CREAT)) == -1) perror("shmget");

13 /* attach to the segment to get a pointer to it: */ data = shmat(shmid, (void *)0, 0); if (data == (char *)(-1)) perror("shmat"); /* read or modify the segment, based on the command line: */ if (argc == 2) printf("escribiendo al segmento: \"%s\"\n", argv[1]); strncpy(data, argv[1], SHM_SIZE); else printf("el segmento contiene: \"%s\"\n", data); /* detach from the segment: */ if (shmdt(data) == -1) perror("shmdt"); Bibliografía Este apunte está baso en: manpages Apuntes de la cátedra

Sistemas Operativos: Programación de Sistemas. Curso Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J.

Sistemas Operativos: Programación de Sistemas. Curso Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Tema 6 : IPC del Unix System V Sistemas Operativos: Programación de Sistemas Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Santana Pérez Curso 2006-07 Introducción El paquete de comunicación

Más detalles

IPC SYSTEM V. Técnicas Digitales III Ing. Gustavo Nudelman 2011. Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

IPC SYSTEM V. Técnicas Digitales III Ing. Gustavo Nudelman 2011. Universidad Tecnológica Nacional - Facultad Regional Buenos Aires IPC SYSTEM V Técnicas Digitales III Ing. Gustavo Nudelman 2011 IPC System V En la década del 70, se incorpora a Unix una gran cantidad de funcionalidades llamadas System V entre las cuales aparecen tres

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

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

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

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

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

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

Seguridad en el Sistema de Archivos. Dr. Alonso Ramírez Manzanares 23-Nov-2010

Seguridad en el Sistema de Archivos. Dr. Alonso Ramírez Manzanares 23-Nov-2010 Seguridad en el Sistema de Archivos Dr. Alonso Ramírez Manzanares 23-Nov-2010 Seguridad La protección de la información es algo muy valioso, la información es una moneda en si. Esto va muy asociado a los

Más detalles

System V MENSAJES. Francisco Javier Montero Vega Francisco García Rodríguez DSO 2004-05

System V MENSAJES. Francisco Javier Montero Vega Francisco García Rodríguez DSO 2004-05 IPC en Unix System V MENSAJES Francisco Javier Montero Vega Francisco García Rodríguez DSO 2004-05 1 Inter-Proces Comunicaction Paso de mensages(colas) Sincronización (semáforos, cerrojos) Memoria compartida

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 Séptima 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 Sexta semana: memoria compartida Segunda práctica 1 Memoria compartida: ejercicio

Más detalles

Taller de Sistemas Operativos. Linux Programming Interface Inter Process Communication (IPC)

Taller de Sistemas Operativos. Linux Programming Interface Inter Process Communication (IPC) Taller de Sistemas Operativos Linux Programming Interface Inter Process Communication (IPC) Agenda Introducción Colas de mensajes Memoria compartida Semáforos Implementación en el kernel GNU C Library

Más detalles

Redirecciones y Tuberías

Redirecciones y Tuberías Redirecciones y Tuberías Ampliación de Sistemas Operativos (prácticas) E.U. Informática en Segovia Universidad de Valladolid Redirecciones Redirección de la entrada y la salida estándar Unix/Linux definen

Más detalles

IPC Repaso: Procesos

IPC Repaso: Procesos Inter-process Communication (C): Repaso Un repaso al uso de Procesos Estructura de un proceso Creación de procesos Señales Inter-Process Communication (C) Tuberías (pipes) y FIFOs Mecanismos C Semáforos

Más detalles

Boletín 3- Archivos. Departamento de Lenguajes y Sistemas Informáticos

Boletín 3- Archivos. Departamento de Lenguajes y Sistemas Informáticos Boletín 3- Archivos Departamento de Lenguajes y Sistemas Informáticos Indice 1. Introducción al acceso a Archivos 1. Acceso a archivos en alto nivel 2. Acceso a archivos en bajo nivel 2. El acceso a los

Más detalles

Unidad de Arquitectura de Ordenadores y Sistemas Operativos. Shared Memory & Semaphores

Unidad de Arquitectura de Ordenadores y Sistemas Operativos. Shared Memory & Semaphores Unidad de Arquitectura de Ordenadores y Sistemas Operativos Shared Memory & Semaphores Recopilado por: Remo Suppi Octubre 1997 Publicación exclusiva para fines docentes Bibliografia: Advanced Unix Programming-Rockhind,

Más detalles

Sistemas Operativos: Programación de Sistemas. Curso Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J.

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

Más detalles

Laboratorio de Sistemas Operativos

Laboratorio de Sistemas Operativos Laboratorio de Sistemas Operativos Juan Antonio Álvarez, Toñi Reina, David Ruiz, Antonio Tallón, Pablo Neira, José Ángel Bernal y Sergio Segura Boletín 7: Colas de Mensajes Curso 2006/07 Índice 1. Introducción

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

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

Mensajes LECCIÓN 21: MENSAJES

Mensajes LECCIÓN 21: MENSAJES LECCIÓN 21: MENSAJES 21.1 Colas de mensajes... 1 21.2 Las estructuras básicas... 1 21.3 Creación y búsqueda de colas de mensajes... 3 21.4 Control de las colas de mensajes... 4 21.5 Emisión de mensajes...

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

Memoria Compartida. Por: Samuel Díaz Cabrera

Memoria Compartida. Por: Samuel Díaz Cabrera Memoria Compartida Por: Orlando Alemán Ortiz Samuel Díaz Cabrera Qué veremos? Introducción Comunicación entre procesos Comunicación en Unix (IPC) Memoria Compartida tda Utilización de M.C. Llamadas al

Más detalles

Formatos para prácticas de laboratorio

Formatos para prácticas de laboratorio CARRERA PLAN DE ESTUDIO CLAVE ASIGNATURA NOMBRE DE LA ASIGNATURA IC 2003-1 5314 Sistemas Operativos PRÁCTICA No. 6 LABORATORIO DE NOMBRE DE LA PRÁCTICA Comunicación entre procesos Tuberías DURACIÓN (HORA)

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

Funciones POSIX (I): Introducción

Funciones POSIX (I): Introducción Funciones POSIX I Funciones POSIX I Llamadas al Llamadas al Sistema Sistema Gestión Básica Gestión Básica de Procesos de Procesos Procesos Procesos fork fork Señales Señales getpid getpid Memoria Memoria

Más detalles

COMUNICACIÓN ENTRE PROCESOS

COMUNICACIÓN ENTRE PROCESOS COMUNICACIÓN ENTRE PROCESOS () 1 Inter-Process Communication () Conjunto de técnicas para el intercambio de datos entre múltiples threads de diferentes procesos también permite la sincronización de procesos

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 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áctica 1: Intérprete de mandatos. Sistemas Operativos Área de Arquitectura y Tecnología de Computadores

Práctica 1: Intérprete de mandatos. Sistemas Operativos Área de Arquitectura y Tecnología de Computadores Práctica 1: Intérprete de mandatos Introducción Desarrollo de un intérprete de mandatos (minishell) en UNIX/Linux en lenguaje C. Debe permitir: Ejecución de mandatos simples ls, cp, mv, rm, etc. Ejecución

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

MC Hilda Castillo Zacatelco PROCESOS

MC Hilda Castillo Zacatelco PROCESOS MC Hilda Castillo Zacatelco hildacz@gmail.com 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

Sistemas Operativos sesión 12: tuberías

Sistemas Operativos sesión 12: tuberías Sistemas Operativos sesión : tuberías Grado en Ingeniería Informática Universidad Carlos III de Madrid Agenda Linux Comunicación con tuberías Ejercicios Agenda Linux Comunicación con tuberías Ejercicios

Más detalles

Bloque I: Principios de sistemas operativos

Bloque I: Principios de sistemas operativos Bloque I: Principios de sistemas operativos Tema 1. Principios básicos de los sistemas operativos Tema 2. Concurrencia Tema 3. Ficheros Tema 4. Sincronización y programación dirigida por eventos Tema 5.

Más detalles

Boletín 4- Procesos. Departamento de Lenguajes y Sistemas Informáticos

Boletín 4- Procesos. Departamento de Lenguajes y Sistemas Informáticos Boletín 4- Procesos Departamento de Lenguajes y Sistemas Informáticos Indice 1. Introducción (Procesos) 2. Identificadores de usuarios y procesos 3. La llamada fork() 4. Las llamadas wait() y exit() 5.

Más detalles

Boletín 4- Procesos. Departamento de Lenguajes y Sistemas Informáticos

Boletín 4- Procesos. Departamento de Lenguajes y Sistemas Informáticos Boletín 4- Procesos Departamento de Lenguajes y Sistemas Indice 1. Introducción n (Procesos) 2. Identificadores de usuarios y procesos 3. La llamada fork() 4. Las llamadas wait() y exit() 5. La llamada

Más detalles

Entrada y Salida de Archivos

Entrada y Salida de Archivos Entrada y Salida de Archivos E/S Básica de Archivo El servicio básico es sin buffering, a diferencias de la E/S estándar (stdio.h), dado que las primeras generan llamadas al sistema (read y write). Son

Más detalles

Examen de Laboratorio de Sistemas Operativos. Primera Convocatoria. 2007/2008. Tercero Ingeniería Informática. Apellidos: 18 de Junio de 2008

Examen de Laboratorio de Sistemas Operativos. Primera Convocatoria. 2007/2008. Tercero Ingeniería Informática. Apellidos: 18 de Junio de 2008 [Cuestión 1.] Resuelva con una línea de comandos UNIX las siguientes tareas: Apartado a.- Compile y enlace en una única instrucción los archivos de código C principal.c, funciones.c y procesos.c. Como

Más detalles

Plataformas de Tiempo Real

Plataformas de Tiempo Real Master en Computación Plataformas de Tiempo Real POSIX Avanzado y Extensiones Tema 2. Gestión de Interrupciones en MaRTE OS Tema 3. Monitorización y control del tiempo de ejecución Tema 4. Planificación

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

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

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

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

Clases 04 y 05: Repaso de programación de sistemas basados en UNIX

Clases 04 y 05: Repaso de programación de sistemas basados en UNIX Clases 04 y 05: Repaso de programación de sistemas basados en UNIX Prof. Edgardo Adrián Franco Martínez http://computacion.cs.cinvestav.mx/~efranco efranco.docencia@gmail.com Estructuras de datos (Prof.

Más detalles

Ejercicios sobre tuberías

Ejercicios sobre tuberías Boletín 3. Ejercicios sobre tuberías July 14, 016 1. Indica de manera justificada si las siguientes afirmaciones sobre la utilización de tuberías como mecanismo de sincronización entre dos procesos son

Más detalles

Apartado a.- Obtenga un listado de todos los ficheros regulares del sistema terminados en.y ó.c, con permiso de lectura para el grupo.

Apartado a.- Obtenga un listado de todos los ficheros regulares del sistema terminados en.y ó.c, con permiso de lectura para el grupo. Examen de Sistemas Operativos (Parte práctica). Primera Convocatoria. Curso 2008/09. Tercero Ingeniería Técnica Informática Nombre: Gestión Sistemas Apellidos: 5 de Febrero de 2009 [Cuestión 1.] Resuelva

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

Ficheros y Directorios

Ficheros y Directorios Ficheros y Directorios Ampliación de Sistemas Operativos (prácticas) E.U. Informática en Segovia Universidad de Valladolid Archivos Archivos UNIX Abstracción de datos que representa un espacio de almacenamiento,

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

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. 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 eloy.anguiano@uam.es Rosa M. Carro rosa.carro@uam.es Ana González ana.marcos@uam.es Escuela Politécnica Superior Universidad Autónoma de Madrid

Más detalles

Examen Final de SO Grau

Examen Final de SO Grau Preguntas cortas 1. (0,5 puntos) Asumiendo que ninguna llamada devuelve error, representa las entradas nuevas de la TFA que aparecerán tras la ejecución del siguiente código: fork(); mknod( pipe, S_IFIFO

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

Introducción a Sistemas Operativos: Ficheros

Introducción a Sistemas Operativos: Ficheros Introducción a Sistemas Operativos: Ficheros Clips Fr ancisco J Ballesteros 1. Entrada/Salida Es importante saber cómo utilizar ficheros. En UNIX, es aún más importante dado que gran parte de los recursos,

Más detalles

Analista Universtiario en Sistemas. Sistemas Operativos. IPC - Sockets SOCKETS

Analista Universtiario en Sistemas. Sistemas Operativos. IPC - Sockets SOCKETS SOCKETS Introducción Permiten la comunicación entre dos o más procesos ejecutando en un mismo equipo o equipos independientes La comunicación que posibilitan es full-duplex (bi-direccional) Sigue el modelo

Más detalles

Procesamiento de Archivos

Procesamiento de Archivos Procesamiento de Archivos Objetivo: El alumno utilizará archivos para almacenar información permanente en su disco. Resultado de aprendizaje: Elaborar programas con archivos Rodriguez Hdez.-2005 1 Definiciones

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: una visión aplicada. Capítulo 5 Comunicación y sincronización de procesos

Sistemas operativos: una visión aplicada. Capítulo 5 Comunicación y sincronización de procesos Sistemas operativos: una visión aplicada Capítulo 5 Comunicación y sincronización de procesos Sistema multiprogramado con un una CPU Proceso A Proceso B Proceso C Tiempo Sistemas operativos: una visión

Más detalles

Ejercicio Sockets Suma Resta. Descripción

Ejercicio Sockets Suma Resta. Descripción Ejercicio Sockets Suma Resta Siguiendo con nuestra propuesta de construir embriones de servicios, como hemos hecho en la práctica programando un embrión de Telnet, un embrión de cliente de un servidor

Más detalles

Introducción a Sistemas Operativos: Concurrencia

Introducción a Sistemas Operativos: Concurrencia Introducción a Sistemas Operativos: Concurrencia Clips xxx Fr ancisco J Ballesteros 1. Semáforos Quizá la abstracción más conocida para sincronizar procesos en programación concurrente controlar el acceso

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

Ejercicios de la sesión 4 de C resueltos

Ejercicios de la sesión 4 de C resueltos Ejercicios de la sesión 4 de C resueltos 1. Usando el procedimiento del ejercicio 2 del seminario anterior, escribe un programa que multiplique dos matrices A y B leídas de ficheros, la primera de tamaño

Más detalles

INTRODUCCIÓN A LAS LLAMADAS AL SISTEMA OPERATIVO UNIX

INTRODUCCIÓN A LAS LLAMADAS AL SISTEMA OPERATIVO UNIX INTRODUCCIÓN A LAS LLAMADAS AL SISTEMA OPERATIVO UNIX Introducción de llamadas al sistema operativo UNIX ÍNDICE 1.- Introducción 2.- Conceptos generales Ficheros Programas y procesos Identificadores de

Más detalles

Capitulo VI Arquitectura del sistema de archivos

Capitulo VI Arquitectura del sistema de archivos Capitulo VI Arquitectura del sistema de archivos Las características que posee el sistema de archivos de UNIX son las siguientes: Posee una estructura jerárquica. Realiza un tratamiento consistente de

Más detalles

El tiempo de búsqueda es de 3 + 0,04 x ms, siendo x el número de cilindros a recorrer.

El tiempo de búsqueda es de 3 + 0,04 x ms, siendo x el número de cilindros a recorrer. 1 SISTEMA DE FICHEROS Problema 1.1 La cola de acceso a un disco tiene las siguientes peticiones (solamente indicaremos el cilindro afectado). 10, 200, 75, 32, 450, 123. El tiempo de búsqueda es de 3 +

Más detalles

Programación I Teoría : Entrada/Salida - Archivos.

Programación I Teoría : Entrada/Salida - Archivos. Programación I Teoría : Entrada/Salida - Archivos http://proguno.unsl.edu.ar proguno@unsl.edu.ar Entrada/Salida Interacción del programa con su ambiente para leer (entrada) y escribir (salida) datos. 2

Más detalles

Tema 13: Manejo de archivos en lenguaje C

Tema 13: Manejo de archivos en lenguaje C Tema 13: Manejo de archivos en lenguaje C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco)

Más detalles

API del SO + Comunicación entre procesos (IPC)

API del SO + Comunicación entre procesos (IPC) Sistemas Operativos - 2011 Año del conejo Año en que ivissani se licencia? gdecaso nrosner iraskovsky ivissani Menú del día POSIX. Creación de procesos: fork, execlp, wait. Conceptos básicos de IPC. Comunicación

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

Llamadas al sistema básicas de control de procesos

Llamadas al sistema básicas de control de procesos Actividad 7 (v. 16046) Pablo González Nalda Depto. de Lenguajes y Sistemas Informáticos lsi.vc.ehu.es/pablogn Llamadas al sistema básicas de control de procesos Observa, analiza y prueba los programas:

Más detalles

Resuelva con una orden UNIX las siguientes tareas:

Resuelva con una orden UNIX las siguientes tareas: Examen de Laboratorio de Sistemas Operativos. Convocatoria Diciembre. Curso 2008/09. Tercero Ingeniería Informática Nombre: Apellidos: 25 de Noviembre de 2009 [Cuestión 1.] Resuelva con una orden UNIX

Más detalles

Paso de mensajes. Gustavo Romero López. 15 de mayo de Arquitectura y Tecnología de Computadores

Paso de mensajes. Gustavo Romero López. 15 de mayo de Arquitectura y Tecnología de Computadores Paso de mensajes Gustavo Romero López Arquitectura y Tecnología de Computadores 15 de mayo de 2017 Gustavo Romero López Paso de mensajes 1 / 66 Índice 1 Introducción 2 IPC elemental 3 IPC de alto nivel

Más detalles

Archivos de números. Tema 10c. Archivos de números. Archivos de números. Archivos mixtos. Archivos mixtos. Manejo de archivos de datos en C

Archivos de números. Tema 10c. Archivos de números. Archivos de números. Archivos mixtos. Archivos mixtos. Manejo de archivos de datos en C Archivos de números Tema 10c Manejo de archivos de datos en C Para leer datos desde un archivo de texto como enteros (o números en general) se puede utilizar fscanf. Para escribir datos numéricos en archivos

Más detalles

Concurrencia, exclusión mutua y sincronización. Capítulo 5 HungriaBerbesi

Concurrencia, exclusión mutua y sincronización. Capítulo 5 HungriaBerbesi Concurrencia, exclusión mutua y sincronización Capítulo 5 HungriaBerbesi 1 Concurrencia Múltiples aplicaciones Aplicaciones estructuradas Estructura del sistema operativo 2 Concurrencia 3 Sección Crítica:

Más detalles

Para C un chero no es más que una porción de almacenamiento

Para C un chero no es más que una porción de almacenamiento Ficheros en C Para C un chero no es más que una porción de almacenamiento de memoria. C representa un chero como una estructura, de hecho el chero stdio.h contiene la dención de un chero como si fuese

Más detalles

Introducción a Sistemas Operativos: Comunicación entre Procesos

Introducción a Sistemas Operativos: Comunicación entre Procesos Introducción a Sistemas Operativos: Comunicación entre Procesos Clips xxx Fr ancisco J Ballesteros 1. Pipefroms Otra función de utilidad realiza el trabajo inverso, permite leer la salida de un comando

Más detalles

Procesos. Aspectos básicos

Procesos. Aspectos básicos Procesos Aspectos básicos 1. Atributos de un proceso 2. Tabla de procesos y área de usuario 3. Planificadores 4. Comandos a. ipcs b. ipcrm 5. Creación procesos 6. Llamadas al sistema. 7. Como manipular

Más detalles

Universidad Simón Bolívar Departamento de Computación y Tecnología de la Información Curso de Redes I CI-4815 Trimestre Septiembre Diciembre 2013

Universidad Simón Bolívar Departamento de Computación y Tecnología de la Información Curso de Redes I CI-4815 Trimestre Septiembre Diciembre 2013 Universidad Simón Bolívar Departamento de Computación y Tecnología de la Información Curso de Redes I CI-4815 Trimestre Septiembre Diciembre 2013 Proyecto I Autores: Lairon Acosta. Carnet: 09-10927 Jueves

Más detalles

Tema 4: Gestión de Procesos

Tema 4: Gestión de Procesos Tema 4: Gestión de Procesos SSOO - Curso 2005/06 E. Domínguez C. Villarrubia Departamento de Tecnologías y Sistemas de Información Escuela Superior de Informática Universidad de Castilla - La Mancha Marzo

Más detalles

Programación de Sistemas. Programación de Sistemas con Ansi C sobre UNIX. Gestión de errores. Gestión de errores. Ficheros regulares

Programación de Sistemas. Programación de Sistemas con Ansi C sobre UNIX. Gestión de errores. Gestión de errores. Ficheros regulares Programación de Sistemas con Ansi C sobre UNIX Pedro Merino Gómez Jesus Martínez Cruz Dpto. Lenguajes y Ciencias de la Computación Universidad de Málaga Programación de Sistemas Llamadas al sistema Gestión

Más detalles

Estructuras y funciones de programación de sockets.

Estructuras y funciones de programación de sockets. Estructuras y funciones de programación de sockets. Introducción. Autor: Enrique Bonet En estos apuntes se incluye una breve descripción de las estructuras y funciones cuyo uso puede ser necesario para

Más detalles

REPRESENTACIÓN INTERNA DE FICHEROS

REPRESENTACIÓN INTERNA DE FICHEROS REPRESENTACIÓN INTERNA DE FICHEROS Inodos Existe un inodo para cada fichero del disco. Los inodos se encuentran: o o En disco, en la lista de inodos. En memoria, en la tabla de inodos, de estructura semejante

Más detalles

Lenguaje C. República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III

Lenguaje C. República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III Lenguaje C 1 Puntos previos Los códigos fuentes generados en C requieren ser compilados

Más detalles

[Cuestión 1.]Resuelva con una orden UNIX las siguientes tareas:

[Cuestión 1.]Resuelva con una orden UNIX las siguientes tareas: [Cuestión 1.]Resuelva con una orden UNIX las siguientes tareas: Apartado a.- Copie todas las rutas de los directorios donde el intérprete de comandos busca los programas ejecutables al final del fichero

Más detalles

Archivos & Cadenas CURSO DE PROGRAMACIÓN EN C. Centro de Investigación y de Estudios Avanzados del IPN. CINVESTAV - Tamaulipas.

Archivos & Cadenas CURSO DE PROGRAMACIÓN EN C. Centro de Investigación y de Estudios Avanzados del IPN. CINVESTAV - Tamaulipas. Archivos & Cadenas CURSO DE PROGRAMACIÓN EN C Centro de Investigación y de Estudios Avanzados del IPN. CINVESTAV - Tamaulipas. Febrero 2016 [Curso de programación en C] - Archivos & Cadenas 1/17 Archivos

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

Lenguaje de Programación: C++ ARCHIVOS I/O

Lenguaje de Programación: C++ ARCHIVOS I/O UG C++ Lenguaje de Programación: C++ ARCHIVOS I/O Universidad de Guanajuato Octubre 2010 Como abrir un archivo Antes de poder escribir datos en un archivo, debemos abrirlo, esto significa que debemos decirle

Más detalles

Introducción a Sistemas Operativos: Ficheros

Introducción a Sistemas Operativos: Ficheros Introducción a Sistemas Operativos: Ficheros Clips xxx Fr ancisco J Ballesteros 1. Entrada/salida y buffering El interfaz proporcionado por open, close, read, write, etc. es suficiente la mayoría de las

Más detalles

Aplicación Multiproceso sobre HTTP Ejemplo -

Aplicación Multiproceso sobre HTTP Ejemplo - LABORATORIO DE SISTEMAS OPERATIVOS (Curso 2013/2014) PRÁCTICA 3 Aplicación Multiproceso sobre HTTP Ejemplo - Objetivos del documento Este documento presenta un ejemplo, en el contexto de desarrollo planteado

Más detalles

MANEJO DEL SISTEMA DE ARCHIVOS

MANEJO DEL SISTEMA DE ARCHIVOS OBJETIVO: INTRODUCCIÓN: Existen varios tipos de archivos: PRACTICA #7 MANEJO DEL SISTEMA DE ARCHIVOS 1.- Archivos ordinarios. Son los más comunes, son los que almacenan datos, es decir, puede ser un programa,

Más detalles

Concepto Concept s Los L nom res re d e e los h c eros: exter te n r os o o fí s fí ico nom re ú nico i del del ar chiv chiv o o o ficher ficher en

Concepto Concept s Los L nom res re d e e los h c eros: exter te n r os o o fí s fí ico nom re ú nico i del del ar chiv chiv o o o ficher ficher en Conceptos Los nombres de los ficheros: externos o físico (nombre único del archivo o fichero en el sistema de archivos) e interno o lógico (identificador del fichero dentro de un programa). Las operaciones

Más detalles

SISTEMAS OPERATIVOS: INTRODUCCIÓN Y CONCEPTOS BÁSICOS. Servicios del Sistema Operativo

SISTEMAS OPERATIVOS: INTRODUCCIÓN Y CONCEPTOS BÁSICOS. Servicios del Sistema Operativo SISTEMAS OPERATIVOS: INTRODUCCIÓN Y CONCEPTOS BÁSICOS Servicios del Sistema Operativo ADVERTENCIA 2 Este material es un simple guión de la clase: no son los apuntes de la asignatura. El conocimiento exclusivo

Más detalles

Comunicación entre procesos (IPC) (+ Continuación API del SO)

Comunicación entre procesos (IPC) (+ Continuación API del SO) Comunicación entre procesos (IPC) (+ Continuación API del SO) Sistemas Operativos - 2do Cuat. 2013 gdecaso... Maximiliano Geier Menú del día Repaso: POSIX, Creación de procesos (fork, execlp, wait). Conceptos

Más detalles

Redes de Computadores Nivel de Aplicación: Programación con sockets 3

Redes de Computadores Nivel de Aplicación: Programación con sockets 3 Redes de Computadores Nivel de Aplicación: Programación con sockets 3 Área de Ingeniería Telemática Dpto. Automática y Computación http://www.tlm.unavarra.es/ En clases anteriores... Clientes y servidores

Más detalles

Examen Final de Teoría. Grupo de teoría:

Examen Final de Teoría. Grupo de teoría: Preguntas Cortas (2 puntos) 1. Respecto a la optimización de gestión de memoria CoW, explica brevemente: a. Qué soporte hardware utiliza el sistema para poder implementarla? b. Qué permisos aplica el sistema

Más detalles