Escolar Documentos
Profissional Documentos
Cultura Documentos
UNIVERSIDAD
NACIONAL DE
TRUJILLO
Arquitectura de Computadoras
Arquitectura de
Computadoras
DOCENTE
ALUMNOS
CICLO
VI
TEMA
Planificacin de Recursos
AGRADECIMIENTOS
A Dios
Le
agradecemos
por
habernos
acompaado y guiado a lo largo de este
trabajo, por ser nuestra fortaleza en los
momentos en los dificultad y por
brindarnos una vida llena de aprendizaje
y sobre todo felicidad.
Luigui
Arquitectura de Computadoras
A Nuestros Padres
Le damos gracias a nuestros padres por apoyarnos
en todo momento, por los valores que nos han
inculcado, y habernos dado la oportunidad de
tener una excelente educacin. Sobre todo porque
son un gran ejemplo a seguir.
Eder
A Dios
En primer lugar agradecemos a Dios
por las fuerzas, las ganas y la sabidura
que nos da da a da para continuar y
poder lograr nuestros objetivos.
Al docente
Agradecemos y estimamos a nuestro
docente por la enseanza y por
brindarnos su gua y sabidura para el
desarrollo de este trabajo.
Ysabel
Arquitectura de Computadoras
A Dios
Le damos gracias a Dios ante todo y a nuestras familias
por nunca dejarnos solos y siempre darnos su
incondicional apoyo en nuestro camino haca lograr
todas las metas que nos trazamos.
Al Docente
Tambin a los docentes por la gua necesaria y por
compartirnos el conocimiento, por lograr que da a da
nos planteemos nuevas metas y nos ayuden a lograrlas.
Zulmi
ndice
Agradecimientos
..2
ndice
4
Introduccin........................................................................................
..........6
Arquitectura de Computadoras
Resumen
...7
I.
Planificacin de
Procesos................................................................... 8
1.1 Concepto de
recursos.8
1.2 Concepto de
proceso..9
1.3 Concepto de planificacin ...
II.
...11
Planificacin de
Memoria................................................................. 24
2.1. Administrador de
memoria24
2.2 Administrador de sistemas
multiprogramados24
2.3 Esquema de asignacin de
memoria24
2.4. Particiones fijas
.25
2.5. Particiones variables.
III.
.28
La gestin de la
memoria................................................................. 30
3.1 Memoria
virtual...31
3.2
Paginacin
..31
5
Arquitectura de Computadoras
3.3 Fallo de
pgina.35
3.4 Paginacin por
demanda....36
Arquitectura de Computadoras
INTRODUCCIN
El presente trabajo est elaborado de una manera sencilla para poder conocer y entender los
procesos y planificacin de recursos de un computador. Desarrollando aqu conceptos,
caractersticas, tipos, causas de ciertos procesos, de cierta planificacin, hablaremos de la
segmentacin de la memoria, de la gestin de la memoria, entre otros puntos todos ellos tratados
con el fin de lograr dar un breve resumen de cada punto planteado en este trabajo.
Este tema es de importancia en el conocimiento bsico sobre un computador y lo referente a l, ya
que el estudiar ingeniera de sistemas no quiere decir que slo vamos a programar sino debemos de
tener conocimientos en general sobre todo lo relacionado a nuestro mundo y as poder sobrevivir en
l y poder resolver cualquier problema que se nos presente.
Esperamos que este trabajo sea de su total comprensin y agrado, fue elaborado con todo el esmero
y dedicacin por el grupo para poder participar en el compartir del conocimiento.
Arquitectura de Computadoras
RESUMEN
La forma en que se reparte el uso de la CPU entre los procesos tiene un enorme impacto en el
rendimiento de un sistema multiprogramado, por lo que siempre se ha prestado una gran atencin a
las polticas de planificacin que se implementan y se han elaborado multitud de conceptos
relacionados con ello.
La planificacin hace referencia a un conjunto de polticas y mecanismos incorporados al sistema
operativo que gobiernan el orden en que deben ser ejecutados los trabajos que deben completarse
por el sistema operativo. El objetivo de la planificacin es optimizar el rendimiento del sistema.
Arquitectura de Computadoras
I.
PROCESOS
I.1. Concepto de Recursos
En informtica los recursos son las aplicaciones,
herramientas, dispositivos (perifricos) y capacidades
con las que cuenta una computadora.
Planif
caci
n de
recurs
os
Sistema operativo
Hardware
CPU
Memoria RAM
Disco duro
Software, entre otros
Arquitectura de Computadoras
Tiempo de la CPU
Memoria
Con el contenido del programa
Pila para datos temporales
Seccin de datos con variables globales.
Acceso a archivos y dispositivos E/S.
Los procesos tambin se definen como una unidad de trabajo del sistema y tienen un
carcter esencial:
-
10
Arquitectura de Computadoras
a. Estado de un proceso
El estado de un proceso est relacionado con su actividad del proceso en cierto
momento y al ejecutarse ir cambiado de estado.
Arquitectura de Computadoras
Una CPU clsica (con un solo ncleo) solo se puede dedicar en cada
momento a un proceso. Los procesos que estn preparados para ejecutarse
permanecen en estado listo hasta que se les concede la CPU. Entonces pasan
al estado En ejecucin.
En ejecucin: El proceso tiene la CPU y sta ejecuta sus instrucciones.
En espera o bloqueado: No puede hacer nada porque est esperando a que ocurra
algn suceso, como por ejemplo la terminacin de una operacin de E/S.
Terminado: El proceso ha sido sacado del grupo de procesos ejecutables por el
sistema operativo. Despus de que un proceso es marcado como terminado se
liberarn los recursos utilizados por ese proceso, por ejemplo, la memoria.
I.3. Concepto de Planificacin
El objetivo de los sistemas multitarea es mantener mltiples programas en ejecucin
simultneamente, pero como la CPU slo puede ejecutar un programa de cada vez, hay
que decidir quin se ejecuta en cada momento.
La planificacin de la CPU es la base de los sistemas operativos multiprogramados.
Mediante la conmutacin de la CPU entre distintos procesos, el sistema operativo puede
hacer que la computadora sea ms productiva.
Debemos considerar el problema de seleccionar el mejor algoritmo para un sistema
particular.
La planificacin de procesos es una de las funciones principales del Sistema Operativo,
este determina que proceso debe ejecutarse en cada momento, normalmente el Hardware
interrumpe un proceso en ejecucin en determinados instantes para de esta manera
permitir que el sistema operativo tome una nueva decisin de planificacin de forma que
el tiempo se utilice por igual entre los procesos.
Si hay dos procesos listos para ejecucin el planificador (scheduler) del sistema
operativo decide cual. El planificador utiliza un algoritmo de planificacin.
12
Arquitectura de Computadoras
13
Arquitectura de Computadoras
Colas de planificacin
Son unas estructuras de datos que organizan los PCBs de los procesos que se
encuentran cargados en el sistema en funcin de su estado.
El SO planifica los procesos en funcin de la informacin mantenida en estas colas.
Estas estructuras se forman enlazando los PCBs de los procesos mediante punteros.
Existen tres tipos de colas:
Cola de procesos listos: Contiene a los procesos que se encuentran en el estado
listo.
Debe indicarse una vez ms que estos procesos son los que estn preparados para ser
asignados a la CPU.
Cola de dispositivo: Contiene los procesos que estn esperando por un determinado
dispositivo. Estos procesos se encuentran en el estado En espera. Cada dispositivo
tiene una cola asignada.
Colas de trabajos: Procesos en almacenamiento secundario esperando memoria
principal
Hay muchos dispositivos, como por ejemplo el disco, que son intensivamente utilizados por
muchos procesos. Los procesos deben esperar ordenadamente para poder utilizar este
recurso.
Un proceso cambia de cola a lo largo de su ejecucin.
El planificador
Es un elemento del sistema operativo que selecciona procesos en esas colas. Cuando
hablamos de ejecucin de proceso, el planificador a largo plazo (planificador de trabajos) y
el planificador a corto plazo (planificador de la CPU).
14
Arquitectura de Computadoras
El activador tambin forma parte del sistema operativo y su funcin es poner en ejecucin
el proceso seleccionado por el planificador.
Un planificador de trabajos cuenta con caractersticas:
Eficiencia: Buena mezcla en memoria entre procesos limitados por la CPU y por E/S.
La ejecucin del proceso comienza con una rfaga de CPU. Esta va seguida de una rfaga de E/S. A
la cual sigue otra rfaga de CPU, luego otra rfaga de E/S, etc. Finalmente, la rfaga final de CPU
concluye con una solicitud al sistema para terminar la ejecucin.
15
Arquitectura de Computadoras
2.
3.
4.
Arquitectura de Computadoras
El cambio de contexto requiere salvar el estado que tienen los registros de la CPU
justo antes de que sta abandone el proceso que se saca de ejecucin. As, despus,
se podr reanudar la ejecucin de este proceso, justo en el punto en el que se
suspendi su ejecucin. El estado de los registros de la CPU se salva en el PCB del
proceso.
b. Niveles de planificacin:
El planificador a corto plazo se ejecuta con muy poca frecuencia, tomando una
primera decisin sobre si tomar o no un nuevo proceso, y cual tomar. Existe tambin
el planificador a mediano plazo que se ejecuta con algo ms de frecuencia para tomar
la decisin del intercambio. El planificador a largo plazo tambin conocido como
distribuidor, es el de ejecucin ms frecuente y toma decisiones con un mayor detalle
sobre el proceso que se ejecutara a continuacin:
Arquitectura de Computadoras
perodos de baja actividad de los procesos interactivos. Normalmente, los trabajos por
lotes realizan tareas rutinarias como el clculo de nminas; en este tipo de tareas el
programador puede estimar su gasto en recursos, indicndoselo al sistema. Esto facilita
el funcionamiento del planificador a largo plazo.
El objetivo primordial del planificador a largo plazo es el de dar al planificador de la
CPU una mezcla equilibrada de trabajos, tales como los limitados por la CPU (utilizan
mucho la CPU) o la E/S. As, por ejemplo, cuando la utilizacin de la CPU es baja, el
planificador puede admitir ms trabajos para aumentar el nmero de procesos listos y,
con ello, la probabilidad de tener algn trabajo til en espera de que se le asigne la CPU.
A la inversa, cuando la utilizacin de la CPU llega a ser alta, y el tiempo de respuesta
comienza a reflejarlo, el planificador a largo plazo puede optar por reducir la frecuencia
de admisin de trabajos. Normalmente, se invoca al planificador a largo plazo siempre
que un proceso termina. La frecuencia de invocacin depende, pues, de la carga del
sistema, pero generalmente es mucho menor que la de los otros dos planificadores. Esta
baja frecuencia de uso hace que este planificador pueda permitirse utilizar algoritmos
complejos, basados en las estimaciones de los nuevos trabajos.
2. Planificador a Mediano plazo
En los sistemas de multiprogramacin y tiempo compartido varios procesos residen en la
memoria principal. El tamao limitado de sta hace que el nmero de procesos que
residen en ella sea finito. Puede ocurrir que todos los procesos en memoria estn
bloqueados, desperdicindose as la CPU. En algunos sistemas se intercambian procesos
enteros (swap) entre memoria principal y memoria secundaria (normalmente discos), con
esto se aumenta el nmero de procesos, y, por tanto, la probabilidad de una mayor
utilizacin de la CPU.
El planificador a medio plazo es el encargado de regir las transiciones de procesos entre
memoria principal y secundaria, acta intentando maximizar la utilizacin de los
recursos. Por ejemplo, transfiriendo siempre a memoria secundaria procesos bloqueados,
o transfiriendo a memoria principal procesos bloqueados nicamente por no tener
memoria.
Arquitectura de Computadoras
interno o externo hace que se modifique alguna de las condiciones que definen el estado
actual del sistema.
c. Objetivos de la planificacin
Los objetivos de la planificacin del procesador son los siguientes:
Ser justa:
Todos los procesos son tratados de igual manera.
Ningn proceso es postergado indefinidamente.
Maximizar la capacidad de ejecucin:
Maximizar el nmero de procesos servidos por unidad de tiempo.
Maximizar el nmero de usuarios interactivos que reciban unos tiempos de respuesta
aceptables:
En un mximo de unos segundos.
o Ser predecible:
Un trabajo dado debe ejecutarse aproximadamente en la misma cantidad de
tiempo independientemente de la carga del sistema.
o Minimizar la sobrecarga:
No suele considerarse un objetivo muy importante.
o Equilibrar el uso de recursos:
Favorecer a los procesos que utilizarn recursos infrautilizados.
o Equilibrar respuesta y utilizacin:
La mejor manera de garantizar buenos tiempos de respuesta es disponer de
los recursos suficientes cuando se necesitan, pero la utilizacin total de
recursos podr ser pobre.
o Evitar la postergacin indefinida:
Se utiliza la estrategia del envejecimiento .
Mientras un proceso espera por un recurso su prioridad debe aumentar, as la
prioridad llegar a ser tan alta que el proceso recibir el recurso esperado.
o Asegurar la prioridad:
Los mecanismos de planificacin deben favorecer a los procesos con
prioridades ms altas.
o Dar preferencia a los procesos que mantienen recursos claves:
Un proceso de baja prioridad podra mantener un recurso clave, que puede
ser requerido por un proceso de ms alta prioridad.
19
Arquitectura de Computadoras
d. Criterios de la planificacin
Para realizar los objetivos de la planificacin, un mecanismo de planificacin debe considerar lo
siguiente:
Ser equitativa: Debe intentar hacer una planificacin justa, esto es, se debe tratar a todos los
procesos de la misma forma y no aplazar indefinidamente ningn proceso. La mejor forma
de evitarlo es emplear alguna tcnica de envejecimiento; es decir, mientras un proceso
espera un recurso, su prioridad debe crecer.
Ser eficiente: debe maximizar el uso de los recursos tales como intentar que la ocupacin de
la CPU sea mxima. Al mismo tiempo se debe intentar reducir el gasto extra por considerar
que es trabajo no productivo. Normalmente el idear algoritmos eficientes supone invertir
recursos en gestin del propio sistema.
Lograr un tiempo bueno de respuesta, es decir, que los usuarios interactivos reciban
respuesta en tiempos aceptables.
Lograr un tiempo de proceso global predecible. Esto quiere decir que un proceso debe
ejecutarse aproximadamente en el mismo tiempo y casi al mismo costo con independencia
de la carga del sistema.
Elevar al mximo la productividad o el rendimiento, esto es, maximizar el nmero de
trabajos procesados por unidad de tiempo. Eso supone, por un lado, dar preferencia a los
procesos que ocupan recursos decisivos y, por otro, favorecer a los procesos que muestran
un comportamiento deseable. En el primer caso conseguimos liberar el recurso cuanto antes
para que est disponible para un proceso de mayor prioridad. Con el segundo criterio
escogemos a los procesos que no consumen muchos recursos dejndole al sistema mayor
20
Arquitectura de Computadoras
capacidad
de
actuacin.
Estos criterios son dependientes entre s y es imposible optimizar todos de forma simultnea.
Por ejemplo, obtener un buen tiempo de respuesta puede exigir un algoritmo de
planificacin que alterne entre los procesos con frecuencia, lo que incrementa la sobrecarga
del sistema y reduce la productividad.
e. Algoritmo de planificacin
Decide el proceso de la cola de procesos listos al que se le asigna CPU. Sus principales
objetivos son maximizar la eficiencia y rendimiento y minimizar tiempo de retorno, espera y
respuesta.
Orden de llegada (FCFS)
*Planificacin de servicio por orden de llegada.
*Es el algoritmo ms sencillo, el primer proceso que solicita la CPU es el primero en
recibirla.
*Fcil de implementar con una poltica FIFO para la cola de preparados. Tiempo de
espera promedio bastante largo. Ejemplo:
Ejemplo:
21
Arquitectura de Computadoras
II.
PLANIFICACIN DE MEMORIA
2.1. Administrador de memoria
Parte del S.O. que gestiona la memoria:
Control de que partes de la memoria estn utilizadas o libres.
Asignar memoria a procesos y liberarla cuando terminan.
Administrar intercambio entre memoria y disco (Memoria Virtual)
2.2. Administracin en sistemas multiprogramados
Es deseable que haya varios procesos en memoria para su ejecucin concurrente.
22
Arquitectura de Computadoras
23
Arquitectura de Computadoras
o Podemos tener varias colas: Cada proceso se asigna a una cola en funcin de su
tamao.
o Podemos tener una nica cola: Cuando se libera una particin -> se asigna al
primer proceso que cabe en ella.
Funcionamiento
Arquitectura de Computadoras
Proceso termina:
Libera su zona de memoria.
Se convierte en un hueco.
Dicho hueco se fusiona con los adyacentes.
Se conserva una tabla de partes de memoria ocupadas y libres y la cola de
entrada de procesos en memoria.
Fig. 2.3. Un ejemplo: los procesos se cargan en memoria, compiten por la CPU y al acabar liberan
la memoria.
de
Primer Ajuste:
Escoge el primer hueco libre de tamao suficiente.
Mejor Ajuste:
Hueco ms pequeo con tamao suficiente (requiere ver toda la lista si
no est ordenada).
Peor Ajuste:
Hueco ms grande: Pretende conseguir que los huecos que queden
sean grandes (requiere ver toda la lista si no ordenada).
25
Arquitectura de Computadoras
Cul es el mejor?
Simulaciones y Estadsticas:
Criterio tiempo (reduccin) y utilizacin de memoria (aprovechamiento):
Primer Ajuste y Mejor Ajuste son mejores que Peor Ajuste.
Regla del 50%: un anlisis estadstico refleja que
Con Primer Ajuste por cada N bloques de memoria asignados se pierden
0,5 N bloques por fragmentacin externa (1/3 memoria inutilizada).
Fig. 2.4.
Compactacin: intenta solucionar fragmentacin ext.
Consiste en desplazar las particiones ocupadas para que estn juntas en
memoria:
Queda un solo hueco libre de mayor tamao.
Es una solucin al problema de fragmentacin externa.
Slo es posible si la reubicacin es dinmica (en ejecucin).
Ejemplo:
Fig. 2.5.
Problemas de la Compactacin:
Consume tiempo: Desplazar zonas de memoria.
Difcil seleccionar una estrategia de compactacin ptima.
26
Arquitectura de Computadoras
Fig.2.6.
III.
LA GESTIN DE LA MEMORIA
La memoria es uno de los principales recursos de la computadora, la cual debe de
administrarse con mucho cuidado. Aunque actualmente la mayora de los sistemas de
cmputo cuentan con una alta capacidad de memoria, de igual manera las aplicaciones
actuales tienen tambin altos requerimientos de memoria, lo que sigue
generando escasez de memoria en los sistemas multitarea y/o multiusuario.
La parte del sistema operativo que administra la memoria se llama administrador de
memoria y su labor consiste en llevar un registro de las partes de memoria que se estn
utilizando y aquellas que no, con el fin de asignar espacio en memoria a
los procesos cuando stos la necesiten y liberndola cuando terminen, as como
administrar el intercambio entre la memoria principal y el disco en los casos en los que
la memoria principal no le pueda dar capacidad a todos los procesos que tienen
necesidad de ella.
Los sistemas de administracin de memoria se pueden clasificar en dos tipos: los que
desplazan los procesos de la memoria principal al disco y viceversa durante la ejecucin
y los que no.
El propsito principal de una computadora es el de ejecutar programas, estos programas,
junto con la informacin que accesan deben de estar en la memoria principal (al menos
parcialmente) durante la ejecucin.
27
Arquitectura de Computadoras
Beneficios:
-
3.2 PAGINACIN
El espacio virtual de direcciones se divide en unidades llamadas pginas, todas del
mismo tamao. La memoria principal se divide en marcos de pginas (page frames) del
mismo tamao que las pginas virtuales y son compartidas por los distintos procesos del
sistema (en cada marco de pgina se carga una pgina de un proceso).
No todo el espacio virtual de direcciones est cargado en memoria central. Una copia
completa se encuentra en disco y las pginas se traen a memoria central cuando se
necesitan.
Tabla de pginas (TP) Relaciona cada pgina con el marco que la contiene.
MMU usa TP para traducir direcciones lgicas a fsicas.
Tpicamente usa 2 TPs: TP usuario y T.P sistema (slo se permite usar estas direcciones
en modo sistema).
Arquitectura de Computadoras
29
Arquitectura de Computadoras
Ventajas de las tablas de pginas multinivel: (1) Si proceso usa una parte pequea de
su espacio lgico => ahorro en espacio para almacenar TPs; (2) Ahorro en la
memoria utilizada para su implementacin => Por ejemplo: proceso que usa 12MB
superiores y 4MB inferiores > 2 niveles, pginas de 4K, direccin lgica 32 bits
(10 bits por nivel) y 4 bytes por entrada > Tamao: 1 TP N1 + 4 TP N2 = 5 * 4KB
= 20KB (frente a 4MB); (3) Permite compartir TPs intermedias: (4) Slo se requiere
que est en memoria la TP de nivel superior => TPs restantes pueden estar en disco y
traerse por demanda, cuando se necesiten.
Con la paginacin, la MMU no sabe nada sobre las distintas regiones de los
procesos, slo entiende de pginas. El sistema operativo debe guardar para cada
proceso una tabla de regiones que especifique qu pginas pertenecen a cada regin.
Esto tiene dos desventajas: (1) Para crear una regin hay que rellenar las entradas de
las pginas pertenecientes a la regin con la mismas caractersticas (por ejemplo, que
no se puedan modificar si se trata de una regin de cdigo); y (2) Para compartir una
regin, hay que hacer que las entradas correspondientes de dos procesos apunten a
los mismos narcos. En resumen, lo que se est echando en falta es que la MMU sea
consciente de la existencia de regiones y que permita tratar a una regin como una
entidad.
30
Arquitectura de Computadoras
Fig. 3.1.
Arquitectura de Computadoras
Arquitectura de Computadoras
mareo; (2) Poltica de asignacin de espacio a los procesos: Cmo se reparten los
marcos entre los procesos? => Asignacin fija o dinmica.
Fig. 3.2
Esta organizacin tiene ciertas ventajas para el programador, frente a un espacio de
direcciones no segmentado:
Arquitectura de Computadoras
Concepto de Multiprogramacin
En un sistema monoprocesador, slo puede ejecutarse un proceso cada vez.
Cualquier otro proceso tendr que esperar hasta que la CPU quede libre y
pueda volver a planificarse. El objetivo de la multiprogramacin es tener
continuamente varios procesos en ejecucin, con el fin de maximizar el uso
de la CPU.
Un proceso se ejecuta hasta que tenga que esperar, normalmente porque es
necesario completar alguna solicitud de E/S. La CPU permanecera entonces
inactiva y todo el tiempo de espera se desperdiciara al no realizar ningn
trabajo til. Con la multiprogramacin, se usa ese tiempo de forma
productiva.
Arquitectura de Computadoras
Una vez implementada la particin, hay dos maneras de asignar los procesos a ella.
La primera es mediante el uso de una cola nica que asigna los procesos a los
espacios disponibles de la memoria conforme se vayan desocupando. El tamao del
hueco de memoria disponible es usado para localizar en la cola el primer proceso que
quepa en l. Otra forma de asignacin es buscar en la cola el proceso de tamao
mayor que se ajuste al hueco, sin embargo hay que tomar en cuenta que tal mtodo
discrimina a los procesos ms pequeos. Dicho problema podra tener solucin si se
asigna una particin pequea en la memoria al momento de hacer la particin inicial,
el cual sera exclusivo para procesos pequeos.
Fig. 3.3
Fig.3.4.
35
Arquitectura de Computadoras
CONCLUSIONES
Los procesos son aquellos programas que estn en ejecucin, los cuales presentan
determinadas situaciones que van cambiando a lo largo de la vida del proceso, estas
situaciones son denominadas estados.
BIBLIOGRAFIA
36
Arquitectura de Computadoras
WEB GRAFIA
http://es.slideshare.net/gladysmamani/planificacion-de-proceso-presentation
http://astreo.ii.uam.es/~ortigosa/ssoo/05-planificador-2pp.pdf
37
Arquitectura de Computadoras
http://www.ecured.cu/index.php/Planificaci
%C3%B3n_de_procesos_en_Sistemas_Operativos
http://www.sc.ehu.es/acwlaroa/SO2/Apuntes/Cap3.pdf
http://www.monografias.com/trabajos13/gesme/gesme.shtml
http://www.sc.ehu.es/acwlaroa/SO2/Apuntes/Cap4.pdf
http://lsi.vc.ehu.es/pablogn/docencia/manuales/SO/TemasSOuJaen/ADMINISTRACIONDE
LAMEMORIA/5.3SegmentacionPaginada.htm
http://www.monografias.com/trabajos10/gesmem/gesmem2.shtml
http://www.atc.uniovi.es/telematica/2ac/Apuntes-y-Ejercicios/T08-Procesos.pdf
http://www.infor.uva.es/~fjgonzalez/apuntes/Tema5.pdf
http://www.sc.ehu.es/acwlaroa/SO2/Apuntes/Cap4.pdf
http://www.dia.eui.upm.es/asignatu/Sis_op1/Paco/memoria.pdf
38