Examen de Laboratorio de Sistemas Operativos. Primera Convocatoria. 2007/2008. Tercero Ingeniería Informática. Apellidos: 18 de Junio de 2008
|
|
- Sebastián Ojeda Pérez
- hace 5 años
- Vistas:
Transcripción
1 [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 resultado se deberá generar un archivo ejecutable cuyo nombre será programa1. gcc principal.c funciones.c procesos.c o programa1 Apartado b.- Borre el grupo de semáforos cuyo identificador es el ipcrm s 2008 Apartado c.- Obtenga un listado de todos los sockets de tipo UNIX que hay actualmente en el sistema y añádalos al final del fichero sock_un_log.txt. ls lr / grep ^s >> sock_un_log.txt Apartado d.- Liste todos los archivos regulares del directorio actual que tengan al menos permiso de lectura y escritura para el propietario. ls l grep ^-rw Puntuación: 2 ptos. Tiempo estimado: 5 min. 1
2 2
3 [Cuestión 2.] Realice un programa en C, recorrido, que en ejecución resulte en la creación de tres procesos, un proceso padre y dos procesos hijos (procesos A y B). El programa recibirá como argumento la ruta de un directorio que deberá ser recorrido por el proceso hijo A. Para cada entrada de directorio, el proceso A enviará al proceso B la ruta de la entrada de directorio leída. El proceso hijo B, por su parte, deberá comprobar si dicha entrada de directorio es un fichero regular con permiso de escritura para el propietario e informar al proceso A de ello. En concreto, el proceso B enviará al proceso A la señal SIGUSR1 en caso de que la entrada de directorio cumpla los criterios especificados y la señal SIGUSR2 en caso contrario. Note que el proceso A deberá mostrar por pantalla un mensaje informando, para cada entrada de directorio, su ruta y si ésta cumple los criterios especificados. Al finalizar el recorrido del directorio, el proceso A enviará la cadena FIN al proceso B y ambos terminarán. La Figura 1 muestra un esquema del funcionamiento del programa: Padre A B SIGUSR1 SIGUSR2 Figura 1. Esquema de funcionamiento del programa recorrido La Figura 2 muestra un ejemplo del programa en ejecución: murillo>recorrido /tmp /tmp/. : NO ES FICHERO REGULAR CON PERMISO DE ESCRITURA /tmp/.. : NO ES FICHERO REGULAR CON PERMISO DE ESCRITURA /tmp/.x11-unix : NO ES FICHERO REGULAR CON PERMISO DE ESCRITURA /tmp/.x11-pipe : NO ES FICHERO REGULAR CON PERMISO DE ESCRITURA /tmp/ps_data : FICHERO REGULAR CON PERMISO DE ESCRITURA /tmp/.removable : NO ES FICHERO REGULAR CON PERMISO DE ESCRITURA Figura 2. Ejemplo del programa recorrido en ejecución NOTAS: Note que hasta que no se ha comprobado una entrada de directorio no se continúa con la siguiente. No deje procesos huérfanos ni zombis. No se permite el uso de la llamada system. Puntuación: 2 ptos. Tiempo estimado: 30 min. 3
4 #include <stdio.h> #include <unistd.h> #include <dirent.h> #include <sys/types.h> #include <sys/stat.h> #include <sys/file.h> #include <string.h> #include <fcntl.h> #include <stdlib.h> #include <errno.h> #include <signal.h> #define MAX_LONG_RUTA 255 void manejadorsigusr1(int sig); void manejadorsigusr2(int sig); int main(int argc, char * argv[]) int i,nbytes,status; pid_t childpid, childpida; char ruta[max_long_ruta]; int fd[2]; if (argc!=2) fprintf(stderr,"uso %s <ruta_dir>", argv[0]); // Creacion de tuberías if ((pipe(fd) < 0)) perror("ocurrió un error al crear la tubería\n"); for(i=0;i<=2;i++) childpid=fork(); if (childpid < 0) perror("error al hacer fork"); if (i==0) childpida = childpid; if (childpid == 0) if (i==0) /* PROCESO HIJO A */ DIR *dirp; struct dirent *direntp; /* Cerrar descriptores innecesarios */ close(fd[0]); // Manejador para SIGUSR1 if (signal (SIGUSR1, manejadorsigusr1) == SIG_ERR) perror("error en signal"); 4
5 // Manejador para SIGUSR2 if (signal (SIGUSR2, manejadorsigusr2) == SIG_ERR) perror("error en signal"); if ((dirp = opendir(argv[1])) == NULL) fprintf(stderr, "No se puede abrir el directorio %s. Error: %s\n", argv[1], strerror(errno)); return (-2); while ( (direntp = readdir( dirp ))!= NULL ) sprintf(ruta, "%s/%s", argv[1], direntp->d_name); write(fd[1],ruta,strlen(ruta)); printf("%s : ",ruta); fflush(stdout); pause(); // Informamos de que hemos llegado al final del recorrdio write(fd[1],"fin",3); exit(0); else if (i==1)/* PROCESO HIJO B */ struct stat atributos; /* Cerrar descriptores innecesarios */ close(fd[1]); while (1) for(i=0;i<max_long_ruta;i++) ruta[i]=0; /* Leer ruta fichero */ nbytes = read(fd[0],ruta,sizeof(ruta)); if (strcmp(ruta,"fin")==0) exit(0); //sleep(1); if(stat (ruta, &atributos) < 0) fprintf (stderr, "\nerror %d (%s) al hacer stat en %s", errno, strerror(errno), ruta); 5
6 & S_IWUSR)) if ((atributos.st_mode & S_IFREG) && (atributos.st_mode kill(childpida,sigusr1); else kill(childpida,sigusr2); /* PROCESO PADRE */ while (wait(&status)!=-1); return 0; void manejadorsigusr1(int sig) printf("fichero REGULAR CON PERMISO DE ESCRITURA\n"); signal (SIGUSR1, manejadorsigusr1); void manejadorsigusr2(int sig) printf("no ES FICHERO REGULAR CON PERMISO DE ESCRITURA\n"); signal (SIGUSR2, manejadorsigusr2); 6
7 [Cuestión 3.] Un padre tiene tres hijos: Adela, Benito y Cristina. Los domingos salen a pasear llevando al parque la única bicicleta que poseen. Para asegurar un uso equitativo de dicha bicicleta, cada hijo da una vuelta al parque y le deja la bicicleta al siguiente hermano. Primero daría la vuelta Adela que es la menor, luego Benito el segundo hijo, y por último Cristina, la mayor. En cada salida, programan dar un número de vueltas establecido previamente. La segunda y siguientes vueltas se realizan siempre siguiendo el mismo orden, empezando por Adela. Se pide desarrollar en C un programa, paseo, que simule el escenario presentado. Debe crear la estructura de un proceso padre con tres procesos hijos. El primer hijo simulará el paseo de Adela, el segundo el de Benito, y el tercero el de Cristina. El número de vueltas del paseo debe recogerse como argumento. Figura 3. Jerarquía de procesos del programa paseo La sincronización entre los procesos deberá implementarse a través de la biblioteca de semáforos vista en clase. Debe crear e inicializar los semáforos convenientemente. Suponga implementada la siguiente función: - void vuelta (char * cadena): Simula la vuelta en bicicleta realizada por el hijo cuyo nombre se encuentra en la cadena. murillo>./paseo Uso:./paseo <vueltas> murillo>./paseo 3 Vuelta de Adela Vuelta de Benito Vuelta de Cristina Vuelta de Adela Vuelta de Benito Vuelta de Cristina Vuelta de Adela Vuelta de Benito Vuelta de Cristina Figura 4. Ejemplo del programa paseo en ejecución NOTAS: Asegúrese de que los semáforos son eliminados cuando cualquiera de los procesos reciba la señal SIGINT. El acceso a la bicicleta, realizado por la función vuelta debe estar protegido mediante exclusión mutua. No se permite el uso de ningún tipo de variable compartida. No se permite dejar hijos huérfanos ni zombis. Debe tratar correctamente el número de argumentos. Puntuación: 3 ptos. Tiempo estimado: 30 min. 7
8 #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <unistd.h> #include <signal.h> #include <errno.h> #include "Semaph.h" Semaph excmut,a,b,c; void iniciador () excmut = Semaph_Create("excmut", 1); A = Semaph_Create("A", 1); B = Semaph_Create("B", 0); C = Semaph_Create("C", 0); if ((excmut == -1) (A == -1) (B == -1) (C == -1)) perror("error al crear semaforos"); exit(-1); void terminador (int sig) Semaph_Destroy("excmut", excmut); Semaph_Destroy("A", A); Semaph_Destroy("B", B); Semaph_Destroy("C", C); exit(0); void vuelta(char *cadena) printf("vuelta de %s\n",cadena); int main (int argc, char * argv[]) int i,v,vueltas,status,waitreturn; int padre; padre = 1; if(argc!=2) printf("uso: %s <vueltas>\n",argv[0]); exit(1); sscanf(argv[1],"%d",&vueltas); iniciador(); if(signal(sigusr1,terminador)==sig_err) perror("signal\n"); exit(-1); for (i=0; i < 3; i++) if (padre == 1) if (fork() == 0) /* Proceso hijo */ if(i==0) //hijo A for(v=0;v<vueltas;v++) Semaph_Down(A); 8
9 Semaph_Down(excmut); vuelta("adela"); Semaph_Up(excmut); Semaph_Up(B); if(i==1) //hijo B for(v=0;v<vueltas;v++) Semaph_Down(B); Semaph_Down(excmut); vuelta("benito"); Semaph_Up(excmut); Semaph_Up(C); if(i==2) //hijo C for(v=0;v<vueltas;v++) Semaph_Down(C); Semaph_Down(excmut); vuelta("cristina"); Semaph_Up(excmut); Semaph_Up(A); padre = 0; else /* Proceso padre */ padre = 1; //if padre //for while(waitreturn = wait(&status)) if ((waitreturn == -1) && (errno!= EINTR)) break; return 0; 9
10 10
11 [Cuestión 4.] Se desea implementar en C un cliente y un servidor de archivos concurrente que trabajen en modo conectado y que puedan funcionar a través de Internet. La implementación del servidor constará de las siguientes funciones: int crear_conexion_servidor (int puerto) Esta función realiza las siguientes acciones: o Crea el socket que se empleará como socket de escucha. o Une el socket a la dirección IP de la máquina en la que se ejecuta el código y al puerto indicado como parámetro de entrada. o Asigna el tamaño de la cola de espera de acuerdo al valor de la constante TAM_COLA. En caso de error, la función devuelve -1. int aceptar_conexion (int socket_escucha) Toma como argumento el descriptor del socket de escucha y devuelve el descriptor del socket conectado correspondiente a la última conexión. En caso de error, devuelve -1. int procesar_conexion_servidor (int sock_conectado) Toma como parámetro de entrada el descriptor de un socket conectado y procesa la conexión de forma adecuada en función de las órdenes introducidas por el cliente. Si todo va bien devuelve 0, en caso contrario -1. Por su parte, la implementación del cliente constará de las siguientes funciones: int crear_conexion_cliente (char * nombre_maquina, int puerto) Esta función realiza las siguientes acciones: o Crea el socket conectado en el cliente. o Conecta el socket al servidor cuyo nombre y puerto se introducen como parámetros. La función devuelve el descriptor del socket conectado. En caso de error, la función devuelve -1. int procesar_conexion_cliente (int socket_conexion) Esta función procesa la conexión adecuadamente leyendo las órdenes del usuario, transmitiéndolas al servidor y procesando la información que éste devuelve. Si todo va bien devuelve 0, en caso contrario -1. Una vez que el servidor se encuentre en funcionamiento, éste deberá enviar a los clientes la información que éstos soliciten a través de órdenes específicas. En la versión actual del servidor, las órdenes disponibles son: help: Si un cliente envía al servidor la cadena help, el servidor deberá enviar a dicho cliente el contenido del fichero help.txt localizado en el servidor seguido de la cadena <FIN>. El cliente, por su parte, deberá leer la información recibida del servidor y mostrarla por pantalla. La siguiente figura muestra un ejemplo del programa servidor y cliente en ejecución: murillo>servidor 8028 ================================= Servidor murillo Puerto: 8028 ================================= ================================= Cliente: Puerto cliente: ================================= Servidor a la espera de recibir ordenes... Orden "HELP" recibida murillo>cliente murillo 8028 Escriba la orden que desee enviar al servidor: help ============================================ SERVIDOR DE FICHEROS LSO AYUDA DEL SISTEMA ============================================ El servidor de ficheros LSO es un sistema... <FIN> Escriba la orden que desee enviar al servidor: Figura 5. Ejemplo del programa servidor y cliente en ejecución 11
12 Se pide: Apartado a.- Implemente la función crear_conexión_cliente (1,5 ptos.). Apartado b.- Implemente la función procesar_conexión_servidor incluyendo el código necesario para dar soporte a la órden help. Para la implementación deberá hacer uso de alguna de las llamadas exec (1,5 ptos.). NOTAS: Implemente tantas funciones auxiliares como considere necesarias. No se permite el uso de la llamada system. Puntuación: 3 ptos. Tiempo estimado: 40 min Apartado a.- /* Crea un socket de escucha en modo stream en el dominio de Internet */ int crear_conexion_cliente(char * nombre_maquina, int puerto) int s; struct sockaddr_in sin; struct hostent *hp; /* Obtenemos la dirección IP a partir del nombre */ hp = gethostbyname(nombre_maquina); if (hp == NULL) fprintf(stderr, "Error al obtener la dirección IP asociada al nombre de la maquina\n"); return (-1); /* Creamos el socket de conexion */ if ((s = socket(af_inet, SOCK_STREAM,0))<0) perror("error al crear el socket"); return (-1); /* Nos conectamos al servidor */ sin.sin_family = AF_INET; /* Tipo internet */ sin.sin_port = htons(puerto); /* Puerto en Network byte order */ memmove(&sin.sin_addr, hp->h_addr, hp->h_length); /* Obtenemos la dirección IP de Network byte order */ if (connect(s, (struct sockaddr *) &sin, sizeof(sin))<0) perror("error al hacer connect"); return (-1); return s; Apartado b.- /* Comunicación con el cliente */ int procesar_conexion_servidor(int socket_conexion) char mensaje[tam_mensaje]; int n_bytes=0; int i,fin=0; printf("servidor a la espera de recibir ordenes...\n"); while(!fin) for(i=0;i<tam_mensaje;i++) mensaje[i]=0; 12
13 n_bytes=recv(socket_conexion,mensaje, sizeof(mensaje),0); if (n_bytes < 0) fprintf(stderr,"error en recv\n"); return -1; // Fin? if (strcmp(mensaje,"bye\n")==0) fin=1; // Opcion help else if (strcmp(mensaje,"help\n")==0) printf("orden \"HELP\" recibida\n"); mostrar_ayuda(socket_conexion); else // Mostramos el mensaje tal cual printf("%s", mensaje); fflush(stdout); return 0; // Envía al cliente el contenido del fichero de ayuda void mostrar_ayuda(int socket_conexion) long childpid; char ruta[tam_mensaje]; // Creamos la ruta sprintf(ruta,"%s/help.txt",dir_serv); childpid=fork(); if (childpid==-1) // Error fprintf(stderr,"mostrar listado: Error al hacer fork\n"); else if (childpid==0) // Proceso hijo dup2(socket_conexion,1); execlp("cat","cat",ruta,0); fprintf(stderr,"error en exec: %s\n", strerror(errno)); else // Proceso padre sleep(2); send(socket_conexion,"<fin>\n",6,0); 13
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 detallesResuelva 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[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 detallesSockets: funcionamiento y programación. Sockets tipo UNIX. MSc. Ivan A. Escobar
Sockets tipo UNIX MSc. Ivan A. Escobar Creación socket: socket() int socket(familia, tipo, protocolo) Regresa un valor entero Parecido descriptor de archivos: descriptor socket sockfd int familia familia
Más detallesRedirecciones 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 detallesEjercicio 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 detallesFunciones 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 detallesFormatos 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 detallessockets Flujo (SOCK_STREAM) Comunicación bidireccional Confiable (entrega garantizada) Información ordenada en el destino Datagrama (SOCK_DGRAM)
s s Comunicación punto-a-punto entre procesos Los s son los extremos de la comunicación Diferentes dominios UNIX: Entre procesos de un mismo equipo Internet: Entre procesos de diferentes equipos (TCP/IP)
Más detallesPrá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 detallesBoletí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 detallesBiblioteca 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 detallesPrá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 detallesSistemas 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 detallesAplicació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 detallesBoletín 7- Sockets. Departamento de Lenguajes y Sistemas Informáticos
Boletín 7- Sockets Departamento de Lenguajes y Sistemas Informáticos Indice 1. Introducción. 2. Tipos de sockets. 3. socket() 4. bind() 5. listen() 6. accept() 7. connect() 8. send()/ ()/recv(). 9. Funciones
Más detallesBOLETIN 8 INDICE. ordenación de bytes. conversión de nombre y direcciones.
Sockets BOLETIN 8 INDICE 1. Introducción. 2. Tipos de sockets. 3. socket() 4. bind() 5. listen() 6. accept() 7. connect() 8. send()/recv(). 1. Funciones de ordenación de bytes 2. Funciones de conversión
Más detallesSistemas 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 detallesLlamadas al Sistema para la Creación de Procesos
Llamadas al Sistema para la Creación de Procesos Transparencias realizadas por M. Curiel. Se utiliza material ya publicado en la WEB y elaborado por todos los prof. que hemos dado el curso. Llamada al
Más detallesFicheros 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 detallesARQUITECTURA DE REDES Laboratorio
1nsloo.cl ARQUITECTURA DE REDES Laboratorio Práctica 4: Ejercicios de aplicación de HTTP 1. OBJETIVOS. El objetivo de esta práctica es que el alumno llegue a conocer los principales conceptos relacionados
Más detallesPrueba de Laboratorio Modelo B01 Semáforos y Memoria Compartida
Prueba de Laboratorio APELLIDOS: NOMBRE: GRUPO DE LABORATORIO: Indicaciones: No se permiten libros, apuntes ni teléfonos móviles. Cuando tenga una solución al ejercicio muéstrela al profesor (compilación
Más detallesPRÁCTICA 4 PASO DE MENSAJES
PRÁCTICA 4 PASO DE MENSAJES Introducción Cuando los procesos interactúan unos con otros pueden necesitar intercambiar información. Uno de los métodos posibles para conseguir esto es el paso de mensajes.
Más detallesMC 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-> Todo socket viene definido por dos características fundamentales:
LOS SOCKETS. Los sockets no son más que puntos o mecanismos de comunicación entre procesos que permiten que un proceso hable (emita o reciba información) con otro proceso incluso estando estos procesos
Más detallesRedes 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 detallesPrimer control de teoría
rimer control de teoría Ejercicio : reguntas cortas ( puntos) Tiempo estimado 5 min.. En un sistema actual de propósito general, las direcciones (funciones, referencias a datos, etc) que encontramos en
Más detallesPrá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, Sergio Segura y José Ángel Bernal Boletín 4: Procesos Curso
Más detalles2. Problema de Análisis y Diseño Orientado a Objetos (5 puntos - 30 minutos)
APELLIDOS NOMBRE Nº Mat. UNIVERSIDAD POLITÉCNICA DE MADRID ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA Y DISEÑO INDSUTRIAL Departamento de Ingeniería Eléctrica, Electrónica, Automática y Física Aplicada ASIGNATURA:
Más detallesTeoría. Procesos. Escuela Politécnica Superior Universidad Autónoma de Madrid 1
Grupos Realización Entrega/Evaluación Lunes 22 de Febrero, 1, 8, 15 de Marzo 22 de Marzo Martes 23 de Febrero, 2, 9 y 16 de Marzo 23 de Marzo Miércoles 24 de Febrero, 3, 10 y 17 de Marzo 24 de Marzo Viernes
Más detallesExamen 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 detallesSCHOOL OF HACKING 2015 RETO BUFFER OVERFLOW
SCHOOL OF HACKING 2015 RETO BUFFER OVERFLOW INSTRUCCIONES Para la resolución del reto habrá que tener una máquina física o virtual Linux instalada al menos con las siguientes características: - Compilador
Más detallesProcesos e hilos: el downloader
Departamento de Automática 1 / 8 Descarga de archivos con procesos en paralelo Objetivo principal: descarga de un archivo de gran tamaño de forma eficiente desde Internet Otros objetivos: Utilizar la biblioteca
Más detallesClases 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 detallesEjercicios 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 detallesUniversidad 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 detallesIntroducción y Gestión de Procesos
Introducción y Gestión de Procesos Sistemas Operativos (prácticas) E.U. Informática en Segovia Universidad de Valladolid Llamadas al sistema Concepto Constituye el juego de instrucciones del sistema operativo
Más detalles1_servicio_eco_stream_secuencial/eco_clie_tcp.c Tue Mar 09 09:57:
1_servicio_eco_stream_secuencial/eco_clie_tcp.c Tue Mar 09 09:57:01 2010 1 #include #include int s, leido; struct sockaddr_in dir; struct hostent *host_info; host_info=gethostbyname("localhost");
Más detallesBloque 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 detallesEjercicios 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 detallesBoletí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 detallesBoletí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 detallesIntroducción a Sistemas Operativos: La red
Introducción a Sistemas Operativos: La red Clips xxx Fr ancisco J Ballesteros 1. Sockets La red no existía cuando hicieron UNIX. Cuando posteriormente las máquinas empezaron a erconectarse (antes de la
Más detallesPrá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 detallesNombre y apellidos: DNI: 1
R E R B 1 R E R 1 R R P Nombre y apellidos: DNI: 1 Examen de Redes de Computadores. Ingeniería Técnica en Informática de Gestión eptiembre de 28 Número de identificación del examen: examid Duración: 2
Más detallesASIGNATURA: SISTEMAS INFORMÁTICOS INDUSTRIALES. CURSO 4º GRUPO Octubre 2015
2. Problema de Análisis y Diseño Orientado a Objetos (10 puntos - 20 minutos) Para el código de test adjunto, se pide. 1. Diagrama de clases de diseño (2.5 puntos). 2. Implementación en C++ de la solución
Más detallesArquitectura de Computadores. Práctica 3: Mecanismos de comunicación entre procesos
- 1 - Arquitectura de Computadores Práctica 3: Mecanismos de comunicación entre procesos Miguel Martínez de Falcón Pérez Mikel Anthony Rodríguez Manderson - 2-1) TUBERÍAS SIN NOMBRE a) Para comprobar su
Más detallesProblemas de Redes de Computadores. Conjunto de problemas 1
Problemas de Redes de Computadores. Ingeniería Técnica en Informática de Gestión Conjunto de problemas 1 Pregunta 1.1: Si configuro mi servidor Web para que no acepte conexiones desde la dirección IP 130.206.1.1,
Más detallesLlamadas 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 detallesPrá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 detallesUn 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 detallesPRÁCTICA 2: Cliente-servidor UDP
PRÁCTICA 2: Cliente-servidor UDP El objetivo de esta práctica es la familiarización con aplicaciones elementales que usan los servicios de transporte de los sockets UDP. A lo largo de la práctica se realizarán
Más detallesConcurrencia en UNIX / LINUX. Introducción: Procesos e Hilos POSIX
Concurrencia en UNIX / LINUX Introducción: Procesos e Hilos POSIX El estándar POSIX POSIX: Interfaz de sistemas operativos portables. Basado en UNIX A pesar de que UNIX es ya de por sí estándar, había
Más detallesARQUITECTURA DE REDES Laboratorio
1nsloo.cl ARQUITECTURA DE REDES Laboratorio Práctica 2: Ejercicios de aplicación de Sockets en C 1. OBJETIVOS. El objetivo de esta práctica es que el alumno llegue a conocer los principales conceptos relacionados
Más detallesServicios de Internet
Servicios de Internet Area de Ingeniería Telemática http://www.tlm.unavarra.es Arquitectura de Redes, Sistemas y Servicios 3º Ingeniería de Telecomunicación 1 Temario 1. Introducción 2. Arquitecturas,
Más detallesPolimorfismo 2. Nº Mat. Calificación. class One: public Base { void ph1(){cout << "b ";} void ph2(){cout << "d ";} };
APELLIDOS NOMBRE Nº Mat. UNIVERSIDAD POLITÉCNICA DE MADRID ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA Y DISEÑO INDSUTRIAL Departamento de Ingeniería Eléctrica, Electrónica, Automática y Física Aplicada ASIGNATURA:
Más detallesSistemas Operativos: Programación de Sistemas. Curso 2006-07. Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J.
Tema 2 : entorno programación linux Sistemas Operativos: Programación de Sistemas Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Santana Pérez Curso 2006-07 Francisco J. Santana 1 Programación
Más detallesProcesos e Hilos en C
Procesos e Hilos en C 6 de febrero de 2012 En esta sesión vamos a escribir programas en lenguaje C que utilicen hilos y procesos para comparar el rendimiento del sistema ante la gestión de unos y otros.
Más detallesIntroducción y Gestión de Procesos
Introducción y Gestión de Procesos Sistemas Operativos (prácticas) E.U. Informática en Segovia Universidad de Valladolid Llamadas al sistema Concepto Constituye el juego de instrucciones del sistema operativo
Más detallesSistemas Operativos Práctica 3
Sistemas Operativos Práctica 3 Ing. Andrés Bustamante afbustamanteg@unal.edu.co 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 detallesSockets (UDP) Tema 2.- Nivel de aplicación en Internet
Sockets (UDP) Tema 2.- Nivel de aplicación en Internet Dr. Daniel Morató es de Computadores Ingeniero Técnico en Informática de Gestión, 2º curso Sockets y UDP UDP: no hay conexión entre cliente y servidor»
Más detallesEnunciado 2 Descifrar claves cifradas con crypt
Enunciado 2 Descifrar claves cifradas con crypt INDICE 1 Definición del problema...1 2 Solución secuencial...1 3 Tabla de tiempos...3 4 Para saber más...3 5 Listado de programas...3 5.1 cifrado.h...4 5.2
Más detallesPrá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 detallesPlataformas 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 detallesApellidos: Nombre: Matrícula: Examen Programación para Sistemas Grado en Ingeniería Informática (2009)
Examen 105000016 - Programación para Sistemas Grado en Ingeniería Informática (2009) Lenguajes y Sistemas Informáticos e Ingeniería de Software Facultad de Informática Universidad Politécnica de Madrid
Más detallesASIGNATURA: SISTEMAS INFORMÁTICOS INDUSTRIALES. CURSO 4º GRUPO Enero 2016
APELLIDOS NOMBRE Nº Mat. UNIVERSIDAD POLITÉCNICA DE MADRID ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA Y DISEÑO INDSUTRIAL Departamento de Ingeniería Eléctrica, Electrónica, Automática y Física Aplicada ASIGNATURA:
Más detallesEDITRAN/TR. Windows/Unix. Manual de referencia
EDITRAN/TR Windows/Unix Manual de referencia INDRA 30 de octubre de 2014 ÍNDICE 1. INTRODUCCIÓN.... 1-1 2. INTERFAZ DE PROGRAMACIÓN.... 2-1 2.1. DESCRIPCION... 2-1 2.2. FUNCIONES DE ENVIO Y RECEPCION...
Más detallesÁrea de Arquitectura y Tecnología de Computadores. Universidad Carlos III de Madrid SISTEMAS OPERATIVOS. Ejercicio. Programación en bash
Área de Arquitectura y Tecnología de Computares Universidad Carlos III de Madrid SISTEMAS OPERATIVOS Ejercicio. Programación en bash Gra de Ingeniería en Informática Curso 2016/2017 AUTORES (Nombre, Apellis,
Más detallesSistemas Operativos 1
Ejercicio 1. Se desea implementar una aplicación de n procesos concurrentes, donde cada proceso ejecuta una determinada tarea en forma de pipeline. Un ejemplo de esta aplicación con n=4 sería la siguiente:
Más detallesSistemas Operativos (prácticas) E.U. Informática en Segovia Universidad de Valladolid
Manejo de Señales Sistemas Operativos (prácticas) E.U. Informática en Segovia Universidad de Valladolid Señales Concepto Evento que interrumpe la ejecución normal de un proceso La acción por defecto suele
Más detallesAnalista 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 detallesPrá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, José Ángel Bernal y Sergio Segura Boletín 2: Introducción a
Más detallesIntroducció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 detallesSistemas Operativos. Grado Ingeniería Informática. TGR Procesos.
Sistemas Operativos. Grado Ingeniería Informática. TGR Procesos. 1.-Considerar los siguientes procesos con los tiempos de llegadas, prioridades y ráfagas de cpu. Proceso Ráfaga de CPU Prioridad Tiempo
Más detallesSistema Cliente Servidor Con Sockets
Sistema Cliente Servidor Con Sockets Rafael Benedicto Tovar Antonio Soler Muñoz 0 Índice 1. Resumen del proyecto 2 Introducción teórica 2.1 - Qué es un socket? 2.2 - Dominios de comunicación 2.3 - Tipos
Más detallesSockets (TCP) Tema 2.- Nivel de aplicación en Internet
Sockets (TCP) Tema 2- Nivel de aplicación en Internet Dr Daniel Morató es de Computadores Ingeniero Técnico en Informática de Gestión, 2º curso Material parcialmente adaptado del libro Computer Networking:
Más detallesUNIVERSIDAD 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 detallesPara 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 detallesPROTOCOLOS PARA LA INTERCONEXIÓN DE REDES
UNIVERSIDAD DE CANTABRIA DEPARTAMENTO DE INGENIERÍA DE COMUNICACIONES GRUPO DE INGENIERÍA TELEMÁTICA PROTOCOLOS PARA LA INTERCONEXIÓN DE REDES PRÁCTICA 4: DESARROLLO DE APLICACIONES CLIENTE/SERVIDOR MEDIANTE
Más detallesLaboratorio 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 8: Mecanismo de IPC de Berkeley. Sockets Curso 2006/07
Más detallesProblemas de Redes de Computadores. Ingeniería Técnica en Informática de Gestión Conjunto de problemas 1
Problemas de Redes de Computadores. Ingeniería Técnica en Informática de Gestión Conjunto de problemas 1 Preguntas cortas Pregunta 1.1: Si configuro mi servidor Web para que no acepte conexiones desde
Más detallesIntroducció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 detallesPRÁCTICA 1: PROCESOS Y COMUNICACIÓN ENTRE PROCESOS
PRÁCTICA 1: PROCESOS Y COMUNICACIÓN ENTRE PROCESOS v1.3.0 Rodrigo García Carmona Antes de empezar la práctica, copia los ficheros que se encuentran en la carpeta SOS-Practica_1-Materiales al directorio
Más detallesTaller de Sistemas Operativos Introducción
Taller de Sistemas Operativos Introducción Escuela de Ingeniería Civil en Informática Universidad de Valparaíso, Chile http:// Conceptos generales 2 Proceso stdin Descriptor Flujo (FILE*) 0 stdout 1 Proceso
Más detallesTema 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 detallesNombre y apellidos: DNI: 1
R E R B 1 R E 0 0 0 R S 1 R S R P 0 Nombre y apellidos: DNI: 1 Examen de Redes de Computadores. Ingeniería Técnica en Informática de Gestión Septiembre de 2008 Número de identificación del examen: examid
Más detallesAnálisis Experimental de la Transmisión de Datos
UNIVERSIDAD TÉCNICA FEDERICO SANTA MARÍA DEPARTAMENTO DE ELECTRÓNICA Análisis Experimental de la Transmisión de Datos ELO322 Redes de Computadores I Pablo Ahumada D. Jorge Cápona G. Resumen Se muestra
Más detallesProgramació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 detallesCapitulo 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 detallesFunciones 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 detallesLenguaje 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 detallesSistemas Operativos Primer Parcial Tema2
Dpto. 1: Realice la gráfica de la estructura de procesos generada por el siguiente código, en la gráfica asigne PID a cada proceso. (2) int n = 4;pid_t pid; while( n!= 0){ if ( pid == 0 ) break; n--; return
Más detallesRedes de Computadores: Relación de problemas 1. Sockets
Redes de Computadores: Relación de problemas 1. Sockets 1. Obtención de nombres y direcciones IP Uso de gethostbyname y gethostbyaddr. Bajo el sistema operativo Linux, esta información se puede obtener
Más detallesRedes de Computadores Nivel de Aplicación: Programación con sockets I
Redes de Computadores Nivel de Aplicación: Programación con sockets I Área de Ingeniería Telemática Dpto. Automática y Computación http://www.tlm.unavarra.es/ En clases anteriores... El nivel de aplicación
Más detalles