Subsistemas de Memoria

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 9

Subsistema de memoria

Sin abstracción de memoria


Su modelo de programación es simplemente la memoria física, no es posible
tener dos programas ejecutándose a la vez ya que si el primer programa
escribe un valor en la posición 2000 (por ej), este borraría cualquier valor que el
segundo programa tenia almacenado en esa posición.
Solo se puede ejecutar un proceso a la vez

Una abstracción de memoria


Espacio de direcciones: Es el conjunto de direcciones que puede utilizar un
proceso para direccionar la memoria. El espacio de direcciones crea un tipo de
memoria abstracta para que los programas vivan allí. (El conjunto de dominios
.com es un espacio de direcciones)
Intercambio: Es una estrategia para lidiar con la sobrecarga de memoria y
consiste en llevar cada proceso completo a memoria, ejecutarlo durante cierto
tiempo y después regresarlo al disco.
Lista enlazada: Es una manera de llevar el registro de la memoria que consiste
en una lista enlazada de segmentos de memoria asignados y libres, en donde
un segmento contiene un proceso o es un hueco vacio entre dos procesos.
 First fit (primer ajuste): El administrador de memoria explora la lista de
segmentos hasta en contrar un hueco. Luego, ese hueco se divide en
dos partes, una para el proceso y otra para la memoria sin utilizar
 Next fit (siguiente ajuste): Funciona de la misma manera que el primer
ajuste, excepto porque lleva un registro de dónde se encuentra cada vez
que descubre un hueco adecuado. La siguiente vez que es llamado para
buscar un hueco, empieza a buscar en la lista desde el lugar en el que
se quedó la última vez, en vez de empezar siempre desde el principio.
 Best fit (mejor ajuste): Este algoritmo busca en toda la lista, de principio
a fin y toma el hueco más pequeño que sea adecuado. Trata de buscar
un hueco que esté cerca del tamaño actual necesario, que coincida
mejor con la solicitud y los huecos disponibles.
 Worst fit (peor ajuste): Toma siempre el hueco más grande disponible,
de manera que el nuevo hueco sea lo bastante grande como para ser
útil
 Quick fit (ajuste rápido): Mantiene las listas separadas para los tamaños
mas comunes solicitados
Memoria virtual
Paginación:
Tablas de página: Su función es asociar paginas virtuales a los marcos de
pagina
Tablas de páginas para memorias extensas: Se utilizan dos métodos:
 Tablas de paginas multinivel: Evita mantener el memoria a las paginas
y en especial a aquellas que no se necesitan
 Tablas de paginas invertidas: Se utilizan en espacios de direcciones
virtuales paginados de 64 bits y su diseño consiste en que hay una
entrada por cada marco de pagina en la memoria real, en vez de tener
una entrada por pagina de espacio de direcciones virtuales.

Algoritmos de reemplazo de paginas

 Optimo: El algoritmo óptimo de reemplazo de páginas establece que la


página con la etiqueta más alta debe eliminarse. Si una página no se va
a utilizar durante 8 millones de instrucciones y otra no se va a utilizar
durante 6 millones de instrucciones, al eliminar la primera se enviará el
fallo de página que la obtendrá de vuelta lo más lejos posible en el futuro
 No usadas recientemente: El algoritmo NRU (Not Recently Used, No
usada recientemente) elimina una página al azar de la clase de menor
numeración que no esté vacía. En este algoritmo está implícita la idea
de que es mejor eliminar una página modificada a la que no se haya
hecho referencia en al menos un pulso de reloj (por lo general, unos 20
mseg) que una página limpia de uso frecuente.
 Primera en entrar, primera en salir (FIFO): El sistema operativo
mantiene una lista de todas las páginas actualmente en memoria, en
donde la llegada más reciente está en la parte final y la menos reciente
en la parte del incio. En un fallo de página, se elimina la página que está
en la parte del inicio y la nueva página se agrega a la parte final de la
lista.
 Segunda oportunidad: Una modificación simple al algoritmo FIFO que
evita el problema de descartar una página de uso frecuente es
inspeccionar el bit R de la página más antigua. Si es 0, la página es
antigua y no se ha utilizado, por lo que se sustituye de inmediato. Si el
bit R es 1, el bit se borra, la página se pone al final de la lista de páginas
y su tiempo de carga se actualiza, como si acabara de llegar a la
memoria. Después la búsqueda continúa.
 Reloj: Método que consiste en mantener todos los marcos de página en
