sistemas de operación hector gonzalez [email protected] 0416-7252438

146
Sistemas de Operación Hector Gonzalez [email protected] 0416-7252438

Upload: jose-luis-arroyo-rojas

Post on 24-Jan-2016

227 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Sistemas de Operación

Hector [email protected]

Page 2: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Administración de memoria, Memoria Auxiliar. Manejador

de Información

Unidad IV, V, VI

Page 3: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Gestión de memoria

• Aislamiento del proceso.

• Asignación y gestión automáticas.

• Soporte para la programación modular.

• Protección y control de acceso.

• Almacenamiento a largo plazo.

Page 4: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Gestión de Memoria

• Sistema Monoprogramado– Memoria Principal

• Sistema Operativo (monitor residente, núcleo)• Programa Principal (el que se ejecuta en ese inst)

• Sistema Multiprogramado• En la parte de Usuario de la memoria (debe

hacerse sitio para varios procesos)• Esta tarea esta a cargo del S.O.• Se hace de manera dinámica• Se conoce como Gestión de Memoria

Page 5: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Memoria virtual

• Permite a los programas direccionar la memoria desde un punto de vista lógico.

• No existirá un espacio muerto entre la ejecución de los procesos sucesivos, mientras un proceso se envía al almacenamiento secundario y el proceso que le sucede es traído de éste.

Page 6: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Acceso directo de memoria (DMA)

• Los intercambios E/S se producen directamente con la memoria.

• El procesador otorga autoridad a un módulo de E/S para leer o escribir en la memoria.

• Releva al procesador de la responsabilidad del intercambio.

• El procesador queda libre para realizar otras operaciones.

Page 7: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Jerarquía de la memoria

Registros

cache

Memoria

principal

Disco magnétic

o

CD-ROM

CD-RW

DVD + RW

DVD-RAM

Cinta magnética

MO

WORM

Almacenamiento

secundario

Memoriaexterna

Memoriainterna

Figura 1.14. La jerarquía de la memoria.

Page 8: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Descenso por la jerarquía

• Disminución del coste por bit.

• Aumento de la capacidad.

• Aumento del tiempo de acceso.

• Disminución de la frecuencia de acceso a la memoria por parte del procesador:– Cercanía de referencias.

Page 9: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Cache de disco

• Es una parte de la memoria principal que se puede utilizar como buffer para guardar temporalmente los datos transferidos con el disco.

• Las escrituras al disco se agrupan.• Se pueden volver a escribir algunos datos

destinados a la salida. Los datos se recuperan rápidamente por software desde la cache del disco en lugar de hacerse lentamente desde el disco.

Page 10: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Memoria cache

• Es invisible para el sistema operativo.

• Aumenta la velocidad de la memoria.

• La velocidad del procesador es mayor que la de la memoria.

Page 11: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Memoria cache

Transferencia de palabrasTransferencia de bloques

Figura 1.16. Cache y memoria principal.

Page 12: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Memoria cache

• Contiene una parte de la memoria principal.

• El procesador primero comprueba la memoria cache.

• Si una palabra no se encuentra en la memoria cache, se introduce en la cache un bloque de memoria principal que contiene la información necesaria.

Page 13: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Número de entrada Etiquet

aBloque

Longitud de bloque(K palabras)

(a) Cache

Direcciónde memoria

Bloque (K palabras)

Bloque

Longitud de palabra

(b) Memoria principal

Figura 1.17. Estructura de cache/memoria principal.

Cache/Main Memory System

Page 14: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Diseño de la cache

• Tamaño de la cache:– Las caches pequeñas pueden tener un impacto

significativo sobre el rendimiento.

• Tamaño del bloque:– Es la unidad de intercambio de datos entre la cache

y la memoria principal. – La tasa de aciertos significa que la información se

encontró en la cache.– La tasa de aciertos comenzará a disminuir, dado que

el bloque se hace mayor y la probabilidad de uso del dato leído más recientemente se hace menor que la probabilidad de reutilizar el dato que hay que sacar de la cache.

Page 15: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Diseño de la cache

• Función de traducción:– Determina la posición de la cache que

ocupará el bloque.

• Algoritmo de reemplazo:– Elige el bloque que hay que reemplazar.– Algoritmo del menos recientemente usado

(LRU).

Page 16: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Diseño de la cache

• Política de escritura:– Dicta cuándo tiene lugar la operación de

escribir en memoria.– Puede producirse cada vez que el bloque se

actualice. – La escritura se produce sólo cuando se

reemplaza el bloque:• Reduce las operaciones de escritura en memoria.• Deja la memoria principal en un estado obsoleto.

Page 17: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

E/S programada

• El módulo E/S lleva a cabo la acción requerida en lugar del procesador.

• Activa los bits apropiados en el registro de estado de E/S.

• No se producen interrupciones.• El procesador comprueba el

estado hasta que se ha completado la operación.

Emitir la ordenLEER al

módulo de E/S

Leer estadodel módulo

de E/S

Compro-bar

estado

Leer palabradel módulo

de E/S

Escribir palabra

en memoria

¿Hecho?

CPU E/S

E/S CPU

E/S CPU

CPU memoria

Condiciónde error

No listo

Listo

No

Instrucción siguiente

(a) E/S programada

Page 18: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

E/S dirigida por interrupciones

• El procesador queda interrumpido cuando el módulo E/S está listo para intercambiar más datos.

• El procesador puede realizar otras operaciones.

• Elimina las esperas innecesarias.• Consume una gran cantidad de

tiempo del procesador debido a que cada palabra de datos pasa a través del procesador.

Emitir la ordenLEER al

módulo de E/S

Leer estadodel módulo

de E/S

Compro-bar

estado

Leer palabradel módulo

de E/S

Escribir palabra

en memoria

¿Hecho?

Instrucción siguiente

No

CPU memoria

E/S CPU

Condiciónde error

Listo

E/S CPU

CPU E/SHacer otra cosa

Interrupción

(b) E/S dirigida por interrupciones

Page 19: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Acceso directo a la memoria

• Transfiere el bloque entero directamente hacia o desde la memoria.

