You are on page 1of 47

Administracin de la Memoria

Unidad III Sistemas Operativos

Concepto de administracin de la memoria

La organizacin y administracin de la memoria principal , memoria primaria o memoria real de un sistema cmpto ha sido y es uno de los factores ms importantes en el diseo de los S. O. [7, Deitel].

Los trminos memoria y almacenamiento se consideran equivalentes. Los programas y datos deben estar en el almacenamiento principal para:

Poderlos ejecutar. Referenciarlos directamente.

Concepto de administracin de la memoria

La parte del S. O. que administra la memoria se llama administrador de la memoriay su funcin es:

Llevar un registro de las partes de memoria que se estn utilizando y de aquellas que no se estn utilizando. Asignar espacio en memoria a los procesos cuando estos los requieran. Liberar espacio de memoria asignada a procesos que han terminado.

Organizacin del Almacenamiento


Histricamente el almacenamiento principal se ha considerado como un recurso costoso, por lo cual su utilizacin debe optimizarse [7, Deitel]. Administracin del Almacenamiento Independientemente del esquema de organizacin hay que decidir las estrategias que se utilizarn para optimizar el rendimiento.

Las estrategias de administracin deben considerar:


cundo se consigue un nuevo programa para colocar en la memoria?: cuando el sistema pide especficamente o se intenta anticipar a las peticiones?. dnde se colocar el programa que se ejecutar a continuacin?. se prioriza el tiempo de carga o la optimizacin en el uso del almacenamiento?. con qu criterio se desplazarn los programas?.

