Problema 1 (3 puntos)



Documentos relacionados
LINUX - Los archivos de órdenes I

Tutorial de carga de fotos en

SOLUCION EXAMEN junio 2006

2) Tenemos un sistema informático con una sola CPU que está gestionada mediante una cola multinivel con realimentación.

La ventana de Microsoft Excel

Correo Electrónico: Webmail: Horde 3.1.1

NemoTPV SAT Manual de usuario 1. NemoTPV SAT APLICACIÓN DE GESTIÓN DE SERVICIO TÉCNICO PARA PUNTOS DE VENTA DE EUSKALTEL

Curso de Excel Avanzado

Ejercicio 1. Desarrollar un pequeño juego para practicar mecanografía.

Centro de Capacitación en Informática

Abelardo Pardo. Iria Estévez Ayres. Damaris Fuentes Lorenzo. Pablo Basanta Val. Pedro J. Muñoz Merino. Hugo A. Parada.

Creacion de Script. Que es un Script?

Objetivo: Introducción conceptual y aplicación básica de los lenguajes del lado del servidor.

Creación de imágenes. Pablo Sanz Mercado.

Ejemplos de conversión de reales a enteros

PROYECTO DE LA REAL ACADEMIA DE CIENCIAS Estímulo del talento matemático

SUBIR ARCHIVOS CON FTP. TRABAJAR EN UN SERVIDOR REMOTO. CREAR UNA PÁGINA WEB CON PROGRAMACIÓN PHP. (CU00814B)

CONCEPTOS BASICOS. Febrero 2003 Página - 1/10

UNIDAD 1. LOS NÚMEROS ENTEROS.

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

Shell de Unix ProgPLN

CASO PRÁCTICO DISTRIBUCIÓN DE COSTES

Este programa mueve cada motor de forma independiente, y cuando termina una línea pasa a la siguiente.

Tutorial: Primeros Pasos con Subversion

MANUAL DE ACTUALIZACIÓN DEL DEA. Versión del DEA del 10/04/2012

Sistemas Operativos II Febrero 2009 Nombre:

Draw: objetos en 3D, diagramas de flujo y exportación

Copia de Seguridad en windows

Que es PHP? Que se puede hacer con PHP? Sintaxis del lenguaje. Variables. Operadores básicos. Condicionales. Ciclos.

Para trabajar este tema vamos a situarlo un poco más en el lenguaje común:

Acronis License Server. Guía del usuario

Definiciones. Tema 21_Módulos Menú 1

Ejercicios - Persistencia en Android: ficheros y SQLite

Resucita tu Ordenador de forma Fácil y Gratuita. Cortesía de MSD Soft.

PASOS PREVIOS 1. Entrar en Disco local ( C: ) Buscar la carpeta SILEX y click con el botón derecho, seleccionamos la opción Compartir y seguridad

WINDOWS 98/Me EL EXPLORADOR DE WINDOWS IV

MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD

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

MANUAL PARA MANEJO DEL SISTEMA DE TRASLADO

FAQ S Formación online. PREGUNTAS FRECUENTES (FAQ s)

ESTRUCTURAS CONDICIONALES EN PHP: SWITCH, CASE, BREAK. EJEMPLOS DE USO Y EJERCICIOS RESUELTOS. (CU00820B)

CDI Exclusión mutua a nivel alto. conceptos

Programa diseñado y creado por Art-Tronic Promotora Audiovisual, S.L.

GUIA COMPLEMENTARIA PARA EL USUARIO DE AUTOAUDIT. Versión N 02 Fecha: 2011-Febrero Apartado: Archivos Anexos ARCHIVOS ANEXOS

2.- Diseño del comportamiento: Diagrama de actividades. Mª Antonia Zapata

Adaptación al NPGC. Introducción. NPGC.doc. Qué cambios hay en el NPGC? Telf.: Fax.:

Administración avanzada de paquetes. apt-proxy.

Cuando crees tus propios documentos, puede ser que alguna

GVisualPDA Módulo de Almacén

PROYECTOS, FORMULACIÓN Y CRITERIOS DE EVALUACIÓN

Práctica 3 - SMIL, XML en Python

Programación estructurada

Análisis de los datos

Administración de portales Joomla (II)

UNIVERSIDAD DE ALCALÁ - DEPARTAMENTO DE AUTOMÁTICA Área de Ingeniería Telemática LABORATORIO DE COMUNICACIÓN DE DATOS (CURSO 2011/2012)

Manual de Instalación. Sistema FECU S.A.

Microsoft Excel II Formato de celdas