una lista circular en forma de reloj, en donde la página que apunta la
manecilla se inspecciona. Si el bit R es 0, la página se desaloja, se
inserta la nueva página en el reloj en su lugar y la manecilla se avanza
una posición. Si R es 1, se borra y la manecilla se avanza a la siguiente
página. Este proceso se repite hasta encontrar una página con R=0
 Menos usadas recientemente (LRU): Método que consiste en que
cuando ocurra un fallo de página, hay que descartar la página que no se
haya utilizado durante la mayor longitud de tiempo.

Subsistema de archivo

Archivos
 Nomenclatura: Es la manera en que los archivos son denominados.
Pueden ser cadenas de una a ocho letras y otros archivos admiten
nombres hasta de 255 caracteres. Algunos sistemas distinguen
mayúsculas y minúsculas
 Estructura: Se dividen en tres tipos:
- Secuencia de bytes sin estructura: El sistema operativo no sabe
que hay en el archivo, todo lo que ve son bytes. Es un tipo de
estructura muy flexible
- Secuencia de registros de longitud fija: La operación de lectura
devuelve un registro y la operación escritura agrega un registro
- Arbol de registros: Cada registro contiene un campo “llave” en una
posición fija dentro del registro. El árbol se ordena con base en el
campo llave para permitir una búsqueda rápida por una llave
especifica
 Tipos de archivos:
- Archivos regulares: Contienen información de usuario. Son
archivos ASCII , que contienen líneas de texto. Tambien pueden
ser archivos binarios
- Directorios: Sistemas de archivos que mantienen la estructura
del sistema de archivos
- Archivos especiales de caracteres: Se relacionan con la
entrada y salida y se utilizan para modelar dispositivos E/S
- Archivos especiales de bloques: Se utilizan para modelar
discos
 Modelos de acceso:
- Acceso secuencial: En estos sistemas, un proceso podía leer
todos los bytes o registros en un archivo en orden, pero no podía
saltar algunos y leerlos fuera de orden. Sin embargo, los archivos
secuenciales podían rebobinarse para poder leerlos todas las
veces que fuera necesario.
- Acceso aleatorio: Son archivos que pueden leerse en cualquier
orden
 Atributos: Son, por ej, la fecha de la ultima modificación del archivo y su
tamaño.

 Operaciones con archivos


1. Create. El archivo se crea sin datos. El propósito de la llamada es
anunciar la llegada del archivo y establecer algunos de sus atributos.
2. Delete. Cuando el archivo ya no se necesita, se tiene que eliminar
para liberar espacio en el disco. Siempre hay una llamada al sistema
para este propósito.
3. Open. Antes de usar un archivo, un proceso debe abrirlo. El propósito
de la llamada a open es permitir que el sistema lleve los atributos y la
lista de direcciones de disco a 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.
6. Write. Los datos se escriben en el archivo otra vez, por lo general en
la posición actual.
7. Append. Esta llamada es una forma restringida de write. Sólo puede
agregar datos al final del archivo
8. Seek. Para los archivos de acceso aleatorio, se necesita un método
para especificar de dónde se van a tomar los datos. Una aproximación
común es una llamada al sistema de nombre seek, la cual reposiciona el
apuntador del archivo en una posición específica del archivo. Una vez
que se completa esta llamada, se pueden leer o escribir datos en esa
posición.
9. Get attributes. A menudo, los procesos necesitan leer los atributos
de un archivo para realizar su trabajo.
10. Set attributes. Algunos de los atributos puede establecerlos el
usuario y se pueden modificar después de haber creado el archivo. Esta
llamada al sistema hace eso posible.
11. Rename. Con frecuencia ocurre que un usuario necesita cambiar el
nombre de un archivo existente. Esta llamada al sistema lo hace posible.
No siempre es estrictamente necesaria, debido a que el archivo por lo
general se puede copiar en un nuevo archivo con el nuevo nombre,
eliminando después el archivo anterior.
 Organización de directorios