Jerarqua de Almacenamiento
Los programas y datos tienen que estar en la memoria principal para poder ejecutarse o ser referenciados [7, Deitel]. Por lo cual los programas y datos que no son necesarios de inmediato pueden mantenerse en el almacenamiento secundario. El almacenamiento principal es ms costoso y menor que el almacenamiento secundario, pero de acceso ms rpido. Los sistemas con varios niveles de almacenamiento requieren destinar recursos para administrar el movimiento de programas y datos entre los diversos niveles (ver Figura 3.1 [7, Deitel]

Memoria cach o memoria de alta velocidad


Un nivel adicional es el cach o memoria de alta velocidad, que posee las siguientes caractersticas:

Es ms rpida y costosa que la memoria principal. Impone al sistema un nivel ms de traspaso:

Los programas son trasladados de la memoria principal a la memoria cach antes de su ejecucin.

Los programas en la memoria cach se ejecutan mucho ms rpido que en la memoria principal. Al utilizar memoria cach se espera que:

La sobrecarga que supone el traspaso de programas de un nivel de memoria a otro sea mucho menor que la mejora en el rendimiento obtenida por la posibilidad de una ejecucin mucho ms rpida en la memoria cach.

Estrategias de Administracin del Almacenamiento

Estn dirigidas a la obtencin del mejor uso posible del recurso del almacenamiento principal [7, Deitel]. Se dividen en las siguientes categoras:

Estrategias de bsqueda:

Estrategias de bsqueda por demanda. Estrategias de bsqueda anticipada.

Estrategias de colocacin. Estrategias de reposicin.

Estrategias de Administracin del Almacenamiento

Las estrategias de bsqueda : estn relacionadas con el hecho de cundo obtener el siguiente fragmento de programa o de datos para su insercin en la memoria principal.

En la bsqueda por demanda :se realiza cuando el siguiente fragmento de programa o de datos se carga al almacenamiento principal cuando algn programa en ejecucin lo referencia. Se considera que la bsqueda anticipada : consiste en determinar el fragmento de programa o de datos que se almacenar en la memoria principal, esta puede producir un mejor rendimiento del sistema.

Las estrategias de colocacin :estn relacionadas con la determinacin del lugar de la memoria donde se colocar (cargar) un nuevo programa. Las estrategias de reposicin :estn relacionadas con la determinacin de qu fragmento de programa o de datos desplazar para dar lugar a los nuevos programas.

Asignacin Contigua de Almacenamiento. Dentro de esta asignacin se encuentran: la asignacin contigua y la asignacin no contigua En la asignacin contigua cada programa ocupa un bloque contiguo y sencillo de localizaciones de almacenamiento. En la asignacin no contigua un programa se divide en varios bloques o segmentos que pueden almacenarse en direcciones que no tienen que ser necesariamente adyacentes, por lo que es ms compleja pero ms eficiente que la asignacin contigua.

Asignacin Contigua de Almacenamiento de Un Solo Usuario

Se consideran S. O. que ya poseen desarrollado el sistema de control de entrada / salida: IOCS: input / output control system (ver Figura 3.2 [7, Deitel]). El tamao de los programas est limitado por la cantidad de memoria principal, pero se puede superar este lmite con tcnicas de recubrimientos,

Multiprogramacin de Particin Fija


Los sistemas de un solo usuario desperdician gran cantidad de recursos computacionales debido a que [7, Deitel] (ver Figura 3.4 [7, Deitel]): Cuando ocurre una peticin de e / s la cpu normalmente no puede continuar el proceso hasta que concluya la operacin de e / s requerida. Los perifricos de e / s frenan la ejecucin de los procesos, ya que comparativamente el cpu es ms rpido que los dispositivos de e / s.

Multiprogramacin de Particin Fija (continuacin)

Los sistemas de multiprogramacin permiten que varios procesos usuarios compitan al mismo tiempo por los recursos del sistema: Un trabajo en espera de e / s ceder la cpu a otro trabajo que est listo para efectuar el procesamiento. Existe paralelismo entre el procesamiento y los dispositivos de e/s. Se incrementa la utilizacin del cpu y la capacidad global de ejecucin del sistema. Es necesario que varios trabajos residan a la vez en la memoria principal.

Multiprogramacin de Particin Fija: Traduccin y Carga Absolutas Las particiones del almacenamiento principal: Son de tamao fijo. Almacena un proceso en cada particin. El cpu se cambia rpidamente entre los procesos creando la ilusin de simultaneidad. Los trabajos se traducan con ensambladores y compiladores absolutos para ser ejecutados solo dentro de una particin especfica (ver Figura 3.5 [7, Deitel]).

Multiprogramacin de Particin Fija: Traduccin y Carga Absolutas (continuacin)

El S. O. resulta de implementacin relativamente sencilla pero no se

optimiza la utilizacin de la memoria.

Multiprogramacin de Particin Fija: Traduccin y Carga Relocalizables

Los compiladores, ensambladores y cargadores de relocalizacin: Se usan para producir programas que puedan ser ejecutados en cualquier particin disponible de tamao suficiente para aceptarlos (ver Figura 3.6 [7, Deitel]). Son ms complejos que los absolutos. Mejoran la utilizacin del almacenamiento. Confieren ms flexibilidad en el armado de la carga de procesos.

Proteccin en los Sistemas de Multiprogramacin


Si se utiliza asignacin contigua de memoria la proteccin suele implementarse con varios registros de lmites (ver Figura 3.7 y Figura 3.8 [7, Deitel]). Los extremos superior e inferior de una particin pueden ser: Delineados con dos registros. Indicados el lmite inferior o superior y el tamao de la particin o regin.

Fragmentacin en la Multiprogramacin de Particin Fija

La fragmentacin de almacenamiento ocurre en todos los sistemas independientemente de su organizacin de memoria. En los S. O. de multiprogramacin de particin fija la fragmentacin se produce cuando: Los trabajos del usuario no llenan completamente sus particiones designadas. Una particin permanece sin usar porque es demasiado pequea para almacenar un trabajo que est en espera.

Multiprogramacin de Particin Variable de memoria

Los procesos ocupan tanto espacio como los necesitan, pero no deben superar el espacio disponible de memoria [7, Deitel] (ver Figura 3.9 [7, Deitel]). No hay lmites fijos de memoria, es decir que la particin de un trabajo es su propio tamao. Se consideran esquemas de asignacin contigua, dado que un programa debe ocupar posiciones adyacentes de almacenamiento. Los procesos que terminan dejan disponibles espacios de memoria principal llamados agujeros: Pueden ser usados por otros trabajos que cuando finalizan dejan otros agujeros menores. En sucesivos programas los agujeros son cada vez ms numerosos pero ms pequeos, por lo que se genera un desperdicio de memoria principal.

Compactacin de Almacenamiento
Combinacin de agujeros (reas libres) Consiste en fusionar agujeros adyacentes para formar uno ms grande. Se puede hacer cuando un trabajo termina y el almacenamiento que libera tiene lmites con otros agujeros. Compactacin de Almacenamiento Puede ocurrir que los agujeros (reas libres) separados por todo el almacenamiento principal constituyan una cantidad importante de memoria: Podra ser suficiente (el total global disponible) para alojar a procesos en colas en espera de memoria. Podra no ser suficiente para ningn rea libre individual (ver Figura 3.10 [7, Deitel]).

Compactacin de Almacenamiento (continuacin)

La tcnica de compactacin de memoria consiste en pasar todas las reas ocupadas del almacenamiento a uno de los extremos de la memoria principal: Deja un solo agujero grande de memoria libre contigua. Esta tcnica se denomina recogida de residuos (ver Figura 3.11 [7, Deitel]).

Compactacin de Almacenamiento (continuacin)

Principales desventajas de la compresin Consume recursos del sistema (ver Figura 3.12 [7, Deitel]). El sistema debe interrumpir todo mientras efecta la compresin, lo que puede afectar los tiempos de respuesta. Implica la relocalizacin (reubicacin) de los procesos que se encuentran en la memoria:

La informacin de relocalizacin debe ser de accesibilidad inmediata.

Una alta carga de trabajo significa mayor frecuencia de compresin que incrementa el uso de recursos.

Estrategias de Colocacin del Almacenamiento

Se utilizan para determinar el lugar de la memoria donde sern colocados los programas y datos que van llegando a la memoria y se clasifica de la siguiente manera:

Estrategia de mejor ajuste:

Un trabajo o proceso nuevo es colocado en el espacio en el cual insertarse de forma ms ajustada una caracterstica es que debe dejarse el menor espacio sin usar. Un trabajo nuevo es colocado en el primer espacio de memoria disponible con tamao suficiente para almacenarlo. Consiste en colocar un programa en el almacenamiento principal en la cual se inserte de la peor manera el programa, es decir en el ms grande posible. El espacio restante es tambin grande para poder almacenar a un nuevo programa relativamente grande.

Estrategia de primer ajuste:

Estrategia de peor ajuste:

Introduccin a la Organizacin del Almacenamiento Virtual

Almacenamiento virtual significa la capacidad de direccionar un espacio de almacenamiento mucho mayor que el disponible en el almacenamiento primario de determinado sistema de computacin [7, Deitel]. Esta tecnologa apareci en 1960 en la Universidad de Manchester (Inglaterra), en el sistema Atlas. Los mtodos ms comunes de implementacin son mediante:

Tcnicas de paginacin. Tcnicas de segmentacin. Una combinacin de ambas tcnicas.

Introduccin a la Organizacin del Almacenamiento Virtual (continuacin)


Las direcciones generadas por los programas en su ejecucin no son, necesariamente, aquellas contenidas en el almacenamiento primario (memoria real), ya que las direcciones virtuales suelen seleccionarse dentro de un nmero mucho mayor de direcciones que las disponibles dentro del almacenamiento primario. La evolucin en las organizaciones de almacenamiento puede resumirse como sigue: Real: Sistemas de multiprogramacin en memoria real Multiprogramacin en particin fija:

Multiprogramacin en particin variable.

Absoluta. Relocalizable (reubicable). Virtual:

Multiprogramacin en almacenamiento virtual:


Paginacin pura. Segmentacin pura. Combinacin paginacin / segmentacin. Conceptos Bsicos de Almacenamiento Virtual

Principales Concepto de almacenamiento virtual


Los principales conceptos son los siguientes: Direcciones virtuales:

Memoria virtual:

Son las referidas por un proceso en ejecucin. Es la capacidad de mover paginas entre la memoria principal y el almacenamiento secundario. Son las disponibles dentro del almacenamiento primario.

Direcciones reales:

Espacio de direcciones virtuales (v) de un proceso:

Espacio de direcciones reales (r) de un computador:

Es el nmero de direcciones virtuales a que puede hacer referencia el proceso. Es el nmero de direcciones reales disponibles en el ordenador.

Los procesos hacen referencia a direcciones virtuales pero stas deben


ejecutarse en el almacenamiento real:

La traduccin de direcciones deber hacerse rpidamente para no degradar al sistema.

Las direcciones virtuales deben ser transformadas dentro de las direcciones reales, mientras el proceso est en ejecucin.

Organizacin del Almacenamiento

Existen varios medios para asociar las direcciones virtuales con las reales (ver Figura 3.13 [7, Deitel]).

Los mecanismos de traduccin dinmica de direcciones (dat) convierten las direcciones virtuales en reales al ejecutarse el proceso. Las direcciones contiguas dentro del espacio de direcciones virtuales de un proceso no tienen por qu ser contiguas dentro del almacenamiento real, a esto se denomina contigidad artificial (ver Figura 3.14 [7, Deitel]).

Organizacin del Almacenamiento de Niveles Mltiples

Se deben proporcionar los medios para retener programas y datos en un gran almacenamiento auxiliar para:

Permitir que el espacio de direcciones virtuales de un usuario sea mayor que el espacio de direcciones reales. Soportar multiprogramacin de forma efectiva en un sistema con muchos usuarios que compartan el almacenamiento real.

Conceptos Bsicos de Paginacin


Las pginas se transfieren del almacenamiento secundario al primario en bloques llamados marcos de pginas: Tienen el mismo tamao que las pginas. Comienzan en direcciones del almacenamiento real que son mltiplos enteros del tamao fijo de la pgina. Podr colocarse una nueva pgina dentro de cualquier marco de pgina o celda de pgina disponible. La traduccin dinmica de direcciones incluye:

La direccin de almacenamiento real se forma por la concatenacin de p y d.

Un proceso en ejecucin hace referencia a una direccin virtual v = (p,d) (ver Figura 3.18 [7, Deitel]). Un mecanismo de transformacin de pginas busca la pgina p en la tabla de pginas y determina si la pgina p se encuentra en el marco de pgina p .

Conceptos Bsicos de Paginacin (continuacin)

La tabla de mapa de pginas debe indicar si se encuentra o no en el almacenamiento primario la pgina referenciada: En caso afirmativo dnde est en la memoria real. En caso negativo dnde puede estar en el almacenamiento secundario. La direccin de almacenamiento primario a, donde comienza el marco de pagina p (suponiendo un tamao de pgina p), est dada por: a = (p) (p ); se supone marcos de pgina numerados 0, 1, 2, etc. (ver Figura 3.19, Figura 3.20 y Figura 3.21 [7, Deitel]).

Segmentacin

En los sistemas de segmentacin un programa y sus datos pueden ocupar varios bloques separados de almacenamiento real (ver Figura 3.26 [7, Deitel]). Los bloques:

No necesitan ser de igual tamao. Los bloques separados no necesitan ser adyacentes. Deben estar compuestos de posiciones contiguas de almacenamiento. Se complica la proteccin de bloques de memoria de un proceso de usuario. Es ms difcil limitar el rango de acceso de cualquier programa [7, Deitel].

Ventajas de la admn. De la memoria virtual


El tamao de un programa ya no queda sujeto al tamao de la memoria. La memoria se utiliza con mayor eficacia, porque las nicas secciones de una tarea almacenada en la memoria son las que se necesitan de inmediato, en tanto que la que no se precisan se mantienen en el almacenamiento principal. Permite de una cantidad ilimitada de multiprogramacin. Permite compartir cdigo y datos.

Desventajas de la admn. De la memoria virtual

Costo de hardware de procesador ms alto. Mayor carga general para el manejo de interrupciones de paginacin. Incremento en la complejidad del software para evitar la hiperpaginacin.

UNIDAD IV
PLANIFICADOR DEL PROCESADOR

ALGORITMO DE PLANIFICACIN DE PROCESOS


El planificador del procesos se apoya en un algoritmo de planificacin de procesos, basado en una poltica especfica para asignar al CPU y mover los trabajos por el sistema. Los primeros sistemas operativos utilizaban polticas no apropiativas, diseadas para mover los trabajos por lotes. La mayor parte de los sistemas actuales hacen nfasis en el uso interactivo en tiempo de respuesta. Estos algoritmos son: Primero en entrar, primero en servirse (FCFS). Sigue el trabajo ms corto (SJN). Tiempo restante ms breve (SRT). Round Robin
Concepto: Poltica de planificacin apropiativa: Es una estrategia de planificacin que interrumpe el procesamiento de un trabajo y transfiere el procesador a otro trabajo. Poltica de planificacin no apropiativa: Esta consiste en que una vez que un trabajo captura el procesador e inicia su ejecucin, se mantiene en estado de ejecucin hasta que emite una solicitud de e/s (espera natural) o hasta que termina (excepto ciclos infinitos).

Primero en entrar, primero en servirse (FCFS)


Es un algoritmo de planificacin no apropiativo que maneja los trabajos de acuerdo con su tiempo de arribo. Conformen entran son servidos. Es un algoritmo simple de interpretar porque utiliza un tipo de cola FIFO. Este algoritmo esta bien para los sistemas de procesamiento por lote, pero no as para los sistemas interactivos porque los usuarios interactivos requieren tener tiempos de respuestas ms corto. Con los FCFS, conforme un nuevo trabajo entra en el sistema su PCB queda vinculado a la cola de LISTO y es eliminado en la parte delantera cuando el procesador queda disponible. No existe cola de BLOQUEADO, o sea que cada trabajo se ejecuta hasta su terminacin).

