Documentos de Académico
Documentos de Profesional
Documentos de Cultura
memorias
Su nombre y datos.
Bandera de acceso aleatorio: 0 solo acceso secuencial, 1 acceso aleatorio.
Tiempo del ltimo acceso: fecha y hora del ltimo acceso al archivo.
Crear y abrir: provee la creacin de un archivo en el sistema de archivos. Se debe proveer un nombre del
nuevo archivo. Adems, se provee la apertura de un archivo ya existente para acceder o modificar la
informacin.
Truncar: eliminar la informacin que est dentro del archivo, pero sin eliminar el archivo.
Por lo general, los sistemas tienen una tabla de archivos abierto por proceso. Estos archivos se abren a travs de un
llamado al sistema y, de esa forma, se puede operar con ellos (leer, escribir, etc.). Finalmente, el archivo es cerrado
antes que finalice la ejecucin del proceso.
Tener un archivo abierto para el sistema implica mantener una estructura que tenga por lo menos:
puntero de archivo (file pointer) para operaciones de lectura y escritura, contador de archivos abiertos
Algunos sistemas proveen sistema de acceso nico a un archivo (lock) por parte de los procesos.
A su vez, varios sistemas implementan el mapeo de archivos al espacio de usuario del proceso. De esta forma,
no es necesario realizar read y write para operar sobre el archivo, sino accederlo directamente. Esto trae el
beneficio de no hacer el llamado a sistema para operar sobre el archivo.
El nombre.
Sus atributos.
Un apuntador a otra estructura de datos donde se encuentran los atributos y las direcciones en disco.
Al abrir un archivo el S. O.:
Extrae los atributos y direcciones en disco.
Directorio nico: el sistema tiene un solo directorio con todos los archivos de todos los usuarios (ver
Figura 4.1).
Un directorio por usuario: el sistema habilita un solo directorio por cada usuario
Un rbol de directorios por usuario: el sistema permite que cada usuario tenga tantos directorios como
necesite, respetando una jerarqua general.
Independientemente del esquema de organizacin hay que decidir las estrategias que se utilizarn para optimizar el
rendimiento.
Las estrategias de administracin deben considerar:
Cundo se consigue un nuevo programa para colocar en la memoria?:
Cundo el sistema lo pide especficamente o se intenta anticiparse a las peticiones?
Los sistemas con varios niveles de almacenamiento requieren destinar recursos para administrar el movimiento de
programas y datos entre niveles
La memoria cach o memoria de alta velocidad es mucho ms rpida que el almacenamiento principal. La
memoria cach es extremadamente cara, por lo que slo se utilizan memorias cach relativamente pequeas.
La memoria cach introduce un nivel adicional de transferencia de informacin en el sistema, los programas son
traspasados de la memoria principal al cach antes de su ejecucin.
Los programas en la memoria cach se ejecutan mucho ms rpido que en la memoria principal.
Al utilizar memoria cach se espera que la sobrecarga que supone el traspaso de programas de un nivel de memoria a
otro sea mucho menor que la mejora en el rendimiento obtenida por la posibilidad de una ejecucin mucho ms rpida
en la cach.
PARTICIONES
El sistema operativo (S. O.) es el responsable de asignar memoria principal a los procesos para que puedan ser
ejecutados.
En un modelo de memoria con asignacin contigua, todo el espacio lgico de un proceso (Cdigo, Datos, Pila) ha de
estar ubicado de forma contigua en memoria principal, es decir en direcciones fsicas consecutivas
Cuando un proceso finaliza libera la memoria ocupada.
Particiones Mltiples de Memoria
En este esquema, la memoria principal se encuentra dividida de forma lgica en mltiples particiones de tamao fijo.
Cada particin es considerada como un nico hueco donde se ubicar un nico proceso.
El grado mximo de multiprogramacin (nmero mximo de procesos que pueden ejecutarse concurremente) en estos
sistemas es igual al nmero de particiones.
Un proceso nicamente puede ser ubicado en una particin, si el tamao de dicha particin es igual o mayor que el de
su espacio lgico.
El tamao de las particiones no vara con la evolucin de la memoria.
Particiones Mltiples de Memoria con Mltiples Colas
Disponemos de un conjunto de colas donde esperan los procesos para asignarles memoria.
Existen tantas colas como tamaos diferentes de particiones tenga la memoria.
Cada proceso es colocado en una cola u otra en funcin del tamao de memoria que solicita.
Las solicitudes de memoria para cada cola se satisfacen por orden de llegada (FIFO).
Los procesos no abandonan su cola de solicitud mientras no se les asigne memoria.
Cuando un proceso finaliza libera la particin de memoria que ocupaba y otro proceso de dicha cola puede ser ubicado
en ella.
FRAGMENTACIN DE MEMORIA
La fragmentacin es generada cuando durante el reemplazo de procesos quedan huecos entre dos o ms procesos de
manera no contigua y cada hueco no es capaz de soportar ningn proceso de la lista de espera.
Si un proceso requiere m palabras en memoria principal para correr y se ejecutan en una particin de n palabras, y si
n es mayor que m la diferencia entre n-m es una fragmentacin interna.
Si los programas no ocupan siempre todo el espacio disponible de memoria se denomina fragmentacin Interna.
La fragmentacin interna viene dada por todos aquellos espacios de memoria no utilizados en las particiones
ocupadas por procesos cuyo tamao es inferior al de la particin que se le ha asignado.
Fragmentacin Externa. Ocurre cuando una particin est disponible y no es usada, es decir es muy pequea para
que pueda correr un proceso.
La fragmentacin externa se puede reducir mediante la compactacin para colocar toda la memoria libre en un
solo gran bloque, pero esta slo es posible si la relocalizacin es dinmica y se hace en tiempo de ejecucin.
CONDENSACION
Unir o fusionar espacios o huecos adyacentes para formar uno ms grande.
Por ejemplo, si hay una solicitud de usuario de 5k y en la memoria hay disponibles 2 huecos contguos pero uno es
de 2k y el otro es 3k, entonces, para poder atender sa solicitud de usuario, se unen los 2 huecos que formaran
un slo hueco de 5k, por tanto ahora si cabra la solicitud en el hueco que hay disponible.
COMPACTACION
Una solucin para el problema de la fragmentacin externa es la compactacin. El objetivo consiste en desplazar
el contenido de la memoria para colocar junta toda la memoria libre en un solo bloque de gran tamao. Por ejemplo el
siguiente mapa de memoria de la Figura # 12, que puede compactarse.
Los tres huacos de 100K, 300K y 260K pueden compactarse en un hueco de 660K. La compactacin no siempre
es posible. En la figura 12 se han movido los procesos P4 y P3. Para que estos procesos puedan ejecutarse en sus
nuevas posiciones, hay que relocalizar todas las direcciones internas. Si la relocalizacin es esttica y se efecta
durante el ensamblado, o la carga, la compactacin slo es posible si la relozalizacin es dinmica y se efecta en el
momento de la ejecucin.
Puede ocurrir que los agujeros (reas libres) separados distribuidos por todo el almacenamiento principal
constituyan una cantidad importante de memoria:
Podra ser suficiente (el total global disponible) para alojar a procesos encolados en espera de memoria.
Podra no ser suficiente ningn rea libre individual (ver Figura 3.10).
La tcnica de compresin de memoria implica pasar todas las reas ocupadas del almacenamiento a uno de los
extremos de la memoria principal:
El sistema debe detener todo mientras efecta la compresin, lo que puede afectar los tiempos de respuesta.
Implica la relocalizacin (reubicacin) de los procesos que se encuentran en la memoria:
El agujero restante es tambin grande para poder alojar a un nuevo programa relativamente
grande.
Las estrategias de colocacin determinan en qu lugar del almacenamiento primario se debe colocar una pgina o
segmento entrante.
NOTA: Esto es trivial, porque una pgina o segmento entrante se puede ubicar en cualquier marco de pgina
disponible.
ADMINISTRACION DE MEMORIA VIRTUAL
Es un mtodo mediante el cual, un sistema operativo simula tener ms memoria principal que la que existe
fsicamente. Para implementar la memoria virtual se utiliza un medio de almacenamiento secundario de alta velocidad
de acceso, generalmente en disco duro de la mquina. Un sistema de memoria virtual se implementa utilizando
paginacin como mtodo de administracin de memoria bsica y algn mecanismo de intercambio (para descargar
pginas de la memoria principal hacia el disco duro y para cargar esas pginas de nuevo a la memoria).
La memoria virtual es una tcnica para proporcionar la simulacin de un espacio de memoria mucho mayor que la
memoria fsica de una mquina. Esta ilusin permite que los programas se hagan sin tener en cuenta el tamao
exacto de la memoria fsica. La ilusin de la memoria virtual esta soportada por el mecanismo de traduccin de
memoria, junto con una gran cantidad de almacenamiento rpido en disco duro. As en cualquier momento el espacio
de direcciones virtual hace un seguimiento de tal forma que una pequea parte del, est en memoria real y el resto
almacenado en el disco, y puede ser referenciado fcilmente.
ESPACIOS DE DIRECCIONES LOGICAS VS FISICAS
Espacio de direcciones lgico: conjunto de direcciones lgicas o virtuales generadas por un programa
Espacio de direcciones fsico: conjunto de direcciones fsicas correspondientes a las direcciones lgicas en un instante
dado
PAGINACION
En la gestin de memoria con intercambio, cuando haba que pasar un proceso a ejecucin, era necesario traer el
proceso entero de disco a memoria principal.
Con memoria virtual hemos dicho que no se trae todo el proceso, sino que cuando se hace referencia a una
direccin de memoria virtual cuya correspondiente memoria fsica reside en disco, se trae el contenido de disco a RAM.
Quiere esto decir que la unidad de intercambio de memoria es el byte? Si lo fuera, dara lugar a que
continuamente se estuviesen generando operaciones de E/S, lo cual sera poco eficaz. Claramente, parece ms
conveniente utilizar bloques ms grandes, para aprovechar de manera ms eficiente cada operacin de E/S.
Caractersticas de la paginacin
Para correr un programa de en pginas de tamao, se necesitan encontrar n marcos y cargar el programa.
Se establece una tabla de pginas para trasladar las direcciones lgicas a fsicas.
Es posible comenzar a ejecutar un programa, cargando solo una parte del mismo en memoria, y el resto se
cargara bajo la solicitud.
No es necesario que las paginas estn contiguas en memoria, por lo que no se necesitan procesos de
compactacin cuando existen marcos de pginas libres dispersos en la memoria.
El mecanismo de traduccin de direcciones (DAT) permite separar los conceptos de espacio de direcciones y
espacios de memoria. Todo el mecanismo es transparente al usuario.
Desventajas de la paginacin
El costo de hardware y software se incrementa, por la nueva informacin que debe manejarse y el mecanismo
de traduccin de direcciones necesario. Se consumen muchos ms recursos de memoria, tiempo en el CPU
para su implantacin.
Se deben reservar reas de memoria para las PMT de los procesos. Al no ser fijo el tamao de estas, se crea
un problema semejante al de los programas (cmo asignar un tamao ptimo sin desperdicio de memoria, u
ovearhead del procesador).
SEGMENTACIN
Es un esquema de manejo de memoria mediante el cual la estructura del programa refleja su divisin lgica,
llevndose a cabo una agrupacin lgica de la informacin en bloques de tamao variable denominados segmentos.
Cada uno de ellos tienen informacin lgica del programa: subrutina, arreglo, etc. Luego, cada espacio de direcciones
de programa consiste de una coleccin de segmentos, que generalmente reflejan la divisin lgica del programa.
Objetivos:
Modularidad de programas: Cada rutina del programa puede ser un bloque sujeto a cambios y recopilaciones,
sin afectar por ello al resto del programa.
Estructuras de datos de largo variable: Ejm. Stack, donde cada estructura tiene su propio tamao y este puede
variar.
Proteccin: Se pueden proteger los mdulos del segmento contra accesos no autorizados.
Comparticin: Dos o ms procesos pueden ser un mismo segmento, bajo reglas de proteccin; aunque no sean
propietarios de los mismos.
Enlace dinmico entre segmentos: Puede evitarse realizar todo el proceso de enlace antes de comenzar a
ejecutar un programa. Los enlaces se establecern slo cuando sea necesario.
Ventajas de la segmentacin
El esquema de segmentacin ofrece las siguientes ventajas:
Es posible compilar mdulos 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 mdulos, se hace ms fcil la modificacin de los mismos. Cambios
dentro de un mdulo no afecta al resto de los mdulos.
Es posible que los segmentos crezcan dinmicamente segn las necesidades del programa en
ejecucin.
Existe la posibilidad de definir segmentos que an no existan. As, no se asignar memoria, sino a partir
del momento que sea necesario hacer usos del segmento. Un ejemplo de esto, seran los arreglos cuya
dimensin no se conoce hasta tanto no se comienza a ejecutar el programa. En algunos casos, incluso podra
retardar la asignacin de memoria hasta el momento en el cul se referencia el arreglo u otra estructura de
datos por primera vez.
PAGINACION POR DEMANDA
Las paginas son cargadas por demanda, no se llevan pginas del almacenamiento secundario al primario
hasta que son referenciadas explcitamente por un proceso en ejecucin.
Las razones del atractivo de esta estrategia son:
v Los resultados de computabilidad, en especial el problema de parada, indican que el camino que tomar la
ejecucin de un programa no se puede predecir con exactitud.
v Garantiza que solo las pginas que necesita el proceso sean tradas al almacenamiento principal.
v La sobrecarga de proceso para decidir qu pgina traer al almacenamiento principal es mnima.
v El principal inconveniente est en los procesos que requieren acumular sus pginas una por una:
v Los tiempos de espera de pginas son considerables.
Es creciente la cantidad de almacenamiento primario afectada al proceso que espera pginas, por lo que
el producto espacio - tiempo se incrementa.
El producto espacio - tiempo indica la cantidad de almacenamiento que usa un proceso y la cantidad de tiempo que
lo usa.
La reduccin del producto espacio - tiempo de las esperas de pginas de un proceso es una meta importante de las
estrategias de administracin del almacenamiento (ver Figura 3.38).
FALLO DE PGINA
Un fallo de pgina es la secuencia de eventos que ocurren cuando un programa intenta acceder a datos (o
cdigo) que est en su espacio de direcciones, pero que no est actualmente ubicado en la RAM del sistema. El
sistema operativo debe manejar los fallos de pgina haciendo residentes en memoria los datos accedidos, permitiendo
de esta manera que el programa continue la operacin como que si el fallo de pgina nunca ocurri.
En el caso de nuestra aplicacin hipottica, el CPU primeramente presenta la direccin deseada (12374) al MMU. Sin
embargo, el MMU no tiene traduccin para esta direccin. Por tanto, interrumpe al CPU y causa que se ejecute un
software, conocido como el manejador de fallos de pgina. El manejador de fallos de pgina determina lo que se debe
hacer para resolver esta falla de pgina. El mismo puede:
Encontrar dnde reside la pgina deseada en disco y la lee (este es usualmente el caso si el fallo de pgina es por una
pgina de cdigo)
Determina que la pgina deseada ya est en RAM (pero no est asignada al proceso actual) y reconfigura el MMU para
que apunte a el
Apunta a una pgina especial que solamente contiene ceros y asigna una nueva pgina para el proceso solamente si
este intenta alguna vez escribir a la pgina especial (esto se llama una pgina de copia en escritura y es utilizada a
menudo por pginas que contienen datos inicializados a cero)
Obtener la pgina deseada desde otro lugar (lo que se discute en detalle ms adelante)
Mientras que las primeras tres acciones son relativamente sencillas, la ltima no lo es. Por eso necesitamos cubrir
algunos tpicos
SEGMENTACION PAGINADA
Paginacin y segmentacin son tcnicas diferentes, cada una de las cuales busca brindar las ventajas enunciadas
anteriormente.
Para la segmentacin se necesita que estn cargadas en memoria reas de tamaos variables. Si se requiere cargar
un segmento en memoria que antes estuvo en ella y fue removido a memoria secundaria, se necesita encontrar una
regin de la memoria lo suficientemente grande para contenerlo, lo cual no es siempre factible. En cambio recargar
una pgina implica slo encontrar un marco de pgina disponible.
A nivel de paginacin, si quiere referenciar en forma cclica n pginas, estas debern ser cargadas una a una,
generndose varias interrupciones por fallas de pginas. Bajo segmentacin, esta pgina podra conformar un slo
segmento, ocurriendo una sola interrupcin por falla de segmento. No obstante, si bajo segmentacin se desea
acceder un rea muy pequea dentro de un segmento muy grande, este deber cargarse Completamente en
memoria, desperdicindose memoria. Bajo paginacin slo se cargar la pgina que contiene los tems referenciados.
Puede hacerse una combinacin de segmentacin y paginacin para obtener las ventajas de ambas. En lugar de tratar
un segmento como una unidad contigua, ste puede dividirse en pginas. Cada segmento puede ser descrito por su
propia tabla de pginas.
Las direcciones tienen tres componentes: (s, p, d), donde la primera indica el nmero del segmento, la segunda el
nmero de la pgina dentro del segmento y la tercera el desplazamiento dentro de la pgina. Se debern usar varias
tablas:
- SMT (tabla de mapas de segmentos): Una para cada proceso. En cada entrada de la SMT se almacena la informacin
descrita bajo segmentacin pura, pero en el campo de direccin se indicara la direccin de la PMT (tabla de mapas de
pginas) que describe a las diferentes pginas de cada segmento.
- PMT (tabla de mapas de pginas): Una por segmento; cada entrada de la PMT describe una pgina de un segmento,
en la forma que se present la pagina pura.
- TBM (tabla de bloques de memoria): Para controlar asignacin de pginas por parte del sistema operativo.
- JT (tabla de Jobs): Que contiene las direcciones de comienzo de cada una de las SMT de los procesos que se ejecutan
en memoria.
: "Times New Roman"; mso-fareast-language: ES-VE;">Ventajas de la segmentacin paginada:
comparticin
Los tres componentes de la direccin y el proceso de formacin de direcciones hacen que se incremente
el costo de su implantacin. El costo es mayor que en el caso de de segmentacin pura o paginacin pura.
Se hace necesario mantener un nmero mayor de tablas en memoria, lo que implica un mayor costo de
almacenamiento.
Sigue existiendo el problema de fragmentacin interna de todas -o casi todas- las pginas finales de
cada uno de los segmentos. Bajo paginacin pura se desperdicia slo la ltima pgina asignada, mientras que bajo
segmentacin paginada el desperdicio puede ocurrir en todos los segmentos asignados.
PAGINACION SEGMENTADA
Las direcciones virtuales se componen de 3 partes: segmento, pgina y desplazamiento.
El segmento sirve para indizarse en una tabla de segmentos en la cual se encuentra la longitud y direccin de la
tabla de pginas.
La pgina sirve para indizarse en la tabla de pginas, en donde se encuentra la direccin de la pgina
correspondiente; se puede llegar a la direccin en memoria real.
Las estrategias para la administracin de sistemas de almacenamiento virtual condicionan la conducta de los sistemas
de almacenamiento virtual que operan segn esas estrategias.
Se consideran las siguientes estrategias:
Estrategias de bsqueda:
Tratan de los casos en que una pgina o segmento deben ser trados del almacenamiento secundario al primario.
Las estrategias de bsqueda por demanda esperan a que se haga referencia a una pgina o segmento por un
proceso antes de traerlos al almacenamiento primario.
Los esquemas de bsqueda anticipada intentan determinar por adelantado a qu pginas o segmentos har
referencia un proceso para traerlos al almacenamiento primario antes de ser explcitamente referenciados.
Estrategias de colocacin:
Tratan del lugar del almacenamiento primario donde se colocar una nueva pgina o segmento.
Los sistemas toman las decisiones de colocacin de una forma trivial ya que una nueva pgina puede ser colocada
dentro de cualquier marco de pgina disponible.
Estrategias de reposicin:
Tratan de la decisin de cul pgina o segmento desplazar para hacer sitio a una nueva pgina o segmento cuando el
almacenamiento primario est completamente comprometido.