2 Parcial Resumen SO Duran PDF

Title 2 Parcial Resumen SO Duran
Author Fe TR
Course Sistemas Operativos
Institution Universidad Argentina de la Empresa
Pages 23
File Size 1.1 MB
File Type PDF
Total Downloads 165
Total Views 613

Summary

Download 2 Parcial Resumen SO Duran PDF


Description

2° Parcial - Resumen ADMINISTRACION DE MEMORIA MEMORIA VIRTUAL La idea basica es que cada programa tiene su propio espacio de direcciones, el cual se divide en partes, llamadas páginas; Y cada página es un rango continuo de direcciones. Estas páginas se asocian a la memoria física, pero no todas tiene que estar en la memoria física para poder ejecutar el programa. Cuando el programa hace referencia a una parte de su espacio de direcciones: ● Si está en la memoria física, el hard realiza la asociación necesaria inmediatamente. ● Si NO está en la memoria física, el sistema operativo recibe una alerta para buscar una página faltante y volver a ejecutar la instrucción que falló.

Paginación En computadoras sin memoria virtual, la direccion fisica se coloca en el bus de memoria y hace que sea lea o escriba la palabra de memoria fisica con la misma direccion. En los sistemas de memoria virtual, los programas utilizan una tecnica llamada paginacion, donde hacen referencia a un conjunto de direcciones de memoria. Estás direcciones generadas por el programa se llaman direcciones virtuales y forman el espacio de direcciones virtuales. En memoria virtual, las direcciones no van directamente al bus de memoria, van a una MMU (Memory management unit / Unidad de administracion de memoria), que asocia las direcciones virtuales a las direcciones fisicas, como en la siguiente figura.

Por ejemplo, en una computadora que genera 16 direcciones, de 0 a 64, estás son las direcciones virtuales (de 4K de tamaño). Sin embargo, solo tiene espacio fisico para 32K de memoria fisica. Asi que, aunque se pueden escribir, no se pueden cargar completos en memoria y ejecutarse. No obstante, debe mantenerse una copia completa de la imagen basica de un programa, de 64K, en el disco para que se puedan traer sus partes a la memoria segun sea necesario. En la siguiente figura podemos ver como funciona esta asociacion:

El espacio de direcciones virtuales se divide en unidades de tamaño fijo llamados Paginas. El espacio de direcciones fisica se divide en unidades de tamaño fijo llamados Marcos. Las transferencias entre la RAM y el disco siempre son de paginas completas.

La paginación se encarga de solucionar el problema de fragmentación externa. La idea es dividir: ● La memoria física > en bloques pequeños de igual tamaño llamados Marcos, y ● Los procesos > en bloques del mismo tamaño llamado Páginas, Lo que genera que las páginas se carguen en los marcos de memoria que haya disponibles. El sistema operativo mantiene una tabla de páginas para cada proceso en la que se puede observar: ● la posición del marco de cada página del proceso, y ● la dirección de memoria donde consta un número de página y de un desplazamiento dentro de la página. Tablas de páginas La asociación de direcciones virtuales a direcciones físicas se puede resumir de la siguiente manera: La dirección virtual se divide en un número de página virtual (bits de mayor orden) y en un desplazamiento (bits de menor orden). Por ejemplo, con una dirección de 16 bits y un tamaño de página de 4 KB, los 4 bits superiores podrían especificar una de las 16 páginas virtuales y los 12 bits inferiores podrían entonces especificar el desplazamiento de bytes (0 a 4095) dentro de la página seleccionada. Proceso en tabla: 1. Se busca la entrada a una página virtual por su número de página virtual que se utiliza como índice dentro de la tabla de páginas (0010 → 2).

2. En la entrada de la tabla de páginas, se encuentra el número de marco de página que se adjunta al extremo de mayor orden del desplazamiento, reemplazando el número de página virtual, para formar una dirección física que se puede enviar a la memoria. 3. Por ende, el propósito de la tabla es asociar páginas virtuales a sus respectivos marcos.

