Sunteți pe pagina 1din 41

FUNDAMENTOS

DE SISTEMAS
OPERACIONALES
3

















A mi entender, si el Supremo Creador hubiese querido que
fusemos pesimistas habra pintado la Tierra de negro y no de
este verde vivo, el uniforme de la alegra y la felicidad.

Janet Graham


1. ADMINISTRACION DE LA MEMORIA


Introduccin


El presente material bibliogrfico aporta al estudiante un texto gua sobre la asignatura de
sistemas operacionales, adems del marco terico se incluyen en cada captulo una lista de
preguntas y ejercicios que deben ser resueltas de acuerdo a las explicaciones de la clase y
principalmente sobre la base de lecturas acerca del tema relacionado.

En esta metodologa de enseanza el estudiante aprende resolviendo preguntas, elaborando
ejercicios, realizando prcticas de laboratorio y lecturas complementarias de los temas, estas
actividades constituyen el fundamento del presente material para facilitar el proceso de
aprendizaje.

Los sistemas operacionales han estado en constante evolucin y seguirn adaptndose
paralelamente al desarrollo del hardware; es importante resaltar como del S.O. (Sistema
Operativo ) basado en la multiprogramacin, se ha avanzado a un sistema basado en redes de
microcomputadores, redes de empresariales y a la red mundial de Internet; el sistema operativo
contina su funcin fundamental de administrar los recursos del sistema, adems se ha
expandido para comunicarse con otras mquinas a travs de las redes e incluye servicios de red
como servidores web, servidores FTP, servicios de TELNET, Servidores de correo
electrnico, servidores de resolucin de nombres en internet (DNS), servidores de archivos de
red (NFS), etc. En ambientes de redes la seguridad se convierte en el punto neurlgico, es as
como, un S.O moderno debe incluir las herramientas que le permitan al usuario y a las
empresas manejar sus sistemas de informacin y sus redes con absoluta confiabilidad.

En la primera parte de la asignatura ( Fundamentos de Sistemas Operacionales I) se estudiaron
los conceptos bsicos de un S.O. el cual inclua temas como el planificador, las unidades de
Entrada/Salida y aspectos de la sincronizacin de procesos; la segunda parte ( Fundamentos de
sistemas Operacionales II) que corresponde al material de este libro gua, se incluye los temas
de la memoria, sistemas de archivo y seguridad.


La prcticas de laboratorio y talleres comprenden un estudio de las caractersticas de un S.O.
moderno (Ej; Windows NT), se analiza la estructura, el funcionamiento de los procesos, los
archivos, la memoria, el procesador y su relacin con las redes de rea local e Internet y la
seguridad. Esta parte esta soportada por el software ( MeiWeb ) material educativo
informtico para la asignatura de sistemas operacionales. Este software ha sido desarrollado en
la escuela de Ingeniera de sistemas e Informtica, con plataforma Linux; es un software
multimedia orientado a la Web que le permite al estudiante examinar contenidos y


simulaciones de los temas de la asignatura, estudiar las guas de las practicas de laboratorio o
exposiciones, interactuar con el profesor o con otros estudiantes utilizando el chat o el correo
electrnico propio para la clase, realizar auto evaluaciones, examinar la bibliografa y conectarse
con los sitios de internet recomendados; para el profesor es una herramienta especial que le
permite realizar evaluaciones y controlar el grupo por medio de sus listas de clase, estadsticas
de notas, organizacin de grupos etc.



1.1 La mquina de Von Neumman
1.1.1 Estructura interna de la mquina de Von
Neumman







1.1.2 Mquina De Von Neumann Vs Mquina
Harvard


Entre los aos de 1945-1950 Von Neumann defini los componentes bsicos de un
computador:



Unidad de
Proceso :
Procesa las instrucciones ejecutando un ciclo de mquina que se repite
indefinidamente desde el momento en que se enciende la mquina hasta
cuando se apaga. La CPU esta compuesta fundamentalmente por la
ALU, el decodificador y los registros.
ALU Contiene los circuitos para realizar las
operaciones aritmticas y lgicas del
programa.
Decodificador : Interpreta los cdigos de las instrucciones
para que sean ejecutados por los circuitos
hardware de la mquina.
Registros : Se clasifican en registros especiales y de
propsito general:
Especiales :
PC. Contador de programa.
Estado. Contiene las banderas o
indicadores de ciertos estados de la CPU.
Acumulador. rea de trabajo para las
operaciones.
Base. Posicin inicial de cargue de un
proceso en memoria.
Segmento. Apunta al comienzo de un
segmento.
Indice. Contiene el ndice de los
vectores y matrices.
Sp . Apuntador a la pila del
sistema.
Generales : Para propsitos especiales
del programado

Memoria
RAM :
(Random Access Memory), La memoria ram es conjunto de celdas
electrnicas que pueden almacenar y recuperar informacin en forma
aleatoria en unidades de palabra (1byte) a velocidades medidas en el
orden de los nanosegundos (ns).
Las operaciones bsicas sobre una RAM son: escritura y lectura de
palabras en forma aleatoria, es decir, el tiempo de acceso aleatorio a una
celda RAM es independiente de su posicin.
Unidad de
Control
Fundamentalmente es un secuenciador (unidad electrnica que en forma
secuencial transforma las instrucciones en impulsos elctricos.)
Puertos de
E/S
Interfaz electrnica que permiten el intercambio de datos de las
unidades de E/S con la cpu, y la memoria RAM.
Unidades de
E/S :
Todos los dispositivos externos que se le pueden conectar a un
computador: discos, mouse, impresoras, teclados, pantallas, CD, etc.



NOTA: En la arquitectura Von Neumann los datos y las instrucciones del proceso comparten
un mismo BUS; en la arquitectura Harvard los datos e instrucciones viajan por buses
separados.

Ejercicios:
Enuncie algunos Sistemas Operativos comerciales que conozca. Entre estos
Sistemas Operativos, cul aconsejara se debe implementar en una empresa,
mencionando los aspectos fundamentales para su seleccin.
Represente esquemticamente la arquitectura de un computador, especificando
los componentes de cada mdulo y su funcionalidad, e identifique las diferencias
entre microcomputador, microcontrolador y microprocesador.
Identifique los diferentes tipos de memoria, su uso y realice un esquema de
clasificacin teniendo en cuenta la capacidad, velocidad y el costo.
Cmo considera que se realiza la ejecucin de una instruccin de un programa
cualquiera en una mquina con arquitectura Von Neumann.
Defina y elabore el diagrama de las etapas de un proceso desde el momento en
que se encuentra en cdigo fuente en el disco hasta que se convierte en cdigo
ejecutable en la memoria principal. Comenten sobre los diferentes Enlaces de
Direcciones que conozca.




1.2 Ciclo de la instruccin

Despus de realizarse el proceso de arranque de un computador ( encendido, verificacin del
hardware), el PC es colocado apuntando a la direccin cero (0) de memoria y comienza la
ejecucin de instrucciones de una forma secuencial controlada automticamente por la
mquina mediante un ciclo que comprende las siguientes etapas:


