Diapositiva 1 - PowerPoint PPT Presentation

1 / 24
About This Presentation
Title:

Diapositiva 1

Description:

Title: Diapositiva 1 Author: Lizette Concha Last modified by: Lizette Concha Created Date: 7/22/2003 7:23:07 AM Document presentation format: Presentaci n en pantalla – PowerPoint PPT presentation

Number of Views:33
Avg rating:3.0/5.0
Slides: 25
Provided by: Lizette6
Category:

less

Transcript and Presenter's Notes

Title: Diapositiva 1


1
BUFFER
Es el área de almacenaje temporal, por lo general en la RAM. El objetivo de la mayor parte del Buffer es de actuar como un área propia, necesita el permiso de la CPU antes de la transferencia de datos a un dispositivo. Como la lectura y la escritura de datos a un disco son relativamente lentos, muchos programas almacenan la información de los cambios de datos dentro de un Buffer y luego lo copian a un disco. Por ejemplo, los procesadores de texto emplean un buffer para almacenar los cambios de un archivo. Entonces cuando se guarda el archivo, el procesador de texto lo pone al día, respecto a los cambios efectuados con el contenido del Buffer.
 
2
BUFFER
Esto es mucho más 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 información que tengamos almacenada
dentro del Buffer se pierde, por eso muchas veces
cuando hacemos un documento, es aconsejable
guardar la información cada cierto tiempo. Otro
ejemplo común de Buffer, es utilizado para la
impresión de documentos, cuando entra una orden
de impresión, la información del documento se
guarda dentro del buffer, y cuando ha recogido
toda la información y después de hacer la
comprobación de si se quiere seguir con el
proceso de impresión pasa toda la información al
papel a través de la impresora.
3
Es un área de memoria principal
reservada para contener los datos leídos 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 número de accesos al
almacenamiento se reduzca.  
BUFFER
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 configuración de cada sistema y se mide en
términos de tiempos que consume el
desplazamiento, el retraso por rotación y el
tiempo de transferencia. Cada sector objeto de
lectura anticipada consume un equivalente de
memoria de 512 bytes.   En esta ocasión 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.  
4
  • Almacenamiento temporal único por demanda
  •  
  •     Es utilizado cuando existe un registro por
    bloque y un almacenamiento por archivo. En este
    caso el buffer es llenado por demanda del
    programa del usuario.
  • El buffer contiene un apuntador al programa y un
    área de datos.
  • El programa de canal es similar a este
  • Esperar que se pida una lectura.
  • Mandar una orden de E/S a la unidad de control.
  • Esperar a que se llene el buffer.
  • Generar una interrupción para que se utilice el
    buffer.
  • En esta espera el CPU y el programa del usuario
    están ociosos.
  •  

5
Almacenamiento temporal por anticipación      
Se utiliza para evitar esos tiempos ociosos, o
sea que se pretende anticipar a la solicitud de
lectura del programa manteniendo el buffer lleno.
La estructura de este tipo de buffer esta
formado por un apuntador al programa, una bandera
de estado (0 vacío, 1 lleno) y el área de datos.
El canal esta revisando continuamente la
bandera y si el buffer utiliza la bandera cambia
su estado para que el buffer sea llenado de
nuevo.    
6
Programa de canal para llenar el buffer      
Ciclo  Si bandera1 ir a ciclo                
Emite un comando de inicio E/S a la Unidad de
Control                 Esperar mientras el
buffer se llena                 Bandera 1
                Ir a ciclo.     Programa de
canal para desalojar el buffer       Espera  
Si bandera 0 ir a espera                    
Lee el contenido del buffer en el área de trabajo
del registro                     Bandera 0
                    Ir a espera.    
7
Almacenamiento temporal con bloques       Este
caso se utiliza para cuando en el bloque leído
existen n registros.La estructura del buffer
incluye un contador (respecto a la estructura
anterior) para indicar el registro (registro del
buffer) próximo a leer.     Programa de canal
para llenar el buffer       Ciclo  Si bandera
1 ir a ciclo                 Emite un comando
de E/S a la unidad de control                
Esperar mientras el buffer se llena
                Contador 1                