Algoritmos de Reemplazo de Páginas Volver a Revisar las definiciones segun este LINK Son algoritmos usados para decidir qué páginas pueden ser sacadas de memoria cuando se necesita cargar una nueva y ya no hay marcos de páginas libres. 1.- Algoritmo de reemplazo óptimo

Este algoritmo tiene como finalidad retirar la página que vaya a ser referenciada más tarde, por ejemplo si hay una página A que será usada dentro de 10000 instrucciones, y una página B que será usada dentro de 2800 instrucciones, se elimina de la memoria la página A. Es fácil de describir e imposible de implementar, porque este método necesita conocimiento del futuro, el sistema operativo debería ver en cuánto tiempo será usada cada página en memoria y elegir la que está más distante. Por eso es teorico. 2.- Algoritmo LRU (Least Recently Used) Este algoritmo favorece a las páginas que fueron usadas recientemente. Funciona de la siguiente manera: Cuando una página es referenciada o modificada, fija su bit de referencia en 1. En un tiempo fijo, el sistema operativo pone en 0 los bits de referencia de todas las páginas, de modo que las páginas con su bit de referencia en 1 son las que fueron referenciadas dentro del último

intervalo de reloj. Cuando una página debe ser reemplazada, el sistema operativo divide las páginas en cuatro categorías: ● Categoría 0: no referenciada, no modificada ● Categoría 1: no referenciada, modificada ● Categoría 2: referenciada, no modificada ● Categoría 3: referenciada, modificada Siempre elimina primero las de categoría 0, por ultimo las de categoría 3, bajo la suposición de que es mejor desalojar una página modificada a la que no se ha hecho referencia en al menos un tic de reloj, en vez de una página limpia que se está usando mucho. 3.- Algoritmo NRU (Not Recently Used / No Usada Recientemente) Elimina al azar una de las páginas que fueron menos usadas recientemente, ya que estadísticamente son las que tienen menor probabilidad de ser usadas nuevamente. Es mejor eliminar una página modificada a la que no se haya hecho referencia en al menos un pulso de reloj. 4.- Algoritmo FIFO: Primero en entrar, primero en salir

En este algoritmo, el SO mantiene una lista con todas las páginas actualmente en memoria, en donde llegada más reciente está al final y la menos reciente al comienzo. En un fallo de página, se elimina la página que está en la parte frontal y la nueva página se agrega al final. 5.- Algoritmo Segunda Oportunidad (Reloj) Es una pequeña modificación que mejora el FIFO. En este caso cuando una página debe ser sacada se toma la primera en la cola, y en vez de sacarla, consulta el valor de un bit de referencia. En caso de estar fijado (en 1) se cambia el bit a 0 la página se coloca el final de la lista, y su tiempo de carga se actualiza, como si acabara de llegar. De esta forma, se le da una segunda oportunidad. Si el bit R se encuentra en 0, la página se saca de memoria. Ante un nuevo fallo de página, la segunda oportunidad está buscando una página antigua a la que no se haya hecho referencia en el último intervalo de reloj. Si se ha hecho referencia a todas las páginas, el algoritmo se convierte en un FIFO puro para poder eliminar así una página y reemplazarla. 6.- Algoritmo Clock (Reloj Mejorado) Es una mejora en el algoritmo de segunda oportunidad. Este algoritmo tiene una lista circular, de forma que al llegar al último elemento de la lista, pasa automáticamente al primero. Los elementos no se mueven al final de la cola cuando son accedidos, simplemente se cambia el bit de referencia a 0. Cuando ocurre un fallo de página, la página a la que apunta la manecilla se inspecciona. ● Si el Bit R es 0, se desaloja la página, se inserta una nueva página en el reloj y la manecilla avanza una posición. ● Si R es 1, resetea R y la manecilla avanza a la siguiente página. Este proceso se repite hasta encontrar una página donde R valga 0.

7.- Algoritmo de reemplazo: Conjunto de Trabajo