1. Lectura o bsqueda de la instruccin en memoria.
2. Cargue del registro de instrucciones.
3. Decodificacin.
4. Ejecucin y bsqueda de parmetros.
5. Almacenamiento de parmetros.
6. Incremento del pc.


El tiempo de ciclo de la instruccin depende de la velocidad de los pulsos del reloj mas los
tiempos de acceso a memoria para la bsqueda y almacenamiento de parmetros, este tiempo
est dado en el orden de los nanosegundos. Algunos microprocesadores y microcontroladores
manejan tiempos por ejemplo: 200ns, 50ns, 10ns etc.

Una instruccin puede o no, poseer parmetros, lo cual implica que adicional al tiempo de
bsqueda de la instruccin se debe tener en cuenta los tiempos para la bsqueda de los
parmetros. El tiempo de acceso a memoria se mide en nanosegundos y es mayor que el
tiempo de CPU.

Ejemplo: Un procesador cuyo reloj trabaja a una frecuencia de 4 MHz y cada instruccin
consume 4 pulsos de reloj, estara en capacidad de procesar 1.000.000 de instrucciones por
segundo, es decir cada instruccin se gastara 1 s. Si la velocidad del reloj se aumenta a 20
MHz, se incrementara el nmero de instrucciones por segundo a 5.000.000, es decir, el tiempo
por instruccin se reduce a 200 ns. Las supercomputadoras modernas de varios procesadores
en paralelo estn en capacidad de procesar hasta 30 billones de instrucciones por segundo ( 30
theraflops). Calcule cuanto tiempo gasta una instruccin?

1.3 Direccionamiento a memoria RAM

Consiste en una serie de tcnicas para acceder la memoria segn las necesidades de
programacin y los recursos hardware disponibles.


Usos

Optimizar la programacin assembler.
Adaptarse al tamao reducido de las instrucciones para un hardware especifico.
Direccionar una cantidad de memoria mayor que la permitida por los registros.
Facilitar los mecanismos de proteccin.

NOTA: La unidad de direccionamiento de la memoria es la palabra, una palabra tiene una
longitud mnima de un byte y mxima de n bytes. Generalmente 1 n 4.


Los tipos de direccionamiento a memoria los podemos clasificar en:

Implcito
Absoluto
Inmediato
Indirecto
Indexado
Relativo a pc
Relativo a base


Relativo a pgina
Relativo a segmento



Formato general

cdigo de operacin modo campo de direccin


1.3.1 Direccionamiento implcito

La ubicacin del operando en la memoria se define implcitamente por la mquina.
Ejemplo:

CLR Limpia el acumulador
DEC Decrementa el acumulador
SUM B Sumar B al acumulador y el resultado guardarlo en el acumulador.



1.3.2 Direccionamiento directo o absoluto


La direccin de memoria esta dada por la direccin del campo de direccin de la instruccin,
la cantidad de memoria a direccionar depende directamente de la longitud de este campo.
Ejemplo: Si el campo tiene una longitud de 16 bits podra direccionar en forma directa o
absoluta 64K de memoria.


DE=(CD)


Ejemplo: LD datos
Carga en el acumulador el contenido de la variable datos, datos, representa una direccin de
memoria.


1.3.3 Direccionamiento inmediato




No es necesario accesar la memoria, el operando se encuentra en la misma instruccin y
comnmente se le denomina una literal. El campo CD no representa una direccin, es un valor
o literal que va a ser cargado en algn registro.

DE : El mismo valor del campo CD; es decir, el campo CD no representa una direccin, es
un valor o literal que va a ser cargado en algn registro.

Ejemplo: LD 10 Carga el acumulador con el valor 10.


1.3.4 Direccionamiento indirecto


En este caso CD especifica la direccin de un puntero que a su vez apunta a la direccin
efectiva de memoria. Se usa para ampliar la capacidad de direccionamiento. Por ejemplo si se
dispone de registros de CD = 8 bits podra usarse para apuntar no directamente a la memoria
sino a registros o posiciones de memoria que contienen punteros de mayor capacidad 16 bits,
los cuales determinan la direccin efectiva. Tambin se usa para operaciones de borrado de
memoria en lenguaje assembler sin necesidad de borrar el puntero.


DE=((CD))

1.3.5 Direccionamiento indexado

Para este tipo de direccionamiento X representa el contenido de un registro ndice, se utiliza
para recorrer posiciones consecutivas de memoria, posesionndose en el campo CD y
variando el ndice se recorre todo un vector o un arreglo.


DE=(CD)+X

Ejemplo: LD vector(x)
vector representa la direccin de referencia CD y x el contenido del registro ndice.
1.3.6 Direccionamiento relativo

En este tipo de direccionamiento se especifica una direccin de referencia y el contenido del
CD se interpreta como un desplazamiento con respecto a esa direccin, dependiendo de la
referencia puede ser relativo a:
Contador de programa (PC), Registro Base (B), Registro de segmento (S), pgina (P).



1.3.6.1 Relativo a PC

En este caso el PC se interpreta como la direccin de referencia y el CD como el
desplazamiento a partir de esta posicin, se usa para implementar los bifurque que
generalmente se localizan un poco ms adelante o atrs del PC. El desplazamiento puede ser
positivo o negativo.

DE=PC+(CD)

Ejemplo :

GOTO 50 Podra interpretarse como posicinese 50 palabras por encima del PC.


1.3.6.2 Relativo a registro base

El registro base se interpreta como la direccin de referencia y CD como el desplazamiento.
Se usa para relocalizar los programas en cualquier lugar de la memoria; el programador escribe
los programas como si todos comenzaran en la posicin cero (direccin donde comienza la
RAM) y el S.O los ubica en una direccin especfica segn el contenido del registro base; esta
relocalizacin se puede realizar en el momento de cargue o en el momento de ejecucin de la
instruccin.




Ejemplo: LD X Carga el acumulador con el contenido de X; si X se localiza en la
posicin 100 de memoria, realmente se carga es el contenido del registro base + 100; si el
registro base contiene 50K entonces se cargara el contenido de la posicin 50K + 100.


1.3.6.3 Relativo a pgina

En este tipo de direccionamiento se debe entender que la memoria se divide en segmentos
lgicos de tamao fijo denominados pginas.






DE = R base + ( CD )

DE = Direccin Comienzo Pgina + ( CD )




Por ejemplo una memoria de 64K se podra dividir en 256 pginas de 256 bytes.

No de Pginas = Tamao de Memoria / Tamao de Pgina

La direccin de comienzo de pgina se puede obtener seleccionando los bytes ms
significativos del PC.


Ejemplo:

Posicionarse en 0xA1FC, en una memoria de 64K con un tamao de pgina de 256 bytes.
Como las direcciones son hexadecimales la mnima corresponder a 0x0000 y la mxima a
0xFFFF, este ser el rango de direcciones del PC. Las dos primeras letras del PC representarn
el comienzo de pgina, la direccin efectiva DE se formar por yuxtaposicin con el campo
CD del registro de instruccin.

DE = DosByteSuperiores ( PC ) + ( CD )
Rango del PC [ A100 - A1FF ]
Direccin en el campo CD del registro de instruccin = FC