• Cuando se completa la transferencia se envía una señal de interrupción.

• El procesador se ve involucrado sólo al inicio y al final de la transferencia.

Emitir la ordenLEER BLOQUEal módulo E/S

Leer estadodel módulo

de DMA

Instrucción siguiente

(c) Acceso directo a memoria

DMA CPU

CPU DMA

Hacer otra cosa

Interrupción

Page 20: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

• Gestión de Memoria Cap 7

Page 21: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Gestión de memoria

• Subdivisión de la memoria para hacer sitio a varios procesos.

• Hace falta repartir eficientemente la memoria para introducir tantos procesos como sea posible.

Page 22: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Requisitos de la gestión de memoria

• Reubicación:– El programador no conoce qué otros programas

residirán en la memoria en el momento de la ejecución.

– Mientras que se está ejecutando el programa, puede que se descargue en el disco y que vuelva a la memoria principal, pero en una ubicación distinta a la anterior (reubicación).

– Se deben traducir las referencias a la memoria encontradas en el código del programa a las direcciones físicas reales.

Page 23: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Requisitos de la gestión de memoria

• Protección:Cada proceso debe protegerse contra interferencias no deseadas de otros procesos (accidentales/intencionadas)

– El código de un proceso no puede hacer referencia a posiciones de memoria de otros procesos sin permiso.

– Es imposible comprobar las direcciones absolutas de los programas, puesto que se desconoce la ubicación de un programa en la memoria principal.

– Debe comprobarse durante la ejecución:• El sistema operativo no puede anticiparse a todas las

referencias a la memoria que hará un programa.

Page 24: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Requisitos de la gestión de memoria

• Compartimiento:– Permite el acceso de varios procesos a la

misma zona de la memoria principal. – Es mejor permitir a cada proceso (persona)

que acceda a la misma copia del programa, en lugar de tener cada uno su propia copia aparte.

Page 25: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Requisitos de la gestión de memoria

• Organización lógica:– La mayoría de los programas se organizan en

módulos.– Los módulos pueden escribirse y compilarse

independientemente.– Pueden otorgarse distintos grados de

protección (sólo lectura, sólo ejecución) a los módulos.

– Compartir módulos.

Page 26: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Requisitos de la gestión de memoria• Organización física:

– Memoria Principal (programas, datos de uso actual)

• Acceso rápido, costo alto, es volátil.– Memoria Secundaria (almacenamiento a largo plazo)

• Lenta, mas barata, no es volátil– La memoria disponible puede ser insuficiente para

un programa y sus datos :• La superposición permite que varios módulos sean

asignados a la misma región de memoria.– El programador no conoce, a priori, cuánto

espacio habrá disponible. La tarea de mover información entre los niveles de memoria debe ser responsabilidad del sistema (Gestión de Memoria)

Page 27: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Partición de Memoria

• La gestión de memoria en sistemas modernos requiere de un sofisticado esquema llamado memoria virtual.

• La memoria virtual esta a su vez basada en el uso de una de dos técnicas básicas:

Segmentación o paginación

Page 28: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Conceptos

• Paginación– Transferencia de paginas entre la memoria

principal y la memoria secundaria

• Segmentación– División de un programa o aplicación en

segmentos como parte del esquema de memoria virtual.

Page 29: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Particiones estáticas

• Particiones de igual tamaño:– Cualquier proceso cuyo tamaño sea menor o

igual que el tamaño de la partición puede cargarse en cualquier partición libre.

– Si todas las particiones están ocupadas, el sistema operativo puede sacar un proceso de una partición.

– Un programa puede que no se ajuste a una partición. El programador debe diseñar el programa mediante superposiciones.

Page 30: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Particiones estáticas

• El uso de la memoria principal es ineficiente. Cualquier programa, sin importar lo pequeño que sea, ocupará una partición completa. Este fenómeno se denomina fragmentación interna.

Page 31: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Sistema operativo

8M

Sistema operativo

8M

(a) Particiones de igual tamaño (a) Particiones de distinto tamaño

Figura 7.2. Ejemplo de partición estática en una memoria de 64Mb.

8M

8M

8M

8M

8M

8M

8M

2M

4M

6M

8M

8M

12M

16M

Page 32: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Algoritmo de ubicación con particiones

• Particiones de igual tamaño:– Puesto que todas las particiones son de igual

tamaño, no importa la partición que se use.

• Particiones de distintos tamaños:– Pueden asignar cada proceso a la partición más

pequeña en la que quepa. – Hace falta una cola para cada partición.– Los procesos están asignados de forma que se

minimiza la memoria desaprovechada dentro de cada partición.

Page 33: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Sistema

operativo

Sistema

operativo

Procesos

nuevosProcesos

nuevos

(a) Una cola de procesos por partición (b) Cola única de procesos

Figura 7.3. Asignación de memoria en partición estática.

Page 34: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Particiones dinámicas

• Las particiones son variables en número y longitud.

• Al proceso se le asigna exactamente tanta memoria como necesite.

• Finalmente, hay varios huecos en la memoria. Este fenómeno se denomina fragmentación externa.

• Se debe usar la compactación para desplazar los procesos que estén contiguos, de forma que toda la memoria libre quede junta en un bloque.

Page 35: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Sistema

operativo

Sistema

operativo

Sistema

operativo

Sistema

operativo

Proceso 1 Proceso 1Proceso 1

Proceso 2 Proceso 2

Proceso 3

Figura 7.4. Efectos de la partición dinámica.

8M

56M

20M 20M 20M

36M

14M 14M

22M 18M

4M

(a) (b) (c) (d)

Page 36: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Figura 7.4. Efectos de la partición dinámica.

Sistema

operativo

Sistema

operativo

Sistema

operativo

Sistema

operativo

Proceso 1 Proceso 1

Proceso 3 Proceso 3Proceso 3Proceso 3

Proceso 4 Proceso 4Proceso 4

Proceso 220M20M 20M

14M

18M

4M

8M

6M

18M

4M 4M

18M

6M

8M 8M

6M

6M

18M

14M

4M

