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.