DE = A1FC : es una direccin de 16 bits, 8 bits tomados del PC y yuxtapuestos con otros 8
bits del CD. Si se incrementa CD en un byte se avanza a la siguiente posicin de memoria
dentro de la misma pgina A1FD.


1.3.6.4 Relativo a segmento


Un segmento es una divisin lgica de la memoria de tamao variable, el registro de segmento
siempre apunta al comienzo de este y la direccin efectiva se calcula sumndole al registro de
segmento el CD o desplazamiento dentro del segmento. Las direcciones de comienzo del
segmento pueden estar alineadas en fronteras diferentes a las de la palabra definida por el
sistema operativo, de esta forma un registro de segmento puede direccionar ms memoria de la
que puede segn su tamao en bits.


DE = R
segmento
+ ( CD )

Ejemplo:

En el microcomputador PC de IBM la arquitectura de la mquina era de 16 bit, por lo cual su
mxima direccin de memoria debera ser 64K, sin embargo sabemos que puede direccionar
1MB. Cmo maneja la memoria el DOS para direccionar una cantidad mayor de memoria
que la permitida por su registro?




El DOS administra la memoria de una forma totalmente segmentada, a la direccin de su
registro de segmento le aade un 0x0 por software, con esta operacin convierte la direccin
de 16 bit a 20 bits para los comienzos de los segmentos, Los segmentos quedan alineados en
fronteras de palabra de 16 bytes llamados prrafos, de esta manera la memoria para los
segmentos se ve como un conjunto de prrafos.


Nmero de prrafos = 2
20
/ 2
4
= 2
16
= 64K


Como cada segmento puede comenzar en un prrafo entonces se pueden direccionar 64k
segmentos, dentro de cada segmento se pueden desplazar 64K byte. Bajo este esquema la
direccin del primer segmento ser el 0x00000 y el ltimo 0xFFFF0. En este ltimo segmento,
su tamao vlido sera de 16 bytes para que no se produzca desbordamiento de memoria.


1.4 Cargue de un programa a memoria


Las etapas de un programa hasta ser cargado en memoria, son:


1. El programa se escribe en un lenguaje de alto nivel, y se guarda en un medio legible por el
sistema, por ejemplo un disco; a este nivel, las direcciones del programa se consideran
simblicas en el sentido que especificamos smbolos y etiquetas para direccionar cualquier
parte del programa.

2. Compilacin: El programa es convertido de cdigo simblico a cdigo binario, a este
nivel las direcciones pueden ser:

Absolutas. Las direcciones definen exactamente el sitio de las instrucciones y de los
operandos.

Relocalizables. Todas las direcciones del programa compilado son relativas al punto
0x0 de memoria. Los mdulos que produce un compilador relocalizable son todos
relativos a la direccin cero de memoria. Cuando el proceso esta en memoria estas
direcciones pueden cambiar su relatividad respecto al punto cero y convertirse en otra
direccin relativa al punto donde fue cargado el proceso en memoria de acuerdo al
contenido de un registro base o de segmento.


3. Enlace o Link: Varios mdulos binarios relocalizables pueden ser enlazados en un slo
mdulo relocalizable que se convertir en el mdulo de cargue.



4. Cargue: El proceso es colocado en un sitio de la memoria, este cargue puede ser :


Cargue esttico: En el momento del cargue se incluyen al proceso las libreras del
sistema y otros mdulos formando un solo paquete ejecutable de un tamao
proporcional a los mdulos y a las libreras. Este estilo se aplic principalmente en la
dcada de los aos 60 y 70.
Cargue Dinmico: El proceso principal es cargado en memoria, las libreras y otros
mdulos se van incorporando en el momento en que se soliciten, de esta forma se
ahorra memoria Ej. ciertas rutinas como las de manejo de errores cuando no ocurren
errores no son necesarias.

5. Ejecucin: El proceso se encuentra en memoria, al momento de la ejecucin de cada
instruccin se puede:
Relocalizar las direcciones
Verificar la proteccin de memoria.
Incorporar libreras y mdulos mediante el enlace dinmico.

El trmino enlace se refiere a una correspondencia entre dos espacios de direcciones, la
direccin que tiene la instruccin o el dato antes de ejecutarse el proceso y la direccin que
tiene en el momento de la ejecucin. el enlace puede realizarse a:

Momento de la compilacin
Momento de cargue (despus de cargado no es posible mover el proceso a otro sitio de la
memoria)
Momento de ejecucin ( permite al administrador de memoria mover los proceso en la
RAM en el momento que se requiera )


En el enlace dinmico el proceso principal contiene referencias (stub) o apuntadores a los
procedimientos de las libreras de enlace dinmico las cuales se empiezan a ejecutar cuando son
referenciadas al momento de ejecutar la instruccin, disminuyendo de esta manera los
tamaos de las aplicaciones ya que no se necesita mantener todas las libreras en memoria sino
que estas se van cargando a medida que se invocan, pero este mtodo crea una dependencia de
las libreras y de sus versiones que pueden causar que los programas no funcionen
correctamente.


1.4.1 Intercambios de memoria


Los sistemas de administracin de la memoria los podemos clasificar en dos grandes grupos:

No realizan intercambio de memoria al disco.



Los sistemas que no realizan intercambio se aplicaron a las computadoras de la segunda y
tercera generacin; en estos, los procesos se cargan en memoria y permanecen hasta la
finalizacin de su ejecucin, cuando un proceso no cabe memoria, el programador divide el
programa en mdulos y sincronizaba su ejecucin (overlay).


Realizan intercambio entre la RAM y el disco



Ejercicios:
Describa los formatos de las instrucciones y de un ejemplo donde se aplique cada
uno de estos.
Investigue y analice los diferentes tipos de direccionamiento y usos.
En la siguiente instruccin que tipos de direccionamiento podra tener y porque.
LOAD A.
Realice una tabla comparativa entre cuatro tipos de direccionamientos a
memoria.
Mencione ejemplos reales de los direccionamientos: relativos, absoluto e
implcito.
Se tiene un espacio de direcciones de memoria entre 0000h FFFFh. Esta
memoria se encuentra dividida en 256 pginas, dada una direccin completa por
ejemplo 65184d = FEA0h; considere que cada instruccin tiene un tamao de 16
bits; responda las siguientes preguntas:
En qu pgina se encuentra el puntero de direccin de memoria?. En qu byte
relativo a esa pgina se encuentra el puntero?.

1.5 Proteccin de memoria

Cuando coexisten varios procesos en la memoria es necesario que los espacios de
direcciones ( address space) de cada proceso sean independientes, esto significa que ningn
proceso puede direccionar instrucciones o datos en el rea de memoria de otro proceso




1.5.1 Esquemas de proteccin


En los sistemas multiusuarios han existido diversos esquemas de proteccin:


a) Claves

Asociada a cada particin se le asigna una clave que es conocida por el proceso que se ejecuta
en esa particin. Si otro proceso intenta direccionar fuera de su particin, el sistema operativo
chequea la validez de la clave y produce un error por proteccin de memoria. Aplicado a
computadoras de segunda y tercera generacin.