(e) (f) (g) (h)

Page 37: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Algoritmo de ubicación con particiones dinámicas

• El sistema operativo debe decidir qué bloque libre se tiene que asignar al proceso.

• Algoritmo del mejor ajuste (best-fit):– Elige el bloque de tamaño más próximo al

solicitado. – Proporciona en general los peores resultados. – Puesto que este algoritmo busca el hueco más

pequeño para el proceso, garantiza que el fragmento que se deja es lo más pequeño posible y, por lo tanto, se debe compactar más frecuentemente.

Page 38: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Algoritmo de ubicación con particiones dinámicas

• Algoritmo del primer ajuste (first-fit):– Es más rápido.– Puede tener varios procesos cargados en el

extremo inicial de la memoria que es necesario recorrer cuando se intente encontrar un bloque libre.

Page 39: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Algoritmo de ubicación con particiones dinámicas

• Algoritmo del siguiente ajuste (next-fit):– Lleva frecuentemente a la asignación de un

bloque de memoria de la última ubicación, donde se encuentra el bloque más grande.

– El bloque de memoria más grande se divide en fragmentos pequeños.

– Hará falta la compactación para obtener un bloque de memoria grande al final del espacio de memoria.

Page 40: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Último bloque asignado (14K)

Primer ajuste

Mejor ajuste

Bloque asignado

Bloque libre

Siguiente ajuste

(a) Antes (b) Después

Figura 7.5. Ejemplo de una configuración de memoria antes y después de asignar un bloque de 16 Mbytes.

8M 8M

12M 12M

22M

18M

8M 8M

6M 6M

6M

2M

14M

36M

14M

20M

Page 41: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Sistema de colegas

• El espacio entero disponible para la asignación se trata como un solo bloque de tamaño 2U.

• Si se hace una solicitud de tamaño s tal que 2U-1 < s <= 2U, entonces el bloque entero se asigna:– En otro caso, el bloque se divide en dos colegas

de igual tamaño. – Este proceso continúa hasta que el bloque más

pequeño sea mayor o igual que s generándose.

Page 42: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

1 bloque de 1 megabyte

Solicitud de 100K

Solicitud de 240K

Solicitud de 64K

Solicitud de 256K

Solicitud de 75K

Liberación de B

Liberación de A

Liberación de C

Liberación de E

Liberación de D

Figura 7.6. Ejemplo del sistema de colegas.

Page 43: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Figura 7.7. Representación en árbol del sistema de colegas.

Page 44: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Reubicación

• Cuando el proceso se carga en la memoria, se determina la ubicación real (absoluta) de la memoria.

• Un proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones absolutas de la memoria durante su ejecución (a partir de la carga).

• La compactación también hará que un programa ocupe una partición distinta, lo que significa que las ubicaciones absolutas de la memoria cambien.

Page 45: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Direcciones

• Dirección lógica:– Es una referencia a una posición de memoria

independiente de la asignación actual de datos a la memoria.

– Se debe hacer una traducción a una dirección física.

• Dirección relativa:– La dirección se expresa como una posición relativa a

algún punto conocido.

• Dirección física:– La dirección absoluta o la posición real en la memoria

principal.

Page 46: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Dirección relativa

Direcciónabsoluta

Interrupción al sistema operativo

Registro base

Registro límite

Sumador

Comparador

Programa

Datos

Pila

Bloque de control de proceso

Imagen de un procesoen la memoria

principal

Figura 7.8. Soporte de hardware para la reubicación.

Page 47: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Registros utilizados durante la ejecución

• Registro base:– Se carga con la dirección en la memoria

principal del proceso.

• Registro límite:– Indica la posición final del programa.

• Estos valores deben asignarse cuando se carga el programa y cuando se carga el proceso.

Page 48: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Registros utilizados durante la ejecución

• Se añade el valor del registro base a la dirección relativa para obtener una dirección absoluta.

• La dirección obtenida se compara con el valor del registro límite.

• Si la dirección no está dentro de los límites, se generará una interrupción en el sistema operativo.

Page 49: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Paginación

• La memoria principal se encuentra dividida en trozos iguales de tamaño fijo y cada proceso en pequeños trozos de tamaño fijo.

• Los trozos del proceso se denominan páginas y los trozos libres de memoria se denominan marcos.

• El sistema operativo mantiene una tabla de páginas para cada proceso:– Muestra la posición del marco de cada página del

proceso. – La dirección de la memoria consta de un número

de página y de un desplazamiento dentro de la página.

Page 50: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Memoria principal Memoria principal Memoria principalNúmero de marco

(a) Quince marcos libres (b) Carga del proceso A (c) Carga del proceso B

Figura 7.9. Asignación de páginas de procesos a marcos libres.

Page 51: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Memoria principal Memoria principalMemoria principal

(d) Carga del proceso C (e) Descarga del proceso B (f) Carga del proceso D

Figura 7.9. Asignación de páginas de procesos a marcos libres.

Page 52: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Page Tables for ExampleTablas de páginas

Tabla de

páginas del

proceso A

Tabla de

páginas del

proceso B

Tabla de

páginas del

proceso CTabla de

páginas del

proceso D

Lista de

marcos

libres

Figura 7.10. Estructuras de datos para el ejemplo de la Figura 7.9 en el instante de tiempo (f).

Page 53: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Segmentación

• No es necesario que todos los segmentos de todos los programas tengan la misma longitud.

• Existe una longitud máxima de segmento.

• Un dirección lógica segmentada consta de dos partes, un número de segmento y un desplazamiento.

• Como consecuencia del empleo de segmentos de distinto tamaño, la segmentación resulta similar a la partición dinámica.

Page 54: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

• Memoria Virtual Cap 8

Page 55: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

“…La gestion de memoria es una interrelación estrecha y compleja entre el hardware del procesador y el software del

sistema operativo…”

William Stallings

Page 56: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Estructuras de HW y de ControlCaracterísticas

• Un proceso puede cargarse y descargarse de la memoria principal (MP) de tal forma que ocupe regiones diferentes de la MP en momentos distintos a lo largo de su ejecución. ( las referencias de memoria en un proceso son direcciones lógicas que se traducirán a direcciones físicas durante su ejecución )