Ejemplo del FCFS

Considere los siguientes tres procesos:

El proceso A, tiene un ciclo del procesador de 15 milisegundo. El Proceso B, tiene un ciclo del procesador de 2 milisegundo. El trabajo C, tiene un ciclo del procesador de 1 milisegundo.

Para cada trabajo, el ciclo del procesador contiene tanto el uso real como las solicitudes de entrada/salida. El algoritmos se representa a travs de un diagrama con una secuencia de llegada A,B,C.

Continuacin

Proceso A

proceso B

proceso C

15

17

18

Si los tres procesos llegan de manera simultanea, podemos calcular el tiempo de retorno para el proceso A es de 15, para el proceso B es de 17 y para el proceso C es de 18, por lo que el tiempo de retorno promedio es: (15+17+18)= 16.67 3 Sin embargo, si los procesos llegasen en un orden diferente, C, B, A, los resultados serian, segn se muestran a continuacin.
Proceso C 0 1 proceso B 3 proceso A

18

Para este ejemplo el tiempo de retorno para el proceso A es de 18, para el proceso B es de 3 y para el proceso C es de 1. El tiempo promedio total es: (18+3+1)= 7.3 3

Algoritmo Sigue el trabajo ms corto (SJN)


Es un algoritmo de planificacin no apropiativa (tambin conocido como trabajo ms corto primero o SJF) que maneja los trabajos con base en la duracin de su ciclo del CPU. Es muy fcil de implementar en entornos por lotes, donde cada usuario genera por adelantado el tiempo estimado del CPU requerido para ejecutar el trabajo al inicio del mismo. Sin embargo no funciona en los sistemas interactivos, porque los usuarios no prevn el tiempo del CPU requerido para ejecutar sus trabajos.