Dropbox. Parte 2. Práctica 02-ud03 15/01/2013 Pág. 1 de 6

FOROS. Manual de Usuario

MANUAL DE CS-ALMACENES (MAYO 2012)

MANEJANDO FICHEROS Y CARPETAS

TUTORÍA GRUPAL ELABORACIÓN DE TRABAJOS

Prof. Dr. Paul Bustamante

Presentaciones. Con el estudio de esta Unidad pretendemos alcanzar los siguientes objetivos:

PUESTA EN MARCHA PROGRAMA GESTION DE OPTICAS. Junio

Aplicaciones web 2.0 en el aula Abalar

Práctica 1: Herramientas básicas:

Modulo 1 El lenguaje Java

Como ejecutar el programa PRUF. Cía. HASAR saic

Examen de Fundamentos de sistemas distribuidos

CONFIGURACIÓN DE CORREO EN THUNDERBIRD

OBTENER DATOS EXTERNOS

5. Instalación y configuración de un servidor DNS. (configuración mediante webmin).

Manual Usuario Wordpress. Índice

MANUAL COPIAS DE SEGURIDAD

Tutorial del administrador de la web del departamento

Manual SBR. Pero antes de explicar las actividades que principalmente podemos desarrollar vamos a dar una visión global de la aplicación.

El cuadro de mando contiene indicadores e informes que deben actualizarse a partir de la información de su sistema informático.

Lo primero que nos pedirá cuando accedamos al Correo Electrónico HORDE es que nos identifiquemos:

ESTRUCTURA DE DATOS: ARREGLOS

SIMM: TEORÍA DE LOS S.O. I.E.S. JUAN DE LA CIERVA CURSO 2007/2008

Estructuras de Datos y Algoritmos Tecnólogo en Informática

Prof. Dr. Paul Bustamante

Ingeniería en Informática

Cómo creo las bandejas del Registro de Entrada /Salida y de Gestión de Expedientes?

Guardar y abrir documentos

PUBLICAR FICHEROS VIA FTP EN EL SERVIDOR DEL CETT

Anexo B. Comunicaciones entre mc y PC

MANUAL DE USUARIO DE EGROUPWARE MANUAL DE USUARIO EGROUPWARE

MANUAL SINCRONIZADOR LEKOMMERCE FACTUSOL

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

CENTRO DE PROFESORES Y DE RECURSOS DE TERUEL

Manual de usuario. Tramitación de inspecciones periódicas de ascensores: La visión de los organismos de control autorizado (OCAs)

Instrucciones de solicitud de reconocimiento. Curso 2015/16

Vamos a ver los principales conceptos básicos que debemos

Transcripción:

Examen parcial de Sistemas Operativos, 30 de Abril de 2004. Segundo curso de Ingenierías Técnicas de Informática de Sistemas y de Gestión, URJC. Contesta cada pregunta en una hoja separada. No olvides poner tu grupo y titulación en cada hoja. Problema 1 (3 puntos) Tenemos un directorio que contiene, entre otras cosas, fotos: ficheros con extensión.jpg o.jpg. 1. Las fotos tienen mucha resolución. Queremos reducirlas a 800x600 puntos y publicar la versión reducida en un web. Para reducir el tamaño podemos usar el comando convert -geometry 800x600 origen destino Para publicar en el web, basta copiar al directorio public_html del home del usuario. (Suponemos este directorio existente y con la estructura necesaria). 2. Proceden de un sistema contaminado por un virus, así que hay ficheros que a pesar de su extensión, no son imágenes jpeg sino ejecutables. Si son verdaderas imágenes el comando file mostrará un mensaje similar a este. imagen01.jpg: JPEG image data, EXIF standard 0.73, 10752 x 2048 Haz un script de shell bash que reciba como primer argumento el nombre del directorio, que compruebe cada fichero, que lo reduzca y publique si está bién y que lo borre si está contaminado, mostrando un mensaje parecido a este: imagen01.jpg imagen02.jpg imagen03.jpg CONTAMINADO. Se borra el fichero. ok. Reducido y publicado. ok. Reducido y publicado. 1 ficheros contaminados y borrados 2 ficheros reducidos y publicados. Nota: Extrema el cuidado con la caligrafía de las comillas, recuerda que en UNIX tienen distintos significados. #!/bin/bash # Sería necesario comprobar que $1 existe y que es un directorio, # aunque por simplificar, aqui no lo hemos pedido publicados=0 1