- Directorio raíz: Directorio que contiene todos los archivos
- Directorio actual: Un usuario puede designar un directorio como
el directorio de trabajo actual, en cuyo caso todos los nombres de
las rutas que no empiecen en el directorio raíz se toman en forma
relativa al directorio de trabajo.
- Sistemas de directorios jerárquicos: Con este esquema, puede
haber tantos directorios como se necesite para agrupar los
archivos en formas naturales. Además, si varios usuarios
comparten un servidor de archivos común, cada usuario puede
tener un directorio raíz privado para su propia jerarquía.
- Nombres de rutas: Se utiliza el método de nombre de ruta
absoluto, que consiste en la ruta desde el directorio raíz al
archivo. También se utiliza el directorio actual
 Operaciones con directorios:
1. Create. Se crea un directorio. Está vacío, excepto por punto y
puntopunto, que el sistema coloca ahí de manera automática (o en unos
cuantos casos lo hace el programa mkdir).
2. Delete. Se elimina un directorio. Se puede eliminar sólo un directorio
vacío. Un directorio que sólo contiene a punto y puntopunto se considera
vacío, ya que por lo general éstos no se pueden eliminar.
3. Opendir. Los directorios se pueden leer.
4. Closedir. Cuando se ha leído un directorio, se debe cerrar para
liberar espacio en la tabla interna.
5. Readdir. Esta llamada devuelve la siguiente entrada en un directorio
abierto.
6. Rename. En muchos aspectos, los directorios son sólo como
archivos y se les puede cambiar le nombre de la misma forma que a los
archivos.
7. Link. La vinculación (ligado) es una técnica que permite a un archivo
aparecer en más de un directorio. Esta llamada al sistema especifica un
archivo existente y el nombre de una ruta, creando un vínculo desde el
archivo existente hasta el nombre especificado por la ruta.
8. Unlink. Se elimina una entrada de directorio. Si el archivo que se va
a desvincular sólo está presente en un directorio (el caso normal), se
quita del sistema de archivos. Si está presente en varios directorios, se
elimina sólo el nombre de ruta especificado.

Implementación de sistemas de archivos

Distribución del sistema de archivos: La mayoría de los discos se pueden


dividir en una o más particiones, con sistemas de archivos independientes en
cada partición. El sector 0 del disco se conoce como el MBR (Master Boot
Record; Registro maestro de arranque) y se utiliza para arrancar la
computadora. El final del MBR contiene la tabla de particiones, la cual
proporciona las direcciones de inicio y fin de cada partición. Una de las
particiones en la tabla se marca como activa. Cuando se arranca la
computadora, el BIOS lee y ejecuta el MBR. Lo primero que hace el programa
MBR es localizar la partición activa, leer su primer bloque, conocido como
bloque de arranque, y ejecutarlo. El programa en el bloque de arranque carga
el sistema operativo contenido en esa partición
Implementación de archivos:
 Asignación contigua: Almacena cada archivo como una serie contigua
de bloques de disco. Cada archivo inicia al principio de un bloque nuevo,
por lo que pueden quedar desperdicios de bloques.
Ventajas: Implementacion sencilla
Desventajas: Se debe conocer el tamaño maximo del archivoal crearlo y
produce fragmentacion
 Asignación de lista enlazada: Con este método se puede utilizar cada
bloque de disco y no se pierde espacio debido a la fragmentación del
disco
 Asignacion de lista enlazada utilizando una tabla de memoria:
Ambas desventajas de la asignación de lista enlazada se pueden
eliminar si tomamos la palabra del apuntador de cada bloque de disco y
la colocamos en una tabla en memoria. Utilizando esta organización, el
bloque completo está disponible para los datos. Además, el acceso
aleatorio es mucho más sencillo.
 Nodos-i: Lista los atributos y las direcciones de disco de los bloques de
archivos. Necesita estar en memoria sólo cuando está abierto el archivo
correspondiente
Administración y optimización del sistema de archivos

 Consistencia del sistema de archivos: Se pueden realizar dos tipos


