martes, 28 de mayo de 2013

Clase de 14 de Mayo

Clase de 14 de Mayo

La mayoría de los sistemas operativos tienen la funcionalidad de paginación y segmentación
Política de lectura: Está relacionado con la carga de la página en memoria principal
Paginación previa: se cargan otras páginas distintas a las demandas

-     Política de Ubicación
Se encarga en ubicar los procesos en memoria
Algoritmos de ubicación:
1)    Mejor ajuste
2)    Primer ajuste
3)    Siguiente ajuste

-    Política de reemplazo
Consiste en seleccionar la página que se va a reemplaza
1)    Algoritmo optimo – trata de prever que paginas pueden subidas o cargadas y consiste en un precargue de páginas que el usuario pueda que utilice,  si hay fallo de página se ejecuta el intercambio.
2)    Algoritmo LRU – es la política usada menos recientemente, esta reemplaza la que lleva más tiempo referenciada, este proceso cuando hay muchas cantidades de procesos se da sobrecarga.
3)    Algoritmo FIFO – primera en entrar primera en salir, reemplaza la que mayor tiempos de reloj lleva de carga en la memoria, esta puede producir hiperpaginacion.
4)    Algoritmo CLOCK o de reloj – le coloca en el marco un bit de uso cuando es “1” está en uso o ha sido recientemente usada y cuando es “0” es la página candidata a ser reemplaza, el apuntador arranca en la primera posición  y empieza a recorrer la lista circularmente llenando espacios de memoria vacíos, cuando se llena busca el próximo en “0” y mientras tanto los que encuentra en “1” los cambia por  “0”.

clase 10 de mayo

Clase 10 de Mayo

PARTICIONES FIJAS Y DINÁMICAS

Esquema de Particiones Fijas:
También llamado particiones estáticas fue el primer intento para posibilitar la multiprogramación.
Este esquema es mas flexible que el de usuario único porque permite que varios programas estén en memoria al mismo tiempo.
Hay dificultades si el tamaño de las particiones son pequeños o grandes.

Esquema de Particiones Dinámicas
Este tipo de esquema utiliza toda la memoria al cargar las primeras tareas, pero conforme entran nuevas tareas en el sistema que no son del mismo tamaño de las que acaban de salir de la memoria se acomodan en los espacios disponibles de acuerdo con su prioridad.

clase 7 de mayo

Clase 7 de Mayo

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

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.


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.


CARGA DINAMICA EN TIEMPO DE EJECUCIÓN

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”. 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  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.
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.


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.

clase 17 de mayo

Clase 17 de Mayo

Los métodos de administración de la memoria principal, que no utilizan Memoria Virtual y esquemas de Paginación y Segmentación,es decir que llevan a las direcciones directamente al bus de la memoria, tienen un inconveniente: producen lo que se denomina fragmentación. La fragmentación, que son huecos en la memoria que no pueden usarse debido a lo pequeño de su espacio, provoca un desperdicio de memoria principal.Una posible solución para la fragmentación externa es permitir que espacio de direcciones lógicas lleve a cabo un proceso en direcciones no contiguas, así permitiendo al proceso ubicarse en cualquier espacio de memoria física que esté disponible, aunque esté dividida.Una forma de implementar esta solución es a través del uso de un esquema de paginación. La paginación evita el considerable problema de ajustar los pedazos de memoria de tamaños variables que han sufrido los esquemas de manejo de memoria anteriores. Dado a sus ventajas sobre los métodos previos, la paginación, en sus diversasformas, es usada en muchos sistemas operativos.Al utilizar la memoria virtual, las direcciones no pasan en forma directa al bus de memoria, sino que van a una unidad administradorade la memoria (MMU ±Memory Management Unit). Estas direccionesgeneradas por los programas se llaman direcciones virtuales y conforman el hueco de direcciones virtuales. Este hueco se divide en unidades llamadas páginas. Las unidades correspondientes en la memoria física se llaman marcos para página o frames. Las páginas y los marcos tienen siempre el mismo tamaño.