MEMORIA




b) Registro lmite:

Los procesos relocalizables ( que se pueden cargar en cualquier parte de la memoria) generan
sus direcciones relativas a la direccin cero de la memoria (00000..0), esto significa que la
ltima direccin del un proceso debe corresponder al tamao del proceso. Mediante un
hardware adicional y empleando un registro lmite se hace un chequeo para saber si la direccin
generada es menor que el tamao del proceso, posteriormente la instruccin o el dato se
relocaliza sumndole un registro base o un registro de segmento.. Este esquema es aplicable
para las organizaciones de memoria por particiones fijas, particiones variables y en la
segmentacin pura. Aplicable a las computadoras de tercera generacin.






c) Tabla de pginas:

En los sistemas con memoria virtual, en los campos de las tablas de pginas se controlan los
atributos de solo de lectura, de escritura-lectura, compartidas; a cada proceso se le asocia un
nmero determinado de pginas de esta forma el sistema controla que los procesos no
invadan pginas de otro proceso.


1.5.2 Fragmentacin interna y externa


Existen dos maneras en que se puede presentar el desperdicio de memoria segn la forma
como se organiza y se administra.

a) Cuando la memoria se organiza como particin fijas, si un proceso no ocupa la totalidad de
la particin asignada, el espacio sobrante se desperdicia y no puede ser usado por otro
proceso, este espacio no utilizado se le llama Fragmentacin Interna.







b) Cuando la memoria se organiza como particin variable, si examinamos la memoria
despus de un tiempo de haber realizado cargues y descargues de procesos de diferentes
tamaos, la memoria presenta espacios entre particiones o segmentos, estos espacios (las
sumas de todos) se conoce con el nombre de Fragmentacin Externa.


Compactacin


La solucin al problema de la fragmentacin externa se puede resolver aplicando la tcnica de
compactacin que es muy similar a la tcnica de desfragmentacin que se aplica a los discos
magnticos. Compactar la memoria significa generar un nico espacio juntando los espacios
presentes en una memoria con fragmentacin externa. El siguiente esquema ilustra esta
tcnica.



Memoria fragmentad




Si un proceso que llega tiene una tamao de 120K no se le puede asignar memoria. Si se
realiza la Compactacin, el esquema cambiara:



Memoria compactada




Como puede observarse en la grfica anterior el espacio resultado de la compactacin se puede
ubicar en el extremo derecho de la memoria, en el extremo izquierdo de la memoria o en el
centro.



Ejercicio:
Cuantifique el nmero de bytes que se han movido para compactar la memoria
anterior

1.5.3 Mtodos de organizacin de la memoria



La introduccin en la computacin del concepto de multiprogramacin origin que la
memoria se organizara de distintas formas: particiones fijas, particiones variables, pginas,
segmentos y segmentos paginados.


1.5.3.1 Particiones fijas


Las particiones se pueden considerar como espacios de memoria de tamaos diferentes. El
operador de la mquina al momento de encender el computador define el nmero y los
tamaos de las diferentes particiones en su sistema. Las particiones no son todas del mismo
tamao pero permanecen constantes hasta que el operador decida cambiarlas. El esquema de
memoria con particiones fijas es el siguiente:






(1) particin para trabajos pequeos.
(2) particin para trabajos medianos.
(3) particin para trabajos grandes.







Ejercicio:
Investigue las ventajas y desventajas de este mtodo de organizacin de la
memoria.

1.5.3.2 Particiones variables


Inicialmente la memoria es un solo espacio de direcciones del mismo tamao de memoria. Al
iniciarse el cargue y descargue de procesos se generan particiones dinmicamente de acuerdo al
tamao de los procesos.

Ejemplo:

Particiones variables




1. llegan: p1,p2,p3,p4.
tamaos: 100K,200K,500K,60K.
2. termina: p1 y p4
3. llegan: p5,p6,p7.
tamaos: 40K,60K,150K.



Ejercicio:
Investigue las ventajas y desventajas de este mtodo



1.5.3.3 Paginacin

La memoria se divide en particiones fijas de igual tamao, tpicamente 1K, 2K, 4K 8K
dependiendo del sistema operacional. Un proceso puede ocupar una o varias pginas y toda la
memoria se ve como un conjunto de pginas.



Un proceso puede contener una o varias pginas reales no necesariamente contiguas y varias
pginas virtuales continuas.


1.5.3.4 Segmentacin


La organizacin de la memoria por segmentos es similar al de las particiones variables. La
direccin inicial de los segmentos generalmente se encuentra alineada en frontera de prrafos,
es decir, un prrafo es una unidad de memoria que puede constar de 1 a n bytes, tpicamente
los prrafos puede ser de 4, 8, 16, 32, 64 bytes, por ejemplo: el sistema operacional DOS est
organizado por memoria segmentada con prrafos de 16 bytes. Esto significa que las
direcciones de los segmentos deben ser mltiplos de 16.


Los segmentos son de tamao variable, el mximo tamao del segmento est limitado por los
registros del computador y por el tamao de la RAM.

La direccin inicial de un segmento se almacena en un registro base, esta direccin se extiende
anexndole ceros segn el tamao del prrafo que maneje el sistema operacional, en DOS el
tamao del prrafo es de 2
4
bytes, esto significa que el sistema aade cuatro ceros a la
direccin base formando direcciones de memoria alineadas en fronteras de 16 bytes.


Esquema para convertir direcciones de 16 a 20 bits en MS-DOS




Nota:
Los accesos a memoria quedan alineados en forma de prrafos (16 bytes = 2
4
)
Cada prrafo es un grupo de 16 bytes.
El acceso mnimo a memoria es el prrafo.
La ltima direccin generada corresponde a 11111111111111110000 (16 unos mas cuatro
ceros en binario).


2
20
- 16 bytes = 1024-16 = 1008 bytes

FFFF0


La grfica anterior muestra como se genera una direccin de 20 bits alineados en prrafos de
16 bytes, permitiendo ampliar el espacio de direcciones hasta 1 MB con arquitectura de 16 bits
en el hardware. La direccin del ltimo segmento debe terminar en 0000, entonces del espacio
de direcciones de segmentos la ltima direccin posible es la FFFF0.






1.6 Administracin de la memoria


Una de las tareas fundamentales del administrador de la memoria es:

1. Asignar espacio de memoria RAM a los procesos
2. Liberar espacio de memoria asignada cuando el proceso termina.

Para realizar esta tarea debe apoyarse en una estructura de datos que le permita conocer el
espacio asignado y el espacio libre.


1.6.1 Mapa de bits (bitmap)

Consiste en un arreglo de bits de correspondencia 1:1 con el arreglo de palabras de memoria,
los unos indican la memoria asignada y los ceros, no asignada. Ejemplo: Si toda la memoria
esta totalmente asignada ( full ) el mapa contiene solo unos (1), si esta sin asignar contiene
ceros (0) en su totalidad; si esta parcialmente asignada el mapa contendr una combinacin de
unos y ceros. El tamao del mapa en bits es igual al nmero de palabras en memoria
multiplicado por 1 bit.

Mapa de bits- memoria vaca

