lunes, 19 de noviembre de 2012

CONCLUCIONES

Durante la clase se manejo un programa diferente en el cual los alumnos interactuabamos mediante talleres, participaciones, foros y quices. Este modo de trabajo fue importante  ya que se comprobo que los alumnos tienen mas iniciativa y se aprende de una forma mas didactica, con esta forma de trabajo se motiva a los estudiantes y se logra que participen y resuelvan sus dudas sin estar precionado sde ninguna manera.

Durante el curso se asignaron bastantes trabajos, estos de acuerdo a las presentaciones, las lecturas y los ejemplos mostrados por el profesor. A mi modo de ver el curso quedo contento con este metodo de aprendizaje y en ningun momento se presentaron inconvenientes por las actividades asignadas, con esto se puede demostrar que se parendio de una forma agradable y siempre el curso estuvo dispuesto a realizar todo lo que fuera necesario. Adicionalmente para cada corte se asignaba un trabajo final que siempre fue de gran esfuerzo pero fueron actividades a las que se dedico empeño y siempre se realizaron facilmente y con herramientas que muchas personas no conocian y fueron de gran aprendizaje.

De lo anterior podemos decir que los alumnos quedamos contentos y podemos dar certeza que con este nuevo metodo de aprendizaje para nosotros todo es mas facil  didactico, las clases y los trabajos nunca fueron aburridos ni bajo presion como se suele trabajar en la mayoria de clases.
CARGA Y MONTAJE



· CARGA

El cargador sitúa él módulo de carga en la memoria principal, comenzando en la posición X.
En general, se pueden aplicar tres métodos.
Carga absoluta.

Carga reubicable.

Carga dinámica en tiempo de ejecución.



CARGA ABSOLUTA
La carga absoluta necesita al módulo de carga ocupe siempre la misma posición en la memoria principal.
La asignación de direcciones a la memoria de un programa la puede realizar tanto el programador como en compilador o el ensamblador.


DESVENTAJAS: La desventaja de asociar las referencias a las direcciones
Especificas previas a la carga es que él módulo dela carga
resultante solo puede situarse en una región de la M. P.

Los programadores tendrán que conocer la estrategia de
asignación para situar los módulos.

Si se hace alguna modificación en el programa que
Suponga borrados en él módulo, se tendrá que cambiarse
todas las direcciones.
Por lo tanto seria conveniente, que las referencias a memoria se expresen simbólicamente. Todas las referencias a una instrucción o elemento de datos se representan inicialmente por un símbolo. Cuando se prepara él módulo para la entrada a un cargador absoluto, el ensamblador o el compilador convertirán todas estas referencias en direcciones específicas.


CARGAS REUBICABLES
En la carga reubicable el ensamblador o el compilador no genera direcciones reales de Memoria Principal, sino direcciones relativas a algún punto conocido (como el comienzo de un programa). Al comienzo del módulo de carga se le asigna la dirección relativa “ 0 ” y todas las demás dentro se expresan con relación al comienzo del módulo.
Con toda la memoria esta expresada en forma relativa, situar los módulos en la posición deseada se convierte en una tarea sencilla. Si al módulo va a ser cargado comenzando con la posición x, el cargador simplemente generará x a cada referencia a la memoria a medida que carga él módulo en la memoria.


CARGA DINAMICA EN TIEMPO DE EJECUCION


El cálculo de direcciones dinámicas proporciona una completa flexibilidad.
Un programa puede cargarse en cualquier región de la Memoria Principal.
Mas tarde, la ejecución de programa puede interrumpirse y el programa ser descargado de la Memoria Principal para ser posteriormente cargado en una posición diferente.



· MONTAJE

Consiste en tomar como entrada una colección de módulos objetos y generar un módulo de “carga” que:
Contenga módulos de programas y de datos para el cargador.
El montador crea un único módulo de carga que es concatenación de todos módulos objetos. Además cada referencia interna de un módulo debe cambiarse de dirección simbólica a una posición dentro del módulo de carga total.


EDITOR DE MONTAJE

El montaje de direcciones dependerá: Del tipo de módulo de carga
De cuando se produzca el montaje.

Si se desea un módulo de carga reubicable, el montaje se realiza de la siguiente manera:
_ Cada módulo objeto compilado se crea con referencias relativas al comienzo del módulo.
_ Los módulos se unen en u único módulo de carga reubicable, junto con las referencias
relativas al origen del módulo de carga.
Este módulo reubicable puede usarse como una para una carga reubicable o para una dinámica durante la ejecución.
Los montadores que crean módulos de carga reubicable se conocen como editores de montajes.


MONTADOR DINAMICO