conclusión exposiciones

conclusión exposiciones

Las exposiciones que fueron presentadas a través del ultimo corte se pudo comprender y analizar de una manera más didáctica temas que por su dificulta no eran fácilmente comprensibles, considero que la metodología utilizada fue la correcta ya que de esta manera los grupos que desarrollaban cada tema se preparaban de la mejor manera para poder hacer compresible la información al resto del grupo, ademas del apoyo continuo del profesor para aclarar algunos de los temas que no se tenían claro conocimiento por cada una de las exposiciones, por ultimo considero que la realización de los exámenes permitía poder conceptualizar los conceptos recibidos y permitía a cada grupo definir y tomar el roll de evaluadores sobre la presentación de sus temas.es una muy buena practica para adquirir conocimientos importantes, siempre de la mano de el profe.

Conclusiones generales del curso

Conclusiones generales del curso

En cuanto al desarrollo de la asignatura durante los tres cortes se podría decir que es completa, y significativa para nuestra carrera incluso para actividades diarias, el profesor nos ha influenciado positivamente a leer, a investigar, y compartir nuestros proyectos.
El profe nos ha dado un material muy valioso, que enfoca muchísimos aspectos de los sistemas operativos, y pienso que nos hace mucho bien por que estaremos rodeados de estos todo el tiempo mientras estemos ejerciendo, aprendí muchísimo a lo largo de la asignatura.

Muchas gracias

Exposicion # 8 estructuras de control de hardware

Exposicion # 8 estructuras de control de hardware

Los métodos de administración de la memoria principal, que no utilizan Memoria Virtual y esquemas de Paginación y Segmentación,es decir que llevan a las direcciones directamente al bus de la memoria, tienen un inconveniente: producen lo que se denomina fragmentación. La fragmentación, que son huecos en la memoria que no pueden usarse debido a lo pequeño de su espacio, provoca un desperdicio de memoria principal.Una posible solución para la fragmentación externa es permitir que espacio de direcciones lógicas lleve a cabo un proceso en direcciones no contiguas, así permitiendo al proceso ubicarse en cualquier espacio de memoria física que esté disponible, aunque esté dividida.Una forma de implementar esta solución es a través del uso de un esquema de paginación. La paginación evita el considerable problema de ajustar los pedazos de memoria de tamaños variables que han sufrido los esquemas de manejo de memoria anteriores. Dado a sus ventajas sobre los métodos previos, la paginación, en sus diversasformas, es usada en muchos sistemas operativos.Al utilizar la memoria virtual, las direcciones no pasan en forma directa al bus de memoria, sino que van a una unidad administradora de la memoria (MMU ±Memory Management Unit). Estas direcciones generadas por los programas se llaman direcciones virtuales y conforman el hueco de direcciones virtuales. Este hueco se divide en unidades llamadas páginas. Las unidades correspondientes en la memoria física se llaman marcos para página o frames. Las páginas y los marcos tienen siempre el mismo tamaño.

Exposición # 7 conjunto residente

Exposición # 7 conjunto residente

Al traerse un proceso a  memoria en un instante dado, el sistema operativo comienza trayendo solo unos pocos fragmentos, incluido el fragmento que contiene el comiezo del programa. Se llamara conjunto residente del proceso ala parte de un proceso que esta realmente en memoria principal.

Cuando el proceso se ejecuta todo ira sobre ruedas mientras todas las referencias a memoria esten en posiciones que pertenezcan al conjunto residente.

Tamaño Del Conjunto Residente:

•Asignación fija:
–Otorga a cada proceso un número fijo de páginas en las que ejecutar.
–Cada vez que se produce un fallo de página en la ejecución de un proceso, se debe reemplazar una de las páginas de dicho proceso.
•Asignación variable:
–Permite que el número de marcos asignados a un proceso cambie a lo largo de su vida.

Exposición # 6 Software del sistema operativo

Exposición # 6 Software del sistema operativo

