Escolar Documentos
Profissional Documentos
Cultura Documentos
BUFFER
Esto es mucho ms seguro que el tener acceso sobre el archivo
que hay guardado en disco originario, as podemos evitar posibles
fallos irremediables, por eso cuando hay un corte de luz, toda la
informacin que tengamos almacenada dentro del Buffer se pierde,
por eso muchas veces cuando hacemos un documento, es
aconsejable guardar la informacin cada cierto tiempo.
Otro ejemplo comn de Buffer, es utilizado para la impresin de
documentos, cuando entra una orden de impresin, la informacin
del documento se guarda dentro del buffer, y cuando ha recogido
toda la informacin y despus de hacer la comprobacin de si se
quiere seguir con el proceso de impresin pasa toda la informacin
al papel a travs de la impresora.
BUFFER
Es un rea de memoria principal reservada para contener los datos
ledos de un archivo mientras se utilizan. Cuando esta rea temporal
queda llena, el programa puede empezar a utilizar estos datos. Manejar un
buffer implica trabajar con grandes grupos de datos de memoria Ram para
que el nmero de accesos al almacenamiento se reduzca.
El sistema operativo es quien maneja realmente los buffer del sistema. La
entrada buffer del CONFIG.SYS permite especificar el numero de
almacenamientos intermedios (o accesos) de discos que ha de usar del
DOS, esto depender del tipo de configuracin de cada sistema y se mide
en trminos de tiempos que consume el desplazamiento, el retraso por
rotacin y el tiempo de transferencia. Cada sector objeto de lectura
anticipada consume un equivalente de memoria de 512 bytes.
En esta ocasin se revisaran diversas formas de administrar el buffer para
tratar de reducir lo mas posible los costosos accesos a dispositivos que
son muy lentos respecto al CPU.
Programa de llenado:
Ciclo: Si P-llenar^ .bandera = 1 ir a ciclo
Emite comando de E/S a la U. de C.
Esperar mientras P-llenar^ .buffer est llenndose
P-llenar^ .contador = 1
P-llenar^ .bandera = 1
P-llenar = P-llenar^ .siguiente
Ir a ciclo.
El programa se cicla cuando un buffer est lleno y el otro no est totalmente vac
Programa de desalojo:
Espera: Si P-desalojo^ .bandera-llenar=0 ir a espera
Leer registro (P-vaco .contador) dentro del rea de trabajo
del Registro
P-desalojo^ .contador = P-desalojo^ .contador + 1
Si P-desalojo^ .contador > n
P-desalojo^ .bandera - llenar = 0
P-desalojo = P-desalojo^ .siguiente
Ir a espera.
Esta rutina esta en ciclo solo cuando un buffer ya desaloj y el otro
est vaco o empieza a llenarse.
Si el buffer es llenado con ms rapidez que desalojado, el programa
permanecer en ciclo, pero esto es preferible a tener ocioso al CPU.
Existe una forma de atenuar este problema y es encadenar mas
buffers.
Intercambio (swapping)
En un sistema de procesamiento por lotes, organizar la memoria en
particiones fijas es simple y efectivo: cada trabajo se carga en la
memoria cuando le toque su turno, y se queda en memoria hasta que
termine. Si hay suficientes particiones para mantener a la CPU
siempre ocupada, no habra razones para usar nada diferente.
Pero en un sistema interactivo, de tiempo compartido, la situacin es
diferente, ya que es posible que la memoria no alcance para mantener
a todos los procesos.
En este caso se usa el disco como apoyo para extender la capacidad
de la memoria: algunos procesos se pasan temporalmente a disco,
recordar (scheduler de largo plazo).
Intercambio (swapping)
El sistema operativo mantiene una tabla que indica qu
partes de la memoria estn desocupadas, y cules en uso. Las
partes desocupadas son hoyos en la memoria; inicialmente,
toda la memoria es un solo gran hoyo. Cuando se crea un
proceso o se trae uno del disco, se busca un hoyo capaz de
contenerlo, y se pone el proceso all.
Las particiones ya no son fijas, sino que van cambiando
dinmicamente, tanto en cantidad como en ubicacin y
tamao. Adems, cuando un proceso es pasado a disco, no
hay ninguna garanta de que vuelva a quedar en la misma
posicin de memoria al traerlo de vuelta, de manera que es
imprescindible el apoyo del hardware para hacer ligadura en
tiempo de ejecucin.
Intercambio (swapping)
Hasta ahora hemos supuesto que los procesos son estticos en
tamao pero es mas realista pensar que pueden crecer, por ejemplo
va asignacin dinmica de memoria. Si es as, conviene reservar un
poco mas de memoria que la que estrictamente necesita al momento
de ponerlo en memoria. Al hacer swapping, no es necesario guardar
todo el espacio que tiene reservado, sino solo el que esta usando.
Que pasa si un proceso quiere crecer mas all del espacio que se le
haba reservado? Si hay un hoyo contiguo se puede usar. Si no, se
puede pasar el proceso a un hoyo mas grande. Si no hay ninguno, se
pasa a disco hasta que haya. Tambin se puede, simplemente, matar
al proceso.
Otro punto que hay que tener en cuenta al usar swapping, es el I/O
que pudiera estar pendiente. Cuando se hace, por ejemplo, input, se
especifica una direccin de memoria donde se va a poner lo que se
lea desde el dispositivo. Supongamos que proceso A trata de leer del
disco hacia la direccin d, pero el dispositivo esta ocupado
Intercambio (swapping)
Si los procesos pueden crecer, conviene reservar un poco ms de
memoria que la que estrictamente necesita al momento de ponerlo en
memoria. Al hacer swapping, no es necesario guardar todo el espacio
que tiene reservado, sino slo el que est usando. Qu pasa si
proceso quiere crecer ms all del espacio que se le haba reservado?
Otro punto que hay que tener en cuenta al usar swappping, es el I/O
que pudiera estar pendiente. Cuando se hace, por ejemplo, input, se
especifica una direccin de memoria donde se va a poner lo que se
lea desde el dispositivo. Supongamos que proceso A trata de leer del
disco hacia la direccin d, pero el dispositivo est ocupado: su
solicitud, por lo tanto, es encolada. Entretanto, el proceso A es
intercambiado a disco, y la operacin se completa cuando A no est
en memoria. En esas circunstancias, lo ledo se escribe en la
direccin d, que ahora corresponde a otro proceso. Para evitar tal
desastre:no pasar a disco procesos co I/O pendiente, o bien hacer
siempre I/O desde y hacia buffers del sistema operativo.
Intercambio (swapping)
Memoria
Se basa en tener un
nico proceso en
memoria principal y el
resto en memoria
secundaria (en tiempo
compartido hay mas
tiempo que en
memoria).
Swapping out
principal
Swapping In
Memoria
secundaria
p.e. Disco duro
Cuando el proceso
acaba, se trae otro de
la memoria auxiliar.
Particiones
La memoria mas simple para permitir multitarea es darle a cada
programa un lugar fijo en memoria para que corra. Dividimos la
memoria en particiones de tamao fijo e instruimos al linker o al
compilador para que se le asigne una direccin fija al programa. Ser
importante ver cual es el rango de direcciones de memoria
comprometido durante la ejecucin de nuestro programa. Pero de esta
manera cuando queramos correrlo deberemos esperar a que ese rango
de direcciones quede libre. Recordemos que estamos hablando de
espacio de memoria plana. Cada proceso a memoria es a una nica
direccin de rango 0-MAXMEM.
Debido a que cada programa debe correr en una particin debe correr
en una particin particular, el sistema operativo debe mantener una
cola de espera separada para manejar cada particin. Cuando se libera
una particin otro programa (el que sigue la cola) puede cargarse y
ejecutarse en esa particin.
Particiones
Otro aspecto en el que se consume espacio de memoria en
este sistema es que ser poco frecuente que un programa
ocupe completamente su particin. Esto se conoce como
fragmentacin interna (aunque en realidad se trata del
fenmeno opuesto a la fragmentacin, con un mismo
resultado:el desperdicio de memoria). Algo de esta memoria
desperdiciada podra aprovecharse si permitimos que mas de
un programa se ejecute dentro de una misma particin.
Particin fija
Descripcin:
La memoria principal se divide en un conjunto de particiones fijas
durante la generacin del sistema. Un proceso se puede cargar en una
particin de mayor o igual tamao.
Ventajas:
Sencilla de implementar; poca sobrecarga del sistema operativo.
Desventajas:
Empleo ineficiente de la memoria debido a la fragmentacin interna; el
numero de procesos activos es fijo.
Proceso 4
Proceso 5
Proceso 1
Libre y
desperdiciada
Particin dinmica
Descripcin:
Las particiones se crean dinmicamente, de forma que cada proceso
se carga en una particin de exactamente el mismo tamao que el
proceso.
Ventajas:
No hay fragmentacin interna; poca sobrecarga del sistema operativo.
Desventajas:
Uso ineficiente del procesador debido a la necesidad de compactacin
para contrarrestar la fragmentacin externa.
Particin simple
Descripcin:
La memoria principal se divide en un conjunto de marcos de igual
tamao que los marcos. Un proceso se carga situando todas sus
paginas en marcos libres pero no necesariamente contiguos.
Ventajas:
No tiene fragmentacin externa
Desventajas:
Hay una pequea cantidad de fragmentacin interna.