Download Septiembre 2006 - Departamento de Ingeniería Telemática
Document related concepts
no text concepts found
Transcript
Examen de Servidores de Información Multimedia 2º Ingeniero Téc. Telecomunicación (Sonido e Imagen) 14 de septiembre de 2006 Departamento de Ingeniería Telemática Universidad Carlos III de Madrid Apellidos y Nombre:______________________________________________ Teoría Duración: 45 minutos Pregunta 1 (1 punto). Comentar qué es la MMU de un sistema informático y para qué se usa. Pregunta 2 (2 puntos). En un sistema que utiliza planificación de procesos Round Robin con cuanto q=4 llegan, en t=0, 3 procesos en el siguiente orden: Calcular el tiempo de retorno para cada proceso y el tiempo de espera medio. Examen de Servidores de Información Multimedia 2º Ingeniero Téc. Telecomunicación (Sonido e Imagen) 14 de septiembre de 2006 Departamento de Ingeniería Telemática Universidad Carlos III de Madrid Apellidos y Nombre:______________________________________________ Pregunta 3 (1 punto). Explique la organización de una partición de un disco sobre la que se monta un sistema de ficheros FAT. Explique el contenido de cada una de las zonas de la partición. Pregunta 4 (1 punto). Comente al menos 4 de las 5 opciones que se presentaron en clase para controlar el trabajo realizado por un Procesador en la JMF. Examen de Servidores de Información Multimedia 2º Ingeniero Téc. Telecomunicación (Sonido e Imagen) 14 de septiembre de 2006 Departamento de Ingeniería Telemática Universidad Carlos III de Madrid Apellidos y Nombre:______________________________________________ Pregunta 5 (1 punto). Comentar como el algoritmo de Peterson para implementar una sección crítica para el caso de 2 hilos cumple los requisitos deseados: while (true) { flag[i] = true; turn = j; while (flag[j] && turn==j); sección crítica flag[i] = false; sección restante } Examen de Servidores de Información Multimedia 2º Ingeniero Téc. Telecomunicación (Sonido e Imagen) 14 de septiembre de 2006 Departamento de Ingeniería Telemática Universidad Carlos III de Madrid Apellidos y Nombre:______________________________________________ Problemas 45 minutos Problema 1 (2 puntos). La fuente de un pueblo pierde agua a razón de 50 litros de media cada hora. Como estamos en época de sequía y cerca de las elecciones, el alcalde decidió desarrollar un plan de choque ecológico para recoger el agua perdida y poder aprovecharla. Para ello se construyó un recipiente con capacidad para recoger 1200 litros de agua. Se ha estimado que la gente pueblo acude entre 200 y 300 veces a sacar agua y que cada vez se extraen entre 2 y 5 litros. Identificando la fuente y los habitantes como procesos, se pide: a) (0,5p) Indica mediante un diagrama los objetos que intervienen en el sistema identificando sus b) (1,5p) Escribe en lenguaje java el método run de cada uno de los procesos para que funcionen funciones. de manera sincronizada usando semáforos. Sustituye el código correspondiente a la “Sección Critica” por SC()” y no tengas en cuenta las posibles excepciones. Indica al principio cuantos semáforos son necesarios, para que sirven y como inicializarlos. Examen de Servidores de Información Multimedia 2º Ingeniero Téc. Telecomunicación (Sonido e Imagen) 14 de septiembre de 2006 Departamento de Ingeniería Telemática Universidad Carlos III de Madrid Apellidos y Nombre:______________________________________________ Problema 2 (2 puntos). El siguiente código es un programa para capturar Audio sin entorno grafico. import import import import import import javax.media.*; javax.media.control.*; javax.media.format.*; javax.media.protocol.*; java.util.Vector; java.io.*; public class MyAudioRecorder implements ControllerListener { protected CaptureDeviceInfo cdi = null; protected Processor proc = null; protected DataSink filewriter = null; MyAudioRecorder(){ } public synchronized void controllerUpdate(ControllerEvent ce) { if (ce instanceof ConfigureCompleteEvent) { } else if (ce instanceof RealizeCompleteEvent) { proc.prefetch(); } else if (ce instanceof PrefetchCompleteEvent) { crateFile(); record(); proc.start(); } else if (ce instanceof ControllerClosedEvent) { proc.close(); filewriter.close(); } } Examen de Servidores de Información Multimedia 2º Ingeniero Téc. Telecomunicación (Sonido e Imagen) 14 de septiembre de 2006 Departamento de Ingeniería Telemática Universidad Carlos III de Madrid Apellidos y Nombre:______________________________________________ private void crateFile(){ // Obtenemos la salida del Processor DataSource source = proc.getDataOutput(); } private void record(){ StreamWriterControl swc = (StreamWriterControl)proc.getControl("javax.media.control.StreamWriterControl"); } public static void main(String[] args) { new MyAudioRecorder(); } } (a) (0,5 p) Rellene el recuadro del constructor para que el programa funcione solo si existe un dispositivo de captura de audio que admita 44100 Hz, a 16 bits y estereo. (b) (0,5 p) Rellene los recuadros de los métodos “controllerUpdate” para que el formato de almacenamiento sea mp3. (c) (0,5 p) Complete los espacios del método “crateFile” para que el fichero de salida se llame “ejemplo.mp3” y se almacene en el directorio de ejecución. (d) (0,5 p) Rellene el recuadro del método “record” para limitar el tamaño de la captura a 6MB. NOTA: no será necesario controlar las excepciones. Examen de Servidores de Información Multimedia 2º Ingeniero Téc. Telecomunicación (Sonido e Imagen) 14 de septiembre de 2006 Departamento de Ingeniería Telemática Universidad Carlos III de Madrid Apellidos y Nombre:______________________________________________ public class AudioFormat extends Format Encapsulates format information for audio data. static String LINEAR AudioFormat(String encoding) Constructs an AudioFormat with the specified encoding type. AudioFormat(String encoding, double sampleRate, int sampleSizeInBits, int channels) Constructs an AudioFormat with the specified attributes. public class MediaLocator MediaLocator describes the location of media content. MediaLocator(String locatorString) MediaLocator(URL url) public class CaptureDeviceManager CaptureDeviceManager is a manager class that provides access to a list of the capture devices available on a system. static boolean addDevice(CaptureDeviceInfo newDevice) Adds a CaptureDeviceInfo object for a new capture device to the list of devices maintained by the CaptureDeviceManager. static void commit() Permanently stores information about the list of devices in the registry. static CaptureDeviceInfo getDevice(java.lang.String deviceName) Gets a CaptureDeviceInfo object that corresponds to the specified device. static Vector getDeviceList(Format format) Gets a list of CaptureDeviceInfo objects that correspond to devices that can capture data in the specified Format. static boolean removeDevice(CaptureDeviceInfo device) Removes a CaptureDeviceInfo object from the list of devices maintained by the CaptureDeviceManager. public class CaptureDeviceInfo A CaptureDeviceInfo object contains information about a particular capture device. Format[] getFormats() Gets a list of the output formats supported by this device. MediaLocator getLocator() Gets the MediaLocator needed to create a DataSource for this device through the Manager. String getName() Gets the name of this device. public interface Processor extends Player The Processor interface defines a module controlling time-based media data. for processing and Examen de Servidores de Información Multimedia 2º Ingeniero Téc. Telecomunicación (Sonido e Imagen) 14 de septiembre de 2006 Departamento de Ingeniería Telemática Universidad Carlos III de Madrid Apellidos y Nombre:______________________________________________ void configure() Prepares the Processor to be programmed. ContentDescriptor getContentDescriptor() Gets the output content-type currently set for this Processor. DataSource getDataOutput() Gets the output DataSource from the Processor. ContentDescriptor[] getSupportedContentDescriptors() Gets all of the content types that this Processor can output. TrackControl[] getTrackControls() Gets a TrackControl for each track in the media stream. ContentDescriptor setContentDescriptor(ContentDescriptor outputContentDescriptor) Sets the output content-type for this Processor. void addControllerListener(ControllerListener listener) Specifies a ControllerListener to which this Controller will send events. public class FileTypeDescriptor extends ContentDescriptor This sub-class of ContentDescriptor enumerates those descriptors that are file formats. content static java.lang.String BASIC_AUDIO Basic Audio (.au) content type static java.lang.String GSM GSM content type static java.lang.String MIDI MIDI content type static java.lang.String MPEG_AUDIO MPEG audio stream content type static java.lang.String WAVE WAV content type public interface StreamWriterControl extends Control This interface is implemented by a Multiplexer or DataSink to enable controlling the number of bytes generated as output. long getStreamSize() Returns the number of bytes written to the stream so far. boolean setStreamSizeLimit(long numOfBytes) Sets a limit on the number of bytes that a stream writer can generate. public final class Manager Manager is the access point for obtaining system dependent resources such as Players, DataSources, Processors, DataSinks, the system TimeBase, the cloneable and merging utility DataSources. Processor createProcessor(DataSource source) Create a Processor for the DataSource. Processor createProcessor(MediaLocator sourceLocator) Create a Processor for the specified media. Processor createProcessor(URL sourceURL) Create a Processor for the specified media.