Linia del tiempo
Sistemas operativos
jueves, 17 de diciembre de 2015
Unidad 2 Administracion de Procesos y del procesador
Investigacion
Las instrucciones de un programa destinadas a ser
ejecutadas por el microprocesador.
Su estado de ejecución en un momento dado, esto es,
los valores de los registros de la CPU para dicho programa.
Su memoria de trabajo, es decir, la memoria que ha
reservado y sus contenidos.
Página:
http//www.SistemasOperativos.com/unidad2S.O/fwlink/p/?Linkld=255141.
Un proceso no es más que un programa en ejecución,
e incluye los valores actuales del contador de programa, los registros y las
variables. Conceptualmente cada uno de estos procesos tiene su propia CPU
virtual. Desde luego, en la realidad la verdadera CPU conmuta de un proceso a
otro.
Un proceso es un concepto manejado por el sistema
operativo que consiste en el conjunto formado por:
![*](file:///C:\Users\ADMINI~1\AppData\Local\Temp\msohtmlclip1\01\clip_image001.gif)
![*](file:///C:\Users\ADMINI~1\AppData\Local\Temp\msohtmlclip1\01\clip_image001.gif)
![*](file:///C:\Users\ADMINI~1\AppData\Local\Temp\msohtmlclip1\01\clip_image001.gif)
Otra información que permite al sistema operativo
su planificación.
Esta definición varía ligeramente en el caso de
sistemas operativos multihilo, donde un proceso consta de uno o más hilos,
la memoria de trabajo (compartida por todos los hilos) y la información de
planificación. Cada hilo consta de instrucciones y estado de ejecución.
Los procesos son creados y destruidos por el
sistema operativo, así como también este se debe hacer cargo de la comunicación
entre procesos, pero lo hace a petición de otros procesos. El mecanismo por el
cual un proceso crea otro proceso se denomina bifurcación (fork). Los nuevos
procesos pueden ser independientes y no compartir el espacio de memoria con el
proceso que los ha creado o ser creados en el mismo espacio de memoria.
En los sistemas operativos multihilo es posible
crear tanto hilos como procesos. La diferencia estriba en que un proceso
solamente puede crear hilos para sí mismo y en que dichos hilos comparten toda
la memoria reservada para el proceso.
En este modelo: todo software ejecutable de la
computadora, lo que a menudo incluye al sistema operativo, está organizado en
una serie del proceso secuenciales, o simplemente procesos.
La idea clava aquí es que un proceso es una
actividad de algún tipo: tiene programa, entrada, salida y un estado. Se puede
compartir un procesador entre varios procesos, usando algún algoritmo de
planificación para determinar cuándo debe de trabajar en un proceso para
atender a uno distinto.
Jerarquías de procesos
Los sistemas operativos que manejan el concepto de
proceso deben contar con algún mecanismo para crear todos los procesos
necesarios. En los sistemas muy sencillos, o en los diseñados para ejecutar
solo una aplicación.
En otros sistemas operativos existen llamadas al
sistema para crear un proceso, cargar su memoria y ponerlo en ejecutar. Sea cual
sea la naturaleza exacta de la llamada al sistema. Los procesos necesitan poder
crear otros procesos.
En MINIX, los procesos se crean con la llamada al
sistema FORK (bifurcar), que crea una copia idéntica del proceso invocador. El
proceso hijo también puede ejecutar FORK, así que es posible tener un árbol de
proceso.
Estados de procesos
El estado de un proceso define su actividad actual.
Durante su existencia, un proceso pasa por una serie de estados discretos.
Estos estados son se muestran en el siguiente diagrama:
Estos elementos se organizan en
tres grupos: estado del procesador, imagen de memoria y tablas del sistema
operativo.
El estado del procesador está formado por el contenido de todos sus
registros, que se enumeran seguidamente:
- Registros generales. De existir registros específicos de coma flotante también se incluyen aquí.
- Contador de programa.
Información del proceso
- Puntero de pila.
- Registro o registros de estado.
- Registros especiales. Como puede ser el RIED (registro identificador de espacio de direccionamiento).
El estado del procesador de un proceso reside en los registros del
procesador, cuando el proceso está en ejecución, o en el bloque de control de
proceso (BCP), cuando el proceso no está en ejecución.
Cuando el proceso está ejecutando, el estado del procesador varía de
acuerdo al flujo de instrucciones maquina ejecutado. En este caso, la copia del
estado del procesador que reside en el BCP no está actualizada. Téngase en
cuenta que los registros de la maquina se utilizan para no tener que acceder a
la información de memoria, dado que es mucho más lenta. Por tanto, no tiene
sentido plantear que, en cada modificación de un registro, se actualice su
valor en el BCP, puesto que está en memoria.
Sin embargo, cuando se detiene la
ejecución de un proceso, como consecuencia de la ejecución de una interrupción,
es muy importante que el sistema operativo actualice la copia del estado del
procesador en su BCP. En términos concretos, la rutina del sistema operativo
que trata las Interrupciones lo primero que ha de hacer es salvar el estado del
procesador en el BCP del proceso interrumpido.
Se describe cada uno de estos procesos:
Estado
|
Descripción
|
Nuevo
|
Se dice que un proceso está en estado de nuevo
cuando apenas se encuentra en proceso de crearse.
|
Listo
|
Un proceso está en estado de listo, cuando podría
usar una UCP, si hubiera una disponible.
|
En ejecución
|
Se dice que un proceso está estado de ejecución,
si en ese momento tiene está ocupando la CPU.
|
Bloqueado
|
Se dice que un proceso está en estado de
bloqueado, si espera que ocurra algo, como por ejemplo, la terminación de una
E/S, para así poder ponerse en marcha.
|
Terminado
|
Cuando un proceso se ha completado su ejecución
pasa a ser un proceso terminado.
|
Transiciones de estados
Cuando un trabajo es admitido se crea un proceso equivalente, y es
insertado en la última parte de la cola de listos. Cuando un proceso pasa de un
estado a otro se dice que hace una transición de estado, estas transiciones se
describen:
Transición
|
Descripción
|
Admitido(Proceso):Nuevo Listo
|
Cuando un proceso se ha creado y se le es permito
para competir por la CPU.
|
Despacho(Proceso):Listo En ejecución
|
La asignación de la CPU al primer proceso de la
lista de listos es llamada despacho y es ejecutado por la entidad de sistema
llamada despachador. Mientras que el proceso tenga la CPU se dice que está en
ejecución.
|
Tiempo excedido(Proceso):En ejecución Listo
|
El S.O , cuando un proceso se le expira el
intervalo de tiempo asignado para estar en ejecución (CUANTO), hace que este
proceso que se hallaba en estado de ejecución pase al estado de listo e
inmediatamente el despachador hace que el primer proceso de la lista pase a
estado de ejecución.
|
Bloqueo(Proceso):En ejecución Bloqueado
|
Si un proceso que se encuentra en estado de
ejecución inicia una operación de E/s antes que termine su cuanto, el proceso
voluntariamente abandona la CPU, es decir, el proceso se bloquea a sí mismo.
|
Despertar(Proceso):Bloqueo Listo
|
La única transición posible en nuestro modelo
básico ocurre cuando acaba una operación de E/S (o alguna otra causa por la
que esté esperando el proceso), y esta termina pasa al estado de listo.
|
Salir(Proceso):En ejecución Terminado
|
Esta transición ocurre cuando el proceso se ha
terminado de ejecutarse, y pasa a un estado de terminado
|
2.3 PROCESOS LIGEROS (HILOS O HEBRAS)
|
Un proceso ligero, o thread, es un programa en
ejecución (flujo de ejecución) que comparte la imagen de memoria y otras
informaciones con otros procesos ligeros. Como muestra la Figura, un proceso
puede contener un solo flujo de ejecución, como ocurre en los procesos
clásicos, o más de un flujo de ejecución (procesos ligeros).
Desde el punto de vista de la programación, un
proceso ligero se define como una función cuya ejecución se puede lanzar en
paralelo con otras. El hilo de ejecución primario, o proceso ligero primario,
corresponde a la función main.
Cada proceso ligero tiene informaciones que le
son propias y que no comparte con otros procesos ligeros. Las informaciones
propias se refieren fundamentalmente al contexto de ejecución, pudiéndose
destacar las siguientes:
Todos los procesos ligeros de un mismo proceso
comparten la información del mismo. En concreto, comparten:
Es importante destacar que todos los procesos
ligeros de un mismo proceso comparten el mismo espacio de direcciones de
memoria, que incluye el código, los datos y las pilas de los diferentes
procesos ligeros. Esto hace que no exista protección de memoria entre los
procesos ligeros de un mismo proceso, algo que si ocurre con los procesos
convencionales. El proceso ligero constituye la unidad ejecutable en Windows
NT. La Figura representa de forma esquemática la estructura de un proceso de
Windows NT con sus procesos ligeros.
Proceso ligero
El concepto de proceso engloba dos
conceptos separados y potencialmente independientes: uno relativo a la propiedad
de recursos y otro que hace referencia a la ejecución.
Unidad que posee recursos: A un
proceso se le asigna un espacio de memoria y, de tanto en tanto, se le puede
asignar otros recursos como dispositivos de E/S o ficheros. Unidad a la que
se le asigna el procesador: Un proceso es un flujo de ejecución (una traza) a
través de uno o más programas. Esta ejecución se entremezcla con la de otros
procesos. De tal forma, que un proceso tiene un estado (en ejecución, listo,
etc.) y una prioridad de expedición u origen. La unidad planificada y
expedida por el sistema operativo es el proceso.
Dentro de un proceso puede
haber uno o más hilos de control cada uno con:
![]() ![]() ![]() ![]() ![]()
CARACTERISTICAS
Se comparten recursos. La
compartición de la memoria permite a las hebras pares comunicarse sin usar
ningún mecanismo de comunicación inter-proceso del SO. La conmutación de
contexto es más rápida gracias al extenso compartir de recursos No hay
protección entre las hebras. Una hebra puede escribir en la pila de otra
hebra del mismo proceso Estado de los procesos ligeros.
|
Unidad 3 Administracion de memoria
Invetigacion
.
Paginación
3.1.-Politica y filosofía
Filosofía
La memoria principal puede ser considerada como un arreglo lineal de
localidades de almacenamiento de un byte de tamaño. Cada localidad de
almacenamiento tiene asignada una dirección que la identifica.
Una de las funciones básicas que debe implementar un SO es la
Administración de la Memoria para tener un control sobre los lugares donde
están almacenados los datos y procesos que actualmente se están utilizando.
Política
FIFO: Los procesos se despachan de acuerdo a su tiempo de llega a la
cola de procesos listos, si un proceso llega al procesador sale hasta que
termine. La política FIFO actualmente no se usa como el esquema principal de un
sistema, pero si por ejemplo cuando se usa una política de prioridades y hay
procesos con la misma prioridad, a estos se les podría aplicar FIFO.
Ejemplos:
![Descripción: http://sistemasoperativos.angelfire.com/html/imagenes/3.1_picture131_0000.jpg](file:///C:\Users\ADMINI~1\AppData\Local\Temp\msohtmlclip1\01\clip_image002.jpg)
Round Robin: Los procesos se despachan en la forma que lo hace el FIFO,
pero se les asigna una cantidad limitada de tiempo (CUANTUM) en el procesador,
si no termina en ese lapso se manda al final de la lista de procesos listos
Ejemplos:
![Descripción: http://sistemasoperativos.angelfire.com/html/imagenes/3.1_picture231_0000.jpg](file:///C:\Users\ADMINI~1\AppData\Local\Temp\msohtmlclip1\01\clip_image003.jpg)
SJF (Shortest job first - Prioridad del trabajo más corto): Se ejecuta
primero el proceso en espera que tiene el menor tiempo estimado. SJF favorece a
los procesos cortos, ya que los largos podrían llegar a rezagarse mucho tiempo
e incluso nunca ejecutarse.
Ejemplos:
![Descripción: http://sistemasoperativos.angelfire.com/html/imagenes/3.1_picture331_0000.jpg](file:///C:\Users\ADMINI~1\AppData\Local\Temp\msohtmlclip1\01\clip_image004.jpg)
HRN: (highest response ratio next?
Prioridad de la tasa de respuesta más alta): Política no apropiativa que
corrige el retraso excesivo de procesos grandes que produce el SJF, para así no
caer en un favoritismo excesivo por los procesos cortos, lo logra usando una
formula basada en el tiempo de espera y el tiempo de servicio, con lo cual la
prioridad de cada trabajo no solo está en función del tiempo de servicio sino también
del tiempo que ha esperado para ser atendido.
Ejemplos:
![Descripción: http://sistemasoperativos.angelfire.com/html/imagenes/3.1_hrn_0000.jpg](file:///C:\Users\ADMINI~1\AppData\Local\Temp\msohtmlclip1\01\clip_image006.jpg)
3.2.-Memoria
real
La memoria real o principal es en
donde son ejecutados los programas y procesos de una computadora y es el
espacio real que existe en memoria para que se ejecuten los procesos.
Por lo general esta memoria es de mayor costo que la memoria secundaria, pero el acceso a la información contenida en ella es de más rápido acceso.
Por lo general esta memoria es de mayor costo que la memoria secundaria, pero el acceso a la información contenida en ella es de más rápido acceso.
Solo la memoria cache es más rápida que la principal, pero su
costo es a su vez mayor.
Cuando no existe memoria virtual
no hay diferenciación entre el espacio de direcciones y la memoria real; el
espacio de direcciones que puede ser usado en los programas tiene idéntico
tamaño al espacio de memoria real posible. Si se utiliza memoria virtual, el
espacio de direcciones disponibles para los programas es aquel determinado por
el tamaño de la memoria virtual implementada y no el espacio de direcciones
provisto por la memoria real disponible (el espacio de la memoria virtual será
mayor que el de la memoria real).
La organización y administración
de la “memoria
principal”, “memoria
primaria” o “memoria
real” de un sistema ha sido y es uno de los factores más
importantes en el diseño de los S. O.
Administración de
almacenamiento
Para que
un sistema informático sea cómodo para los usuarios, el sistema operativo
proporciona una lista lógica y uniforme del sistema de almacenamiento de la
información... El sistema operativo abstrae las propiedades físicas de los
dispositivos de almacenamiento y define una unidad de almacenamiento lógico, el
archivo.
El sistema operativo asigna los
archivos a los soportes físicos y accede a dichos archivos a través de los
dispositivos de almacenamiento.
Almacenamiento del sistema de archivos
La gestión de archivos es uno de
los componentes más visibles de un sistema operativo. Las computadoras pueden
almacenar la información en diferentes tipos de medios físicos .Los discos
magnéticos, discos ópticos y cintas magnéticas son habituales.
Un archivo es una colección de
información relacionada definida por su creador. Comúnmente, los archivos
representan programas (tanto en formato fuente como en objeto) y datos. Los
archivos de datos pueden ser numéricos, alfabéticos, alfanuméricos o binarios.
Los archivos pueden tener un formato libre (como, por ejemplo, los archivos de
texto) o un formato rígido, como por ejemplo una serie de campos fijos.
Jerarquía
Los programas y datos tienen que estar
en la memoria principal para poder ejecutarse ser referenciados.
Los programas y datos que no son necesarios de inmediato pueden mantenerse en el almacenamiento secundario.
El almacenamiento principal es más costoso y menor que el secundario pero de acceso más rápido.
Los sistemas con varios niveles de almacenamiento requieren destinar recursos para administrar el movimiento de programas y datos entre niveles.
Los programas y datos que no son necesarios de inmediato pueden mantenerse en el almacenamiento secundario.
El almacenamiento principal es más costoso y menor que el secundario pero de acceso más rápido.
Los sistemas con varios niveles de almacenamiento requieren destinar recursos para administrar el movimiento de programas y datos entre niveles.
Un nivel adicional es el “cache” o memoria de alta velocidad,
que posee las siguientes características:
- Es más rápida y costosa que la memoria principal.
- Impone al sistema un nivel más de traspaso:
- Los programas son traspasados de la memoria principal al cache antes de su ejecución.
- Los programas en la memoria cache ejecutan mucho más rápido que en la memoria principal.
- Al utilizar memoria cache 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 ejecución mucho más rápida en la cache.
Estrategias de Administración de
Memoria
Se dividen en las siguientes categorías:
- Estrategias de búsqueda:
- Estrategias de búsqueda por demanda.
- Estrategias de búsqueda anticipada.
- Estrategias de colocación.
- Estrategias de reposición.
Las “estrategias de búsqueda” están relacionadas con el hecho de
cuando obtener el siguiente fragmento de programa o de datos para su inserción
en la memoria principal.
En la “búsqueda por demanda” el siguiente fragmento de programa o de datos se carga al almacenamiento principal cuando algún programa en ejecución lo referencia.
Se considera que la “búsqueda anticipada” puede producir un mejor rendimiento del sistema.
Las “estrategias de colocación” están relacionadas con la determinación del lugar de la memoria donde se colocara (cargara) un programa nuevo.
Las “estrategias de reposición” están relacionadas con la determinación de que fragmento de programa o de datos desplazar para dar lugar a los programas nuevos.
En la “búsqueda por demanda” el siguiente fragmento de programa o de datos se carga al almacenamiento principal cuando algún programa en ejecución lo referencia.
Se considera que la “búsqueda anticipada” puede producir un mejor rendimiento del sistema.
Las “estrategias de colocación” están relacionadas con la determinación del lugar de la memoria donde se colocara (cargara) un programa nuevo.
Las “estrategias de reposición” están relacionadas con la determinación de que fragmento de programa o de datos desplazar para dar lugar a los programas nuevos.
Multiprogramación de partición fija,
Partición Variable de intercambio de almacenamiento
Multiprogramación de Partición Fija.
Los sistemas de un solo usuario desperdician gran cantidad de recursos computacionales debido a que:
Los sistemas de un solo usuario desperdician gran cantidad de recursos computacionales debido a que:
- Cuando ocurre una petición de e / s la CPU normalmente no puede continuar el proceso hasta que concluya la operación de e / s requerida.
Los periféricos de e / s frenan la
ejecución de los procesos ya que comparativamente la CPU es varios ordenes de
magnitud más rápida que los dispositivos de e / s.
- Un trabajo en espera de e / s cederá la CPU a otro trabajo que esté listo para efectuar cómputos.
- Existe paralelismo entre el procesamiento y la e / s.
- Se incrementa la utilización de la CPU y la capacidad global de ejecución del sistema.
- Es necesario que varios trabajos residan a la vez en la memoria principal.
Multiprogramación de Partición Fija: Traducción y
Carga Absolutas.
Las “particiones” del almacenamiento principal:
Las “particiones” del almacenamiento principal:
- Son de tamaño fijo.
- Alojan un proceso cada una.
- La CPU se cambia rápidamente entre los procesos creando la ilusión de simultaneidad.
Multiprogramación de Partición Fija: Traducción y
Carga Relocalizables.
Los compiladores, ensambladores y cargadores de relocalización (Ver figura 3.2.5.3)):
Los compiladores, ensambladores y cargadores de relocalización (Ver figura 3.2.5.3)):
- Se usan para producir programas relocalizables que puedan ser ejecutados en cualquier partición disponible de tamaño suficiente para aceptarlos.
- Son más complejos que los absolutos.
- Mejoran la utilización del almacenamiento.
3.3.- Organización de memoria virtual
Memoria Virtual
La memoria virtual es una técnica para proporcionar la simulación de un espacio de memoria mucho mayor que la memoria física de una máquina. Ésta ilusión permite que los programas se hagan sin tener en cuenta el tamaño exacto de la memoria física.
La memoria virtual es una técnica para proporcionar la simulación de un espacio de memoria mucho mayor que la memoria física de una máquina. Ésta ilusión permite que los programas se hagan sin tener en cuenta el tamaño exacto de la memoria física.
La memoria virtual ha llegado a ser un componente esencial de la mayoría
de los S.O actuales. Y como en un instante dado, en la memoria solo se tienen
unos pocos fragmentos de un proceso dado, se pueden mantener más procesos en la
memoria.
La memoria virtual también simplifica la carga del programa para su ejecución llamado reubicación, este procedimiento permite que el mismo programa se ejecute en cualquier posición de la memoria física
La memoria virtual también simplifica la carga del programa para su ejecución llamado reubicación, este procedimiento permite que el mismo programa se ejecute en cualquier posición de la memoria física
![Descripción: http://sistemasoperativos.angelfire.com/html/imagenes/3.2.5_clip_image004.jpg](file:///C:\Users\ADMINI~1\AppData\Local\Temp\msohtmlclip1\01\clip_image008.jpg)
Evaluación de las Organizaciones de Almacenamiento
Almacenamiento virtual "significa la capacidad de direccional un
espacio de almacenamiento mucho mayor que el disponible en el almacenamiento
primario de determinado sistema de computación”.
Los métodos más comunes de implementación son mediante:
Los métodos más comunes de implementación son mediante:
- Técnicas de “paginación”.
- Técnicas de “segmentación”.
- Una combinación de ambas técnicas.
Las direcciones generadas por los programas en su ejecución no son,
necesariamente, aquellas contenidas en el almacenamiento primario (memoria
real), ya que las direcciones virtuales suelen seleccionarse dentro de
un número mucho mayor de direcciones que las disponibles dentro del
almacenamiento primario.
La evolución en las organizaciones de almacenamiento puede resumirse como sigue:
La evolución en las organizaciones de almacenamiento puede resumirse como sigue:
- Real:
- Sistemas dedicados a un solo usuario.
- Real:
- Sistemas de multiprogramación en memoria real:
- Multiprogramación en partición fija:
- Absoluta.
- Relocalizarla (reubicadle).
- Multiprogramación en partición variable.
- Virtual:
- Multiprogramación en almacenamiento virtual:
- Paginación pura.
- Segmentación pura.
- Combinación paginación / segmentación.
Paginación
El termino memoria virtual se asocia normalmente con sistemas que
emplean paginación, aunque también se puede usar memoria virtual basada en la
segmentación. El uso de la paginación en la memoria virtual fue presentado por
primera vez en el computador Atlas.
Cada proceso tiene su propia tabla de páginas y cuando carga todas sus
páginas en la o memoria principal. Puesto que solo algunas de las páginas de un
proceso pueden estar en la memoria principal, se necesita un bit en cada
entrada de la tabla para indicar si la página perteneciente está presente en la
memoria principal o no. Si el bit indica que la pagina está en la memoria, la
entrada incluye también el número de marco para esa página.
Otro bit de control necesario en la entrada de la tabla de páginas es el
bit de modificación (M), para indicar si el contenido de la página
correspondiente se ha alterado desde que la página se cargó en la memoria
principal.
Con la memoria virtual, la CPU produce direcciones virtuales que son
traducidas por una combinación de hardware y software a direcciones físicas,
pues pueden ser utilizadas para acceder a memoria principal. Este proceso se
denomina correspondencia de memoria o traducción de direcciones. Actualmente
los dos niveles de la jerarquía de memoria controlados por la memoria virtual
son las DRAM y los Discos magnéticos.
Segmentación
La segmentación permite al programador contemplar la memoria como si
constara de varios espacios de direcciones o segmentos. Los segmentos pueden
ser de distintos tamaños, incluso de forma dinámica. Las referencias a la
memoria constan de una dirección de la forma (número de segmento,
desplazamiento).
Esta organización ofrece al programador varias ventajas sobre un espacio
de direcciones no segmentado:
1. Simplifica la gestión de estructuras de datos crecientes. Si el programador no conoce a priori cuan larga puede llegar a ser una estructura de datos determinada, es necesario suponerlo a menos que se permitan tamaños de segmentos dinámicos. Con memoria virtual segmentada, a la estructura de datos se le puede asignar a su propio segmento y el S.O expandirá o reducirá el segmento cuando se necesite.
2. Permite modificar y recopilar los programas independientemente, sin que sea necesario recopilar o volver a montar el conjunto de programas por completo.
3. Se presta a la comparación entre procesos. Un programador puede situar un programa de utilidades o una tabla de datos en un segmento que puede ser referenciado por otros procesos.
4. Se presta a la protección. Puesto que un segmento puede ser construido para albergar un conjunto de procedimientos y datos bien definido, el programador o el administrador del sistema podrán asignar los permisos de acceso de la forma adecuada.
1. Simplifica la gestión de estructuras de datos crecientes. Si el programador no conoce a priori cuan larga puede llegar a ser una estructura de datos determinada, es necesario suponerlo a menos que se permitan tamaños de segmentos dinámicos. Con memoria virtual segmentada, a la estructura de datos se le puede asignar a su propio segmento y el S.O expandirá o reducirá el segmento cuando se necesite.
2. Permite modificar y recopilar los programas independientemente, sin que sea necesario recopilar o volver a montar el conjunto de programas por completo.
3. Se presta a la comparación entre procesos. Un programador puede situar un programa de utilidades o una tabla de datos en un segmento que puede ser referenciado por otros procesos.
4. Se presta a la protección. Puesto que un segmento puede ser construido para albergar un conjunto de procedimientos y datos bien definido, el programador o el administrador del sistema podrán asignar los permisos de acceso de la forma adecuada.
Sistema de
pagmentación / segmentación
La paginación y la segmentación puras son métodos de manejo de memoria
bastante efectivos, aunque la mayoría de los sistemas operativos modernos
implantan esquemas combinados, es decir, combinan la paginación y la
segmentación.
Por cada segmento se tiene una dirección a una tabla de páginas. Cada
tabla de páginas tiene las direcciones de las páginas que componen a un solo
segmento. Por ejemplo, el segmento `A' puede estar formado por las paginas
reales `a','b','c','p' y `x'. El segmento `B' puede estar compuesto de las
paginas `f','g','j','w' y `z'. Otro aspecto
importante es la estrategia para cargar páginas (o segmentos) a la memoria RAM.
3.4.- Administración
de memoria virtual
La clave del concepto de memoria (almacenamiento) virtual está en la disociación:
- De las direcciones a las que hace referencia un programa.
- De las direcciones disponibles en la memoria real (almacenamiento primario).
Mientras el proceso se ejecuta con sus páginas actuales, el sistema
carga las demás páginas que estarán disponibles cuando las requiera el proceso.
El S. O. intenta predecir las páginas que un proceso va a necesitar y a continuación precarga estas páginas cuando hay espacio disponible Mientras el proceso ejecuta sus páginas actuales, el sistema carga páginas nuevas que estarán disponibles cuando el proceso las pida, debido a ello, el tiempo de ejecución de un proceso se puede reducir.
El S. O. intenta predecir las páginas que un proceso va a necesitar y a continuación precarga estas páginas cuando hay espacio disponible Mientras el proceso ejecuta sus páginas actuales, el sistema carga páginas nuevas que estarán disponibles cuando el proceso las pida, debido a ello, el tiempo de ejecución de un proceso se puede reducir.
Estrategia de
administración
Determinan cuando se debe de transferir una página o un segmento de
almacenamiento secundario al primario. Las estrategias de obtención por demanda
esperan a que un proceso en ejecución haga referencia a una página o un
segmento antes de traer la página o el segmento de almacenamiento primario.
Estrategias de Colocación
Determinan en qué lugar del almacenamiento primario se debe
colocar una página o un segmento entrante. Una página entrante se puede colocar
en cualquier marco de página disponible.
Estrategias de Reemplazo
Sirven para decidir cuál página o segmento se debe desplazar para dar
espacio a una página o segmento entrante cuando está completamente ocupado el
almacenamiento primario.
Técnicas de reemplazo de página
Las rutinas de administración de almacenamiento del Sistema operativo
deben decidir que página del almacenamiento primario se debe desplazar para
dejar espacio a una página entrante.
Principio de Optimalizad
Para obtener un rendimiento óptimo, la página que se debe reemplazar es aquella que tardara más tiempo en ser utilizada. Esta estrategia óptima de reemplazo se denomina OPT o MIN.
Para obtener un rendimiento óptimo, la página que se debe reemplazar es aquella que tardara más tiempo en ser utilizada. Esta estrategia óptima de reemplazo se denomina OPT o MIN.
Reemplazo de Páginas aleatorio
Es una técnica sencilla. Todas las páginas que se encuentran en el almacenamiento principal tienen la misma probabilidad de ser elegidas para el reemplazo. Esta estrategia podría seleccionar cualquier página para ser reemplazada, incluyendo la siguiente página la que se hará referencia. Las decisiones de reemplazo aleatorio se dé páginas se pueden tomar rápidamente y con un número significativo de marcos de página. Es un esquema que casi no se utiliza por su enfoque aleatorio de acertar o errar.
Es una técnica sencilla. Todas las páginas que se encuentran en el almacenamiento principal tienen la misma probabilidad de ser elegidas para el reemplazo. Esta estrategia podría seleccionar cualquier página para ser reemplazada, incluyendo la siguiente página la que se hará referencia. Las decisiones de reemplazo aleatorio se dé páginas se pueden tomar rápidamente y con un número significativo de marcos de página. Es un esquema que casi no se utiliza por su enfoque aleatorio de acertar o errar.
Reemplazo de páginas de primeras entradas-primeras
salidas (PEPS)
Cada página se registra en el instante que entro en el almacenamiento primario. Cuando se necesita reemplazar una página, se escoge la que ha permanecido en el almacenamiento durante el mayor tiempo.
Cada página se registra en el instante que entro en el almacenamiento primario. Cuando se necesita reemplazar una página, se escoge la que ha permanecido en el almacenamiento durante el mayor tiempo.
Anomalías PEPS
Belady, Nelson y Shelder descubrieron que al utilizar el reemplazo de páginas PEPS, ciertos patrones de referencia a página originan más fallas de páginas cuando aumenta el número de marcos de página asignados a un proceso. Este fenómeno se denomina Anomalía PEPS o anomalía Belady. La columna de la izquierda indica el patrón de referencias a páginas de un proceso.
Belady, Nelson y Shelder descubrieron que al utilizar el reemplazo de páginas PEPS, ciertos patrones de referencia a página originan más fallas de páginas cuando aumenta el número de marcos de página asignados a un proceso. Este fenómeno se denomina Anomalía PEPS o anomalía Belady. La columna de la izquierda indica el patrón de referencias a páginas de un proceso.
Paginación por demanda
Considere como podría cargarse un programa ejecutable desde el disco a
la memoria. Una opción consiste encargar el programa completo en memoria física
en el momento de ejecutar el programa. Sin embargo, esta técnica presenta el
problema de que puede que no necesitemos inicialmente todo el programa en la
memoria. Las páginas de un proceso deben cargarse por demanda. No se debe
transferir ninguna página al almacenamiento secundario al primado hasta que un
proceso en ejecución haga explícitamente referencia a ella.
Paginación anticipada
En la paginación anticipada, el sistema operativo intenta predecir
las páginas que necesitara un proceso y entonces carga dichas cuando hay
espacio disponible.
Mientras el proceso se ejecuta con sus páginas actuales, el sistema
carga las demás páginas que estarán disponibles cuando las requiera el proceso.
El S. O. intenta predecir las páginas que un proceso va a necesitar y a
continuación precarga estas páginas cuando hay espacio disponible Mientras el
proceso ejecuta sus páginas actuales, el sistema carga páginas nuevas que
estarán disponibles cuando el proceso las pida, debido a ello, el tiempo de
ejecución de un proceso se puede reducir.
Liberación de página
En la paginación anticipada, el sistema operativo intenta predecir las
páginas que necesitara un proceso y entonces carga dichas cuando hay espacio
disponible.
Mientras el proceso se ejecuta con sus páginas actuales, el sistema
carga las demás páginas que estarán disponibles cuando las requiera el proceso.
El S. O. intenta predecir las páginas que un proceso va a necesitar y a
continuación precarga estas páginas cuando hay espacio disponible Mientras el
proceso ejecuta sus páginas actuales, el sistema carga páginas nuevas que
estarán disponibles cuando el proceso las pida, debido a ello, el tiempo de
ejecución de un proceso se puede reducir.
Tamaño de la página
Generalmente el almacenamiento real se divide en marcos o celdas de
página de tamaño fijo.
Los interrogantes tienen que ver con el tamaño de las paginas, si todas
las paginas tendrán igual tamaño, si en caso de utilizar páginas de diferente
tamaño las paginas mayores deben ser o no múltiplos enteros de las menores,
etc.
Algunas consideraciones para
determinar el tamaño de página son las siguientes:
- Cuanto más pequeño sea el tamaño de una página, más páginas y marcos de páginas habrá y mayores serán las tablas de página.
El desperdicio de almacenamiento debido
al tamaño excesivo de las tablas de página se llama “fragmentación de tablas”.
Esto indica la necesidad de páginas más
grandes.
- Con paginas grandes, grandes cantidades de información que nunca llegaría a ser referenciada, se paginaran hacia el almacenamiento primario
Esto indica la necesidad de páginas más
pequeñas.
Suscribirse a:
Entradas (Atom)