Suponga que el proceso A ocupa 4 palabras, luego sigue un hueco un hueco de 3 palabras,
luego el proceso B ocupa 7 palabras, el proceso C 3 palabras, posteriormente hay un hueco de
4 palabras y finalmente el proceso D 5 palabras, el resto de la memoria esta vaca. Total de
memoria 100 palabras. Represente grficamente el mapa de bits.





1.6.2 Listas enlazadas


El control de la memoria asignada y la memoria libre se realiza mediante una estructura de
datos de listas de nodos enlazados; cada nodo de la lista contiene:

Un indicador de segmento de memoria asignado o libre
La direccin donde comienza el segmento
El tamao del segmento.
Un apuntador al siguiente nodo.




Administracin del espacio de memoria por listas

P : El segmento esta ocupado por un proceso
H: Libre

Cada vez que termina o llega un proceso esta lista se debe actualizar para que represente el
nuevo estado de la memoria. Antes de asignar espacio para un nuevo proceso se debe hacer
una bsqueda en esta lista, existen los siguientes mtodos:

Primero en ser encontrado. Se busca hasta encontrar el primer nodo que cumpla con la
demanda de memoria del proceso solicitante
Mejor en ajustarse: El nodo de menor tamao que cumpla la demanda de memoria del
proceso . Con este algoritmo se debe recorrer toda la lista.
El peor en ajustarse. El nodo de mayor tamao.

Estos algoritmos tienen ventajas y desventajas si analizamos su velocidad de respuesta y el
tiempo para actualizar las listas.

Optimizacin:

Para mejorar los factores anteriores se puede modificar la estructura de listas de las siguientes
formas:

Utilizar dos listas: Una para la memoria asignada y otra para los huecos.
Ordenar las listas por tamao.
Utilizar varias listas. Cada lista mantiene informacin de los segmentos de memoria de
tamaos de 2
n
palabras. 1nk, la k representa el nmero de bits necesarios para la
direccin de la ltima palabra de memoria. La principal desventaja de este mtodo es
que el tiempo que se gana en la bsqueda queda compensado con el tiempo que se
consume en la organizacin y mantenimiento de las listas.





Ejercicio:
Discuta la importancia de aumentar la memoria RAM: en un computador con
Sistema Operacional monoprogramacin y en un sistema operacional
multiprogramacin.
Como se puede organizar la memoria en ambientes de mono y
multiprogramacin.
Diga y explique tres de los principales problemas que tiene que solucionar el
administrador de memoria en un ambiente de multiprogramacin?
Discuta los principales problemas de organizar memorias en ambientes
multiprogramacin.
Conceptualice sobre los trminos de relocalizacin de la memoria, intercambio,
proteccin en ambientes de multiprogramacin, compactacin y superposicin
de memoria.
Esquematice un ejemplo de memoria fragmentada y describa una forma de
compactarla. Calcular el tiempo que se dedicar a esta operacin.
Proponga tres maneras de proteger las reas de memoria ocupadas por diversos
procesos en ambientes de multiprogramacin.
Estudie dos mtodos de administrar la memoria, esquematice un ejemplo de
memoria de un sistema en funcionamiento y aplique los mtodos de
administracin; analice ventajas y desventajas.
Estudie dos mtodos de administrar la memoria, esquematice un ejemplo de
memoria de un sistema en funcionamiento y aplique los mtodos de
administracin; analice ventajas y desventajas.
Como podra protegerse el siguiente esquema de la vida real aplicando el
concepto de reg-lmite, reg-base, direccionamiento relativo. En una ciudad
existen 100 barrios; cada barrio posee n manzanas siendo n una variable que
representa diferente nmero de manzanas para cada barrio; se quiere simular la
proteccin aplicando los conceptos antes mencionados para que los vendedores
de un barrio no se pasen a otro.






2. MEMORIA VIRTUAL Y PAGINACION




Las memorias de los computadores en los aos 60, 70. 80 eran de un tamao moderado del
orden de los 16K, 64K, 128K, 512K y hasta un 1 MB, comparadas con los tamaos de las
actuales memorias, dcada de los 90s y comienzos del siglo XXI hasta el 2010 alcanzan
tamaos desde los 64MB hasta 1GB, 2 GB, 4GB, 8GB, 64GB, 128GB las memorias
aumentan de capacidad, velocidad de acceso y disminuyen los costos, pero por otra parte las
aplicaciones exigen mayores requerimientos de memoria cuando se pasa del modo de
caracteres al modo grfico, cuando se implementan sistemas operativos como mquinas
virtuales, en aplicaciones de inteligencia artificial con aplicacin al lenguaje natural o cuando se
ejecuta un gran numero de procesos en forma simultnea en un servidor, el hecho de poseer
una memoria RAM adecuada mejora sustancialmente la velocidad del sistema. En pocas
pasadas los procesos que excedan el tamao fsico de la memoria eran interrumpidos por el
sistema operacional y se abortaba el proceso por insuficiencia de memoria, el programador
para solucionar este problema divida el programa en mdulos de menor tamao y el proceso
se ejecutaba cargndolo en forma modular y con las ayudas de estructuras de OVERLAY,
estas rutinas del sistema, coordinaban el cargue de mdulos en forma independiente.

















El programa est conformado por los mdulos 1 y 2, la memoria fsica no es suficiente para
contener el programa de 600 K, entonces es necesario de realizar procesos de overlay cargando
primero del mdulo 1 y posteriormente el mdulo 2.



200
K 512
K
400
K
Modulo 2

Rutinas OVERLAY
S . O
Modulo 1


Este problema de insuficiencia de memoria para los procesos fue resuelto, como resultado de
una investigacin en Inglaterra (Fotheringham, 1961). La idea bsica de la memoria virtual
consiste en dividir ya sea un proceso, un segmento de datos, una pila, o cualquier objeto de
memoria en unidades de tamao fijo, generalmente de 1 K o 4 K y manejar esas unidades para
cargar y descargar a memoria RAM, evitando manejar procesos completos. En memoria RAM
se cargan solo las paginas que estn en ejecucin, el resto son almacenadas en una rea
especial del disco duro llamada rea de paginacin ( Slo para los procesos en estado de
ejecucin).


La memoria virtual es una memoria en el disco de un tamao mucho ms grande que la
memoria fsica y dividida en unidades de tamao fijo llamadas pginas. la paginacin se
comprende como el resultado de intercambiar pginas entre la memoria virtual y la memoria
real y viceversa.


Con esta trmica se aumenta el grado de multiprogramacin, y se libera al programador de
problemas de interrupciones cuando un proceso es de tamao mayor que la memoria
principal.



























2.1 Tabla de pginas

Mantiene una relacin entre las pginas virtuales y las pginas reales.





La funcin representa el rol de la tabla de pginas, mediante esta funcin el sistema
operacional conoce las paginas de un proceso que residen en la memoria RAM y las que se
encuentran en la memoria virtual.


2.2 Direcciones virtuales y direcciones reales

2.2.1 Direcciones Virtuales