Como en la carga es posible aplazar algunas funciones de montajes. Se emplea para resaltar el montaje de algunos módulos externos hasta que él módulo de carga se haya creado.
Así, él módulo de carga contiene referencias no resueltas que pueden resolverse tanto a la carga como en la ejecución:
“MONTAJE DINAMICO EN TIEMPO DE CARGA”: se da en las siguientes etapas:
_ El módulo de carga se trae a la Memoria Principal.
_ Cualquier referencia a un módulo externo hace que el cargador lo busque, lo cargue y
modifique las referencias a direcciones.

Existen ventajas: que podría llamarse carga estática:
Resulta fácil actualizar versiones del módulo externo. En el estático cualquier cambio en el soporte requerirá volver a montar él módulo de aplicación por completo.

EJEMPLO:
En los compiladores personales (PC) el software comercial se entrega en forma de módulo de carga y no las versiones fuentes y objetos.

Tener el código de destino en un archivo de montaje dinámico prepara el terreno para compartir automáticamente código.
El Sistema Operativo puede darse cuenta de que más de una aplicación esta empleando el mismo código de destino.
Permite usarse para cargar una única copia del código en ves de tener que cargar una copia para cada aplicación.

Resulta fácil ampliar la funcionalidad de un S. O. muy empleado.

Un productor puede proponer una nueva función útil para varias aplicaciones y empaquetarla como un módulo de montaje dinámico.

“MONTAJE DINAMICO EN TIEMPO DE EJECUCIÓN”: parte del montaje se pospone hasta el momento de la ejecución, las referencias externas permanecen en el programa cargado cuando se realiza una llamada a un módulo ausente el Sistema Operativo localiza, carga y lo monta en él módulo llamador.

La estructura del módulo es estática y permanece sin cambios durante la ejecución del proceso y de una ejecución a la siguiente.
Por el contrario en algunos casos no es posible determinar antes que módulos objetos harán falta. La naturaleza de la transacción dictamina que módulos de programas se necesitan y estos se cargan de la forma apropiada y se montan con el programa principal.
La ventaja de emplear un montador dinámico es que no hace falta reservar memoria para las unidades de programa a menos que se hagan referencias a los mismos. Esta capacidad se emplea como soporte para los sistemas de segmentación.


esta informaciòn fue tomada de http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/MonogSO/GESTME02_archivos/tem3.htm



domingo, 18 de noviembre de 2012

MEMORIA VIRTUAL


Es un segmento del disco duro que tiene un tamaño que el usuario puede cambiar pero por defecto tiene el doble de tamaño de la memoria física. Se trabaja desde DMA y se trabaja como memoria principal pero al dejar de funcionar el disco se pierde todo lo que se encuentra en memoria virtual.


CONJUNTO RESIDENTE
Es el resultado final después de haber montado un archivo en memoria y se convierte en proceso.

ESTRUCTURAS DE HARDWARE Y DE CONTROL
  1. FALLO DE PAGINA: Error que presenta el sistema al no encontrar la página referenciada en la memoria principal, esto hace que se presente una interrupción la cual bloque el proceso.
  2. FUNCION DE INTERCAMBIO: Se utiliza cuando hay fallo de pagina.
A.    Buscar página candidata.
B.    Ubicar en registros intermedios la página candidata
C.   Subir la página referenciada a la memoria principal en el marco de la página candidata
D.   Mover a la memoria virtual la página candidata
  1. HIPERPAGINACION: Se presenta en el momento en que se realiza el intercambio debido a un fallo de página. La hiperpaginación multiplica los procesos de intercambio que sean necesarios para solucionar el fallo de página. 
  2. PRINCIPIO DE CERCANIA: Realiza el intercambio para varias páginas pero cercanas a la que vaya a la que vaya a hacer el intercambio.
      PAGINACION MEMORIA VIRTUAL
      
  •       Cada proceso tiene su propia tabla de página.
  •       Cada entrada de la tabla de páginas contiene el número de marco de la página correspondiente en memoria virtual
  •      Se necesita un bit para indicar si la página correspondiente está presente en la memoria virtual o no lo está.

  • BIT DE MODIFICACION

    1 = Memoria principal.
    0 = Memoria virtual.


    Dirección virtual

    # PAG
    DESPLAZAMIENTO


    P
    M
    OTROS BITS DE CONTROL
    NUMERO DE MARCO

    BUFFER DE TRADUCCION ADELANTADA O TLB
    Es una solución en hardware para hiperpaginación.

    PAGINACION Y SEGMENTACION COMBINADAS

    #SEGMENTO
    #PAGINA
    DESPLAZAMIENTO



DIRECCIONES


  • Dirección Lógica
  • Dirección Alternativa
  • Dirección física 

Dirección lógica

  • Si una entidad tiene direcciones lógicas es un programa
  • Si contiene direcciones relativas es un proceso
  • Si una entidad tiene direcciones físicas es el programa que se esta ejecutando en memoria