• Un proceso puede dividirse en partes (paginas o segmentos) y no es necesario que estas partes se encuentren contiguas en MP

Page 57: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Si ambas características están presentes, no será necesario que todas las paginas o todos los segmentos de un proceso estén en memoria durante la ejecución.

Page 58: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Ejecución de un programa

• El sistema operativo comienza trayendo sólo unos pocos fragmentos del programa.

• El conjunto residente es la parte de un proceso que está realmente en la memoria principal.

• Si el procesador encuentra una dirección lógica que no está en la memoria principal, genera una interrupción que indica un fallo de acceso a la memoria.

• El sistema operativo pone al proceso interrumpido en estado Bloqueado.

Page 59: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Ventajas de dividir un proceso

• Se pueden mantener más procesos en la memoria principal: – Se cargan sólo algunos fragmentos de un proceso

particular. – Con tantos procesos en la memoria principal es muy

probable que uno de los procesos esté en estado Listo en un instante determinado.

• Es posible que un proceso sea más grande que toda la memoria principal.

Page 60: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Tipos de memoria

• Memoria real:– Memoria principal.

• Memoria virtual:– Memoria situada en el disco.– Permite una multiprogramación muy efectiva

y releva al usuario de las rígidas e innecesarias restricciones de la memoria principal.

Page 61: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Hiperpaginación(thrashing)

• El sistema operativo expulsa un fragmento de un proceso justo antes de ser usado.

• El procesador consume más tiempo intercambiando fragmentos que ejecutando instrucciones de usuario.

Page 62: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Ejecución de un programa

• El sistema operativo necesita traer a la memoria principal el fragmento del proceso que contiene la dirección lógica que provocó el fallo de acceso: – El sistema operativo emite una solicitud de

Lectura de E/S al disco. – El sistema operativo puede expedir otro proceso

para que se ejecute mientras realiza la operación de E/S.

– Una vez que el fragmento deseado se ha traído a la memoria principal y se ha emitido la interrupción de E/S, se devuelve el control al sistema operativo, que coloca el proceso afectado en el estado de Listo.

Page 63: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Principio de cercanía

• Las referencias a los datos y al programa dentro de un proceso tienden a agruparse.

• Durante cortos periodos de tiempo se necesitarán sólo unos pocos fragmentos de un proceso.

• Sería posible hacer predicciones inteligentes sobre qué fragmentos de un proceso se necesitarán en un futuro cercano.

• El principio de cercanía sugiere que los esquemas de memoria virtual pueden funcionar eficazmente.

Page 64: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Soportes de la memoria virtual

• Tiene que existir un soporte de hardware para la paginación y la segmentación.

• El sistema operativo debe incluir un software para gestionar el movimiento de páginas o segmentos entre memoria secundaria y memoria principal.

Page 65: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Paginación

• Cada proceso tiene su propia tabla de página.

• Cada entrada de la tabla de páginas contiene el número de marco de la página correspondiente en la memoria principal.

• Se necesita un bit para indicar si la página correspondiente está presente en la memoria principal o no lo está.

Page 66: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

El bit de modificación en la tabla de páginas

• Otro bit de control necesario en la entrada de la tabla de páginas es el bit de modificación para indicar si el contenido de la página se ha alterado desde que la página se cargó en la memoria principal.

• Si no ha habido cambios, no es necesario escribir la página cuando sea sustituida en el marco que ocupa actualmente.

Page 67: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Entradas de la tabla de páginas

Dirección virtual

Entrada de la tabla de páginas

(a) Sólo paginación

Número de página Desplazamiento

PP MM Otros bits de controlOtros bits de control Número de marcoNúmero de marco

Figura 8.2. Formatos típicos de gestión de memoria.

P= Bit de presenciaM= Bit de Modificación

Page 68: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

N.º pág.

N.º marco

Figura 8.3. Traducción de direcciones en un sistema de paginación.

Despla-zamiento N.º marco

Despla-zamiento

Despla-zamiento

Dirección virtual

Registro

Tabla de páginas

N.º

pág

ina Marco

depágina

Puntero a tabla de páginas

Programa Mecanismo de paginación Memoria principal

Page 69: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Esquema de dos niveles para direcciones de 32 bits

4 Kbytes para laraíz de la tablade páginas

4 Mbytes para latabla de páginasde usuario

4 Gbytes para elespacio de direc-ciones de usuario

Figura 8.4. Tabla de páginas jerárquica de dos niveles [JACO98a].

Page 70: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Tablas de páginas

• La tabla de páginas completa puede ocupar una cantidad enorme de memoria principal.

• Para solucionar este problema, las tablas de páginas se almacenan en la memoria virtual.

• Cuando un proceso se está ejecutando, al menos una parte de su tabla de páginas se encuentra en la memoria principal.

Page 71: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Buffer de traducción adelantada

• Cada referencia a la memoria virtual puede generar dos accesos a la memoria:– Uno para obtener la entrada de la tabla de

páginas correspondiente.

– Otro para obtener el dato deseado.

• Para solucionar este problema, los esquemas de memoria virtual hacen uso de un cache especial para las entradas de la tabla de páginas:– Se trata de la buffer de traducción adelantada

(TLB, Translation Lookaside Buffer).

Page 72: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Buffer de traducción adelantada

• Contiene aquellas entradas de la tabla de páginas usadas hace menos tiempo.

• Funciona del mismo modo que una memoria cache.

Page 73: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Buffer de traducción adelantada

• Dada una dirección virtual, el procesador examinará primero la TLB.

• Si la entrada de la tabla de páginas buscada está presente (un “acierto en la TLB”), se obtiene el número de marco y se forma la dirección real.

• Si la entrada de la tabla de páginas no se encuentra (un “fallo en la TLB”), el procesador emplea el número de página como índice para buscar en la tabla de páginas del proceso y examinar la entrada correspondiente de la tabla de páginas.

Page 74: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Buffer de traducción adelantada