Toda direccin de memoria, cuando se trabaja bajo un ambiente de memoria virtual,
correspondiente a una direccin de bsqueda de un dato o a una direccin de bsqueda de una
instruccin, se interpreta como una direccin virtual, es decir una direccin cuyo rango est
entre 0 y la ltima palabra del espacio virtual no en el espacio real, como las instrucciones y los
datos residen en memoria RAM, estas direcciones virtuales deben ser convertidas en
direcciones reales para poder ser ejecutadas.


Direcciones virtuales y direcciones reales

M = ( P )

M: Marco Real
P: Pgina Virtual




Toda direccin virtual es una direccin que consta de los campos: nmero de pgina y
desplazamiento dentro de la pgina. El nmero de pginas se usa como un ndice a la tabla de
pginas y el desplazamiento como un posicionador dentro de la pgina o el marco; se llaman
direcciones virtuales porque su dominio corresponde al espacio de la memoria virtual ( disco
paginado ).


2.2.2 Direcciones reales


Est compuesta por dos campos: el primer campo apunta a la direccin de comienzo del
nmero del marco y el segundo campo contiene el desplazamiento dentro del marco.


Supongamos que un computador tiene asignado un espacio de 256 K para la memoria virtual,
su memoria real es de 32 K, el tamao de la pgina es de 8 K.


Nmero de pginas = 256 K / 8 K = ( 2
8
) / ( 2
3
) = 32 pginas

Nmero de marcos = 32 K / 8 K = 4 marcos

TamaodeTabladePaginas = NrodePaginas * Tamao de Registro de entradas a la tabla .


El nmero de entradas en la tabla debe ser igual al nmero de pginas. Consideremos
aproximadamente 4 bytes para el tamao del registro de entrada de la tabla.


Campos de una tabla de pginas:




Para direccin de los marcos (12 bits)
Para proteccin (3 bits)
indicador presente/ ausente (2 bits)
indicador de acceso (1 BIT)
indicador de modificado (1 BIT)


otros (10 bits)
Ejemplo:
Calcule el tamao de la tabla de paginas para una memoria virtual de 1GB, y paginas de 4k
bytes.

NrodePaginas = TamaoEspacioVirtual / TamaoPagina

NrodePaginas = ( 2
10
* 2
10
*

2
10
)
/
4
*
2
10
= 256k paginas

TamoTabladePaginas = 256k * 4byte = 1024k = 1MB


2.2.3 Memoria Asociativa (TLB, Translation
Lookaside Buffer)


En los sistemas de memoria no paginada para localizar una palabra de la RAM es necesario
slo un tiempo de acceso a memoria. Con la paginacin el acceso debe realizarse mnimo dos
veces, la primera para encontrar el nmero del marco en la tabla de pginas , que se encuentra
en la RAM, y la segunda para accesar la palabra buscada en la RAM. En las tablas de pginas
de 2 niveles, se necesitan mnimo de tres accesos; si el tiempo de acceso a la memoria, que se
mide en nanosegundos, se duplica o se triplica puede convertirse en un factor crtico para la
velocidad del sistema.


La solucin son los TLB o memorias asociativas, que contienen las pginas de mayor uso y
realizan bsquedas en paralelo para encontrar el marco correspondiente. En un segundo se
pueden acceder miles o hasta cientos de miles de veces una pgina. El tiempo de bsqueda en
un TLB es despreciable con relacin a la bsqueda en las tablas de pginas. Los campos de un
registro en el TLB son los mismos campos que contienen una entrada en la tabla de pginas


MMU:
La MMU (Memory Management Unit) es un circuito o chip que realiza varias funciones
relacionadas con la administracin de la memoria RAM, el TLB para la la traduccin de
direcciones virtuales en direcciones reales, manejo de la cah y seguridad son algunas de las
funciones de este hardware

TLB: ( Translation Lookaside Buffer ) es una memoria cach tipo CAM (Content -
Addressable Memory) tambin llamada memoria asociativa, contiene la tabla de pginas y
realiza bsqueda usando el nmero de pgina como ndice para encontrar la direccin del
marco donde reside la pgina en la memoria RAM.


2.2.3.1 Tasa de aciertos y principios de Referencia Local

La eficiencia del sistema de memoria virtual depende si un alto porcentaje de la traduccin de
las direcciones virtuales en direcciones reales se puede realizar en el TLB. Un aspecto del
comportamiento de los procesos en el que muchas instrucciones hacen referencia a pocas
pginas y no lo inverso, garantiza la elevada tasa de encuentros en el TLB(99%), a esta
caracterstica propia de los procesos se conoce como principio de referencia local. Un
proceso que maneje listas enlazadas y acceso a sus nodos en forma aleatoria hace que la
referencia a pginas sea tambin aleatoria y no cumpla el principio de referencia local. Un
proceso que contenga una instruccin for para implementar la suma de 1 a un millon , por lo
general, acceder a la misma pgina, cumpliendo as el principio de referencia local.

En resumen, en un sistema de memoria virtual se necesita de un hardware especial (TLB) y
adems que los procesos se comporten de acuerdo al principio de referencia local para
que el sistema de memoria virtual no disminuya la eficiencia de la CPU.


Ejemplo.

Supongamos que el tiempo de acceso a una memoria asociativa es de 10 nanosegundos y que
el tiempo de la RAM es de 80 ns, la tasa de acierto se considera de un 95%. Cul es el tiempo
promedio de acceso?

Tp = ( 0.05*(80+10) + 0.95*10) = 14.5 nseg.

para una tas de aciertos de 99%

Tp = ( 0.01*(80+10) + 0.99*10) = 10.8 nseg.


Ejercicio: Si cuando hay un acierto en el TLB se gasta un ciclo de reloj (hit) y cuando no se
consumen 30 ciclos de reloj(miss); calcule el numero de ciclos de reloj para una tasa de
aciertos del 99% ? R=1.3 ciclos de reloj
2.2.3.2 Tablas de pginas de dos niveles

Con tablas de un nivel, la tabla de pginas debe permanecer en memoria RAM en su totalidad.
Con tablas de dos niveles se genera una estructura de rbol compuesta por un directorio raz y
varios subdirectorios; para un proceso en particular en la RAM slo se mantiene el directorio
raz y algunos de los subdirectorios.









Formato de la direccin virtual de dos niveles




El nmero de entradas en la tabla de pginas para una memoria virtual de 4 Gbytes con
pginas de 4 K, ser:

Nmero de pginas = ( 4 * 2
30
) / ( 4* 2
10
) = 2
20
= 1MB de entradas.
Tamao de la Tabla de Paginas = 1MB * 4 byte = 4MB.

Consideremos este mismo caso utilizando una tabla de pginas de dos niveles:

El primer nivel (root) mantiene 1024 (2
10
) entradas, el segundo nivel tambin contiene 1024
(2
10
) entradas, estas son las que direccionan los marcos de memoria, el total de entradas es
1024 * 1024 = 1MB que es lo necesario para direccionar toda la memoria virtual.
Lo importante de este diseo es que no se necesita cargar toda la tabla en memoria.

Ejemplo:

Para un proceso especfico se carga la tabla del primer nivel (obligatorio 1024 entradas), y una
o ms tablas del segundo nivel dependiendo del tamao del proceso.