PAGINACIÓN Y SEGMENTACIÓN

PAGINACIÓN

  • La memoria principal se encuentra dividida en trozos iguales de tamaño fijo y cada proceso en pequeños trozos de tamaño fijo.
  • Los trozos del proceso se denominan páginas y los trozos de memoria se denominan marcos.
  • El sistema operativo mantiene una tabla de páginas para cada proceso



El tamaño de la paginación es mucho menor a la dirección fija, esto reduce la fragmentación interna

DESVENTAJAS: Las paginas asignadas a un proceso deben ser ubicadas en forma consecutiva


DIVISIÓN DE LA MEMORIA PRINCIPAL


SEGMENTACIÓN
  • No es necesario que todos los segmentos de todos los programas tengan la misma longitud
  • Existe una longitud máxima de segmento = El máximo de segmento de un proceso es 4
  • Una dirección lógica segmentada consta de dos partes, un numero de segmento y un desplazamiento.
# PAG    
DESPLAZAMIENTO

# SEG
DESPLAZAMIENTO

Como consecuencia del empleo de segmentos de distinto tamaño, la segmentación similar a la partición dinámica.



ALGORITMOS DE UBICACIÓN


1.   Best Fit: (Mejor ajuste)
  •       Necesita hardware: Lista ordenada
  •        Necesita software: Para ordenar
  •        Tiene peor rendimiento

2.   First Fit: (Primer ajuste)

·         Tiene un apuntador que va en forma ascendente buscando un hueco para signar el procesador


3.   Next fit: (Próximo ajuste)
  • Tiene un apuntador que continua buscando hueco a partir de la asignación anterior

4.   Bad Fit: (Peor ajuste)

  • Ordena los huecos y asigna el proceso en el primero que quepa

SISTEMA DE COLEGAS

  • El sistema entero disponible para la asignación se trata como un solo bloque de tamaño 2°
  • Si se hace una solicitud de tamaño S tal que 20-1  < S <= 2°, entonces el bloque entero se asigna:
    • En otro caso el bloque se divide en dos colegas de igual tamaño
    • Este proceso continua hasta que el bloque más pequeño sea mayor o igual que S                    generándose

REUBICACION

Cuando el proceso se cargó en la memoria, se determina la ubicación real (Absoluta) de la memoria.




GESTION DE MEMORIA


Subdivisión de la memoria para hacer sitio a varios procesos, hace falta repartir eficientemente la memoria para introducir tantos procesos como sea posible.

REQUISITOS DE GESTIÓN DE MEMORIA:
  1. REUBICACION: El programador no conoce que otros programas residirán en la memoria en el momento de la ejecución. Mientras que se está ejecutando el programa, puede que se descargue en el disco y que vuelva a la memoria principal pero en una ubicación distinta a la anterior (Reubicación). Se deben traducir las referencias a la memoria encontradas en el código del programador a las direcciones físicas reales.
  2. PROTECCIÓN: El código de un proceso no puede hacer referencia a posiciones de memoria de otros procesos sin permiso. Es imposible comprobar las direcciones absolutas de los programas puesto que se desconoce la ubicación de un programa en la memoria principal. Debe comprobarse durante la ejecución que el sistema operativo no puede anticiparse a todas las referencias a la memoria que hará un proceso
  3. COMPARTIMIENTO: Permite el acceso de varios procesos a la misma zona de la memoria principal. Es mejor permitir a cada proceso que acceda a la misma copia del programa, en lugar de tener cada uno su propia copia aparte.
  4.  ORGANIZACIÓN LÓGICA: La mayoría de programas se organizan en módulos , los módulos pueden escribirse y compilarse independientemente, pueden otorgarse distintos grados de protección a los módulos.
  5. ORGANIZACIÓN FÍSICA: La memoria disponible para un programa y sus datos puede ser insuficiente: *La superposición permite que varios módulos sean asignados a la misma región en memoria. El programador no conoce cuanto espacio abra disponible
      PARTICIONES ESTÁTICAS (físicas)
  •       Cualquier proceso cuyo tamaño sea menor o igual que el tamaño de la partición puede cargarse en cualquier partición libre.
  •          Si todas las particiones están ocupadas, el sistema operativo puede sacar un proceso de  una partición
  •         Un programa puede que no se ajuste a una partición. El programador debe diseñar el programa mediante superposiciones

       El uso de la memoria principal es ineficiente. Cualquier programa sin importar lo pequeño que sea ocupara una participación completa, este fenómeno se denomina fragmentación interna.

  •      FRAGMENTACIÓN INTERNA: Espacio de memoria asignado pero que el proceso no utiliza.
  •      FRAGMENTACIÓN EXTERNA = compactación: Son segmentos de memoria no asignados.