• Primero comprueba que la página esté en la memoria principal: – Si no está, se produce un fallo en el acceso a

la memoria, llamado fallo de página.

• El procesador actualiza la TLB para incluir esta nueva entrada de la tabla de páginas.

Page 75: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Volver a la instrucción que falló

Rutina de gestión de fallo de página

No

No

No

Comienzo

La CPU comprueba la TLB

Acceder a la tablade páginas

Actualizar TLB

La CPU generala dirección física

La CPU generala dirección física

El SO ordenaa la CPU leer

la página del disco

La CPU activa el hardware de E/S

La página se transfiere del disco

a memoria principal

Actualizar las tablasde páginas

Actualizar las tablasde páginas

¿Memoria llena?

Figura 8.8. Funcionamiento de la paginación con buffer de traducción adelantada (TLB) [FUTH87].

¿Está la entradade la tabla de página

en la TLB?

¿Está la página en memoria principal?

Page 76: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Dirección virtual Memoria principalMemoria secundaria

Buffer de traducción adelantada

Dirección real

Despla-zamiento

Despla-zamiento

Acierto de TLB

Fallo de TLB

Tabla de páginas

Despla-zamiento

Cargar página

Fallo de página

Nº. Pág.

N.º marco

Figura 8.7. Uso de un Buffer de Traducción Adelantada.

N.º pág.Despla-

zamiento

Page 77: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Tamaño de página

• Cuanto menor sea el tamaño de página, menor será la cantidad de fragmentación interna.

• Cuanto menor sea la página, mayor será el número de páginas que se necesitan por proceso.

• Un número mayor de páginas por proceso significa que las tablas de páginas serán mayores.

• Esto puede significar que una gran parte de las tablas de páginas de los procesos activos deben estar en la memoria virtual.

• La memoria secundaria está diseñada para transferir eficazmente los bloques de datos de mayor tamaño, de manera que es propicia para tamaños de página mayores.

Page 78: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Tamaño de página

• Si el tamaño de página es muy pequeño, estarán disponibles en la memoria principal un gran número de páginas para cada proceso.

• Después de un tiempo, todas las páginas de la memoria contendrán parte de las referencias más recientes del proceso. La tasa de fallos de página será menor.

• Cuando se incrementa el tamaño de la página, cada página individual contendrán posiciones cada vez más distantes de cualquier referencia reciente. La tasa de fallos será mayor.

Page 79: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Figura 8.11. Comportamiento típico de la paginación en un programa.

Ta s

a d

e f a

l lo s

de

pág

i na

Ta s

a d

e f a

l lo s

de

pág

i na

(a) Tamaño de página (b) Número de marcos de página asignados

P = Tamaño del proceso completoW = Tamaño del conjunto de trabajoN = Número total de páginas del proceso

Page 80: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Tamaño de página

• Múltiples tamaños de página proporcionan la flexibilidad necesaria para usar una TLB eficazmente.

• Las páginas grandes se pueden utilizar para traducir instrucciones de programa.

• Las páginas de pequeño tamaño se pueden emplear para las pilas de los hilos.

• La mayoría de los sistemas operativos favorecen el uso de un solo tipo de página.

Page 81: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Ejemplos de tamaños de páginas

Tabla 8.2. Ejemplos de tamaños de páginas.

Computadora Tamaño de página

Atlas 512 palabras de 48 bits

Honeywell-Multics 1.024 palabras de 36 bits

IBM 370/XA y 370/ESA 4 Kbytes

Familia VAX 512 bytes

IBM AS/400 512 bytes

DEC Alpha 8 Kbytes

MIPS de 4 Kbytes a 16 Mbytes

UltraSPARC de 8 Kbytes a 4 Mbytes

Pentium de 4 Kbytes a 4 Mbytes

Power Pc 4 Kbytes

Page 82: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Segmentación

• Los segmentos pueden ser de distintos tamaños, incluso de forma dinámica.

• Simplifica la gestión de estructuras de datos crecientes.

• Permite modificar y recopilar los programas independientemente.

• Se presta a la compartición entre procesos.

• Se presta a la protección.

Page 83: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Tablas de segmentos

• Segmento correspondiente de la memoria principal.

• Cada entrada de la tabla de segmentos contiene la longitud del segmento.

• Se necesita un bit para indicar si el segmento correspondiente está presente en la memoria principal.

• Otro bit de control necesario es un bit de modificación que indique si el contenido del segmento correspondiente ha sido modificado desde que se cargó por última vez en la memoria principal.

Page 84: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Entradas de las tablas de segmentos

Dirección virtual

Entrada del segmento de tabla

Número de segmento Desplazamiento

PP MM Otros bits de controlOtros bits de control LongitudLongitud Base de segmentoBase de segmento

Figura 8.2. Formatos típicos de gestión de memoria.

(b) Sólo segmentación

Page 85: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Paginación y segmentación combinadas

• La paginación es transparente al programador. • La paginación elimina la fragmentación externa. • La segmentación es visible para el

programador. • La segmentación permite gestionar estructuras

de datos que pueden crecer, la modularidad y el soporte de la compartición y la protección.

• Cada segmento se divide en varias páginas de tamaño fijo.

Page 86: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Paginación y segmentación combinadas

Dirección virtual

Entrada de la tabla de segmentos

Nº. segmento

PP MM

LongitudLongitud Base de segmentoBase de segmentoOtros bits de controlOtros bits de control

Número de páginaNúmero de página Despla-zamientoDespla-

zamientoNúmero de segmentoNúmero de segmento

Otros bits de controlOtros bits de control Número de marcoNúmero de marco

Entrada de la tabla de páginas

Figura 8.2. Formatos típicos de gestión de memoria.

(c) Segmentación y paginación combinadas

P = Bit de presenciaM = Bit de modificación

Page 87: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Memoria principalDirección

Distribuidor

Proceso A

Proceso B

Proceso C

Ningún acceso permitido

Instrucción de salto (no permitida)

Referencia a datos(permitida)

Referencia a datos (no permitida)

Figura 8.14. Relaciones de protección entre segmentos.

Page 88: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Políticas de lectura