Bandera 1                 Ir a ciclo.    
8
Programa de canal para desalojar el buffer  
    Espera   Si bandera 0 ir a espera.
                    Lee el registro (contador)
dentro del área de trabajo.                    
contador contador 1                     Si
contador gt n                     Bandera 0
                    Vete a espera       La
rutina de desalojo esta en espera de las
lecturas, pero el programa puede ejecutar otras
instrucciones en ese tiempo y mientras se
desaloja no puede ser llenado.
9
Doble almacenamiento temporal       Es
utilizado para n registros por bloque, en este
caso existen dos buffers, uno se llena mientras
el otro desaloja, esto reduce la espera.
Lógicamente la estructura del buffer cambia,
incluye un apuntador al otro buffer. Existen
dos apuntadores para utilizar la anticipación de
llenado y desalojo, estos son   P-llenar
Apunta al buffer que se esta llenando o debe
llenarse. P-desalojo Apunta al buffer que se
esta desalojando o debe desalojarse.  Se llena
el buffer apuntado por P-llenar  
10
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á
llenándose                 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ío.    
11
Programa de desalojo   Espera   Si
P-desalojo .bandera-llenar0 ir a espera
                    Leer registro (P-vacío
.contador) dentro del área de trabajo del
Registro                     P-desalojo
.contador P-desalojo .contador 1
                    Si P-desalojo .contador gt 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á vacío
o empieza a llenarse. Si el buffer es llenado
con más 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.  
12
Triple almacenamiento temporal       En esta
situación se pretende que el buffer 1 este lleno,
el buffer 2 se este llenando y el buffer 3 este
desalojando.   Si persiste el problema de que
el llenado es más rápido que el desalojo, la
rutina de desalojo tendrá que esperar. El tener
varios buffers en actividad es que los periodos
ociosos se reducen, pero a su vez aumenta la
complejidad, el tiempo de ejecución de las
rutinas de llenado y desalojo y lo que se
requiere de memoria principal.  
13
El BUFFER o CACHE es una memoria que va incluida
en la controladora interna del disco duro, de
modo que todos los datos que se leen y escriben a
disco duro se almacenan primeramente en el
buffer. La regla de mano aquí es 128kb-Menos de 1
Gb, 256kb-1Gb, 512kb-2Gb o mayores. Generalmente
los discos traen 128Kb o 256Kb de cache.    
Memoria CACHE (tamaño del BUFFER) 
Si un disco duro está bien organizado (si no,
utilizar una utilidad desfragmentadora DEFRAG,
NORTON SPEEDISK, etc.), la serie de datos que se
va a necesitar a continuación de una lectura
estará situada en una posición físicamente
contigua a la última lectura, por eso los discos
duros almacenas en la caché los datos contiguos,
para proporcionar un acceso más rápido sin tener
que buscarlos. De ahí la conveniencia de
desfragmentar el disco duro con cierta
frecuencia. El buffer es muy útil cuando se está
grabando de un disco duro a un CD-ROM, pero en
general, cuanto más grande mejor, pues contribuye
de modo importante a la velocidad de búsqueda de
datos.
14
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 habría razones para usar nada
    diferente.
  • Pero en un sistema interactivo, de tiempo
    compartido, la situación 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).

15
  • Intercambio (swapping)
  • El sistema operativo mantiene una tabla que
    indica qué partes de la memoria están
    desocupadas, y cuáles 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 dinámicamente, tanto en cantidad como
    en ubicación y tamaño. Además, cuando un proceso
    es pasado a disco, no hay ninguna garantía de que
    vuelva a quedar en la misma posición de memoria
    al traerlo de vuelta, de manera que es
    imprescindible el apoyo del hardware para hacer
    ligadura en tiempo de ejecución.