Ejemplo del SJN

A continuacin se presentan cuatro procesos por lotes, todos en la cola de listos, para el cual el ciclo del CPU o tiempo de ejecucin se estima como sigue:

Proceso

Ciclo del CPU

El algoritmo SJN revisara los cuatro trabajos y los programara para procesamiento en este orden; B, D, A, C. La lnea de tiempo es la siguiente figura

Proceso B 0 2

proceso D 6

proceso A 11

proceso C

17

Figura. Lnea de tiempo para la secuencia de los proceso B, D, A, C con el algoritmo SJN

El tiempo de retorno promedio es: (2+6+11+17)= 9.0 4

Ejemplo (continuacin)

Se puede observar en la figura anterior que el proceso termina en su tiempo dado (2), el trabajo D acaba en su tiempo dado, ms el tiempo que esperar para que se ejecutara b(4+2), el trabajo A, finaliza en su tiempo dado, ms los tiempos de D ms B(5+4+2) y el trabajo C termina en su tiempo dado, ms los tres anteriores (6+5+4+2), por lo que al calcular el promedio tenemos:

[(2)+(4+2)+(5+4+2)+(6+5+4+2)]= 9.0 4

Algoritmo: Tiempo restante ms breve (SRT) Es la versin apropiativa del algoritmo SJN. El procesado se asigna al trabajo que ste por terminar. Pero incluso este trabajo se puede hacer a un lado si un trabajo ms reciente en la cola de listo, tiene un tiempo de terminacin ms breve. Este algoritmo no es implementable en un sistema interactivo, porque requiere saber por adelantado cuanto tiempo del CPU representa la terminacin de cada trabajo.