• Política de lectura:– Está relacionada con la decisión de cuándo se

debe cargar una página en la memoria principal.

– Con la paginación por demanda, se trae una página a la memoria principal sólo cuando se hace referencia a una posición en dicha página:

• Cuando un proceso se ejecute por primera vez, se producirán muchos fallos de página.

– Con la paginación previa, se cargan más páginas de las necesarias:

• Es más eficiente traer a la memoria un número de páginas contiguas.

Page 89: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Políticas de reemplazo

• Política de ubicación:– Qué página se va a reemplazar.– La página que se va a reemplazar tiene que

ser la que tenga una menor posibilidad de ser referenciada en un futuro cercano.

– La mayoría de las políticas intentan predecir el comportamiento futuro en función del comportamiento pasado.

Page 90: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Políticas de reemplazo

• Bloqueo de marcos:– Cuando un marco está bloqueado, la

página cargada en ese marco no puede ser reemplazada.

– La mayoría del núcleo del sistema operativo está en marcos bloqueados.

– Estructuras de control.– Buffers de E/S.– El bloqueo se consigue asociando un bit

de bloqueo a cada marco.

Page 91: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Algoritmos básicos de reemplazo

• Política óptima:– Selecciona para reemplazar la página que

tiene que esperar una mayor cantidad de tiempo hasta que se produzca la referencia siguiente.

– Es imposible de implementar porque requiere que el sistema operativo tenga un conocimiento exacto de los sucesos futuros.

Page 92: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Algoritmos básicos de reemplazo

• Política de la usada menos recientemente (LRU):– Reemplaza la página de memoria que no ha

sido referenciada desde hace más tiempo. – Debido al principio de cercanía, ésta sería la

página con menor probabilidad de ser referenciada en un futuro cercano.

– Una solución sería etiquetar cada página con el momento de su última referencia.

Page 93: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Algoritmos básicos de reemplazo

• Política de primera en entrar primera en salir (FIFO):– Trata los marcos asignados a un proceso como

un buffer circular. – Las páginas se suprimen de la memoria según la

técnica de turno rotatorio (round-robin).– Es una de las políticas de reemplazo más

sencillas de implementar.– Se reemplaza la página que ha estado más

tiempo en la memoria. – Estas páginas pueden necesitarse de nuevo y en

un plazo de tiempo corto.

Page 94: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Algoritmos básicos de reemplazo

• Política del reloj:– Requiere asociar un bit adicional a cada marco, denominado bit

de uso. – Cuando se carga una página por primera vez en un marco de

memoria, el bit de uso de dicho marco se pone a cero. – Cuando se hace referencia a la página posteriormente, el bit de

uso se pone a 1. – Cuando llega el momento de reemplazar una página, el primer

marco encontrado con el bit de uso a 0 es reemplazado.– Durante la búsqueda para realizar reemplazos cada bit de uso a

1 se cambia a 0.

Page 95: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Primer marco en el buffercircular de marcos que soncandidatos para el reemplazo

Página 9uso = 1

Página 19uso = 1

Página 191uso = 1

Página 1uso = 1

Página 45uso = 1

Página 13uso = 0

Página 67uso = 1

Página 33uso = 1

Figura 8.16. Ejemplo de funcionamiento de la política del reloj.

(a) Estado del buffer justo antes del reemplazo de página

Puntero al siguiente

marco

Página 556uso = 0

Página 222uso = 0

Page 96: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Figura 8.16. Ejemplo de funcionamiento de la política del reloj.

(b) Estado del buffer justo después del siguiente reemplazo de página

Página 9uso = 1

Página 19uso = 1

Página 1uso = 0

Página 45uso = 0

Página 191uso = 0

Página 727uso = 1

Página 13uso = 0

Página 67uso = 1

Página 33uso = 1

Página 222uso = 0

Page 97: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Algoritmos básicos de reemplazo

• Almacenamiento intermedio de páginas:– La pista de la página reemplazada se asigna

a una de las dos listas siguientes: • La lista de páginas libres, si la página no ha sido

modificada. • La lista de páginas modificadas, si lo ha sido.

Page 98: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Tamaño del conjunto residente

• Asignación fija:– Otorga a cada proceso un número fijo de

páginas en las que ejecutar. – Cada vez que se produce un fallo de página en

la ejecución de un proceso, se debe reemplazar una de las páginas de dicho proceso.

• Asignación variable:– Permite que el número de marcos asignados a

un proceso cambie a lo largo de su vida.

Page 99: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Asignación variable y alcance global

• Es la combinación más sencilla de implementar.• Ha sido adoptada por un buen número de

sistemas operativos. • Normalmente el sistema operativo mantiene un

lista de marcos libres. • Cuando se produce un fallo de página, se añade

un marco libre al conjunto residente del proceso. • Cuando no hay marcos libres, el sistema

operativo debe elegir una página que esté en la memoria para reemplazar.

Page 100: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Asignación variable y alcance local

• Cuando se carga un nuevo proceso en la memoria, se le asigna cierto número de marcos en función del tipo de aplicación, las necesidades del programa u otros criterios.

• Cuando se produce un fallo de página, se selecciona la página a reemplazar de entre las del conjunto residente del proceso que sufre el fallo.

• Se vuelve a evaluar la asignación de vez en cuando.

Page 101: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Políticas de vaciado

• Vaciado por demanda:– Una página se escribirá en la memoria

secundaria sólo cuando haya sido elegida para reemplazarse.

• Vaciado previo:– Escribe las páginas modificadas por lotes.

Page 102: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Políticas de vaciado

• La mejor solución es incorporar almacenamiento intermedio de páginas:– Las páginas reemplazadas pueden situarse en dos

listas: • Modificadas y no modificadas.

– Las páginas de la lista de modificadas pueden escribirse periódicamente por lotes.

– Una página de la lista de no modificadas pueden reclamarse, si se le hace de nuevo referencia o perderse, cuando se asigna su marco a otra página.

Page 103: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Control de carga

• Determina el número de procesos que pueden estar en la memoria principal.