El conjunto de páginas que un proceso está utilizando en un momento dado se denomina Conjunto de Trabajo. ● Si todo el conjunto de trabajo está en la memoria, el proceso se ejecutará sin demasiados fallos de páginas hasta que pase a otra fase de ejecución. ● Si la memoria que se dispone es reducida para administrar el conjunto de trabajo, el proceso causará muchos fallos de páginas y se ejecutará con lentitud. La idea de este algoritmo es hallar una página que no esté dentro del conjunto de trabajo y desalojarla. Dado que solo las páginas que se encuentren en memoria son candidatas para el desalojo, el algoritmo ignora las páginas ausentes. Cada entrada tiene, por lo menos, dos elementos de información: el tiempo aproximado en que ocurrió el último uso de página y el bit R. Para encontrar la página a desalojar se procede de la siguiente manera: El hard activa los bits R y M. Una interrupción de reloj periódica, solicitada a cada tic, ejecuta un soft que apaga el bit R. Ante cada fallo de página, se explora la tabla de páginas buscando cual desalojar, lo que se ejecuta procesando cada entrada y analizando el bit R: si es 1, se escribe el tiempo virtual actual en el campo de último tiempo de uso. Si es 0, podría ser candidata a desalojo. 8.- Algoritmo de reemplazo: WS Clock Es el más utilizando en la práctica. Se basa en una mejora del algoritmo de reloj, aplicando la información de Conjunto de Trabajo. La estructura que se necesita es una lista circular de marcos de página. En un principio la lista está vacía. Cuando se añade la primera página, esta se añade automáticamente a la lista. A medida que se vayan agregando páginas, se van agregando a la lista formando un anillo. Cada entrada tiene el dato de tiempo del último uso – del algoritmo de conjunto de trabajo, y los bits R y M. Al igual que en el algoritmo de reloj, al ocurrir un fallo de página, se analiza la página a donde apunta la manecilla, si el bit R es 1, como fue utilizada en el último tic, por lo que se apaga el bit para analizar en el tic siguiente (a) y (b). En cambio, si es 0, se analiza el tiempo de último uso: si este es mayor que el asignado la página está limpia, lo que significa que no pertenece al conjunto de trabajo, se desaloja y coloca una nueva página (c) y (d). Si la página fue modificada, no se puede reemplazar ya que no hay copia en el disco. Para evitar una conmutación de procesos, se calendariza la escritura a disco, pero la

manecilla se adelanta y el algoritmo continúa con la siguiente página.

SISTEMAS DE ARCHIVOS ARCHIVOS (Pagina 256 de Tenenbaum) Los archivos son un mecanismo de abstracción. Proporcionan una manera de almacenar información en el disco y leerla después. Así como vimos la manera en que el sistema operativo abstrajo el concepto del procesador para crear la abstracción de un proceso y el concepto de la memoria física para ofrecer a los procesos espacios de direcciones (virtuales), podemos resolver este problema con una nueva abstracción: el archivo. En conjunto, las abstracciones de los procesos (e hilos), espacios de direcciones y archivos son los conceptos más importantes en relación con los sistemas operativos.

DEFINICIÓN DE UN ARCHIVO Un archivo es una unidades lógicas de información creadas por los procesos. En general, un disco contiene miles o millones. Es un tipo de espacio de direcciones, pero que se utiliza para modelar el disco en vez de modelar la RAM. La información que se almacena en los archivos debe ser persistente, es decir, no debe ser afectada por la creación o finalización de los procesos. Un archivo debe desaparecer cuando el usuario lo remueve de manera explícita. La parte del SO que trata los archivos se conoce como Sistemas de Archivos. Desde el punto de vista del usuario, el aspecto más importante de un sistema de archivos es su apariencia: es decir, la manera en que se estructuran, cómo se denominan, abren, utilizan, protegen, implementan y administran son tópicos fundamentales en el diseño de los SO. Para poder darle un nombre a un archivo, generalmente se tiene en cuenta el tamaño permitido por el SO que lo rige (o sea, el sistema de archivo) y la extensión del mismo, que se indica con un formato “.xxx”, lo que nos indica la naturaleza de ese archivo.