La mayoría de los sistema operativos tienen la funcionalidad de paginación y segmentación.
Política de lectura: Está relacionado con la carga de la página en memoria principal.
Paginación previa: se cargan otras páginas distintas a las demandadas, deben ir a un fallo de página.
Paginación por demanda: cuando se hace referencia a una posición en dicha página.
Políticas de ubicación:
Se encargan de ubicar los procesos en memoria.
Mejor ajuste: Lista de huecos, explora la lista completa, busca el mejor espacio de memoria.
Primer ajuste: Busca el primer espacio de memoria donde quepa.

Política de reemplazo: Consiste en seleccionar la página que se va a reemplazar.
-          Algoritmos básicos
1)      Algoritmo optimo – trata de prever que paginas pueden subidas o cargadas y consiste en un precargue de páginas que el usuario pueda que utilice,  si hay fallo de página se ejecuta el intercambio.
2)      Algoritmo LRU – es la política usada menos recientemente, esta reemplaza la que lleva más tiempo referenciada, este proceso cuando hay muchas cantidades de procesos se da sobrecarga.
3)      Algoritmo FIFO – primera en entrar primera en salir, reemplaza la que mayor tiempos de reloj lleva de carga en la memoria, esta puede producir hiperpaginacion.

4)      Algoritmo CLOCK o de reloj – le coloca en el marco un bit de uso cuando es “1” está en uso o ha sido recientemente usada y cuando es “0” es la página candidata a ser reemplaza, el apuntador arranca en la primera posición  y empieza a recorrer la lista circularmente llenando espacios de memoria vacíos, cuando se llena busca el próximo en “0” y mientras tanto los que encuentra en “1” los cambia por  “0”.

Exposición # 5 Paginación y Segmentación de memoria virtual

Exposición # 5 Paginación y Segmentación de memoria virtual

Memoria Virtual:
Definición: Es la posibilidad de ejecutar un programa que no esta totalmente en memoria
Esta permite usar mas memoria principal de la que realmente posee el PC. La mayoría de PC posee 4 tipos de memoria:
•Memoria cache
•Registros de la CPU
•Memoria física
•Disco duro
Ejecutar un programa que no esta totalmente en memoria permite que:
•Los programas puedan ser mas grandes que la memoria física instalada en la máquina•Se pueda aumentar el grado de multiprogramación•La forma mas usual de implementarla es con paginación bajo demanda
Paginación bajo demanda:
•Es un sistema paginado con intercambio en donde se intercambia paginas cuando no son necesarias
•El HARDWARE debe suministrar una tabla de paginas con un bit que indique la presencia (o no) de la pagina en memoria de manera que
•Se referencia una pagina cuya entrada en la tabla de paginas tiene el bit de presencia a 1: se accede normalmente

•Se referencia una pagina cuya entrada en la tabla de paginas tiene el bit de presencia a 0: se produce una excepción

Exposición # 4 Hiperpaginación

Exposición # 4 Hiperpaginación

-Memoria virtual y cercanía de referencia:
Memoria virtual, la memoria virtual se debe aumentar cuando los programas consumen demasiados recursos de la máquina, aunque es recomendable aumentar la memoria RAM.
Tipos de memoria:  Virtual y Física
Cercanía de referencia: es la utilización de diferentes tecnologías para lograr un desempeño favorable, se utiliza dos localías una cercana y otra localía lejana, estas las utiliza el programador a la hora de hacer función de intercambio ya que por ejemplo al momento de referenciar una página web se traen también las paginas cercanas y luego cuando no está en las q se trajeron se trae esa lejana con su grupo de cercanas.
- Hiperpaginacion: se produce cuando el procesador pasa más tiempo paginando que ejecutando los procesos que requiere el usuario. Este es un problema del sistema del proceso virtual. Una posible solución es la ampliación de la memoria RAM.
- Fallo de página: hay ocasiones en la memoria que no encuentra el fragmento necesario en la memoria principal y se da el intercambio de página si esto se produce mucho se da la hiperpaginacion.