• Cuando hay pocos procesos residentes en la memoria, habrá muchas ocasiones en las que todos los procesos estén bloqueados y se gastará mucho tiempo en el intercambio.

• Si hay demasiados procesos residentes, el resultado será la hiperpaginación.

Page 104: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Suspensión de procesos

• Procesos con la prioridad más baja.

• Procesos con fallos de página:– Este proceso no tiene su conjunto de trabajo

en la memoria principal, por lo que quedará bloqueado de todas formas.

• Último proceso activado:– Este es el proceso con menos posibilidades

de tener su conjunto de trabajo residente.

Page 105: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Suspensión de procesos

• Proceso con el conjunto residente más pequeño: – Este es el proceso que necesita el menor

esfuerzo futuro para volver a cargar el conjunto residente.

• El proceso mayor:– Esta alternativa obtiene la mayor cantidad

de marcos libres.

• Procesos con la mayor ventana de ejecución restante.

Page 106: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Gestión de memoria en UNIX y Solaris

• Sistema de paginación:– Tabla de páginas.– Descriptor de bloques de disco.– Tabla de marcos de página.– Tabla de uso de intercambios.

Page 107: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Estructuras de datos

Número de marco de página EdadCopia en es-

crituraNúmero de marco de página Edad

Modifi-cación

Refe-rencia

ValidezProtec-

ción

Número de dispositivo de intercambio

Número de bloque de dispositivo

Tipo de almacenamiento

(a) Entrada de la tabla de páginas

(b) Descriptor de bloques de disco

Figura 8.22. Formatos de gestión de memoria en UNIX SVR4.

Page 108: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Estructuras de datos

Figura 8.22. Formatos de gestión de memoria en UNIX SVR4.

(c) Entrada de la tabla de marcos de página

(d) Entrada de la tabla de utilización del intercambio

Número de marco de página EdadDispositivo

lógicoEstado de la página

Contador de referencias

Número debloque

Puntero a marcode página

Contador de referencias

Página/número de unidad de

almacenamiento

Page 109: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Gestión de memoria en UNIX y Solaris

• Reemplazo de páginas:– Es un refinamiento de la política del reloj.

• Asignador de memoria del núcleo:– La mayor parte de estos bloques son

significativamente más pequeños que el tamaño de página en las máquinas normales.

Page 110: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Gestión de memoria en Linux

• Directorio de páginas.

• Directorio intermedio de páginas.

• Tabla de páginas.

Page 111: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Gestión de memoria en Windows 2000

• Paginación en W2K:– Disponible.– Reservada.– Confirmada.

Page 112: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Región de 64 Kilobytes para la asignación de punteros NULL (inaccesible)

Figura 8.25. Espacio de direcciones virtuales por defecto en Windows 2000.

Región de 2 Gigabytes para el espacio de direcciones de usuario(no reservado, utilizable)

Región de 64 Kilobytes para la asignación incorrecta de punteros (inaccesible)

Región de 2 Gigabytes para el sistema operativo(inaccesible)

Page 113: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Planificación de monoprocesadores

Capítulo 9

Page 114: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Planificación

En el caso del procesador el recurso a repartir es el tiempo de ejecución y el medio de reparto es la planificación.

Page 115: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Propósito de la planificación

• Tiempo de respuesta.

• Productividad.

• Eficiencia del procesador.

Page 116: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Tipos de planificación

Planificación a largo plazo

Planificación a medio plazo

Planificación a corto plazo

Planificación de E/S

Decisión de añadir procesos al conjunto de procesos a ejecutar

Decisión de añadir procesos al conjunto de procesos que se encuentran parcial o completamente en la memoria

Decisión sobre qué proceso disponible será ejecutado en el procesador

Decisión sobre qué solicitud de E/S pendiente será tratada por un dispositivo de E/S disponible

Page 117: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Planificación

a largo plazo

Planificación

a largo plazo

Planificación

a medio plazo

Planificación

a corto plazo

Planificación

a medio plazo

Nuevo

Listo/suspendido

Bloqueado

Listo Ejecutando Salida

Bloqueado/suspendido

Figura 9.1. Planificación y transiciones de estado de los procesos.

Decisión sobre que proceso disponible será ejecutado en el procesador

Decisión de añadir procesos al conjunto de procesos a ejecutar

Decisión de añadir procesos al conjunto de procesos que se encuentran parcial o completamente en memoria

Page 118: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Ejecutando

Listo

Bloqueado

Corto plazo

Bloqueadosuspendido

Listosuspendido

Medio plazo

Nuevo Salida

Figura 9.1. Niveles de planificación.

Page 119: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Planificación a largo plazo

Decisión de añadir procesos al conjunto de procesos a ejecutar.

• Determina cuáles son los programas admitidos en el sistema.

• Controla el grado de multiprogramación.

• Cuantos más procesos se crean, menor es el porcentaje de tiempo en el que cada proceso se puede ejecutar.

Page 120: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Planificación a medio plazo

Decisión de añadir procesos al conjunto de procesos que se encuentran parcial o completamente en memoria

• Forma parte de la función de intercambio.

• Se basa en la necesidad de controlar el grado de multiprogramación.

Page 121: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Planificación a corto plazo

Decisión sobre que proceso disponible será ejecutado en el procesador

• También conocido como distribuidor.• Es el de ejecución más frecuente.• Se ejecuta cuando ocurre un suceso:

– Interrupciones del reloj.– Interrupciones de E/S.– Llamadas al sistema operativo.– Señales.

Page 122: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Criterios de la planificación a corto plazo

• Orientados al usuario:– Tiempo de respuesta:

• Periodo de tiempo transcurrido desde que se emite una solicitud hasta que la respuesta aparece en la salida.

• Orientados al sistema:– Uso efectivo y eficiente del procesador.

Page 123: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Criterios de la planificación a corto plazo

• Relativos al rendimiento del sistema:– Cuantitativos.– Pueden evaluarse fácilmente. Algunos

ejemplos son el tiempo de respuesta y la productividad.

• No relativos al rendimiento del sistema:– Cualitativos.– Previsibilidad.

