2. Problema de Análisis y Diseño Orientado a Objetos (5 puntos - 30 minutos)
|
|
- Francisco Rico Nieto
- hace 5 años
- Vistas:
Transcripción
1 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: SISTEMAS INFORMÁTICOS INDUSTRIALES CURSO 4º GRUPO Julio Problema de Análisis y Diseño Orientado a Objetos (5 puntos - 30 minutos) Calificación #include <string> #include <iostream> using namespace std; class Coche protected: string modelo; Coche() modelo = "Sin definir"; virtual string getdescripcion() return modelo; virtual double getprecio() = 0; virtual ~Coche() cout << "~Coche()\n"; ; class OpcionesCoche : public Coche virtual string getdescripcion() = 0; virtual ~OpcionesCoche() cout<<"~opcionescoche()\n"; ; class SeatLeon : public Coche SeatLeon() modelo = "SeatLeon"; virtual double getprecio()return 12000; ~SeatLeon() cout<<"~seatleon()\n"; ; class Navegador: public OpcionesCoche Coche *base; Navegador(Coche *b)base = b; string getdescripcion() return base->getdescripcion() + ", Navegador"; double getprecio() return base->getprecio(); ~Navegador()cout << "~Navegador()\n"; ; class AireAcondicionado : public OpcionesCoche Coche *base; AireAcondicionado(Coche *b)base = b; string getdescripcion() return base->getdescripcion() + ", Aire Acondicionado"; double getprecio() return base->getprecio(); ~AireAcondicionado()cout << "~AireAcondicionado()\n"; ; int main() Coche *modelo = new SeatLeon(); cout << "Modelo base " << modelo->getdescripcion() << " precio " << modelo->getprecio() << " euros\n"; modelo = new Navegador(modelo); cout << modelo->getdescripcion() << " cuesta " << modelo->getprecio() << " euros\n"; modelo = new AireAcondicionado(modelo); //modelo = new TechoSolar(modelo); cout << modelo->getdescripcion() << " cuesta " << modelo->getprecio() << " euros\n"; delete modelo; Dado el siguiente código, se pide. 1. Ingeniería inversa del código adjuntado (2 puntos). 2. Salida de la consola con la ejecución del programa (2 puntos). 3. Implementación de la clase TechoSolar en C++. Suponga que esta opción tiene un precio de 750 (1 punto).
2 1. 2. Modelo base Seat Leon precio euros Seat Leon, Navegador cuesta euros Seat Leon, Navegador, Aire Acondicionado cuesta euros AireAcondicionado() OpcionesCoche() Coche() 3. class TechoSolar : public OpcionesCoche Coche *base; TechoSolar(Coche *b) base = b; string getdescripcion() return base->getdescripcion() + ", Techo Solar"; double getprecio() return base->getprecio(); ~TechoSolar() cout << "~TechoSolar()\n"; ;
3 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: SISTEMAS INFORMÁTICOS INDUSTRIALES CURSO 4º GRUPO Julio 2017 Calificación 3. Problema de Análisis y Diseño Orientado a Objetos (5 puntos - 30 minutos) Se está programando un juego de realidad virtual. En dicho juego aparecen personajes virtuales que realizan tareas cotidianas. Existe un personaje controlado por el jugador, y existe otro controlado por el programa que es el cajero de una tienda, el cual gestiona una determinada caja. Se está desarrollando la funcionalidad que permite a un jugador realizar un pago a un cajero. Para probar esta funcionalidad, la función main() invoca la función Recibe() del jugador con 300 unidades de dinero, que incrementa su saldo. Cuando el main() le ordena a un personaje (en este caso, el jugador) que pague 50 unidades, decrementa su saldo en dicha cantidad, que recibe su interlocutor (en este caso, el cajero). El cajero, en lugar de quedárselo, debe ingresarlo en la caja, y luego sacar su comisión de la misma, que es la que incrementa su saldo. Considérese que el saldo inicial de los personajes es de 100 unidades de dinero y el de la caja Se pide: 1. Diagrama de Clases de Diseño (DCD) que soporte el diagrama y requisitos anteriores. (2.5 puntos) 2. Código C++ de la aplicación completa, incluyendo el main() de prueba. (2.5 puntos)
4 #include <iostream> using namespace std; class Caja float saldo; Caja()saldo=1000; void Ingresa(float cantidad)saldo+=cantidad; void Saca(float cantidad)saldo-=cantidad; ; class Personaje protected: float saldo; Personaje* interlocutor; Personaje()saldo=100; void Conecta(Personaje* p)interlocutor=p; virtual void Recibe(float cantidad)saldo+=cantidad; ; class Cajero : public Personaje Caja* p_caja; void Gestiona(Caja* c)p_caja=c; void Recibe(float cantidad) p_caja->ingresa(cantidad); p_caja->saca(cantidad*0.05f); saldo+=cantidad*0.05f; ; class Jugador : public Personaje void Paga(float cantidad) saldo-=cantidad;interlocutor->recibe(cantidad); ; int main() Cajero cajero; Jugador jugador; Caja caja; jugador.conecta(&cajero); cajero.gestiona(&caja); jugador.recibe(300); jugador.paga(50);
5 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: SISTEMAS INFORMÁTICOS INDUSTRIALES CURSO 4º GRUPO Julio 2017 Calificación 4. Problema de Sistemas Operativos (7,5 puntos - 45 minutos) Conteste en el espacio reservado al efecto Se desea diseñar un sistema de recomendación de hoteles, restaurantes y bares, similar al sistema de TripAdvisor. Para ello se diseña una solución Cliente-Servidor, con servidor dedicado, que atiende a cada cliente que solicita información o introduce información sobre dichos establecimientos. Los usuarios pueden conectarse al sistema a través de una app, que se instala en el móvil, o a través de un navegador web, accediendo a una determinada página web. Sea cual sea la manera de conectarse, el cliente contactará al servidor para realizar una consulta sobre un establecimiento o insertar comentarios sobre un determinado establecimiento. Para diseñar el servidor, se utiliza una base de datos que se implementa como un conjunto de ficheros, un fichero para los hoteles, otro para los restaurantes y otro para los bares. a) [1,5 ptos] Indicar para el escenario propuesto las ventajas y desventajas de Cliente-servidor con servidor dedicado frente a una solución de Cliente-Servidor serie. La solución cliente-servidor con servidor dedicado consiste en que el servidor crea un proceso hijo o un hilo que atiende las peticiones del cliente, pudiendo el servidor principal atender a otros clientes de manera concurrente. Por tanto, esta solución proporciona todas las ventajas que ofrece la concurrencia, siendo más eficiente esta solución para atender varios clientes. Por el contrario, la solución de Cliente-Servidor serie serializa los accesos de los clientes, como su nombre indica, provocando contención en otros clientes que no serán atendidos hasta que el cliente anterior finalice. La ventaja de esta última solución es que no tiene problemas de concurrencia, dado el carácter serie de dicha solución. Pero es inadmisible si un cliente lleva a cabo un servicio muy largo. b) [1,5 ptos] Indicar el mecanismo que debería utilizar la parte cliente de la aplicación para conectarse con el servidor cuando envía un comentario sobre un determinado establecimiento. Justificar la respuesta. Dado que se trata de diferentes máquinas, necesitamos utilizar sockets. Como no queremos perder ningún mensaje por parte de los clientes, se utilizarán sockets de tipo stream, utilizando protocolo TCP. c) [1,5 ptos] Implementar en código C dicho cliente. Suponed que el comentario mandado es una cadena de caracteres. int main(int argc, char * argv[]) /* suponemos que argv[1] contiene el nombre del servidor y argv[2] el mensaje a mandar*/ int cd; struct hostent * hp; struct sockaddr_in s_ain; hp = gethostbyname(argv[1]); bzero((char *)&s_ain, sizeof(s_ain)); s_ain.sin_family = AF_INET; memcpy (&(s_ain.sin_addr), hp->h_addr, hp->h_length); s_ain.sin_port = htons(port_number); cd = socket(af_inet, SOCK_STREAM, IPPROTO_TCP); connect(cd, (struct sockaddr *)&s_ain, sizeof(s_ain)); // suponemos que BUFF_SIZE es el tamaño máximo del mensaje sendv(cd, argv[2], BUFF_SIZE, 0); close(cd);
6 En la parte servidora, se diseña una solución multihilo (un proceso formado por hilos, denominado gest_recomend), donde hay varios hilos que acceden al fichero de hoteles, varios hilos que acceden al fichero de restaurantes y varios hilos que acceden al fichero de bares, para consultar y/o modificar los mismos de manera concurrente. d) [1,5 ptos] Describir los posibles problemas de concurrencia que pueden existir en la aplicación, indicando qué mecanismos se podrían utilizar para resolverlos. Justificar la respuesta. Los hilos van a poder acceder concurrentemente a los diferentes ficheros. Mientras que no hay problema en leer los ficheros de manera concurrente, la modificación de una zona del fichero debe hacerse en exclusión mutua. Se trata de un problema típico lectoresescritores. Podríamos utilizar diferentes mecanismos, como mutex y condiciones (que están recomendados para hilos), pero dado que se trata de ficheros, el uso de cerrojos nos facilita el establecer las restricciones de acceso de lectura y escritura sobre diferentes zonas de los mismos. Por tanto, elegiríamos los cerrojos como mecanismo de sincronización. Aparte del proceso gest_recomend, en la parte servidora y dentro de la misma máquina, hay otro proceso pesado denominado backup, que se encarga de ir almacenando todos los cambios en un fichero denominado fich_backup. El proceso backup duerme y cada 30 minutos se despierta para ir volcando los cambios producidos. El proceso gest_recomend utiliza un FIFO para comunicarle los cambios al proceso backup, que los lee, volcándolos al fichero fich_backup. e) [1,5 ptos] Implementar en código C el proceso backup. Considerar que los cambios se representan por una cadena de caracteres que se irá agregando al final del fichero fich_backup. Por simplicidad, no se tratan los posibles errores int main(int argc, char * argv[]) int fifo, fd; char mensaje[buff_size]; while (1) /* se supone que el FIFO ha sido creado por el proceso gest_recomend */ fifo = open( fifo_backup, O_RDONLY); /* se abre el fichero fich_backup para escribir al final y crearlo si es la primera vez */ fd = open ( fich_backup,o_creat O_WRONLY O_APPEND, 0666); read(fifo, mensaje, BUFF_SIZE); write(fd, mensaje, BUFF_SIZE); close(fifo); close(fd); sleep(30*60); La llamada sleep() también podría ser sustituida por el uso de alarm() más sigaction().
7 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: SISTEMAS INFORMÁTICOS INDUSTRIALES CURSO 4º GRUPO Julio Problema de Sistemas Operativos (7,5 puntos - 45 minutos) Conteste en el espacio reservado al efecto Calificación a) [2,5 ptos] Un usuario invoca desde el terminal el mandato programaa. Este proceso crea un hijo. El proceso padre envía al hijo la señal SIGUSR1 transcurridos 3 segundos desde el inicio de la ejecución del proceso padre y el proceso hijo imprime un mensaje por la salida estándar indicando que se ha producido la recepción de la señal. El proceso hijo debe ejecutar el mandato ls -alt /tmp una vez que han pasado 10 segundos desde su creación. Al concluir la ejecución del proceso hijo tras la ejecución del mandato ls, también debe mostrarse al usuario en el terminal los identificadores de ambos procesos. Especifique el código necesario para que los procesos completen la ejecución correctamente y que ambos siempre devuelvan el estado en el que terminan su ejecución. pid_t pid; void funcion1(int senal) if (senal == SIGUSR1) printf("se ha recibido la Senal SIGUSR1\n"); else if (senal == SIGALRM) printf("han transcurrido los 10 segundos\n"); execlp("ls","ls","-alt","/tmp",null); perror("no se ha podido ejecutar el exec"); exit(1); void funcion2(int senal) aux=kill(pid,sigusr1); if (aux == -1) perror("kill SIRUSR1"); int main(void) int status; struct sigaction act; act.sa_handler=&funcion2; act.sa_flags=sa_restart; sigaction(sigalrm,&act,null); alarm(3); pid=fork(); if (pid == -1) perror("error en fork"); exit(1); else if (pid == 0) act.sa_handler=&funcion1; act.sa_flags=sa_restart; sigaction(sigusr1,&act,null); sigaction(sigalrm,&act,null); alarm(10); while (1) else pid=wait(&status); if (pid>0) printf("fin del hijo: %d\n",pid); else perror("error en el wait"); printf("fin del padre: %d\n",getpid());
8 b) [1,5 ptos] Indique si sería posible resolver el apartado b) utilizando una solución basada en threads en lugar de procesos pesados y en caso afirmativo especifique el código. No es posible porque al invocar el servicio exec desde algún thread del proceso se sustituye su imagen de memoria por la del nuevo mandato que se pasa como argumento, en este caso el mandato ls. Por lo tanto, los mensajes con los identificadores de threads o del proceso que debían mostrarse al usuario una vez concluida la ejecución del mandato ls no podrían mostrarse en este caso. c) [1 pto] Describa las posibles situaciones que pueden darse ante la finalización de un proceso hijo con pid 4444 en función de si el padre con pid 333 termina antes que él. Suponga la siguiente jerarquía de procesos: El proceso hijo 4444 puede quedar huérfano si el padre 333 ha invocado el servicio wait antes de su finalización. En este caso, el hijo es heredado por el proceso init 1 que espera en un bucle infinito la terminación de sus hijos. También puede quedar como zombi si termina y el proceso padre 333 no ha hecho un wait. En este caso, no puede entregar el estado de terminación al padre y no se libera su entrada en la tabla de procesos. d) [1 pto] Enumere señales que al recibirlas un proceso, su acción por defecto no provoca su muerte. SIGCHLD, SIGSTOP, SIGCONT e) [1,5 ptos] En un sistema UNIX que dispone de memoria virtual con páginas de 8 KiB, indique cómo pueden compartir una región de memoria un proceso padre con sus hijos sin que exista soporte físico de esta región en el sistema de ficheros. El tamaño solicitado para la región será de 15 KB. Especifique la invocación del servicio que permite crear esta región e indique cuál será el tamaño de la región tras su creación. Antes de la invocación del servicio fork para crear los hijos, el proceso padre crea una región en memoria con el servicio mmap activando el flag MAP_SHARED, que permite compartir la región entre varios procesos, y utilizando el flag MAP_ANONYMOUS, que no asocia la región a ningún fichero en disco: char *p; p=mmap(null,15000,prot_read PROT_WRITE,MAP_SHARED MAP_ANONYMOUS,-1,0); Como el tamaño de la región debe ser múltiplo de la página del sistema, la solicitud de 15 KB se convertirá en una región de 16 KiB.
ASIGNATURA: 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 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 detallesA2. Diseñar una solución basada en varios procesos pesados emparentados, cada uno de los cuáles procesará una parte de los votos.
Sistemas Operativos 4o Semestre GII & GMI Cuarto Parcial. Comunicación y Sincronización. 1 de Junio de 2015 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Más detalles2. Problema de Análisis y Diseño Orientado a Objetos (4 puntos - 25 minutos)
APELLIDOS NOMBRE Nº Mat. UNIVERSIDAD POLITÉCNICA DE MADRID ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA Y DISEÑO INDSUTRIAL Departamento Electrónica, Automática e Informática Industrial ASIGNATURA: SISTEMAS
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 detallesASIGNATURA: SISTEMAS INFORMÁTICOS INDUSTRIALES. CURSO 4º GRUPO Diciembre 2013
APELLIDOS NOMBRE Nº Mat. UNIVERSIDAD POLITÉCNICA DE MADRID ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA Y DISEÑO INDSUTRIAL Departamento Electrónica, Automática e Informática Industrial 2. Problema de ADOO (10
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 detallesNº Mat. Calificación APELLIDOS NOMBRE. CURSO 4º GRUPO Julio 2014 ASIGNATURA: SISTEMAS INFORMÁTICOS INDUSTRIALES
APELLIDOS NOMBRE Nº Mat. UNIVERSIDAD POLITÉCNICA DE MADRID ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA Y DISEÑO INDSUTRIAL Departamento Electrónica, Automática e Informática Industrial 2. Problema de ADOO (10
Más detallesSegundo control de teoría Q1
Segundo control de teoría --Q JUSTIFICA TODAS LAS RESPUESTAS. UNA RESPUESTA SIN JUSTIFICAR SE CONSIDERA INVALIDA EJERCICIO : Preguntas cortas ( puntos) ) En un sistema de ficheros basado en inodos a) Explica
Más detallesExamen 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 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 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 detallesNombre alumno: Ventajas: Inconvenientes:
Preguntas cortas (justifica todas las respuestas) (2 puntos) 1. Define qué es la buffer cache, qué tipo de información encontramos y cuál es su objetivo 2. Explica qué ventajas e inconvenientes tendría
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 detalles3. Indicar la salida por pantalla (2 puntos-10 minutos)
APELLIDOS NOMBRE Nº Mat. UNIVERSIDAD POLITÉCNICA DE MADRID ESCUELA UNIVERSITARIA DE INGENIERÍA TÉCNICA INDUSTRIAL Departamento El.A.I. ASIGNATURA INFORMÁTICA INDUSTRIAL Calificación CURSO 2º GRUPO Junio
Más detallesExamen 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 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 detallesAlgoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 2
Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 2 Contenidos: 1. Definición de clases 2. Implementación de los métodos 3. Constructores y destructores 4. Objetos
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 detallesExamen final de teoría QT
JUSTIFICA TODAS LAS RESPUESTAS. UNA RESPUESTA SIN JUSTIFICAR SE CONSIDERA INVALIDA Preguntas cortas (1,5 puntos) 1. Un hardware que ofrece cuatro modos de ejecución, uno de ellos de usuario y tres niveles
Más detallesSegundo control de teoría
JUSTIFICA TODAS LAS RESPUESTAS. UNA RESPUESTA SIN JUSTIFICAR SE CONSIDERA INVALIDA EJERCICIO 1: Preguntas cortas ( puntos) 1) En un sistema de ficheros basado en inodos a) Explica qué relación hay entre
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 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 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 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 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 detallesAlgoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 1
Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 1 Contenidos: 1. Características generales de C++ 2. Entrada/salida estándar 3. Variables y tipos de datos
Más detallesExamen final de teoría QT
JUSTIFICA TODAS LAS RESPUESTAS. UNA RESPUESTA SIN JUSTIFICAR SE CONSIDERA INVALIDA Preguntas cortas (2 puntos) 1. Un hardware que ofrece cuatro modos de ejecución, uno de ellos de usuario y tres niveles
Más detallesFundamentos de la programación
Fundamentos de la programación 4A Grado en Ingeniería Informática Grado en Ingeniería del Software Grado en Ingeniería de Computadores Facultad de Informática Universidad Complutense Archivos como parámetros
Más detallesNº Mat. Calificación APELLIDOS NOMBRE. CURSO 4º GRUPO Octubre 2014 ASIGNATURA: SISTEMAS INFORMÁTICOS INDUSTRIALES
2. Problema de Análisis y Diseño Orientado a Objetos (10 puntos - 30 minutos) Se pretende realizar un simulador de cuadripolos eléctricos pasivos. Estas redes sólo están formadas por la combinación de
Más detalles2. Problema de Algoritmia (5 puntos - 15 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 2.
Más detallesSistemas 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 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 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 detallesSistemas Operativos Primer Recuperatorio Parcial 1
1.- El siguiente código intenta representar la solución a la siguiente problemática: Un proceso crea un conjunto de procesos hijos al mismo nivel y le asigna a cada uno una tarea determinada, cada proceso
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 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 detallesNombre alumno: Ventajas: La ventaja es que desaparecería la fragmentación interna ya que podríamos ajustar los bloques al tamaño que necesitemos.
Preguntas cortas (justifica todas las respuestas) (2 puntos) 1. Define qué es la buffer cache, qué tipo de información encontramos y cuál es su objetivo La buffer cache es una cache de bloques de disco.
Más detallesApartado 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 detallesImpresión por pantalla. 3. Indicar la salida por pantalla (2 puntos-20 minutos)
3. Indicar la salida por pantalla (2 puntos-20 minutos) #include class EUITIelemento; class EUITIpila int num; EUITIelemento *pila[10]; EUITIpila():num(0); bool push(euitielemento *in) if(num>=10)return
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 detallesSISTEMAS 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 detallesExamen parcial Convocatoria de junio de 2005 FUNDAMENTOS DE LA PROGRAMACIÓN
EJERCICIO 1 (1.5 puntos) Diseñe un conjunto de casos de prueba adecuado para comprobar el funcionamiento de un método encargado de calcular la duración de una llamada telefónica. Entradas Hora de inicio
Más detallesProgramación Avanzada CONCEPTOS BÁSICOS DE IMPLEMENTACIÓN EN C++
Programación Avanzada CONCEPTOS BÁSICOS DE IMPLEMENTACIÓN EN C++ OBJETIVO En este documento se presentan las construcciones básicas de orientación a objetos del lenguaje de programación C++, y recomendaciones
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 detallesPROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS GRADO EN INGENIERÍA INFORMÁTICA SEGUNDO CURSO DEPARTAMENTO DE INFORMÁTICA Y ANÁLISIS NUMÉRICO ESCUELA POLITÉCNICA SUPERIOR UNIVERSIDAD DE CÓRDOBA CURSO ACADÉMICO: 2011
Más detallesInformática Industrial I
Informática Industrial I Grado en Ingeniería en Electrónica Industrial y Automática Álvaro Castro González Nicolas Burus Mohamed Abderrahim José Carlos Castillo Montoya Práctica 6 Plantillas A lo largo
Más detallesTema 2. Administración de procesos
Sistemas Operativos Tema 2. Administración de procesos Objetivo: El alumno identificará los tipos de procesos y sus estados. Describirá las diferentes técnicas de comunicación y sincronización de procesos
Más detallesPARTE II PROGRAMACION CON THREADS EN C
PARTE II PROGRAMACION CON THREADS EN C II.1 INTRODUCCION Una librería o paquete de threads permite escribir programas con varios puntos simultáneos de ejecución, sincronizados a través de memoria compartida.
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 detallesEscuela Politécnica Superior de Elche
EXAMEN DE SISTEMAS INFORMÁTICOS INDUSTRIALES ((SOLUCIÓN) (TEORÍA)jUJ jhshshs JUNIO 2015 1. Indicar si las siguientes afirmaciones son verdaderas o falsas: (a) En C++, cuando se destruye un objeto de una
Más detallesSistemas Operativos Grado Ingeniera Informática UDC. Enero 2016 Sólo puede usar lápiz, bolígrafo y calculadora. Tiempo máximo para todo el examen: 3h
Sistemas Operativos Grado Ingeniera Informática UDC. Enero 2016 Sólo puede usar lápiz, bolígrafo y calculadora. Tiempo máximo para todo el examen: 3h Parte Sistema Ficheros (Sen deben contestar correctamente
Más detallesProgramación 1 Tema 5. Instrucciones simples y estructuradas
Programación 1 Tema 5 Instrucciones simples y estructuradas Índice Instrucciones simples Instrucciones estructuradas 2 Instrucción ::= 3 Instrucciones.
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 detallesCominicación entre Procesos: SEÑALES
Cominicación entre Procesos: SEÑALES LABORATORIO DE SISTEMAS DE OPERACIÓN I (ci 3825) Prof. Yudith Cardinale Enero marzo 2012 Interrupciones Las interrupciones pueden ser: de hardware: señales electrónicas
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 detallesExamen final de teoría de SO-grado
Preguntas cortas (2 puntos. Tiempo estimado 30 min.) Indica si son ciertas o no las siguientes afirmaciones y justifica brevemente las respuestas. Una pregunta no justificada se considerará incorrecta.
Más detalles07 << Acceso en exclusiva al recurso compartido >>
Sistemas Operativos 4º Semestre. Grados II y MI Cuarto Parcial. Sistema de Ficheros. 2 de Junio de 2014. Dispone de 50 minutos. Publicación de notas el Jueves 5 de Junio 2014. Revisión el Viernes 6 de
Más detalles! Qué es la POO?! Un paradigma de programación. ! No hay paradigmas mejores ni peores! Todos tienen sus ventajas e inconvenientes
Introducción Programación orientada a objetos Curso INEM. Programación en Java Santiago Muelas Pascual smuelas@fi.upm.es! Qué es la POO?! Un paradigma de programación! Un paradigma es una forma de afrontar
Más detallesSistemas Complejos en Máquinas Paralelas
Sistemas Complejos en Máquinas Paralelas Clase 1: OpenMP Francisco García Eijó Departamento de Computación - FCEyN UBA 15 de Mayo del 2012 Memoria compartida Las mas conocidas son las máquinas tipo Symmetric
Más detallesSistemas Operativos I Manual de prácticas
Sistemas Operativos I Manual de prácticas Grupo de Sistemas Operativos (DSIC/DISCA) Práctica 3: Procesos POSIX ANTES DE EMPEZAR...... 2 PRÁCTICA 3: PROCESOS POSIX... 2 CREACIÓN DE PROCESOS MEDIANTE FORK...
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 detallesExamen de Programación Concurrente - Clave: a Junio 2008 Departamento de Lenguajes, Sistemas Informáticos e Ingeniería del Software.
Junio 2008 Programación Concurrente 1/6 Normas Examen de Programación Concurrente - Clave: a Junio 2008 Departamento de Lenguajes, Sistemas Informáticos e Ingeniería del Software Este examen es un cuestionario
Más detallesMacros LENGUAJE DE PROGRAMACIÓN ESTRUCTURADO
Macros LENGUAJE DE PROGRAMACIÓN ESTRUCTURADO Macros tipo objeto #define IDENTIFICADOR VALOR Permiten definir identificadores que son automáticamente reemplazados por un fragmento de código. Son especialmente
Más detallesSistemas Informáticos Industriales
Escuela Técnica Superior de Ingeniería y Diseño Industrial Universidad Politécnica de Madrid Llamadas a Procedimientos Remotos (RPC) Sistemas Informáticos Industriales 2017/2018 Raquel CEDAZO LEÓN
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 detallesPrimer parcial de teoría 2013_2014_Q1
Preguntas cortas (2,5 puntos) (justifica todas las respuestas) 1. Si tenemos una nueva arquitectura, con un nuevo conjunto de instrucciones de lenguaje máquina, indica cuál de estas dos librerías deberíamos
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 detallesTema: Funciones Virtuales y Polimorfismo.
Programación II. Guía No. 10 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Funciones Virtuales y Polimorfismo. Objetivos Comprender que es ligadura e identificar sus tipos.
Más detallesTema: Funciones Virtuales y Polimorfismo.
Programación II. Guía 10 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Funciones Virtuales y Polimorfismo. Objetivos Específicos Comprender que es ligadura e identificar
Más detallesUNIVERSIDAD CARLOS III DE MADRID AREA DE ARQUITECTURA Y TECNOLOGÍA DE COMPUTADORES GRADO EN INGENIERÍA INFORMÁTICA. SISTEMAS DISTRIBUIDOS
UNIVERSIDAD CARLOS III DE MADRID AREA DE ARQUITECTURA Y TECNOLOGÍA DE COMPUTADORES GRADO EN INGENIERÍA INFORMÁTICA. SISTEMAS DISTRIBUIDOS Para la realización del presente examen se dispondrá de 2 horas
Más detallesExamen de prácticas de Programación 1
Examen de prácticas de Programación 1 Escuela de Ingeniería y Arquitectura Departamento de Informática e Ingeniería de Sistemas 12 de septiembre de 2013 Tiempo para realizar el trabajo de programación
Más detallesExamen escrito de Programación 1
Examen escrito de Programación 1 Escuela de Ingeniería y Arquitectura Departamento de Informática e Ingeniería de Sistemas 7 de septiembre de 2017 Se debe disponer sobre la mesa en lugar visible un documento
Más detallesSegundo control de teoría
JUSTIFICA TODAS LAS RESPUESTAS. UNA RESPUESTA SIN JUSTIFICAR SE CONSIDERA INVALIDA EJERCICIO 1: Preguntas cortas (2 puntos) 1) Qué es el superbloque de un sistema de ficheros? qué tipo de información podemos
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 detallesSistemas Operativos Primer Examen Parcial 13/07/15
Dpto. 1.- El siguiente código intenta representar la solución a la siguiente problemática: Un proceso crea un conjunto de procesos descendientes y le asigna a cada uno una tarea determinada, cada proceso
Más detallesExamen Junio- Grupo B Lunes 17 de Junio - Programación en C++ Pág. 1
Examen Junio- Grupo B Lunes 17 de Junio - Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1.1 Ejercicio 1: Empresa Videojuegos (3.5 ptos.)... 1 1.2 Ejercicio 2: Clase Rectangulo (1.0 pto.)... 3 1.3 Ejercicio
Más detallesSegundo control de teoría
Preguntas cortas. Contesta y justifica TODAS las preguntas en el espacio asignado (0,5 cada pregunta) a) Qué consecuencias tendría en la cantidad de accesos a disco eliminar la Tabla de Inodos? b) Qué
Más detallesSISTEMAS OPERATIVOS:
SISTEMAS OPERATIVOS: Lección 8: Desarrollo de servidores concurrentes Jesús Carretero Pérez Alejandro Calderón Mateos José Daniel García Sánchez Francisco Javier García Blas José Manuel Pérez Lobato Introducción
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 detallesIntroducción a la Programación orientada a objetos con C++
Introducción a la Programación orientada a objetos con C++ Informática Industrial Ing. en automática y electrónica Industrial Isidro Calvo Informática Industrial 2006/07 2 Objetivos principales Exponer
Más detallesExamen Teórico (1/3 de la nota final)
Examen Teórico (1/3 de la nota final) 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
Más detallesTest : Conteste exclusivamente en una HOJA DE LECTURA ÓPTICA, no olvidando marcar que su tipo de examen es A.
SISTEMAS INFORMÁTICOS I Junio 2003 INGENIERÍA EN INFORMÁTICA - Código Carrera 55 - Código Asignatura 077 Tipo de Examen: A NO SE PERMITE EL USO DE NINGÚN MATERIAL Tiempo: 2 horas Apellidos: Nombre: DNI:
Más detallesBENEMERITA UNIVERSIDADD AUTONOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACIÓN LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN
BENEMERITA UNIVERSIDADD AUTONOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACIÓN LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN PROGRAMACION CONCURRENTE PARALELA Y PRACTICA 3 (PARTE 1 Y 2) HILOS POSIX NOMBRE:
Más detallesArquitecturas cliente/servidor
Arquitecturas cliente/servidor Creación de Sockets Cliente Servidor 1 Creación de Sockets Cliente/Servidor Sockets en TCP Concepto de Hilos Definición de DAEMON Sockets en UDP 2 THREADS 3 Qué es un thread?
Más detalles// el módulo tiempo // el módulo subtitulo // el módulo herramientas
Examen Práctico de Programación 1-6/septiembre/2016 Tiempo para realizar el trabajo de programación propuesto: 2 horas Entrega del trabajo a través de la plataforma Moodle2. Especificación del trabajo
Más detallesProgramación 1. Tema I. Conceptos y elementos básicos de Programación. Lección 2. Lenguaje de programación y ejecución de un programa
Programación 1 Tema I. Conceptos y elementos básicos de Programación Lección 2. Lenguaje de programación y ejecución de un programa 1 Léxico, sintaxis y semántica de un lenguaje #include #include
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 detallesEquivalencia de herramientas. Implementar las primitivas de los semáforos a partir de las regiones críticas condicionales. (2.5pt)
INGENIERÍA TÉCNICA en INFORMÁTICA de SISTEMAS ASIGNATURA: PROGRAMACIÓN CONCURRENTE CÓDIGO ASIGNATURA: 403182/533012 MATERIAL AUXILIAR: NINGUNO DURACIÓN: 2 horas Fecha 25 de Enero de 2005 CONTACTO : programacion.concurrente@lsi.uned.es
Más detallesIntroducción a C++ y Code::Blocks
Introducción a C++ y Práctica Imperativo Clase 1 Luis Agustín Nieto Departamento de Computación, FCEyN,Universidad de Buenos Aires. 28 de mayo de 2010 Menu de esta Tarde Funcional Vs. Imperativo (Intérprete
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 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 detallesFundamentos de los Sistemas Operativos
Práctica 3 : hilos! Fundamentos de los Sistemas Operativos Grado en Ingeniería Informática Rubén García Rodríguez Alexis Quesada Arencibia Eduardo Rodríguez Barrera Francisco J. Santana Pérez José Miguel
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 detallesSOLUCION EXAMEN junio 2006
SOLUCION EXAMEN junio 2006 1. Explique razonadamente si las siguientes afirmaciones son verdaderas o falsas: I) (1 p) En UNIX únicamente se distinguen dos tipos de procesos: los procesos de usuario y los
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 detallesLEA ATENTAMENTE ESTAS INSTRUCCIONES ANTES DE COMENZAR LA PRUEBA
Asignatura Estructura de Datos y Algoritmos Grado en Ingeniería Informática y Doble Grado en Informática y Administración de Empresas 24 de Marzo de 2014. SEGUNDO EXAMEN PARCIAL Nombre:... Apellidos:...
Más detallesProgramación Orientada o Objetos
Programación Orientada o Objetos Programación digital II Escuela de Sistemas Facultad de Ingeniería Profesor: Gilberto Diaz Programación Orientada a Objetos En 1970 Dennis Ritchie y Brian Kernigan crearon
Más detallesASIGNATURA: SISTEMAS INFORMÁTICOS INDUSTRIALES. CURSO 4º GRUPO Julio 2015
2. Problema de Algoritmia (5 puntos - 20 minutos) En una planificación de un proyecto se dispone de la secuencia de 10 tareas T i ordenadas parcialmente que aparece a continuación, y se necesita encontrar
Más detalles