Nuestra expo paginacion y segmentacion

Nuestra expo paginacion y segmentacion

La segmentación permite alcanzar los siguientes objetivos :
1. Modularidad de programas: cada rutina del programa puede ser un bloque sujeto a cambios y recopilaciones, sin afectar por ello al resto del programa.
2. Estructuras de datos de largo variable: ejm. Stack, donde cada estructura tiene su propio tamaño y este puede variar.
3. Protección:se puede proteger los módulos del segmento contra accesos no autorizados.
4. Comparición: dos o más procesos pueden ser un mismo segmento, bajo reglas de protección;aunque no sean propietarios de los mismos.
5. Enlace dinámico entre segmentos: puede evitarse realizar todo el proceso de enlace antes de comenzar a ejecutar un programa. Los enlaces se establecerán solo cuando sea necesario.
Ventajas de la segmentación
El esquema de segmentación ofrece las siguientes ventajas:
· El programador puede conocer las unidades lógicas de su programa, dándoles un tratamiento particular.
· Es posible compilar módulos separados como segmentos el enlace entre los segmentos puede suponer hasta tanto se haga una referencia entre segmentos.
· Debido a que es posible separar los módulos se hace más fácil la modificación de los mismos. Cambios dentro de un modulo no afecta al resto de los módulos.
· Es fácil el compartir segmentos.
· Es posible que los segmentos crezcan dinámicamente según las necesidades del programa en ejecución.
· Existe la posibilidad de definir segmentos que aun no existan. Así, no se asignar amemoria, sino a partir del momento que sea necesario hacer usos del segmento.Un ejemplo de esto, serian los arreglos cuya dimensión no se conoce hasta tantono se comienza a ejecutar el programa. En algunos casos, incluso podríaretardar la asignación de memoria hasta el momento en el cual se referencia elarreglo u otra estructura de dato por primera vez.

Desventajas de la segmentación
· Hay un incremento en los costos de hardware y de software para llevar acabo la implantación, así como un mayor consumo de recursos: memoria, tiempo de CPU,etc.
· Debido a que los segmentos tienen un tamaño variable se pueden presentar problemas de fragmentación externas, lo que puede ameritar un plan de reubicación de segmentos en memoria principal.
· Secomplica el manejo de memoria virtual, ya que los discos almacenan la información en bloques de tamaños fijos, mientras los segmentos son de tamaño variable. Esto hace necesaria la existencia de mecanismos más costosos que los existentes para paginación.
· Al permitir que los segmentos varíen de tamaño, puede ser necesarios planes dereubicación a nivel de los discos, si los segmentos son devueltos a dicho dispositivo; lo que conlleva a nuevos costos.
· No se puede garantizar, que al salir un segmento de la memoria, este pueda sertraído fácilmente de nuevo, ya que será necesario encontrar nuevamente un áreade memoria libre ajustada a su tamaño.
· La comparticion de segmentos permite ahorrar memoria, pero requiere de mecanismos adicionales da hardware y software.
Estas desventajas tratan de ser minimizadas, bajo la técnica conocida como Segmentación paginada.

Características de la paginación:

· El espacio de direcciones lógico de un proceso puede ser no contiguo.
· Se divide la memoria física en bloques de tamaño fijo llamados marcos (frames).
· Se divide la memoria en bloques de tamaño llamados paginas.
· Se mantiene información en los marcos libres.
· Para correr un programa de n paginas de tamaño, se necesitan encontrara n marcos y cargar el programa.
· Se establece una tabla de paginas para trasladar las direcciones lógicas a físicas.
· Se produce fragmentación interna.

Ventajas de la paginación