2.2.3.3 Clculo del tamao de pginas de dos niveles

La siguiente grafica ilustra una tabla de pagina de dos niveles Ej: para un proceso que requiere
las tablas B y C se necesita una tabla de pginas cuyo tamao es:

T = tamao directorio raz + tamao tabla B + tamao tablas C

T = 4*(1K) + 4*(1k) + 4*(1k) = 12k

(1k=1024) es el nmero de entradas que posee cada tabla.

12k es la memoria que necesita la tabla de pginas de dos niveles para un proceso con
tamao de 8Mb, considerando paginas de 4k.

nmero de pginas para el proceso de 8Mb = 2
3
* 2
20
/ 2
2
*2
10
= 2 * 2
10


El tamao de los 12k de esta tabla de pginas para el proceso anterior resultan de:
( nmero de entradas del directorio raz + nmero de entradas para el proceso ) * 4 bytes
segn el siguiente esquema de formato de direccin virtual:


TABLA 2 NIVELES





NOTA: Los sistemas Windows NT y Windows 95 utilizan tablas de pginas de dos niveles.


Ejercicios:
Conceptualice sobre memoria virtual y espacio de direcciones virtuales.
Relacione la tcnica de memoria virtual y la relocalizacin.
Esquematice con un ejemplo un diagrama donde se relacione la memoria lgica,
la tabla de pgina, memoria virtual, direccin virtual, direccin real y la memoria
fsica. considere pginas de tamao igual a2k
Mediante un ejemplo explique el principio de referencia local; que problema
de memoria se presenta cuando no se cumple este principio.
Con un disco de 4G y tamao de pgina de 8k y memoria real de 128k, calcular
cuantas pginas y cuantos marcos de pginas existen. Cual en el mximo y
mnimo tamao de la memoria real y virtual.
Enumere los problema que resuelve el sistema de la paginacin y que problemas
nuevos se generan.
1023


Discuta cual es el nmero de accesos a memoria mnimos y mximos cuando
existe paginacin, con tablas de un nivel, con tablas de dos niveles
Calcule el tamao de una tabla de pgina si su direccin virtual consta de 20 bits
de los cuales 8 se usan para el direccionamiento de las pginas y el resto para el
desplazamiento dentro de la pgina. Considere un disco duro de 4G y tamao de
pgina de 4k. Es necesario conocer el tamao de la memoria real?.
Resuelva el problema anterior suponiendo tablas de pginas de dos niveles
Explique dos formas de implementar la tabla de pgina y en que lugar?.


2.2.4 Algoritmos de repaso de pginas


FIFO
FIFO mejorado
L. R. U por hardware
L. R. U. por software

El intercambio de pginas de memoria RAM al disco y viceversa es la actividad fundamental de
la paginacin. El administrador debe establecer una poltica que le permita decidir cul pgina
de la RAM debe ser reemplazada, cuando la RAM est llena y sea necesario cargar una nueva
pgina a memoria. Los criterios hacen referencia a la pgina ms antigua, la menos utilizada,
etc. La pgina ptima a reemplazar es aquella que debe esperar el mayor tiempo para ser
usada, pero es imposible conocer a priori cul es esa pgina sin haber realizado una corrida
previa del proceso, los siguientes mtodos son aproximaciones al mtodo ptimo.



2.2.4.1 Mtodos de reemplazo de pginas

FIFO reemplaza la pgina ms antigua, la que mas tiempo ha permanecido en la RAM;
este algoritmo supone que la pagina mas antigua es la de menor uso, pero,
evidentemente esta premisa no siempre es verdadera.
FIFO mejorado: selecciona la pgina ms antigua pero adems chequea el bit
referencia, si la pgina ha sido ltimamente referenciada no la reemplaza, coloca el bit
de referencia en 0 y examina la pgina siguiente menos antigua; si no encuentra
ninguna pgina candidata a ser reemplazada vuelve al comienzo de la lista y repite el
proceso.



Listas enlazadas de pagina










L. R. U. (Least Recently Used): en un segundo se pueden producir aproximadamente
entre 50 y 60 interrupciones de marcas de reloj. Si una CPU tiene una velocidad de 200
ns por instruccin, entonces entre una y otra marca de reloj (20 mseg = 20*10
6
ns) se
pueden procesar aproximadamente 100.000 instrucciones, es decir se pueden hacer
referencia a este nmero de pginas.

20000000 ns/ 200 ns = 100.000 pginas

L. R. U. es un Algoritmo que reemplaza la pgina que en el ltimo intervalo entre marcas de
reloj ( 100.000 referencias a paginas) haya sido la menos usada. La interrupcin de reloj, que se
produce entre marcas de reloj, lee el bit de referencia en la tabla de pginas y despus lo
modifica a 0.




Interrupciones de reloj


El Algoritmo LRU lleva un contador para cada pgina y lo incrementa cada vez que accesa la
pagina; esto significa que los contadores se deben actualizar con una frecuencia de cien mil
veces en 20 milisegundos o cinco millones en un segundo. Dichas operaciones son posibles de
Fin de lista
Si no encuentra retorna al campo
Primero
de la lista,
la ms
antigua


realizar, solamente, mediante un hardware especializado que permita actualizar estos
contadores sin afectar la velocidad del sistema; finalmente la pagina a ser reemplazada es la
pgina asociada al contador con el menor valor absoluto.


Aproximacin a L. R. U por software. LRU por software realiza la actualizacin de
los contadores de pginas examinando el bit de referencia entre marcas de reloj y no
precisamente cada vez que se ejecuta la instruccin. Si una pgina ha tenido varias
referencias entre marca y marca, el contador lo contabiliza slo una vez. El contador
LRU por software se puede interpretar como un registro del historial de referencias de
una pgina durante las ltimas marcas consecutivas de reloj.


Ejemplo:











En cada marca de reloj se accesan las siguientes pginas:


Primera marca: 0,2,4
Segunda marca: 0,1,3,4
Tercera marca: 0,1,3
Cuarta marca: 0,4
Quinta marca: 1,2,3


En la quinta marca de reloj se produce un fallo de pgina y adems es necesario reemplazar
pgina porque no existe espacio en memoria para la nueva pgina, LRU selecciona la pgina 4
que tiene el menor valor absoluto en sus contadores, es decir la de menor uso recientemente.
Entre las pgina 1 y 3 cul es la de menor valor en la realidad? Explique? .





Ejercicios:
Contador de marcas de reloj para las pginas 0-4 .


Primera
marca
Segunda
marca
Tercera
marca
Cuarta
marca
Quinta
marca
Pagina 0 10000000 11000000 11100000 11110000 01111000
Pagina1 00000000 10000000 11000000 01100000 10110000
Pagina 2 10000000 01000000 00100000 00010000 10001000
Pagina 3 00000000 10000000 11000000 01100000 10110000
Pagina 4 10000000 11000000 01100000 10110000 01011000