Page 124: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Prioridades

• El planificador seleccionará siempre a un proceso de mayor prioridad antes que a los de menor prioridad.

• Tiene múltiples colas de Listos para representar cada nivel de prioridad.

• Los procesos de prioridad más baja pueden sufrir inanición:– Permite que un proceso cambie su prioridad en

función de su edad o su historial de ejecución.

Page 125: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Planificación

a largo plazo

Usuarios

interactivos

Planificación

a medio plazo

Planificación

a corto plazo

Planificación

a medio plazo

Ocurre

un suceso

Trabajos

por lotes

Tiempo de guarda

Cola de listos

Cola de listos suspendidos

Cola de bloqueados suspendidos

Cola de bloqueados

TerminaciónProcesador

Espera de un suceso

Figura 9.3. Diagrama de colas de planificación.

La planificación es la Gestión de estas colas minimizando la espera y optimizando el rendimiento del retorno

Page 126: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Procesador

Terminar

Expedir

Expulsión

Espera de suceso

Entrar

Ocurre

un suceso Cola de bloqueados

Figura 9.4. Colas de prioridad.

El procesador comenzara por la cola de listos de mayor prioridad, si hay varios los seleccionara según alguna política de planificación y prioridad

Page 127: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Otras Políticas de Selección

• La función de selección determina que proceso, de entre los listos, se elige para ejecutar a continuación.

• Esta función puede estar basada en prioridades, necesidades de recursos, características de ejecución de procesos

Page 128: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Shortest Process Next

Shortest Remaining Time

Page 129: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Modo de decisión

• El modo de decisión especifica los instantes de tiempo en que se aplica la función de selección

Page 130: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Modo de decisión

• No preferente:– Una vez que el proceso pasa al estado de Ejecución,

continúa ejecutando hasta que termina o se bloquea en espera de una E/S.

• Preferente:– El proceso que se está ejecutando actualmente

puede ser interrumpido y pasado al estado de Listos por el sistema operativo.

– Permiten dar un mejor servicio ya que evitan que un proceso pueda monopolizar el procesador durante mucho tiempo.

Page 131: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Ejemplo de planificación de procesos

Proceso Instante de llegada Tiempo de servicio

Tiempo Total de Ejecución

Page 132: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Primero en llegar, primero en servirse (FCFS)

• Cada proceso se incorpora a la cola de listos.• Cuando el proceso actual cesa su ejecución,se

selecciona el proceso más antiguo de la cola.

0 5 10 15 20

1

2

3

4

5

Page 133: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Primero en llegar, primero en servirse (FCFS)

• Puede que un proceso corto tenga que esperar mucho tiempo antes de que pueda ser ejecutado.

• Favorece a los procesos con carga de CPU:– Los procesos con carga de E/S tienen que

esperar a que se completen los procesos con carga de CPU.

Page 134: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Turno rotatorio

• Utiliza la apropiación dependiente de un reloj. • Se determina una cantidad de tiempo que

permite a cada proceso utilizar el procesador durante este periodo de tiempo.

0 5 10 15 20

1

2

3

4

5

Page 135: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Turno rotatorio

• Periódicamente, se genera una interrupción de reloj.

• Cuando se genera la interrupción, el proceso que está en ejecución se sitúa en la cola de Listos:– Se selecciona el siguiente trabajo.

• Se conoce también como fracciones de tiempo.

Page 136: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Primero el proceso más corto

• Es una política no preferente.• Se selecciona el proceso con menor tiempo

esperado de ejecución.• Un proceso corto saltará a la cabeza de la cola,

sobrepasando a trabajos largos.

0 5 10 15 20

1

2

3

4

5

Page 137: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Primero el proceso más corto

• Se reduce la previsibilidad de los procesos largos.

• Si la estimación de tiempo del proceso no es correcta, el sistema puede abandonar el trabajo.

• Posibilidad de inanición para los procesos largos.

Page 138: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Menor tiempo restante

• Es una versión preferente de la política de primero el proceso más corto.

• Debe estimar el tiempo de proceso.

0 5 10 15 20

1

2

3

4

5

Page 139: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Primero el de mayor tasa de respuesta (HRRN)

• Elige el proceso con la tasa más baja.

tiempo consumido esperando al procesador + tiempo de servicio esperadotiempo de servicio esperado

1

2

3

4

5

0 5 10 15 20

Page 140: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Realimentación

• Penaliza a los trabajos que han estado ejecutándose durante más tiempo.

• No se conoce el tiempo de ejecución restante del proceso.

0 5 10 15 20

1

2

3

4

5

Page 141: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Proceso A Proceso CProceso BTiempoPrioridad PrioridadPrioridadProceso ProcesoProcesoGrupo GrupoGrupo

Grupo 1 Grupo 2

Los rectángulos sombreados representan la ejecución de procesos.

Figura 9.16. Ejemplo de planificador por reparto equitativo con tres procesos y dos grupos.

Page 142: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Procesamiento Distribuido, Seguridad

Unidad VII, VIII

Page 143: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438
Page 144: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

• DEITEL H. M., "Introducción a los Sistemas Operativos". Editorial Addison Wesley, 1993.

• TANENBAUM A.S., "Conceptos de Sistemas Operativos". Editorial Prentice Hall, 1989.

• TANENBAUM A.S., "Sistemas Operativos. Diseño e Implementación". Prentice Hall, 1997.

• DONOVAN M, "Sistemas Operativos". Editorial Addison Wesley, 1990.

• TANENBAUM A.S., "Sistemas Operativos Modernos". Editorial Prentice Hall, 1991.

• JULIO VELAZCO, "Sistemas Operativos". Editorial La Vega 1990.• PETERSON J.L., "Conceptos de Sistemas Operativos". Editorial

Adisson Wesley, 1995.• STALLINGS W., "Sistemas Operativos". Editorial Prentice Hall,

1997.

BIBLIOGRAFIA RECOMENDADA

*

Page 145: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438
Page 146: Sistemas de Operación Hector Gonzalez hgr@cantv.net 0416-7252438

Sistemas de Operación

Hector [email protected]