ESTRUCTURA DE ARCHIVOS Representación de archivos en el SO, las 3 más comunes son:

a) Secuencia de bit sin estructurar Aqui un archivo es una secuencia de bytes sin estructura. Al SO no le importa que es lo que haya dentro de sus archivos, es flexible, todo lo que importa - y lo que ve – son bytes. Cualquier significado debe ser impuesto por el usuario. Los programas de usuario pueden poner cualquier cosa que quieren en sus archivos y denominarlos de la forma que les resulten más práctico. Acá, el SO no ayuda, ni estorba. b) Secuencia de registros de longitud fija

En este modelo un archivo es una secuencia de registros de longitud fija, cada uno con cierta estructura interna. Y el concepto de como se manejan las operaciones de lectura y escritura, es que el primero devuelve un registro y el segundo sobrescribe o agrega un registro. c) Arbol de Registros En el tercer tipo, el archivo consiste en un arbol de registros, donde no todos deben tener el mismo tamaño; y donde cada uno de estos archivos tiene un campo llave en una posición fija del registro. El árbol de orden con base en el campo llave para permitir una búsqueda rápida por una llave específica. Acá, el truco no es buscar el siguiente registro, aunque si bien es posible, lo que se busca es una llave específica, sin preocuparnos por su exacta ubicación. Al agregar nuevos registros al árbol, donde es el SO y no el usuario, quien decide donde colocarlos.

TIPOS DE ARCHIVOS Cada SO debe manejar, al menos, un tipo de archivo regular –su propio archivo ejecutable- y algunos más. Hay 4 tipos de archivos: Directorios Son un tipo de archivo para mantener la estructura de archivos

Archivo especiales de caracteres Se relacionan con la entrada/salida y se utilizan para modelar dipositivos de E/S en serie, como impresoras, redes, etc.

Archivo especiales de bloque Se utilizan para modelar discos.

Archivos Regulares Son los que contienen información del usuario, y son de dos tipos: 1. ASCII: consisten en líneas de texto, de diferente longitud, que pueden terminar con

○ un carácter de retorno, ○ un avance de línea; ó ○ una combinacion de ambos caracteres. Su ventaja es que se pueden mostrar o imprimir tal cual se observan, facilitando el trabajo ante la necesidad de edición mediante un programa editor de texto, al mismo tiempo facilita la conexión de salida de un programa con el inicio de otro, como las canalizaciones de Shell. 2. Binario: Es solo una secuencia de bytes, que al listar este tipo de archivos mediante una impresora, aparece un listado de caracteres incompresibles para la lectura. Compuestos por 5 secciones: ○ Encabezado i. numero magico (identifica al archivo como ejecutable) ii. tamaño del texto iii. tamaño de los datos iv. tamaño del BSS v. tamaño de la tabla de simbolos vi. puntos de entrada (direccion en la empieza la ejecucion) vii. banderas ○ Texto (se cargan en memoria y se reubican usando los bits de reubicacion) ○ Datos (se cargan en memoria y se reubican usando los bits de reubicacion) ○ Bits de reubicacion ○ Tabla de simbolos (se utiliza para depurar)

TIPOS DE ACCESO De acceso secuencial

Proceso que se ofrecía en los primeros SO, donde solo se podía leer registros de un archivo en orden, empezando siempre desde el principio, un registro tras otro, no se podía saltear ni leerlos fuera de orden, pero se podia hacer las veces que fuera necesario por su función de rebobinar. Este sistema se aplicaba a las cintas magnéticas. De acceso aleatorio

Metodo que se desarrollo con la aparicion del almacenaje en disco, que permite leer archivos conformados por byteso registros fuera de orden, accediendo a los registros por llave en vez de posición. Este sistema se aplica en los sistemas de base de datos.