Ejemplo del SRT

El siguiente ejemplo, presenta la forma en que trabaja el algoritmo SRT, con cuatro procesos que han llegado en rpida sucesin (con diferencia de un ciclo de CPU).
Tiempo de llegada Proceso Ciclo del CPU 0 A 6 1 B 3 2 C 1 3 D 4

Aqu el proceso A, es desplazado por el proceso B, ya que este tiene menos tiempo del CPU restante Aqu el proceso B es desplazado por el proceso C, ya que este tiene menos tiempo del CPU restante Ahora el proceso B puede continuar ya que el proceso C ha terminado.

El proceso D es el siguiente en correr ya que necesita menos tiempo del CPU para terminar que el proceso A.
Aqu el proceso A se le permite terminar

Proceso A

proceso B 1

proceso C

proceso B 3

proceso D

proceso A 9 14

Lnea de tiempo para los proceso A, B, C, D con el algoritmo apropiante SRT. Cada trabajo se interrumpe despus del un ciclo del CPU, si hay otro con menos tiempo restante de CPU

Ejemplo del SRT (continuacin)

El tiempo de retorno es el tiempo de terminacin de cada proceso, menos su tiempo de llegada.

Proceso Tiempo de retorno

A 14

B 4

C 1

D 6

El tiempo promedio de retorno es: (14+4+1+6)= 6.25 4