1. Es posible comenzar a ejecutar un programa, cargando solo una parte del mismo en memoria, y el resto se cargara bajo la solicitud.
2. No es necesario que las paginas estén contiguas en memoria, por lo que no se necesitan procesos de compactación cuando existen marcos de paginas libres dispersos en la memoria.
3. Es fácil controlar todas las páginas, ya que tienen el mismo tamaño.
4. El mecanismo de traducción de direcciones (DAT) permite separarlos conceptos de espacio de direcciones y espacios de memoria. Todo el mecanismo es transparente al usuario.
5. Se libera al programador de la restricción de programar para un tamaño físico dememoria, con lo que s e aumenta su productividad . Se puede programar en función deuna memoria mucho más grande a la existente.
6. Al no necesitarse cargar un programa completo en memoria para su ejecución, se puedeaumentar el numero de programas multiprogramándose.
7. Se elimina el problema de fragmentación externa.

Desventajas de la paginación

1. El costo de hardware y software se incrementa, por la nueva información que debe manejarse y el mecanismo de traducción de direccion es necesario. Se consume mucho mas recursos de memoria, tiempo en el CPU para su implantación.
2. Se deben reservar áreas de memoria para las PMT de los procesos. Al no ser fija el tamaño de estas, se crea un problema semejante al de los programas (como asignar un tamaño óptimo sin desperdicio de memoria, u "ovearhead"del procesador).
3. Aparece el problema de fragmentación interna. Así, si se requieren 5K para un programa,pero las paginas son de 4K, deberán asignárseles 2 paginas (8k), con lo quequedan 3K sin utilizar. La suma de los espacios libres dejados de esta forma puede ser mayor que el de varias paginas, pero no podrá ser utilizados. Debe asignarse un tamaño promedio a las páginas, evitando que si son muy pequeñas,se necesiten TABLAS BMT y PMT muy grandes, y si son muy grandes, se incremente el grado de fragmentación interna.
Traducción de Direcciones
La dirección generada por la CPU se divide en:
· Numero de pagina (p): utilizado como indice en la tabla de pagins que contiene la dirección base de cada pagina en la memoria fisica.
· Offsetde la pagina (d): combinado con la dirección base define la direccion fisica que será enviada a la unidad de memoria.

Exposición # 2 Particiones Fijas y Dinámicas

Exposición # 2 Particiones Fijas y Dinámicas

Memoria: recurso de la computador, espacio para almacenar.
Particiones: Dividir el espacio de memoria.
Dinámicas: asignan el tamaño de memoria al tamaño del proceso. Fragmentación Externa.
Algoritmos de ubicación:
Primer ajuste: principio de la memoria, ubica en el primer hueco.
Mejor ajuste: principio de la memoria, hace una lista de todos los huecos disponibles y ajusta el proceso.
Siguiente ajuste: final de la memoria.
Peor ajuste: determina los procesos ordenados de mayor a menor, ubica el primer proceso en el hueco más grande y no causa fragmentación externa.

exposicion #1 carga y montaje

exposicion #1 carga y montaje

Una aplicación esta formada por  varios módulos compilados en forma de objetos  que se montan juntos  para resolver  las referencias entre otros módulos y las rutinas de biblioteca.El primer porcesopara la creacion de un proceso activo consiste en cargar un programa en memoria principal y crear una imagen del proceso.la aplicacion esta formada por una serie de modulos compilados o ensamblados en forma de codigo onjeto que se montan juntos para resolver las referencias entre los modulos. al mismo tiempo se resuelven las referencias a rutinas de biblioteca. las rutinas de bilioteca pueden estar incorporadas en el programa o ser referenciasdas como codigo compartido que debe suministrar el sistema operativo en el momento de la ejecucion.

Carga Dinámica:El cálculo de direcciones dinámico permite  que un programa pueda cargarse en cualquier región de la memoria principal y luego  interrumpir la ejecución del programa  para ser descargado de la memoria principal  y posterior mente  cargado en una posición diferente.

Montaje:La  función  de un montador es  tomar como entrada una colección de módulos objeto y generar un modulo de carga que contenga un conjunto  de módulos de programa y datos para el cargador, el montador  crea un único modulo de carga que es la unión de todos los módulos objetos.