16
Intercambio (swapping)
  • Hasta ahora hemos supuesto que los procesos son
    estáticos en tamaño pero es mas realista pensar
    que pueden crecer, por ejemplo vía asignación
    dinámica 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 había 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.
    También 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 dirección 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
    dirección d, pero el dispositivo esta ocupado

17
Intercambio (swapping)
  • Si los procesos pueden crecer, conviene reservar
    un poco más 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 sólo el que
    está usando. Qué pasa si proceso quiere crecer
    más allá del espacio que se le había 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 dirección 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
    dirección d, pero el dispositivo está ocupado su
    solicitud, por lo tanto, es encolada. Entretanto,
    el proceso A es intercambiado a disco, y la
    operación se completa cuando A no está en
    memoria. En esas circunstancias, lo leído se
    escribe en la dirección d, que ahora corresponde
    a otro proceso. Para evitar tal desastreno pasar
    a disco procesos co I/O pendiente, o bien hacer
    siempre I/O desde y hacia buffers del sistema
    operativo.

18
Intercambio (swapping)
  • 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).
  • Cuando el proceso acaba, se trae otro de la
    memoria auxiliar.

Swapping out
Memoria principal
Swapping In
Memoria secundaria p.e. Disco duro
19
  • 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 tamaño fijo e instruimos al linker
    o al compilador para que se le asigne una
    dirección fija al programa. Será importante ver
    cual es el rango de direcciones de memoria
    comprometido durante la ejecución 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 dirección de
    rango 0-MAXMEM.
  • Debido a que cada programa debe correr en una
    partición debe correr en una partición
    particular, el sistema operativo debe mantener
    una cola de espera separada para manejar cada
    partición. Cuando se libera una partición otro
    programa (el que sigue la cola) puede cargarse y
    ejecutarse en esa partición.

20
  • 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
    partición. Esto se conoce como fragmentación
    interna (aunque en realidad se trata del fenómeno
    opuesto a la fragmentación, con un mismo
    resultadoel desperdicio de memoria). Algo de
    esta memoria desperdiciada podría aprovecharse si
    permitimos que mas de un programa se ejecute
    dentro de una misma partición.

21
  • Partición fija
  • Descripción
  • La memoria principal se divide en un conjunto de
    particiones fijas durante la generación del
    sistema. Un proceso se puede cargar en una
    partición de mayor o igual tamaño.
  • Ventajas
  • Sencilla de implementar poca sobrecarga del
    sistema operativo.
  • Desventajas
  • Empleo ineficiente de la memoria debido a la
    fragmentación interna el numero de procesos
    activos es fijo.

22
  • En la mayoría de los esquemas de gestión de
    memoria, se puede suponer que el esquema
    operativo ocupa una parte fija de la memoria
    principal y que el resto de la memoria esta
    disponible para ser usada por varios procesos. El
    esquema mas sencillo de gestión de la memoria
    disponible es dividirla en regiones con limites
    fijos.

Proceso 5
Proceso 4
Libre y desperdiciada
Proceso 1
Memoria con partición fija
23
  • Partición dinámica
  • Descripción
  • Las particiones se crean dinámicamente, de forma
    que cada proceso se carga en una partición de
    exactamente el mismo tamaño que el proceso.
  • Ventajas
  • No hay fragmentación interna poca sobrecarga
    del sistema operativo.
  • Desventajas
  • Uso ineficiente del procesador debido a la
    necesidad de compactación para contrarrestar la
    fragmentación externa.

24
  • Partición simple
  • Descripción
  • La memoria principal se divide en un conjunto de
    marcos de igual tamaño que los marcos. Un proceso
    se carga situando todas sus paginas en marcos
    libres pero no necesariamente contiguos.
  • Ventajas
  • No tiene fragmentación externa
  • Desventajas
  • Hay una pequeña cantidad de fragmentación interna.
Write a Comment
User Comments (0)
About PowerShow.com