Sistemas Operativos Parte III
martes, 28 de mayo de 2013
Competencia e Interaccion - Soluciones por Software
Competencia e Interaccion
Competencia y Soluciones por Software
lunes, 27 de mayo de 2013
Conclusión Sobre Las Exposiciones
A
lo largo de este semestre nos fueron asignadas varias exposiciones para poder
llegar a abordar algunos de los temas relativos a la materia. Algunos se
tornaron complejos y confusos en cuanto a la información que se quería
trasmitir pero hay que recalcar que el esfuerzo de los grupos por hacer
digerible el tema y que ese conocimiento que se adquirió en la elaboración de
las exposiciones, fuera absorbido correctamente por quienes asistimos a las
mismas fue notorio. Me pareció muy importante el apoyo que brindo el profesor a
lo largo de las exposiciones, ya que si en algún momento precisamente por lo
complejo o confuso del tema, se perdía el hilo o se confundía el temario o información
a trasmitir, inmediatamente el encaminaba la exposición para que los conceptos
e información fueran correctos y acordes con el tema asignado, exponiéndolos en
su rol de maestro pero de una manera entendible para nosotros los alumnos.
Algo
que me gusto bastante fue la manera de
liberar las tenciones que se generan previamente a la exposición, como todos
sabemos no es fácil ser expositor, estar enfrente a nuestros compañeros y
tratar de trasmitir conocimientos respecto a un tema que puede ser algo
complejo y nuevo lo hace aún más difícil, pero a través de los juegos y actividades que
se realizaron nos preparamos mentalmente para lo que explicaríamos.
Conclusiones Generales del Curso
Al
momento de comenzar la materia fue bastante la expectativa que se generó
entorno a la misma. El nombre de sistemas operativos me hizo pensar que los
temas que veríamos, serian temas relacionados con las distintas funciones y
recursos que brindan los que existen hoy en día y con los cuales estamos
acostumbrados a interactuar, creo que fue algo en lo que con todos mis
compañeros de curso concordamos.
Ya
al iniciar las clases y analizar los temas de la misma nos fuimos dando cuenta que si en algún
momento se habla de estos no es para nada en sus configuraciones, o en las
bondades que estos brindan, se va mas allá con la materia y se ve la relevancia
de la misma para nosotros como futuros ingenieros, conocer como es realmente la
estructura interna, la importancia de los recursos de hardware presentes en un
computador y las relaciones y ajustes que se deben realizar a los mismos para
tener un sistema operativo optimo y que cumpla con la función esperada por un
usuario, siendo esta la de servir como una interfaz veloz entre este y los
programas y los distintos procesos que queremos ejecutar en un computador.
Gracias a esta materia puedo decir que conozco un computador internamente en
cuanto a toda la serie de algoritmos y distintas técnicas complejas y sencillas
que se deben tener en cuenta para llegar a diseñar un sistema operativo y que
este pueda cumplir satisfactoriamente su objetivo, facilitarle el uso del
computador en todo su potencial a los usuarios.
domingo, 26 de mayo de 2013
Particiones Fijas y Dinamicas
Particiones Fijas
Consiste en dividir la memoria libre en varias partes de igual o diferentes tamaños. cuando se tiene una particion fija de partes iguales encontramos dos problemas:
Particiones Dinamicas
Este método consiste en particiones de memoria de tamaños variable, o sea, a cada proceso se le asigna la cantidad de memoria que necesita (la cantidad exacta y ni un poco más). Tras el ingreso de nuevos procesos y la expulsión de otras, se generarán huecos de memoria inutilizados. Conforme pasa el tiempo, la memoria comienza a estar más fragmentada y su rendimiento decae; este fenómeno se denomina fragmentación externa.
Una técnica para superar la fragmentación externa es la compactación. De vez en cuando, el sistema operativo desplaza los procesos para que estén contiguos de forma que toda la memoria libre quede junta en un bloque. Las dificultades que presenta la compactación son:
Consiste en dividir la memoria libre en varias partes de igual o diferentes tamaños. cuando se tiene una particion fija de partes iguales encontramos dos problemas:
- Un programa que sea demasiado grande para caber en la particion, de presentarse esta situacion el programador debe realizar el diseño del programa utilizando superposiciones para que solo una parte del programa este en memoria principal. Cuando se necesita un modulo que no esta presente el programa del usuario debe cargar dicho modulo en la particion del programa superponiéndose a los programas y datos que se encuentren en ella.
- El uso de memoria es ineficiente. Cualquier programa sin importar que tan pequeño sea ocupara una particion completa, suponiendo que se carga un programa de 120k y la particion a donde va es de 520k, se malgasta el espacio interno de la particion generando algo denominado fragmentacion interna.
Si se tienen particiones de igual tamaño y todas las particiones estuvieran con procesos que no estan listos para ser ejecutados y es necesario cargar un nuevo proceso, se debe determinar que particion debe ser expulsada llamando esta accion como una decisión de planificación.
Cuando son particiones con distintos tamaños, se debe definir en que particion se cargara el nuevo proceso, una forma simple de realizar esto es asignar cada proceso a la particion mas pequeña en que quepa, necesitando esto una cola de expulsados para cada particion, tambien se podria asignar al proceso a la particion mas pequeña entre aquellas que estan libres (utilizando una unica cola para todos los procesos), si todas las particiones estan ocupadas, se debe tomar una decision de intercambio. Con la paginacion fija se hace una suposición de que se conoce la cantidad máxima de memoria que necesitara un proceso, lo que no siempre es cierto.
Particiones Dinamicas
Este método consiste en particiones de memoria de tamaños variable, o sea, a cada proceso se le asigna la cantidad de memoria que necesita (la cantidad exacta y ni un poco más). Tras el ingreso de nuevos procesos y la expulsión de otras, se generarán huecos de memoria inutilizados. Conforme pasa el tiempo, la memoria comienza a estar más fragmentada y su rendimiento decae; este fenómeno se denomina fragmentación externa.
Una técnica para superar la fragmentación externa es la compactación. De vez en cuando, el sistema operativo desplaza los procesos para que estén contiguos de forma que toda la memoria libre quede junta en un bloque. Las dificultades que presenta la compactación son:
- Es un procedimiento que consume tiempo de trabajo del procesador
- Debe realizarse los movimientos de una región a otra, sin invalidar las referencias a memoria del programa
- Mejor ajuste (Best-fit): se elige el bloque con el tamaño más parecido al del proceso entrante.
- Primer ajuste (First-fit): comienza recorriendo la memoria desde el comienzo y escoge el primer bloque disponible en el que entre el proceso entrante.
- Siguiente ajuste (Next-fit): recorre la memoria desde el lugar de la última ubicación y elige el siguiente bloque disponible que sea suficientemente grande.
- Peor ajuste (Worst-fit): elige el bloque más grande posible.
Segmentacion de Memoria
La segmentacion de memoria consiste en dividirla en segmentos, cada uno de los cuales tiene una longitud variable, este esta definido por el tamaño de ese segmento del programa. Podriamos definir tambien la segmentacion como el programa y sus datos asociados a estos conjuntos de segmentos los cuales pueden ser de distinta longitud pero siempre con la condicion que debe existir un maximo tamalo de segmento.
Una direccion logica en segmentacion se divide en dos partes S y D donde S es el en numero de segmento y D el desplazamiento dentro del segmento.
Para cada uno de los segmentos es guardado una entrada en la tabla de segmentos la cual contendra los campos numero de segmento, base y longitud, a continuacion se muestra una grafica en la cual podemos analizar la traduccion de direcciones S,D a direcciones fisicas o reales:
imagen tomada de: http://es.scribd.com/doc/2879619/25/Requisitos-para-la-gestion-de-memoria
Objetivos de la segmentacion de memoria
imagen tomada de: http://www.slideshare.net/menes21/paginacion-y-segmentacion-de-memoria
fuentes consultadas: http://www.slideshare.net/menes21/paginacion-y-segmentacion-de-memoria
http://es.scribd.com/doc/2879619/25/Requisitos-para-la-gestion-de-memoria
Una direccion logica en segmentacion se divide en dos partes S y D donde S es el en numero de segmento y D el desplazamiento dentro del segmento.
Para cada uno de los segmentos es guardado una entrada en la tabla de segmentos la cual contendra los campos numero de segmento, base y longitud, a continuacion se muestra una grafica en la cual podemos analizar la traduccion de direcciones S,D a direcciones fisicas o reales:
imagen tomada de: http://es.scribd.com/doc/2879619/25/Requisitos-para-la-gestion-de-memoria
Objetivos de la segmentacion de memoria
- Modularidad de programas: cada runtina del programa puede ser un bloque sujeto a cambios y recopilaciones, sin afectar por ello al resto del programa.
- Estructuras de largo variable: donde cada estructura tiene su propio tamaño y este puede variar
- 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 segmendos puede suponer hasta tanto se haga una referencia de segmentos.
- Facil comparticion de los segmentos
- Los segmentos crecen dinamicamente segun las necesidades del programa en ejecucion.
- Incremento en los costos de HW y SW
- Al tener los segmentos un tamaño variable se pueden presentar problemas de fragmentacion externo, lo que amerita un plan de reubicacion de segmentos en memoria principal.
imagen tomada de: http://www.slideshare.net/menes21/paginacion-y-segmentacion-de-memoria
fuentes consultadas: http://www.slideshare.net/menes21/paginacion-y-segmentacion-de-memoria
http://es.scribd.com/doc/2879619/25/Requisitos-para-la-gestion-de-memoria
Paginacion de Memoria
Paginacion
Esta tecnica de gestion de memoria consiste en la division de los programas que se ejecutan en pequeñas partes o paginas, asi como la memoria tambien es dividida en trozos o fragmentos fisicos de igual tamaño denominados marcos de pagina, los programas son divididos en unidades logicas, de esta manera de carga una pagina de informacion en cualquier marco de pagina, la relevancia de los mecanismos de paginacion es que gracias a estos se permite una correcta correspondencia entre las direcciones virtuales que son dadas por los programas y las direcciones reales de memoria que sean referenciadas.
Para poder tener el control de las paginas generadas se debe mantener una tabla en memoria denominada mapa de pagina, esta se genera para cada uno de los procesos. Cada pagina tiene un numero que se utiliza como indice en la tabla de paginas, lo que da por resultado el numero del marco correspondiente a esa pagina virtual. Si el bit presente/ausente es 0, se provoca un señalamiento denominado trap hacia el sistema operativo. si el bit es 1, el numero de marco de pagina que aparece en la tabla de pagina se copia en los bits de mayor orden del resgitro de salida. A continuacion una grafica de como es el proceso de paginacion de memoria.
imagen tomada de: http://wwwdi.ujaen.es/~lina/TemasSO/ADMINISTRACIONDELAMEMORIA/5.1Paginacion.htm
imagen tomada de: http://wwwdi.ujaen.es/~lina/TemasSO/ADMINISTRACIONDELAMEMORIA/5.1Paginacion.htm
Caracteristicas:
- 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 den los marcos libres.
- para correr un programa de N paginas de tamaño, se necesitan encontrar N marcos y cargar.
- Se puede comenzar a ejecutar un programa cargando solo una parte del mismo en memoria, el resto se cargara bajo solicitud.
- No hay necesidad de que las paginas esten contiguas en memoria, por lo que no se necesitan procesos de compactacion cuando existen marcos de paginas libres dispersos en la memoria.
- Es facil controlar todas las paginas, ya que tienen el mismo tamaño.
Desventajas
- Se deben reservar areas de memoria para las PMT de los procesos,. Al no ser fijo el tamaño de estas, se crea un problema smejante al de los programas (como asignar un tamaño óptimo sin desperdicio de memoria, u "overhead" dekl procesador).
- Aumento en los costos de HW y SW por la nueva informacion que debe manejarse y el mecanismo de traduccion de direcciones necesario. Se consumen muchos mas recursos de memori, tiempo en el procesador para su implantación.
Suscribirse a:
Comentarios (Atom)