Conceptualice sobre la paginacin en uno, dos, tres y cuatro niveles. Cuntas
tablas de pginas se generan en cada uno de estos modos de paginacin. Cul es
la principal ventaja de las tablas de pginas de dos o ms niveles y cul su
principal desventaja.
Investigue sobre la naturaleza y el funcionamiento de las memorias asociativas,
como se aplican para solucionar problemas de la paginacin. Cunta memoria
asociativa posee un PC moderno?.
Analice porqu el algoritmo FIFO no es un mecanismo muy efectivo para el
reemplazo de pginas, proponga mejoras. Cul es la principal diferencia entre
LRU por software y LRU por hardware.
Encuentre el significado de la siguiente terminologa :
Paginacin por demanda.
Conjunto de trabajo.
Catstrofe (Thrashing).
Prepaginacin.
Lookaside.
Encuentre una frmula matemtica para calcular el tamao ptimo de las
pginas. Investigue en Win NT, Unix, Linux, cul es el tamao de las pginas en
la Memoria Virtual.
Construya las tablas de pginas correspondientes a las siguientes direcciones
virtuales. En cul esquema es menos eficiente, cul posee mayor capacidad de
direccionamiento.
A. 1110 110 10100101010
B. 111 1000 11 100 1010101111
Elabore una grfica que represente el promedio de tiempos de acceso para una
memoria asociativa en un tiempo de 10 ns, si el tiempo a la tabla de pginas es de
120 ns, se considera una tasa de aciertos de 95%. Cul es el tiempo promedio de
acceso?.
Suponga que una memoria RAM posee cuatro marcos, los cuadros a
continuacin representan los accesos a cada marco. Cul marco debe
reemplazarse si en el sexto pulso de reloj se produce un fallo de pgina?.




0 1 1 0
1 1 1 1
0 0 0 1
1 1 0 1
0 0 1 1


Seale las respuestas correctas:
Las referencias a las paginas del buffer cache de disco son poco frecuentes.
Las referencias a las paginas de la memoria RAM se realizan a la velocidad del
El algoritmo LRU por software es imposible de implementarse para la che del disco
Una desventaja del LRU simulado es que solo dispone de un bit para registrar el
conteo de acceso a pginas entre marcas de reloj.

2.3 Segmentacin


Un segmento se puede considerar como un espacio de memoria que tiene un sentido lgico
para el usuario, por ejemplo, la pila de un proceso, los datos, el cdigo del proceso, un vector,
una subrutina, etc. El objeto segmento facilita al administrador de la memoria, las propiedades
de compartir, proteger y expandir dinmicamente el segmento. Se entiende que el segmento
tiene un sentido lgico para el programador mientras la pagina es un conjunto de palabras
enmarcadas en un tamao fijo sin ningn significado en especial.


2.3.1 Segmentacin pura

La memoria se divide en unidades o espacios lgicos de tamaos dinmicamente variables, los
procesos, los datos, las pilas, los arreglos etc., hacen que la memoria sea vista como un
conjunto de segmentos:

Primera marca de
reloj
Segunda marca de
reloj

Marco 0 Marco 1

Marco 2

Marco 2

Marco 3

Marco 2

Tercera marca de
reloj



Memoria segmentada


Despus un tiempo t algunos procesos terminan y son retirados de memoria generndose
espacios de segmentos libres.



Memoria con segmentos libres


Estos espacios libres de la figura anterior, son ocupados por otros segmentos de menor
tamao generndose nuevos espacios libres de un tamao mucho menor; al final de un tiempo
t se puede observar una memoria con muchos espacios pero de un tamao pequeo sin
capacidad suficiente para contener nuevos segmentos, se dice entonces que en la memoria
existe desperdicio de espacio por fragmentacin externa. Para solucionar este problema el sistema
ejecuta el proceso de desfragmentacin o compactacin de la memoria.


2.3.1.1 Formato de direcciones segmentadas

Para localizar una palabra en una memoria segmentada es necesario conocer la direccin del
comienzo de segmento y el desplazamiento dentro del segmento.




El tamao del segmento es variable, pero existe un lmite mximo segn el formato de la
direccin segmentada Ej: si los bits para desplazamiento son 20 el tamao mximo de
segmento para ese sistema seria de 1MB ( 2
20
).

Podra presentarse el caso en que el tamao de un segmento exceda el tamao de la memoria
fsica, el sistema genera una interrupcin por memoria insuficiente.



2.3.2 Segmentacin con paginacin

Los segmentos son espacios de memorias lgicas de tamao variable que se pueden considerar
como memorias independientes. Con la segmentacin paginada, un segmento no reside
totalmente en la memoria, slo se cargan las pginas que estn en ejecucin, es decir, se realiza
una paginacin a niveles de segmento. Esta tcnica combina las ventajas de la segmentacin y
la paginacin pero requiere de varias tablas para su implementacin.



2.3.2.1 Formato de direcciones en la paginacin con
segmentacin.


La direccin virtual se genera especificando un nmero de segmento, un nmero de pgina y
un desplazamiento dentro de la pgina.








CONVERSIN DE UNA DIRECCIN VIRTUAL EN UNA DIRECCIN REAL.

Con el nmero de segmento se localiza la entrada en la tabla de segmentos de las 2
14
entradas
posibles, el registro de segmento apunta a una tabla de pginas de las 2
14
posibles; con el
nmero de la pgina se localiza una entrada en una de las tablas de pginas de las 2
10
entradas
posibles, una entrada de la tabla de pginas contiene la direccin del marco en memoria de la
pagina correspondiente.


Formato de un registro de la tabla de segmentos (una entrada de la tabla de segmentos)




Para evitar el overhead (exceso de procesamiento en el manejo de tablas y nmero de accesos a
memoria), es necesario que la segmentacin con paginacin este soportar por un hardware de


memoria asociativa (TLB) que garantice una tasa de encuentros elevada.


Registro de una memoria asociativa.



# segmento # marco
Bit
proteccin
eda
d
bit
referencia
# pagina


2.3.3 Problemas

1. Conceptualice sobre el trmino segmento, diferencie entre segmento, particin y pgina.

2. Porqu es necesario la tcnica de la segmentacin?. Elabore un cuadro que compare la
segmentacin con la paginacin.

3. Proponga un esquema de administrar memoria con segmentacin pura; con segmentacin
paginada.

4. Esquematice las tablas para las siguientes direcciones segmentadas.

segmento Desplazamiento
18 20


segmento pagina desplazamiento
12 20 12


5. Construya el formato de direccin para un sistema que puede manejar hasta 1M de
segmentos, con una longitud de 4 M en cada segmento.
A. Con segmentacin pura.
B. Con segmentacin paginada.

6. Dada la siguiente direccin virtual, calcule el tamao que ocupan todas las tablas necesarias para un proceso que en su totalidad ocupa
16Mb de memoria.


segmento pagina desplazamiento
20 12 12

Suponga descriptores de segmentos y entradas a la tabla de pginas de 32 bits.

7. Supongamos la siguiente direccin virtual: 000010010000100101001111







Cul es el tamao del espacio virtual?
Cuntos segmentos existen?
Cuntas tablas de pginas?
Cul es el tamao aceptado por las tablas?

Segmento Pagina Offset

0000100100

0000100100

0000100100

S-ar putea să vă placă și