contaminados=0 cd $1 for i in ls *.[jj][pp][gg] do if file $i grep -i jpeg then convert -geometry 800x600 $i $HOME/public_html/$i publicados= echo $publicados+1 bc done echo $i ok. reducido y publicado else rm $i echo $i CONTAMINADO. Se borra el fichero contaminados= echo $contaminados+1 bc fi echo echo $contaminados ficheros contaminados y borrados $publicados ficheros reducidos y publicados Problema 2 (4 puntos) Escribir un programa que, utilizando llamadas al sistema de UNIX haga lo siguiente: 1. Al ejecutarlo desde el shell, quiero que el shell me devuelva el prompt y me pida la siguiente linea de comandos al tiempo que se pone a ejecutar el programa El programa debe ejecutar el comando ping aquamar cada segundo, e imprimir un mensaje siempre que dicho comando falle. La tercera vez que falle, ha de acabar su ejecución 2. Supongamos que en el sistema solo esta ejecutando el shell desde el que ejecuto dicho programa, y que se emplea un scheduler con planificacion por prioridades dinamicas y round-robin (cuanto = 0.5 segundos, dos niveles de prioridad, se sube la prioridad si no se consume el cuanto, se baja en caso contrario). Dibuja el diagrama de planificación (tiempo y estado de planificacion de cada proceso) para la ejecución del apartado 1. // Ejecuta ping aquamar. Devuelve 1 si el comando // no se ha podido ejecutar o si su ejecucion acabo // insatisfactoriamente. 2

function ejecutar : integer is status: integer; p := fork(); case p of -1: return 1; 0: execl("/bin/ping", "ping", "aquamar", nil); exits(1); endcase; wait(status address); if status /= 0 then return 1; else return 0; endif; // La implementacion de lo que hace este programa // Ejecuta un ping cada segundo y aborta si hay mas // de tres fallos de ejecucion en el ping. procedure problema is nfallos : integer; nfallos := 0; loop sleep(1); // duermo un segundo nfallos := nfallos + ejecutar(); if nfallos > 3 then write(2, "el ping falla mas de 3 veces", 28); exit(1); endif; // El programa principal. No hace el trabajo, hace un fork // para que sea un hijo el que ejecuta el codigo. procedure principal is p := fork(); case p of -1: exit(1); 0: problema(); endcase; // no hay procesos exit(0); // el padre se va 3

El shell ejecuta el programa, y luego pasa a leer la siguiente linea. Se pasa el tiempo bloqueado. Main arranca el hijo y muere. El hijo se pasa la vida arrancado un nieto para el ping y esperando a que este acabe. Supongo que ninguno de ellos acaba su cuanto, por lo que todos estan a alta prioridad. A pesar de ser round robin, el hijo tiene suficiente con menos de un cuanto para arrancar al nieto, por lo que el diagrama queda como sigue. Problema 3 (3 puntos) En el año 2020 se han suprimido todas las señales de tráfico, incluidos los semaforos viales. Cada coche esta gobernado automáticamente por un programa. Hay una zona de la ciudad con la geometría de la figura, con dos calles de sentido único que se cruzan doblemente. En cada recodo caben N=7 vehículos. Cada coche debe atravesar las dos intersecciones para salir de la zona, y está garantizado que cuando sale de la segunda no hay coches que le impidan continuar. Calle B INTERSECCION Y Calle A INTERSECCION X 1. Podría haber interbloqueos en este problema? Por qué? 4

2. Se pide programar con semáforos el código de cada coche, los que avanzan por la calle A y los que avanzan por la calle B, para que no haya choques (por una intersección sólo puede pasar un coche al tiempo) ni atascos perpetuos o innecesarios en esta zona de la ciudad. La norma de cortesía de no entrar en una intersección si no se puede progresar más allá sigue vigente. 1. Sí pueden presentarse interbloqueos. Si llegan 8 coches uno detras de otro por cada calle y el octavo ocupa la interseccion antes de darse cuenta de que no puede avanzar más, entonces se llega a una situación en la que no hay avance posible. Los coches de una calle estan esperando a que los de la otra liberen una intersección, y viceversa. 2. Se tiene un mutex por cada una de las intersecciones (mutex-x, mutex-y) y semáforos con 7 plazas para cada uno de los recodos (Recodo-A, Recodo-B). El pseudocódigo de un coche que avanza por la calle A sería el siguiente: avanza hasta interseccion X wait(recodo-a) wait(mutex-x) pasa intersección X signal(mutex-x) avanza hasta interseccion Y wait(mutex-y) pasa intersección Y signal(mutex-y) signal(recodo-a) El código del vehículo que avanza por la calle B sería el homólogo. 5