de verificaciones de consistencia:
- Bloques: El programa crea dos tablas que contienen un contador
que comienza en cero. Los contadores de la primera tabla
cuentan cuantas veces esta presente cada bloque en un archivo y
los de la segunda registran con que frecuencia esta cada bloque
en una lista de bloques libres. A medida que se lee cada número
de bloque, se incrementa su contador en la primera tabla.
Después el programa examina la lista de bloques libres para
encontrar todos los bloques que no estén en uso. Cada
ocurrencia de un bloque en la lista de bloques libres hace que se
incremente su contador en la segunda tabla.. Si el sistema de
archivos es consistente, cada bloque tendrá un 1 en la primera
tabla o en la segunda
- Archivos: Utiliza también una tabla de contadores, pero éstos
son por archivo.Inspecciona cada directorio en el sistema de
archivos. Para cada nodo-i en cada directorio, incrementa un
contador para la cuenta de uso de ese archivo. Cuando el
verificador termina, tiene una lista que indica cuántos directorios
contienen cada archivo. Después compara estos números con las
cuentas de vínculos. Estas cuentas empiezan en 1 cuando se
crea un archivo y se incrementan cada vez que se crea un vínculo
(duro) al archivo. En un sistema de archivos consistentes, ambas
cuentas concordarán.

 Desfragmentación de discos: Al crearse y eliminarse archivos se


puede generar una fragmentación del disco con archivos y huecos
esparcidos por todas partes. Entonces, cuando se crea un nuevo
archivo, los bloques que se utilizan para este están esparcidos lo cual
genera un rendimiento pobre. La desfragmentación funciona mejor en
los sistemas de archivos que tienen una buena cantidad de espacio
libre. Este espacio permite al programa de desfragmentación seleccionar
archivos fragmentados y copiar todos sus bloques al espacio libre. Esta
acción libera un bloque contiguo de espacio cerca del inicio de la
partición en la que se pueden colocar los archivos originales u otros en
forma contigua.
 Administración de tamaño del bloque: Existen dos estrategias
generales para almacenar un archivo:
- Asignar “n” bytes consecutivos de espacio en el disco: si el archio
crece, muy probable que deba desplazarse en el disco, lo que
puede afectar serialmente al rendimiento
- Dividir el archivo en cierto numero de bloques (no
necesariamente) adyacentes
 Administración del espacio libre: Mapa de bits, lista enlazada, por
agrupación o asignación del espacio de disco (FIFO;SSTF;SCAN;SCAN
de n pasos;C-SCAN;C-LOCK;eschebanc)

Subsistema de gestión de entrada salida

Discos
Hardware de discos: (discos magneticos,cd rom, cd grabable, dvd
- Discos Magnéticos: Operaciones de lectura y escritura son igual de
rapidas. Son cilindros que tienen tantas pistas como cabezas y estas
pistas se dividen en sectores. Los discos antiguos producen un flujo de
bits simple y el controlador realiza la mayor parte del trabajo. En otros
discos la unidad permite al controlador emitir un conjunto de comandos
de nivel superior
- CD-ROMs: Consisten en codificar cada byte en un símbolo de 14 bits
- CD-Grabable: Estos dispositivos seguían siendo distintos de los discos
magnéticos, porque una vez que se escribía información en ellos no
podía borrarse. Sin embargo, rápidamente encontraron un nicho como
medio de respaldo para discos duros grandes y también permitieron que
individuos o empresas que iniciaban operaciones fabricaran sus propios
CD-ROMs de distribución limitada, o crear CDs maestros para
entregarlos a plantas de duplicación.
- DVD:
Formato del disco: Es una serie de pistas concéntricas, cada una de las
cuales contiene cierto número de sectores, con huecos entre los sectores. El
preámbulo empieza con cierto patrón de bits que permite al hardware
reconocer el inicio del sector. También contiene los números de cilindro y
sector, junto con cierta información adicional. El tamaño de la porción de datos
se determina con base en el programa de formato de bajo nivel.
Tiempos de disco:
Algoritmos de programación del brazo del disco:
 First-Come, First-Served: El controlador del disco acepta peticiones
una a la vez y las lleva a cabo en ese orden
 Shortest Seek First: Metodo que maneja la meticion mas cercana
primero, para minimizar el tiempo de búsqueda
 Elevator: Requiere que el software mantenga 1 bit: el bit de dirección
actual, ARRIBA o ABAJO. Cuando termina una petición, el software
controlador del disco o del elevador comprueba el bit. Si es ARRIBA, el
brazo o se desplaza a la siguiente petición pendiente de mayor
prioridad. Si no hay peticiones pendientes en posiciones mayores, el bit
de dirección se invierte. Cuando el bit se establece en ABAJO, el
movimiento es a la siguiente posición de petición con menor prioridad, si
la hay.

También podría gustarte