Algoritmo: Round Robin

Es un algoritmo de planificacin apropiante muy difundido en sistemas interactivos, ya que es fcil de implementar y no se basa en la caracterstica del trabajo , si no en una fraccin de tiempo predeterminada de tiempo se realiza a cada trabajo, para asegurar que los procesos activos compartan por igual el CPU y que ningn trabajo lo monopolice. Esta fraccin de tiempo se conoce como quantum de tiempo y su desempeo es importante para el desempeo del sistema. Por lo que varia de 100 milisegundos a 1 o 2 segundos. Los trabajos se colocan en la cola de listos, utilizando el esquema primero en entrar, primero en salir y el planificador de proceso selecciona el primero en la parte delantera de la cola, iniciando el reloj en el quantum de tiempo y asigna el CPU a este trabajo. Si el trabajo expira el tiempo, se retira colocndose en la cola de listo y su informacin se guarda en el PCB. En el caso que el ciclo del CPU del trabajo sea mas breve que el quantum de tiempo, ocurria una de dos situaciones:

Algoritmo: Round Robin (continuacin)


1) Si se trata del ultimo ciclo del CPU del trabajo y este ha terminado, todos los recursos asignados al mismo se liberan y el trabajo completado se devuelve al usuario. 2) Si una solicitud de e/s ha interrumpido el ciclo del CPU, la informacin de la tarea se guarda en el PCB y queda vinculada al final de la cola apropiada de e/s. luego una vez satisfecha la solicitud de e/s, de devuelve al fina de la cola de listo para esperar la asignacin de la CPU.

Ejemplo

En los siguientes procesos se utilizan el algoritmo round robin, con una fraccin de tiempo de 4 milisegundo (se ignoran las solicitudes de e/s).
Tiempo de llegada proceso Ciclo del CPU 0 A 8 1 B 4 2 C 9 3 D 5

Proceso A 0 4

proceso B 8

proceso C 12

proceso D 16

proceso A 20

Proceso C 24

Proceso D

proceso C 25 26

El tiempo de retorno es el lapso en que se termina, menos el tiempo de llegada


Proceso Ciclo del CPU A 20 B 7 C 24 D 22

Por lo que el tiempo promedio de retorno es: (20+7+24+22)= 18.25 4

ejercicio

En los siguientes procesos utilizando el algoritmo round robin, con una fraccin de tiempo de 2 milisegundo, realice la lnea de tiempo, tiempo de retorno de cada proceso y tiempo promedio de retorno.
Tiempo de llegada
proceso Ciclo del CPU

0
A 5

1
B 6

2
C 7

3
D 4

En los siguientes procesos utilizando el algoritmo tiempo restante mas breve, realice la lnea de tiempo, tiempo de retorno de cada proceso y tiempo promedio de retorno.
Tiempo de llegada
proceso

0
A

1
B

2
C

3
D

Ciclo del CPU

You might also like