OPERACIONES DE ARCHIVOS Los archivos existen para almacenar información y permitir que se recupere posteriormente. A continuación se muestra las llamadas al sistema más comunes: 1. Create: El archivo se crea sin datos. Solo se establece la llegada del archivo y sus atributos. 2. Delete: llamada para eliminar archivos que ya no se necesitan, para liberar espacio en el disco. 3. Open: Antes de usar un archivo, un proceso debe abrirlo. Esta llamada permite que el sistema lleve los atributos y la lista de direcciones de disco a la memoria principal para tener un acceso rápido a estos datos en llamadas posteriores.

4. Close: Cuando terminan todos los accesos, los atributos y las direcciones de disco ya no son necesarias, por lo que el archivo se debe cerrar para liberar espacio en la tabla interna. 5. Read: Los datos se leen del archivo. El llamador debe especificar cuántos datos se necesitan y también debe proporcionar un búfer para colocarlos. 6. Write: Los datos se escriben en el archivo otra vez, por lo general en la posición actual. 7. Si la posición actual es al final del archivo, aumenta su tamaño. Si la posición actual está 8. en medio del archivo, los datos existentes se sobrescriben y se pierden para siempre. 9. Append: Esta llamada es una forma restringida de write. Sólo puede agregar datos al final 10. del archivo. 11. Seek: Método para especificar de dónde se van a tomar los datos en archivos de acceso aleatorio. 12. Get attributes: llamada para leer los atributos de un archivo, para procesos que lo necesitan para realizar su trabajo. 13. Set attributes: Llamada para que el usuario modifique atributos después de haber creado el archivo. 14. Rename: llamada para que un usuario pueda cambiar el nombre de un archivo existente.

ATRIBUTOS DE LOS ARCHIVOS Son los elementos adicionales que nos permiten asociar otra información: ● la fecha y hora de creación o modificación, y ● el tamaño. ● etc. Algunos de los atributos más comunes son:

EXTENSIONES MAS COMUNES DE LOS ARCHIVOS

Organización en Directorios Niveles, camino, el nivel ● y ●● Directorio raíz, actual y Home Operaciones con directorios y en directorios

ADMINISTRACION DEL SISTEMA DE ARCHIVOS ● Administración de tamaño del bloque ● Administración del espacio libre ● Consistencia del sistema de archivo ● Desfragmentación Los archivos se almacenan en disco, y existen 2 estrategias para almacenar un archivo de N bytes: ● se asignan n bytes consecutivos de espacio en disco, o ● el archivo se divide en varios bloques (no necesariamente) contiguos. Como hemos visto, almacenar un archivo como una secuencia contigua de bytes tiene el problema obvio de que si un archivo crece, probablemente tendrá que moverse en el disco. El mismo problema se aplica a los segmentos en memoria, excepto que la operación de mover un segmento en memoria es rápida, en comparación con la operación de mover un archivo de una posición en el disco a otra. Por esta razón, casi todos los sistemas de archivos dividen los archivos en bloques de tamaño fijo que no necesitan ser adyacentes.

Tamaño de bloque La organización en bloques de tamaño fijo es una de las opciones para la administración de espacios en discos. Dada la forma en que están organizados los discos, el sector, la pista y el cilindro son candidatos obvios para la unidad de asignación. ● ●

Bloques de tamaño grande significa que cada archivo ocupa un cilindro completo, y que los pequeños archivos desperdician una gran cantidad de espacio en disco. Bloque de tamaño pequeño significa que la mayoría de los archivos abarcarán varios bloques y por ende, necesitan varias búsquedas y retrasos rotacionales para leerlos, reduciendo el rendimiento.

Por ende, si la unidad de asignación es demasiado grande, desperdiciamos espacio; si es demasiado pequeña, desperdiciamos tiempo.

Registro de Bloques Libres Una vez elegido el tamaño del bloque, la pregunta es ¿cómo llevar registro de los bloques libres?. Hay dos métodos: Lista enlazada de bloques de disco Uno es uilizar una lista enlazada de bloques de disco, donde cada bloque contiene tantos números de bloques de disco libres como pueda. Con esta técnica solo se tendría que mantener un bloque de apuntadores en la memoria ppal. Al crear un archivo, los bloques necesarios se toman del bloque de apuntadores. Asimismo, c...


Similar Free PDFs